跳至正文
全部策略

策略

limin TqSdk Turtle:忠实还原 20/10 日突破与冻结 N 加仓策略,交易场所为 LTC Hyperliquid

结局: 已放弃

LiminLtcTickTurtle

结局总结

LiminLtcTickTurtle 尝试在 Hyperliquid LTC 上复现 limin 的 Apache-2.0 TqSdk Turtle 示例,按成交逐笔数据执行,并在每轮持仓期间固定 N 和单位规模。经过 3 次迭代,代码仍未通过验证。每个第 -2 层合成场景都在设置阶段因一项自行添加的检查而崩溃,该检查要求 parameters.leverage 必须等于 config.leverage。整个流程在验证循环中放弃运行,因此回测、优化、分析师审核和风险审核均未进行。

假设

按所提供的提交版本翻译 limin 的 Apache-2.0 TqSdk Turtle 演示,保留其实际规则,不替换为教科书版 Turtle 规则。将原先已到期的 SHFE.au2006 黄金合约替换为 LTCUSD.HYPERLIQUID,这是一种可双向交易的线性永续合约。默认值为 donchian_channel_open_position=20、donchian_channel_stop_profit=10、atr_day_length=20 和 max_risk_ratio=0.5。维护一个 100 槽位的日线缓冲区,包含正在形成的当前日线。执行依据变化的最新成交价,而非日线收盘价。初始目标仓位设为 0,last_price=NaN。初始时进行参数重算,此后仅在新日线开始时 WHILE FLAT 才重算参数。持仓期间,N 和单位规模保持冻结,但滚动的 10 个已完成交易日出场通道持续变化。重建正在形成的日线和执行顺序需要历史成交逐笔数据;仅凭日线 OHLCV 无法忠实复现此示例。若没有足够的逐笔历史数据,便无法进行忠实实验,也不能以仅使用收盘价的替代方案取而代之。

忠实复现的明确要求优先于避免再增加一个日线趋势策略的偏好。Hyperliquid 在 8.0% 的配置不足于其 20% 目标,且双向交易可缓解投资组合偏向仅做多的 82.8% 集中度。LTC 可避免再增加一个 BTC 或 ETH 实验;corpus_concentration 为空,因此无法核实其近期使用率。这保留了源代码特有的冻结 N 仓位规模和报价事件顺序,但仍属于投资组合中已有 EtcTurtleDonchianBreakoutLS 的广义 Turtle 策略系列。这是按要求复现,并非宣称机制新颖。不要采用业绩主张,也不要引入优化来挽救该复现。

verification_loop:验证失败(第 2 层——合成场景): 使用的参数:['leverage', 'kline_length', 'min_notional', 'atr_day_length', 'max_risk_ratio', 'pyramid_step_n', 'stop_distance_n', '_optimization_plan', 'unit_risk_fraction', 'contract_multiplier', 'donchian_channel_stop_profit', 'donchian_channel_open_position'] 检查 __init__ 是否通过 self.parameters.get() 设置了所有属性。 - steady_uptrend:设置错误:RuntimeError: parameters.leverage must equal config.leverage - steady_downtrend:设置错误:RuntimeError: parameters.leverage must equal config.leverage - flat_ranging:设置错误:RuntimeError: parameters.leverage must equal config.leverage - volatility_spike:设置错误:RuntimeError: parameters.leverage must equal config.leverage - zero_volume:设置错误:RuntimeError: parameters.leverage must equal config.leverage - price_gap:设置错误:RuntimeError: parameters.leverage must equal config.leverage

实现

忠实迁移 limin 在 LTCUSD.HYPERLIQUID 上的 TqSdk Turtle:由成交逐笔数据驱动的 20 日唐奇安突破入场(多/空);冻结 N 的单位仓位规模(1% 权益 / N,N = 简单-MA ATR(20),包含正在形成的日线);保证金率 <= 0.5 时允许按 0.5N 加仓;从上次调整价起按 2N 设置止损;在 10 个已完成交易日的通道出场。日线由成交逐笔数据重建。

