如何爬取股票軟體資料庫
1. 如何下載股票歷史成交數據到Excel或txt
網路搜:大富翁數據中心,他們有提供這個,價格也不貴,花點小錢辦大事,歷史一分鍾,五分鍾,任意分鍾都有,還有分筆,逐筆等,股票期貨外匯全有。 還有每天盤後提供下載
2. 如何利用一些 finance 資料庫 api 批量獲取股票信息
使用Yahoo API獲取股票信息。
3. 如何提取股票軟體中的實時數據
盤後數據下載!選擇即時數據。不過有些軟體只提供分鍾數據,而不提供分時數據
4. 如何獲取股票數據與歷史數據以資料庫方式存儲的
股票歷史數據查詢有個很不錯的網頁工具可以推薦,地址是http://tool.cnfunny.cn/#/打開就可以直接使用,還可以大批量下載,方便省事!
5. 如何利用一些 finance 資料庫 api 批量獲取股票信息
1、通過API獲取實時數據
請求地址
http://finance.yahoo.com/d/quotes.csv?s=<股票名稱>&f=<數據列選項>
參數
s –表示股票名稱,多個股票之間使用英文加號分隔,如」XOM+BBDb.TO+JNJ+MSFT」,羅列了四個公司的股票:XOM,BBDb.TO, JNJ, MSFT。
f – 表示返回數據列,如」snd1l1yr」。更詳細的參見雅虎股票 API f參數對照表。
2、通過API獲取歷史數據
請求地址
http://ichart.yahoo.com/table.csv?s=<string>&a=<int>&b=<int>&c=<int>&d=<int>&e=<int>&f=<int>&g=d&ignore=.csv
參數
s – 股票名稱
a – 起始時間,月
b – 起始時間,日
c – 起始時間,年
d – 結束時間,月
e – 結束時間,日
f – 結束時間,年
g – 時間周期。Example: g=w, 表示周期是』周』。d->』日』(day),w->』周』(week),m->』月』(mouth),v->』dividendsonly』
一定注意月份參數,其值比真實數據-1。如需要9月數據,則寫為08。
3、通過API獲取深滬股票數據
雅虎的API是國際性的,支持查詢國內滬深股市的數據,但代碼稍微變動一下,如浦發銀行的代號是:600000.SS。規則是:上海市場末尾加.ss,深圳市場末尾加.sz。
最近股市甚火,受聘開發一股票網站,股票的數據從哪裡來成了一個大問題,股票軟體一般都是加密處理的,還有一些webservices也是要帳號 的,免費的方法只有一種了,抓別人網站的數據。好在經我研究,發現yahoo提供國內和國外股市每天的交易數據資料,這可謂一大幸事啊。
http://table.finance.yahoo.com/table.csv?s=ibm&d=6&e=22&f=2006&g=d&a=11&b=16&c=1991&ignore=.csv
上面的鏈接可以抓取IBM股票從1991年11月16日起到2006年6月22的數據。把ibm改成sohu,就可以抓到sohu的股票數據了。
http://table.finance.yahoo.com/table.csv?s=sohu&d=6&e=22&f=2008&g=d&a=11&b=16&c=2008&ignore=.csv
上面鏈接可以抓搜狐股票的數據。
那麼中國股市的數據有沒有呢?答案是肯定的,不過要按照下面的參數做些調整,下面提供全球證券交易所的資料。
上證股票是股票代碼後面加上.ss,深證股票是股票代碼後面加上.sz
例如:000001 = 000001.sz
深市數據鏈接:http://table.finance.yahoo.com/table.csv?s=000001.sz
上市數據鏈接:http://table.finance.yahoo.com/table.csv?s=600000.ss
上證綜指代碼:000001.ss,深證成指代碼:399001.SZ,滬深300代碼:000300.ss
下面就是世界股票交易所的網址和縮寫,要查找哪個股票交易所的數據,就按照上面的格式以此類推。
上海交易所=cn.finance.yahoo.com,.SS,Chinese,sl1d1t1c1ohgv
深圳交易所=cn.finance.yahoo.com,.SZ,Chinese,sl1d1t1c1ohgv
美國交易所=finance.yahoo.com,,United States,sl1d1t1c1ohgv
加拿大=ca.finance.yahoo.com,.TO,Toronto,sl1d1t1c1ohgv
紐西蘭=au.finance.yahoo.com,.NZ,sl1d1t1c1ohgv
新加坡=sg.finance.yahoo.com,.SI,Singapore,sl1d1t1c1ohgv
香港=hk.finance.yahoo.com,.HK,Hong Kong,sl1d1t1c1ohgv
台灣=tw.finance.yahoo.com,.TW,Taiwan,sl1d1t1c1ohgv
印度=in.finance.yahoo.com,.BO,Bombay,sl1d1t1c1ohgv
倫敦=uk.finance.yahoo.com,.L,London,sl1d1t1c1ohgv
澳洲=au.finance.yahoo.com,.AX,Sydney,sl1d1t1c1ohgv
巴西=br.finance.yahoo.com,.SA,Sao Paulo,sl1d1t1c1ohgv
瑞典=se.finance.yahoo.com,.ST,Stockholm,sl1d1t1c1ohgv
6. 如何實時獲取大智慧之類股票軟體的數據源
我的股票分析軟體組合是: 大智慧+謙穗
1、看盤用謙穗超強版,因為謙穗超強版提供的信息多,尤其是盤中能實時的發出買賣點提示。
2、大智慧提供了重要的交易信息——股東數。謙穗的風險提示和彪股指標都能反映個股每日動向,這些功能有重要的參考價值。
7. 開發炒股軟體,從哪裡獲得股票數據
行情數據源在上交所和深交所。需要購買。而且很貴。
象我們平常看到行情,是券商營業部所買,我們連到他們伺服器,而接收到數據。
P2P數據介面使用說明(1)2009-03-18 08:58介面使用說明:
1. 壓縮包包含四個文件,分別為P2P.exe,P2P.CFG,zlib.dll和使用說明.txt,可以解壓到任意盤任意目錄下使用。
2. 支持的行情分析軟體有:
(1) 分析家2006,2005等,要求分析家主窗口標題最前面的幾個字是"分析家 -",是否是破解版關系不大,最好是下載分析家官方網站的正版分析家,網址是http://www.fxj.com.cn,分析家其他版本號是否支持,我也沒全做試驗。
(2) 飛狐交易師,支持飛狐交易師,要求飛狐交易師主窗口標題最前面的幾個字是"飛狐交易師"或"證券分析師",是否是破解版關系不大,最好是支持正版,用正版的。
(3) 大智慧新一代,要求大智慧主窗口標題最前面的幾個字是"大智慧Level" 支持的版本號有 09.0226,08.0907,08.0801,07.0205 共四個。
註:如果分析軟體的窗口標題不符合上面說的,則分析軟體無法接收數據。以上三個分析軟體最好都是正版的,只要下載正版的軟體,安裝後,無需做任何修改即可使用。介面再次說明一下,介面中的四個文件解壓到任意目錄下使用都可以,而無需解壓到某個分析軟體的某個目錄下,或替代某個分析軟體的某個文件。介面完全是綠色的,無需安裝,也不會在注冊表中留下任何信息。
3. 每天9:15分以後用行情軟體中的數據管理功能先清除當天的行情數據,然後把右下角「發送數據」發送數據前面的鉤選上。
4. 如果不能在開盤前打開該軟體,比如10點半才打開,那麼該介面會自動補充10點半之前的行情數據,為了能夠盡快的把前面的數據補充完畢,請把速度調節到100以上。但如果是飛狐,則把該值調低一些,否則飛狐會來不及處理數據,把大量的數據放到內存中,造成飛狐使用內存越來越大,最後由於內存耗完造成飛狐或介面非法退出。大智慧和分析家則不存在這個問題。
5. 收盤後,該介面具有白天行情的回放功能,回放前,最好先清除行情軟體中當天的行情數據。
6. 該介面由於是P2P接收數據,因此數據接收需要種子,只有和別的種子連上了,你就能接收數據了,你至少要和一個種子連上,當然,你連上別的種子後,你也就能稱為種子了,你也就能為別的人提供數據服務功能了。
7. 兩個人要連接成功,最好兩個人中有一個人的IP地址是公網地址,如果兩個全是內網地址則相互無法直接聯通,必須藉助第三方才能聯通,該方法這里不再介紹了。
8. 如果網路情況比較良好,則行情數據的延時一般不會大於0.5秒。
9. 介面的P2P連接信息中的欄位說明
(1). 遠程完成--為該IP接收到完整數據包的個數。
(2). 遠程請求--為該IP請求你發送的數據包序號。
(3). 本機請求--為本機請求遠程發送數據包序號。
(4). 請求返回--遠程響應本機請求的次數。
8. 如何編程從免費股票軟體中提取實時數據
自己寫程序的話,一種方法是從已提供的信息源,例如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'))
9. 如何使用python抓取炒股軟體中資金數據
這個說來有點復雜,用fiddle監控軟體跟伺服器間的通訊,找到數據源地址,然後用excel或python抓這個源地址數據,可能還要加上反扒代碼,構造時間戳等等,你網上找python網抓視頻教程看看就知道了。
10. 怎麼獲取股票數據c++ api
基本都是自己封裝CTP介面,程序端實現多賬戶、多策略的行情信號接收和委託提交/回報處理。也可以用 QuantBox/QuantBox_XAPI · GitHub 這樣的封裝的比較好、多介面統一API的項目直接整合到程序化平台的項目中使用。
通過程序介面用證券、期貨賬號登錄後訂閱品種的行情,證券、商品期貨、股指期貨、期權(全真模擬,9號就有實盤行情)都可以接收交易所的快照數據(例如商
品、股指都是500ms一個快照,數據結構也比較完整)。然後交易平台可以把行情數據廣播給各個策略程序,程序根據量化策略的邏輯判斷是否下單?掛單的方
式如何?掛單失敗是否追單?如何追單?
策略程序判斷要下單,則提交指令到程序化交易平台,平台把各個帳號各個品種中策略的邏輯持倉匯總為實際持倉,然後通過介面提交委託,並且處理委託回報。
行情數據一方面廣播給策略程序,一方面自己存資料庫,存下來的數據通過完整性檢測後,可以自己合成低頻率的數據,如
1分鍾、30分鍾、1小時、日度等等,這些數據會被用於策略回測,也可以用於市場微觀結構的觀察和研究,例如可以通過優化掛單方式來降低交易滑點。
Matlab可以做一些回測,實盤可能是比較不易用的。一般可以用C++, Java, C#來利用CTP程序化交易介面實現實盤平台,策略研究推薦用R做數據分析、統計、處理、可視化、策略分析、自動報告,用Rcpp(R調用C++)或者直接C++實現高性能回測,用單機並行或集群實現批量回測。
