实盘回测一体的期货策略开发:tqsdk获取历史数据并回测,附python代码
原创内容第969篇,专注AGI+,AI量化投资、个人成长与财富自由。
星球好多同学希望说说实盘,我们就从实盘开始吧。
我们选择tqsdk给大家讲解,tqsdk支持免费注册,使用模拟账户,历史和实时数据,方便我们回测、实盘一体化的策略开发。
需要注册一个账户即可,默认就有一个模拟账户。
然后统一访问的api接口:
api = TqApi(auth=TqAuth(username, password))
然后就可以访问数据:
01 数据篇
查询所有的主连合约,一共85个:
查询上交所所有有股票列表,一共2421支:
查询上交所所有基金列表,一共970支:
下面我们来获取时序数据——螺纹钢主连合约15分钟线(500个数据)# 定义主连合约代码(格式:KQ.m@{交易所}.{品种})
symbol = "KQ.m@SHFE.rb" # 螺纹钢主连示例
# 其他常见主连代码:
# KQ.m@DCE.m -> 豆粕主连
# KQ.m@CFFEX.IF -> 沪深300股指主连
# KQ.m@SHFE.au -> 黄金主连
# 请求分钟线数据(以15分钟线为例)
df = api.get_kline_serial(
symbol=symbol,
duration_seconds=60 * 15, # 周期:15分钟(可修改为60=1分钟)
data_length=500, # 获取K线数量
)
df['datetime'] = pd.to_datetime(df['datetime'], unit='ns') # 毫秒转datetime
df.set_index('datetime', inplace=True)
df
使用tqsdk,我们不需要去管理数据,可以按需要获取数据,这是非常方便的。
另外,tqsdk还是回测功能,真正做到策略实盘和回测一体。
02 回测篇
在30分钟线上的回测——收盘价大于均线时做多,小于均线时平仓:
from datetime import date
from tqsdk import TqApi, TqAuth, TqBacktest, TargetPosTask
'''
如果当前价格大于5分钟K线的MA15则开多仓
如果小于则平仓
回测从 2018-05-01 到 2018-10-01
'''
# 在创建 api 实例时传入 TqBacktest 就会进入回测模式
#api = TqApi(backtest=TqBacktest(start_dt=date(2018, 5, 1), end_dt=date(2018, 10, 1)), auth=TqAuth("快期账户", "账户密码"))
api = TqApi(backtest=TqBacktest(start_dt=date(2018, 5, 1), end_dt=date(2018, 10, 1)), auth=TqAuth(username, password))
api
# 获得 m1901 5分钟K线的引用
klines = api.get_kline_serial("DCE.m1901", 30* 60, data_length=15)
# 创建 m1901 的目标持仓 task,该 task 负责调整 m1901 的仓位到指定的目标仓位
target_pos = TargetPosTask(api, "DCE.m1901")
while True:
api.wait_update()
if api.is_changing(klines):
ma = sum(klines.close.iloc[-15:]) / 15
#print("最新价", klines.close.iloc[-1], "MA", ma)
if klines.close.iloc[-1] > ma:
#print("最新价大于MA: 目标多头5手")
# 设置目标持仓为多头5手
target_pos.set_target_volume(5)
elif klines.close.iloc[-1] < ma:
#print("最新价小于MA: 目标空仓")
# 设置目标持仓为空仓
target_pos.set_target_volume(0)
点击 “查看原文”,直接访问策略集合。
扩展 • 历史文章
EarnMore(赚得更多)基于RL的投资组合管理框架:一致的股票表示,可定制股票池管理。(附论文+代码)
年化收益200%+的策略集 | 实时板块资金热力图 「aitrader 5.0系统代码发布」
机器学习驱动的策略开发通过流程 | 普通人阶层跃迁的可能路径?
年化30.24%,最大回撤19%,综合动量多因子评分策略再升级(python代码+数据)
三秒钟创建一个年化28%,夏普比1.25的策略(python系统已开放源代码下载)
会员专属策略可以直接下载了,多个十年年化30+%策略集|polars重构因子引擎(代码+数据下载)
6年年化收益46%,最大回撤率为16%的策略(附python代码)