import datetime,time import numpy as np import talib as ta from tqsdk import TqApi, TqBacktest,TqAccount,TqSim api = TqApi(backtest=TqBacktest(start_dt=datetime.date(2019, 3, 1), end_dt=datetime.date(2020, 5, 27))) _kline = api.get_kline_serial('CZCE.AP010',60*60*24) while True: api.wait_update() if api.is_changing(_kline.iloc[-1]): _len = len(_kline['datetime'][_kline['datetime'] > 0]) _dt = _kline['datetime'].iloc[-1] _dt = datetime.datetime.fromtimestamp(_dt/1e9) if _len < 77: print('数据不足[%s]:%s,id:%s'%(_dt,_len,_kline['id'].iloc[-1])) continue _close = np.array(_kline['close']) rsi7 = ta.RSI(_close, timeperiod=7)
(插入代码的时候,格式被修改了,运行之前需要手工微调)
是可以获取到5月27日的。
但是AP010,不是说[每年]的10月份交割的合约吗?
2018年上市的10月份合约,代码不也是AP010吗?
那个合约的数据如何获取呢?
2018年上市的10月份合约,代码应该是AP910.
后两位为交割月,倒数第3位为年,注意只用了一位来表示。
AP010,倒数第3位为0,最近年份应为2020,因此是2020年交割的,2019年10月上市。
2018年上市,应该2019年交割,所以取最后一位9。