标准T0网格策略

概述

本篇为V3.1版本软件使用,V2.1版本目前不支持。

为了降低T0策略的开发门槛,看海量化系统 V3.1 版本随源码附带了一个标准的 单一标的日内网格策略模板(策略源码文件:T0.py,配置文件T0.kh)。

本教程将详细解析该模板的代码结构与核心逻辑,帮助用户理解如何构建一个支持日内回转交易的网格策略,并在此基础上进行二次开发。

本策略算法教程对应的软件功能模块的教程在这里,建议先点击了解。


⚠️ 使用前必读:风险提示与专栏定位

在开始使用代码之前,请务必阅读以下说明:

1. 风险规避与标的设置

为了规避荐股风险,当前的 T0.py 策略模板 未设置任何默认股票池。该代码设计为针对 单个ETF标的 进行运行。

  • 操作指引:大家在回测前,需要手动在配置界面的“股票池”中填入你想要测试的标的代码。
  • 选股建议:强烈建议选择支持T0交易的品种进行测试(如跨境ETF、债券ETF等)。您可以参考同花顺的T0 ETF数据进行选取:
    > 点击查看同花顺T0 ETF列表

2. 专栏定位与后续计划

当前的 T0.py 策略是 “T0策略深度实战”专栏的第一篇

  • 当前目的:它的核心目的是为使用看海量化回测系统的用户做一个 基本演示,展示系统如何处理T0交易、如何在高精度模式下运行网格逻辑。
  • 未来展望:后续我们还会推出一系列深度文章和策略更新,涵盖更高级的T0功能,敬请期待。

一、 策略设计理念

该策略模板并非简单的功能演示,而是一个结构清晰的实战框架。它将复杂的T0交易解耦为三个核心组件:

  1. 底仓构建模块:策略启动初期,智能计算并建立底仓(默认50%),为日内T0交易提供“原材料”。
  2. 网格交易逻辑:基于价格波动触发交易信号。
    • 下行承接(Buy):当价格下跌触及下轨(如-0.5%)时,触发买入信号。
    • 上行释放(Sell):当价格上涨触及上轨(如+0.5%)时,触发卖出信号。
  3. 日内回转机制:利用底仓和当日买入的流动性,实现日内多次的“低吸高抛”循环。

二、 快速上手:运行你的第一个T0策略

为了让你尽快跑通策略,这里提供一份从零开始的操作指引:

第一步:加载配置文件

  1. 启动 看海量化回测系统 主界面。
  2. 点击顶部菜单栏的 “加载配置” 按钮。
  3. 在弹出的文件选择窗口中,找到并选择随源码附带的 T0.kh 配置文件。
    • 注:T0.kh 文件通常位于 strategies 文件夹或项目根目录下。

第二步:重置策略路径

由于源码下载到本地后,文件路径可能发生变化,需要手动重新指定策略文件:
1. 在主界面找到 “策略文件路径” 按钮。
2. 找到并选中 T0.py 策略文件。

第三步:设置回测标的

  1. 在主界面左侧找到 “股票池设置” 区域。
  2. 点击添加股票,输入你想要回测的 ETF代码

    再次强调:请务必参考前文的同花顺链接选择T0品种,否则系统会降级为T+1模式。

第四步:启动回测

  1. 确认起止时间、初始资金等其他参数符合预期。
  2. 点击主界面上方的 “开始运行” 按钮。
  3. 运行结果中可以查看个股详情,查看每笔买卖点的可视化情况,具体讲解详见:https://khsci.com/khQuant/t0/

三、 核心代码解析

1. 策略参数的随机化设计

为了展示策略的适应性,以及模拟不同风险偏好下的运行效果,本模板在初始化参数时引入了 随机性指标

这种设计最主要的原因是 避免形成直接的投资建议。作为教学用途的策略,我们不直接指定固定的参数(如具体的网格间距或单笔金额),而是通过随机化,鼓励大家根据自己实际设置的股票池特性(如波动率、价格区间)进行适应性的参数调整。

params 字典中,你可以看到以下设计:

import random

params = {
    # 初始建仓比例:在 40% 到 60% 之间随机生成
    'init_position': random.uniform(0.4, 0.6),      

    # 网格间距:在 0.5% 到 1.2% 之间随机生成
    'grid_gap': random.uniform(0.005, 0.012),       

    # 单笔交易金额:在 3万 到 5万 之间随机生成
    'trade_amount': random.randint(30000, 50000),   
}

重要提示:这种随机化设计意味着每次重新加载策略或启动回测时,参数都会发生变化,导致回测结果不一致。

  • 调试阶段:建议将 random 函数替换为固定的数值,以便进行控制变量法分析。
  • 参数寻优:可以利用这种随机性进行寻优,测试策略在不同参数组合下的最优解,这点专栏后续内容会讲到。

2. 信号触发逻辑

# 策略主循环函数
def khHandlebar(data):
    # ... (前置数据获取与状态检查)

    # --- 波动捕捉:触及下轨 ---
    if price <= buy_trigger:
        # 触发买入指令,注入流动性
        # generate_signal 函数负责生成符合系统规范的交易信号
        signals.extend(generate_signal(..., action='buy', ...))

        # 动态更新价格锚点,网格随价格移动
        g_state['anchor_price'] = price  

    # --- 获利了结:触及上轨 ---
    elif price >= sell_trigger:
        # 触发卖出指令
        # 在T0模式下,系统允许利用当日买入份额或底仓立即变现
        signals.extend(generate_signal(..., action='sell', ...))

        # 重置价格锚点
        g_state['anchor_price'] = price  

3. T0模式下的特殊处理

在编写T0策略时,需要特别注意以下几点:

  • 持仓可用性:虽然系统在底层处理了T0的持仓冻结逻辑,但在策略层,依然建议通过 get_position() 函数实时检查当前可用持仓,避免发出无效的卖出指令。
  • 价格精度:在T0模式下,系统会自动将报价精度提升至 0.001。在计算网格间距时,应充分利用这一高精度特性,捕捉微小的价差。

四、 总结

通过本教程,你应该对如何利用看海量化系统编写T0网格策略有了初步的了解。

从下一篇文章开始,我将开启“T0策略深度实战”系列专栏。

我们将跳出理论,深入实战的深水区:

  • 指标选股体系:如何量化筛选出最适合做网格的高波动率标的?
  • 多标的网格策略:如何构建多只ETF轮动的网格组合,分散单标的风险?
  • 单边行情应对:当网格被“击穿”时,如何通过风控逻辑进行止损或锁仓?
  • 网格交易变种:探索网格策略的多种形态,寻找最适合当前市场的版本(斩龙团策略试一下)。
  • 全方位数据分析:不仅研究策略,更要用数据说话,深入挖掘高频数据背后的规律。

如果你渴望突破传统策略的瓶颈,探索更精细化的交易领域,请务必关注后续的更新!

显示验证码
没有账号?注册  忘记密码?

风险提示

投资有风险,开户需谨慎。本系统仅为投资者提供量化交易相关的数据处理与分析工具,不构成任何投资建议。 请您在审慎思考后作出选择。特别声明:本系统对您与券商之间的交易、合作不承担任何法律责任。 市场有风险,投资需谨慎。

© 2024 看海量化交易系统 版权所有

官网:www.khsci.com/khQuant