sql提取股票軟體數據
㈠ 如何獲取股票數據與歷史數據以資料庫方式存儲的
股票歷史數據查詢有個很不錯的網頁工具可以推薦,地址是http://tool.cnfunny.cn/#/打開就可以直接使用,還可以大批量下載,方便省事!
㈡ 股票軟體通達信 數據提取問題
樓上的朋友都沒看懂LZ想問什麼。
很遺憾啊~~~這個軟體沒有您說的這個功能。
如果有可能的話,您可能需要一點一點的把數據寫在EXCEL里……
或者您用Alt+Print Screen鍵把那個窗口截下來。然後再粘貼到微軟自帶的畫圖軟體:畫圖中,這樣也可以保存下來。
希望能幫到LZ~~~~~~~~~~~
㈢ 如何提取股票軟體中的實時數據
盤後數據下載!選擇即時數據。不過有些軟體只提供分鍾數據,而不提供分時數據
㈣ 如何編程從免費股票軟體中提取實時數據
自己寫程序的話,一種方法是從已提供的信息源,例如webservice獲取數據。還有種辦法就是去連接提供即時信息的網頁硬解析。
代碼舉例如下:
Created on Thu Jul 23 09:17:27 2015
@author: jet
"""
DAY_PRICE_COLS = ['date', 'open', 'high', 'close', 'low', 'volume',
'chg', '%chg', 'ma5', 'ma10', 'ma20',
'vma5', 'vma10', 'vma20', 'turnover']
DAY_PRICE_URL = '%sapi.finance.%s/%s/?code=%s&type=last'
INDEX_KEY = ['SH', 'SZ', 'HS300', 'SZ50', 'GEB', 'SMEB']
INDEX_LIST = {'SH': 'sh000001', 'SZ': 'sz399001', 'HS300': 'sz399300',
'SZ50': 'sh000016', 'GEB': 'sz399006', 'SMEB': 'sz399005'}
INDEX_DAY_PRICE_COLS= ['date', 'open', 'high', 'close', 'low', 'volume',
'chg', '%chg', 'ma5', 'ma10', 'ma20',
'vma5', 'vma10', 'vma20']
K_TYPE_KEY = ['D', 'W', 'M']
K_TYPE_MIN_KEY = ['5', '15', '30', '60']
K_TYPE = {'D': 'akdaily', 'W': 'akweekly', 'M': 'akmonthly'}
MIN_PRICE_URL = '%sapi.finance.%s/akmin?scode=%s&type=%s'
PAGE_TYPE = {'http': 'http://', 'ftp': 'ftp://'}
PAGE_DOMAIN = {'sina': 'sina.com.cn', 'ifeng': 'ifeng.com'}
URL_ERROR_MSG = '獲取失敗,請檢查網路狀態,或者API埠URL已經不匹配!'
get_hist_data.py
# -*- coding: utf-8 -*-
"""
Created on Thu Jul 23 09:15:40 2015
@author: jet
"""
import const as ct
import pandas as pd
import json
from urllib2 import urlopen,Request
def get_hist_data(code = None, start = None, end = None, ktype = 'D'):
"""
功能:
獲取個股歷史交易數據
--------
輸入:
--------
code:string
股票代碼 比如:601989
start:string
開始日期 格式:YYYY-MM-DD 為空時取到API所提供的最早日期數據
end:string
結束日期 格式:YYYY-MM-DD 為空時取到最近一個交易日數據
ktype:string(default=D, 函數內部自動統一為大寫)
數據類型 D=日K線,W=周K線,M=月K線,5=5分鍾,15=15分鍾
30=30分鍾,60=60分鍾
輸出:
--------
DataFrame
date 日期
open 開盤價
high 最高價
close 收盤價
low 最低價
chg 漲跌額
p_chg 漲跌幅
ma5 5日均價
ma10 10日均價
ma20 20日均價
vma5 5日均量
vma10 10日均量
vma20 20日均量
turnover換手率(指數無此項)
"""
code = code_to_APIcode(code.upper())
ktype = ktype.upper()
url = ''
url = get_url(ktype, code)
print(url)
js = json.loads(ping_API(url))
cols = []
if len(js['record'][0]) == 14:
cols = ct.INDEX_DAY_PRICE_COLS
else:
cols = ct.DAY_PRICE_COLS
df = pd.DataFrame(js['record'], columns=cols)
if ktype in ct.K_TYPE_KEY:
df = df.applymap(lambda x:x.replace(u',', u''))
for col in cols[1:]:
df[col]=df[col].astype(float)
if start is not None:
df = df [df.date >= start]
if end is not None:
df = df[df.date <= end]
df = df.set_index('date')
return df
def code_to_APIcode(code):
"""
功能:
驗證輸入的股票代碼是否正確,若正確則返回API對應使用的股票代碼
"""
print(code)
if code in ct.INDEX_KEY:
return ct.INDEX_LIST[code]
else:
if len(code) != 6:
raise IOError('code input error!')
else:
return 'sh%s'%code if code[:1] in ['5', '6'] else 'sz%s'%code
def get_url(ktype, code):
"""
功能:
驗證輸入的K線類型是否正確,若正確則返回url
"""
if ktype in ct.K_TYPE_KEY:
url = ct.DAY_PRICE_URL % (ct.PAGE_TYPE['http'], ct.PAGE_DOMAIN['ifeng'],
ct.K_TYPE[ktype], code)
return url
elif ktype in ct.K_TYPE_MIN_KEY:
url = ct.MIN_PRICE_URL % (ct.PAGE_TYPE['http'], ct.PAGE_DOMAIN['ifeng'],
code, ktype)
return url
else:
raise IOError('ktype input error!')
def ping_API(url):
"""
功能:
向API發送數據請求,若鏈接正常返回數據
"""
text = ''
try:
req = Request(url)
text = urlopen(req,timeout=10).read()
if len(text) < 15:
raise IOError('no data!')
except Exception as e:
print(e)
else:
return text
#測試入口
print(get_hist_data('601989','2015-07-11','2015-07-22'))
㈤ SQL資料庫如何提取數據
1、查詢資料庫(test)中的所有表名的方法:
SELECT name
FROM [test]..sysobjects where xtype='U'
********
補充:
如果有的表不存在【時間】那就用下面的語句直接把含有【時間】列的表名找到:
SELECT d.name
FROM [test]..syscolumns a
inner join [test]..sysobjects d on a.id=d.id and d.xtype='U' and a.name='時間'
**********
2、遍歷這個表名取出數據插入到另外的資料庫中(SqlServer中的遍歷方法我不是很清楚,給你提供個思路,oracle的話我就能把程序寫出來了O(∩_∩)O~)。
如:遍歷結果存儲到資料庫test2中
insert into [test2]..遍歷出的表名 select * from 遍歷出的表名 where datediff(day,'2009-08-07',時間)>0;
重復上面的sql語句指導講資料庫test中的表名完全遍歷完為止。
*************************************************************
補充:我試驗了一下下面把實驗代碼給你(建一個存儲過程)
create proc test as
--定義游標變數
declare cur1 cursor for
SELECT d.name
FROM [test]..syscolumns a
inner join [test]..sysobjects d on a.id=d.id and d.xtype='U' and a.name='時間'
--定義臨時變數
declare @tmp varchar(1000)
--定義sql字元串
declare @strsql varchar(4000)
--打開游標
open cur1
--讀取第一條數據,也就是第一個表名
fetch next from cur1 into @tmp
--是讀完
while(@@fetch_status = 0)
begin
--連接sql文
set @strsql='insert into [test2]..'+@tmp++' select * from '+@tmp+' where datediff(day,'+char(39)+'2009-08-07'+char(39)+',時間)>0'
--執行這個sql
exec(@strsql)
--讀取下一條數據
fetch next from cur1 into @tmp
end
--關閉游標
close cur1
--摧毀游標所佔資源
deallocate cur1
*************************************************
---
以上,希望對你有所幫助。
㈥ 如何把股票軟體的數據導入到資料庫然後自行統計分析
先從菜單欄里找到數據導出(保存),導出為EXCEL,然後打開統計軟體或資料庫,再找到文件(數據)導入,把EXCEL導入。
一般都是這個方法,不同的軟體有一定差異。
㈦ 哪些股票行情軟體可以用函數實時提取每分鍾的數據(成交額/最高價/最低價/收盤價等)
同花順和大智慧,介面開放最多的是新浪,金融機構一般用萬得調數據。
可以關注我,有問題再聯系。
㈧ sql 提取 text 中的股票代碼
哪有那麼簡單。
你的意思我明白,是要提取摻雜在聊天內容也就是字元串中的長度為3-6位的整數。
1)首先要看你說的text 是欄位名稱還是欄位類型。其次要看它的長度,如果超過8000字元,處理機起來就麻煩得很
2)要使用游標用isNumber()函數進行逐字元判斷。如果為數字,判斷下一字元。如果聯系成立次數超過3位且在6位內。將轉換出來的整數存儲到變數插入表中保存
要使用一個存儲過程,並使用游標來處理。但如果編成實現,要省力的多。T-Sql不適合處理這樣的問題