def update_hist(codes=[]): this_day = easyhistory.Day(path="C:/hist") stock_codes_need_to_init = this_day.store.init_stock_codes actual_init_codes = list(set(stock_codes_need_to_init).intersection(set(codes))) if actual_init_codes: easyhistory.init('D', export='csv', path="C:/hist",stock_codes=actual_init_codes) else: pass if len(codes)>=1: for code in codes: easyhistory.update_single_code(dtype='D', stock_code=code, path="C:/hist") else: pass
def update_hist(codes=[]): this_day = easyhistory.Day(path="C:/hist") stock_codes_need_to_init = this_day.store.init_stock_codes actual_init_codes = list( set(stock_codes_need_to_init).intersection(set(codes))) if actual_init_codes: easyhistory.init('D', export='csv', path="C:/hist", stock_codes=actual_init_codes) else: pass if len(codes) >= 1: for code in codes: easyhistory.update_single_code(dtype='D', stock_code=code, path="C:/hist") else: pass
# -*- coding:utf-8 -*- from setuptools import setup import easyhistory long_desc = """ ### 初始化日线历史数据 ```python easyhistory.init('D', export='csv', path='history') ``` 注1: 下载后的原始数据在 `path/day/raw_data` 下, 复权后数据在 `path/day/data` 下 注2: 下载所有股票的历史数据需要很长时间,推荐直接从[百度盘](http://pan.baidu.com/s/1o7rwH0e)(数据到 20160318 )下载, ### 更新 ```python easyhistory.update('D', export='csv', path='history') ``` ### 指标系统 目前还在测试中,指标计算使用了 `talib` 和 `pandas`, 可以直接调用 `talib` 计算一百多种指标,包括 `MACD, EMA, MA` 等 * tablib 安装: https://github.com/mrjbq7/ta-lib * pandas: pip install pandas #### 使用
def test_day_init(self): easyhistory.init('D', export='csv', path='out')
import easyhistory easyhistory.init('D', export='csv', path="C:/hist", stock_codes=['sh000001']) #easyhistory.update(path="C:/hist",stock_codes=['000042','000060']) #easyhistory.update_single_code(dtype='D', stock_code='002789', path="C:/hist") his = easyhistory.History( dtype='D', path='C:/hist', codes=['000821', '300188', '600588', '002236', '600103']) test_code = '600103' # MA 计算, 直接调用的 talib 的对应函数 res = his[test_code].MAX(20) res = his[test_code].MIN(20) res = his[test_code].MA(5) res = his[test_code].MA(10) res = his[test_code].MA(20) res = his[test_code].MA(30) res = his[test_code].MA(60) res = his[test_code].MA(120) res = his[test_code].MA(250) res = his[test_code].CCI(timeperiod=14) res = his[test_code].MACD(fastperiod=12, slowperiod=26, signalperiod=9) res = his[test_code].BBANDS(timeperiod=10, nbdevup=2, nbdevdn=2) #(20,2,2) #boll res = his[test_code].STOCH(fastk_period=9, slowk_period=3, slowd_period=3) #KDJ res = his[test_code].MFI(timeperiod=14) #MFI res = his[test_code].ATR(timeperiod=14) #Average True Range res = his[test_code].NATR(timeperiod=14) #Normalized Average True Range res = his[test_code].MOM(12) #Momentum Indicators print(res) res.to_csv('%s.csv' % test_code)