雖然同花順之類的金融理財(cái)應(yīng)用的數(shù)據(jù)足夠好了,但還是有自己定制的沖動(dòng), 數(shù)據(jù)自然不會(huì)不會(huì)比前者好很多,,但是按照自己的想法來定制還是不錯(cuò)的,。 目標(biāo) Python資源共享群:484031800 通過免費(fèi)的數(shù)據(jù)接口獲取數(shù)據(jù),每日增量更新標(biāo)的歷史交易數(shù)據(jù), 然后通過Kibana做可視化及數(shù)據(jù)分析. 其實(shí)自己通過echarts之類的可視化框架做可視化也是個(gè)不錯(cuò)的選擇,,不過前期成本太大,。還有就是pandas+matplotlib已經(jīng)足以應(yīng)付大部分需求了,可是交互感太弱,,所以借助一個(gè)可視化應(yīng)用是很有必要的,,這里選擇的是kibana, 它的競(jìng)品有Grafana. 這個(gè)目標(biāo)應(yīng)該會(huì)一直下去 大家在學(xué)python的時(shí)候肯定會(huì)遇到很多難題,以及對(duì)于新技術(shù)的追求,,這里推薦一下我們的Python學(xué)習(xí)扣qun:784758214,,這里是python學(xué)習(xí)者聚集地!,!同時(shí),,自己是一名高級(jí)python開發(fā)工程師,從基礎(chǔ)的python腳本到web開發(fā),、爬蟲,、django、數(shù)據(jù)挖掘等,,零基礎(chǔ)到項(xiàng)目實(shí)戰(zhàn)的資料都有整理。送給每一位python的小伙伴,!每日分享一些學(xué)習(xí)的方法和需要注意的小細(xì)節(jié) 環(huán)境配置 Python3(推薦Anaconda安裝) 安裝相關(guān)依賴: pip install -r requirement.txt 配置eleasticsearch, kibana環(huán)境(推薦使用docker) Elasticsearch, Logstash, Kibana 7.2.0 數(shù)據(jù)源 獲取數(shù)據(jù)的方式有很多種,,收費(fèi)或者免費(fèi),作為業(yè)余愛好者自然選擇免費(fèi)的,,這里選擇 , 但其實(shí)tushare會(huì)有一點(diǎn)限制, 如獲取數(shù)據(jù)的頻率有一定的限制,,并且接口也有限制, 需要很多積分。 其他的免費(fèi)的數(shù)據(jù)獲取方式的,,大家可以自己嘗試
獲取數(shù)據(jù) 配置自己的token import tushare as tsts.set_token('<your_token>')pro = ts.pro_api('<your_token>') 關(guān)于Token的獲取可以參考一下鏈接 https:///document/1?doc_id=39 嘗試手動(dòng)獲取數(shù)據(jù) 通過日期取歷史某一天的全部歷史df = pro.daily(trade_date='20190725')df.head()ts_code trade_date open high low close pre_close change pct_chg vol amount value0 000032.SZ 20190725 9.49 9.60 9.47 9.56 9.49 0.07 0.7376 12658.35 12075.625 8906.9810001 000060.SZ 20190725 4.39 4.40 4.35 4.36 4.39 -0.03 -0.6834 129331.65 56462.292 -38586.3303532 000078.SZ 20190725 3.37 3.38 3.35 3.38 3.37 0.01 0.2967 76681.00 25795.633 7653.5643113 000090.SZ 20190725 5.66 5.66 5.56 5.61 5.64 -0.03 -0.5319 105582.72 59215.389 -31496.6654094 000166.SZ 20190725 4.97 4.98 4.93 4.96 4.97 -0.01 -0.2012 268122.48 132793.120 -26717.975744獲取某一只股票的日線行情數(shù)據(jù)data = ts.pro_bar(ts_code='601668.SH', adj='qfq', start_date='20120101')data.head()ts_code trade_date open high low close pre_close change pct_chg vol amount0 601668.SH 20190726 6.01 6.06 5.98 6.03 6.04 -0.01 -0.17 696833.16 419634.5471 601668.SH 20190725 6.05 6.07 6.02 6.04 6.04 0.00 0.00 543074.55 327829.3802 601668.SH 20190724 6.09 6.11 6.02 6.04 6.05 -0.01 -0.17 788228.12 477542.6093 601668.SH 20190723 5.93 6.07 5.92 6.05 5.94 0.11 1.85 1077243.46 650250.0214 601668.SH 20190722 6.02 6.03 5.92 5.94 6.00 -0.06 -1.00 811369.73 485732.343 數(shù)據(jù)的獲取自然是需要自動(dòng)化的,,但是由于接口的限制,所以需要考慮以下問題,。
關(guān)鍵代碼部分 def save_data(code, start_date, fp): print('下載股票(%s)日線數(shù)據(jù)到 %s' % (code, fp)) try: data = ts.pro_bar(ts_code=code, adj='qfq', start_date=start_date) # 當(dāng)超過調(diào)用次數(shù)限制返回None if data is None: time.sleep(10) return pass_set.add(code) except Exception: time.sleep(10) print('股票: %s 下載失敗' % code) return if len(data) == 0: pass_set.add(code) return try: data.trade_date = pd.to_datetime(data.trade_date) data = data.sort_values('trade_date') if path.exists(fp): data.to_csv(fp, mode='a', header=False, index=False) else: data.to_csv(fp, index=False) except Exception: print('股票:%s 保存失敗' % code) 大家可以參考我GitHub倉庫的save_data.py, 通過以下命令就可以自動(dòng)下載數(shù)據(jù)了 python save_data.py 代碼里面配置的起始時(shí)間是2012-01-01,有需要的課自行更改,,值得注意的是需要在同級(jí)目錄配置一個(gè)config.json, 內(nèi)容如下 { 'token': '<your_token>'} 配上自己的token 配置elasticsearch, kibana 這里使用的是docker進(jìn)行配置,。 # 拉取鏡像docker pull sebp/elk:720# 啟動(dòng)docker環(huán)境docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -v /home/elasticsearch/:/var/lib/elasticsearch -itd sebp/elk:720 轉(zhuǎn)存數(shù)據(jù) 將數(shù)據(jù)上傳到elasticsearch里面以便數(shù)據(jù)分析 配置settings.py # 將ip:port改成自己elasticsearch地址,,如192.168.56.102:9200config['es_host'] = ['ip:port'] 運(yùn)行代碼 # 上傳股票數(shù)據(jù)python cmd.py dump# 上傳上證指數(shù)數(shù)據(jù)python cmd.py dump_indexPython資源分享qun 784758214 ,內(nèi)有安裝包,PDF,,學(xué)習(xí)視頻,,這里是Python學(xué)習(xí)者的聚集地,零基礎(chǔ),,進(jìn)階,,都?xì)g迎 可視化 配置kibana是需要一定的時(shí)間的,好在kibana現(xiàn)在是大多數(shù)配置都支持導(dǎo)入導(dǎo)出,,所以大家可以通過我倉庫的export.ndjson文件直接導(dǎo)入 效果展示 由于現(xiàn)在接口受限,,獲取的股票因子有限,所以等我的積分更多了,,我會(huì)加入更多的dashboard, 以及visualization. |
|