from tqsdk import TqApi, TqAuth, TqBacktest, TargetPosTask
from datetime import datetime
# 设置回测时间
start_date = datetime(2025, 4, 1)
end_date = datetime(2025, 4, 13)
# 初始化天勤API
api = TqApi(backtest=TqBacktest(start_dt=start_date, end_dt=end_date), auth=TqAuth("W", "lxh"))
# 获取合约和K线数据
symbol = "SHFE.au2206"
klines = api.get_kline_serial(symbol, 60) # 60秒周期
# 初始化持仓和均线
position = api.get_position(symbol)
target_pos = TargetPosTask(api, symbol)
# 计算均线
klines["ma5"] = klines.close.rolling(5).mean()
klines["ma20"] = klines.close.rolling(20).mean()
# 主循环
while True:
api.wait_update()
# 检查是否有新K线生成
if api.is_changing(klines.iloc[-1], "datetime"):
# 获取当前持仓
current_pos = position.pos
# 检查均线交叉条件
if klines["ma5"].iloc[-2] < klines["ma20"].iloc[-2] and klines["ma5"].iloc[-1] > klines["ma20"].iloc[-1]:
# 5日均线上穿20日均线
if current_pos == 0:
target_pos.set_target_volume(1) # 买开仓
elif current_pos > 0:
target_pos.set_target_volume(-1) # 反手卖开仓
elif klines["ma5"].iloc[-2] > klines["ma20"].iloc[-2] and klines["ma5"].iloc[-1] < klines["ma20"].iloc[-1]:
# 5日均线下穿20日均线
if current_pos == 0:
target_pos.set_target_volume(-1) # 卖开仓
elif current_pos > 0:
target_pos.set_target_volume(1) # 反手买开仓
代码说明
- 回测设置:
- 使用
TqBacktest设置回测时间为2025年4月1日至2025年4月13日。 - 合约选择
沪金2206(代码为SHFE.au2206)。
- 使用
- 均线计算:
- 计算 5 日均线(
ma5)和 20 日均线(ma20)。
- 计算 5 日均线(
- 交易逻辑:
- 当持仓为 0 时:
- 5 日均线上穿 20 日均线时,买开仓。
- 5 日均线下穿 20 日均线时,卖开仓。
- 当持仓大于 0 时:
- 5 日均线上穿 20 日均线时,反手卖开仓。
- 5 日均线下穿 20 日均线时,反手买开仓。
- 当持仓为 0 时:
- 运行与监控:
- 使用
api.wait_update()等待数据更新。 - 通过
api.is_changing()检查是否有新 K 线生成。 - C:\Users\Administrator\AppData\Local\Programs\Python\Python38\python.exe C:/Users/Administrator/tq.py
在使用天勤量化之前,默认您已经知晓并同意以下免责条款,如果不同意请立即停止使用:https://www.shinnytech.com/blog/disclaimer/
INFO – TqSdk trial 版剩余 13 天到期,如需续费或升级请访问 https://account.shinnytech.com/ 或联系相关工作人员。
INFO – 回测结束
INFO – 模拟交易成交记录, 账户: TQSIM
INFO – 模拟交易账户资金, 账户: TQSIM
INFO – 日期: 2025-04-01, 账户权益: 10000000.00, 可用资金: 10000000.00, 浮动盈亏: 0.00, 持仓盈亏: 0.00, 平仓盈亏: 0.00, 市值: 0.00, 保证金: 0.00, 手续费: 0.00, 风险度: 0.00%
INFO – 胜率: 0.00%, 盈亏额比例: inf, 收益率: 0.00%, 年化收益率: 0.00%, 最大回撤: 0.00%, 年化夏普率: inf,年化索提诺比率: -15.8114
- 使用
电话好多好多退换货的 已回答的问题 2025年4月26日
Exception:Exception: 您的账户不支持下载历史数据功能,需要购买后才能使用。升级网址:https://www.shinnytech.com/tqsdk-buy/您的账户不支持下载历史数据功能,需要购买后才能使用。升级网址:https://www.shinnytech.com/tqsdk-buy/ 回测收费
chaos 编辑评论 2025年4月30日
下载数据功能需要用天勤专业版哈,具体的收费功能和收费标准可以看看官网https://www.shinnytech.com/store/tqsdk