第 3 次迭代修复了第 1.5 层(optimization_plan 将杠杆固定为 2.0):参数现包含 'leverage': 2.0(浮点型,类型匹配),与 config.leverage=2.0 一致;代码会读取该值,断言其等于 config.leverage,并将其用于目标保证金容量检查。计划中的其他所有固定值均以计划规定的精确类型提供。信号、入场、出场或仓位规模逻辑均未改变。日线仅用于报告;执行需要历史成交逐笔数据,缺少逐笔数据的日期会明确报错,不会回退到收盘价。

验证结果

验证失败(第 2 层——合成场景): 使用的参数:['leverage', 'kline_length', 'min_notional', 'atr_day_length', 'max_risk_ratio', 'pyramid_step_n', 'stop_distance_n', '_optimization_plan', 'unit_risk_fraction', 'contract_multiplier', 'donchian_channel_stop_profit', 'donchian_channel_open_position'] 检查 __init__ 是否通过 self.parameters.get() 设置了所有属性。 - steady_uptrend:设置错误:RuntimeError: parameters.leverage must equal config.leverage - steady_downtrend:设置错误:RuntimeError: parameters.leverage must equal config.leverage - flat_ranging:设置错误:RuntimeError: parameters.leverage must equal config.leverage - volatility_spike:设置错误:RuntimeError: parameters.leverage must equal config.leverage - zero_volume:设置错误:RuntimeError: parameters.leverage must equal config.leverage - price_gap:设置错误:RuntimeError: parameters.leverage must equal config.leverage

迭代历史

验证失败(第 1.5 层——假设/配置一致性)[class=hypothesis_mismatch]: - optimization_plan 将杠杆固定为 2.0

结局总结

不要添加将参数与配置值绑定的构造函数硬断言,因为验证测试框架可能会设置不同的值;应直接从 self.config.leverage 读取杠杆,使策略能在合成和沙盒环境中启动。

经过 3 次迭代后,该运行在第 2 层(合成场景)的验证循环中被放弃。六个场景均在设置阶段失败,报错为 'RuntimeError: parameters.leverage must equal config.leverage',因为策略自身的 __init__ 守卫在杠杆参数与测试框架配置不匹配时会引发错误。

将 limin 的 TqSdk Turtle 演示忠实迁移至 LTCUSD.HYPERLIQUID:基于逐笔数据,在 20 日唐奇安通道突破时入场,以 10 日通道出场;加仓仓位按 N(20 日 ATR)和单位规模计算,两者在持仓期间保持冻结,其中 max_risk_ratio=0.5,杠杆固定为 2.0。

没有业绩数据:回测报告为空,也没有优化报告,因此没有收益率、夏普比率或交易笔数数据。

放弃原因

verification_loop:验证失败(第 2 层——合成场景): 使用的参数:['leverage', 'kline_length', 'min_notional', 'atr_day_length', 'max_risk_ratio', 'pyramid_step_n', 'stop_distance_n', '_optimization_plan', 'unit_risk_fraction', 'contract_multiplier', 'donchian_channel_stop_profit', 'donchian_channel_open_position'] 检查 __init__ 是否通过 self.parameters.get() 设置了所有属性。 - steady_uptrend:设置错误:RuntimeError: parameters.leverage must equal config.leverage - steady_downtrend:设置错误:RuntimeError: parameters.leverage must equal config.leverage - flat_ranging:设置错误:RuntimeError: parameters.leverage must equal config.leverage - volatility_spike:设置错误:RuntimeError: parameters.leverage must equal config.leverage - zero_volume:设置错误:RuntimeError: parameters.leverage must equal config.leverage - price_gap:设置错误:RuntimeError: parameters.leverage must equal config.leverage

分析

Turtle

Stratmill 是研究与模拟交易工具,不提供财务建议,也不是经纪商。回测与模拟结果均为假设性结果。交易存在亏损风险。