151 浏览
0
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)  # 反手买开仓

代码说明

  1. 回测设置
    • 使用 TqBacktest 设置回测时间为 2025年4月1日 至 2025年4月13日
    • 合约选择 沪金2206(代码为 SHFE.au2206)。
  2. 均线计算
    • 计算 5 日均线(ma5)和 20 日均线(ma20)。
  3. 交易逻辑
    • 当持仓为 0 时:
      • 5 日均线上穿 20 日均线时,买开仓。
      • 5 日均线下穿 20 日均线时,卖开仓。
    • 当持仓大于 0 时:
      • 5 日均线上穿 20 日均线时,反手卖开仓。
      • 5 日均线下穿 20 日均线时,反手买开仓。
  4. 运行与监控
    • 使用 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
chaos 已回答的问题 2025年4月14日
0

ai生成的代码仅供参考,需要一些python基础,然后可以先看看文档的快速入门https://doc.shinnytech.com/tqsdk/latest/quickstart.html

chaos 已回答的问题 2025年4月14日