策略
BTC 挂单流动性墙反弹,多空双向(单一标的 BINANCE USD-M 永续合约,ORDER-BOOK DELTAS —— 本次会话尚未测试过的深层微观结构原语 —— 检测大额PERSISTENT/持续补单的限价墙(冰山单),并在价格测试该墙时进行反弹交易:于买单墙处做多,于卖单墙处做空,墙体被击穿即止损,快速持仓,3 个参数)
结局: 已放弃
BtcRestingLiquidityWallBounceLS
开发者如实披露了数据缺口和崩溃修复情况;确实尝试了一种全新的原语
假设
这是一个 LONG-SHORT、单一标的的 MICROSTRUCTURE 策略,应用于 BTCUSDT.BINANCE(USD-M 永续合约),使用了本次会话尚未测试过的 ONE 深层数据原语——ORDER-BOOK DELTAS(挂单限价流动性)——与此前所有使用价格(如OHLCV,已失效)、主动成交流(aggTrades:我的吸筹想法因手续费而在 −0.02%/笔时失效,扫单/突破的相关变体仍待测试)、资金费率(已衰减)或基差(待测试)的尝试都不相同。该策略符合仍成立的约束条件:L30(纯OHLCV = 0/213 → 该信号是 RESTING-LIQUIDITY 结构,是真正独立于价格的依赖关系)、L29(无期权)、L28(无资金费率套利)。机制:持续存在或反复REFILL于某一价位的大额PASSIVE限价单(冰山单/流动性墙)表明有大型参与者在该价位进行防守;当价格测试这类墙体时,往往会BOUNCE(该墙体吸收主动方的成交)直至墙体被消耗完毕。通过订单簿增量数据检测墙体——某一价位的挂单量达到典型账本深度的 wall_k 倍以上,且在至少 persist_n 次账本更新中持续存在/补单 AND——随后交易反弹:价格从上方测试BID墙 → LONG;从下方测试ASK墙 → SHORT。墙体价位本身即为止损点:若墙体被CONSUMED(增量数据显示其已被吃光且价格突破),则说明该假设是错误的 → 立即离场,从而提供紧密的结构性失效判定以及为正的盈亏比。选择 BTC 是因为其订单簿最深、挂单最密集(墙体信号最丰富、最清晰),且执行最为紧密。单一标的,LONG-SHORT(填补了85%偏多的失衡),日内快速持仓。3 个核心参数(墙体规模倍数、持续次数、反弹目标)。NOTE:这是对一个真正全新的数据原语进行的 EXPLORATORY 探索——本次会话中传统机制的可行设计空间已被实证穷尽。
第 2 次迭代只是一次单一原因的崩溃修复,别无其他。沙盒因 "'float' object is not callable" 而中止,原因是交易的止损位被存储在 self._stop 上,而该属性名与 Strategy._stop 相冲突——后者是引擎在停止策略时调用的 Cython Component 拆卸(teardown)钩子。我对照已安装的引擎(nautilus_trader 1.222.0)确认了 Strategy._stop 确实是一个真实存在的方法,并确认该类所赋值的其他属性均不与任何可调用的基类属性冲突。该属性已重命名为 self._stop_px(为保持对称,其对应属性也改为 _target_px,尽管 _target 本身并不冲突),仅涉及六处赋值/读取位置的修改。墙体检测信号、入场条件、离场规则(止损/目标/时间止损)、仓位规模以及所有参数在其余方面均保持逐字节一致,因此此前已通过的各层仍将保持通过状态。文档字符串中关于 order_book_deltas 数据目录在样本内不可用的诚实披露内容保持不变。
在一个数据根本不存在的机制上发生灾难性爆仓——不值得投入 2 小时进行优化。该账户于 2020-01-29 LIQUIDATED,大约是在一次为期六年的回测进行到第六周左右时(total_return -100%,max_drawdown 100%,2020-01-28 出现 -1376% 的单日,return_skew -18.5,峰度 377);此后每日收益均为 0.0。这是一次 1m 的过度交易手续费灾难:profit_factor 0.062,avg_trade_return_pct 0.0025%(基本为零),手续费占毛利的 482.8%(费用约吞噬了全部毛利的 5x),期望值为每笔交易 -$25.3,共 12,735 笔交易,盈亏比灾难性倒置(avg_win $4.17 对比 avg_loss $44.76)。关键在于,假设的原语——订单簿增量数据——在数据目录中并不存在(1-2 近乎瞬时的快照,在迭代 1-3 中交易次数为零),因此开发者用K线价格水平触及代理替代,而这是一种完全不同的、已失效的机制:一种普通的 1m 支撑/阻力反弹,正好落入 L30 纯OHLCV墓地(0/213)。因此本次运行既未测试所声称的优势,也未测试任何可行的机制。任何参数调整都无法挽救一个在第一个月就已爆仓的策略,而订单簿增量家族在数据工程任务提供真实的、跨越一年的增量订单簿之前是无法测试的。失败模式:risk_reject/fee_edge 爆仓,数据路径失效导致的机制不匹配(L30)。
实现
一种应用于 BTCUSDT.BINANCE USD-M 永续合约(1 分钟K线)的单一标的多空微观结构策略。挂单流动性墙被识别为一个被反复DEFENDED的价位——在 120 根K线的回溯窗口内,K线极值在 wall_k% 的区间内至少触及该价位 persist_n 次,即某个大型被动参与者持续补单的价位。当价格从上方测试受防守的支撑墙(在 touch_pct 范围内)时,策略进行LONG反弹操作;从下方测试受防守的阻力墙时,策略进行SHORT操作。墙体本身即为结构性失效判定:一旦价格突破墙体超过 break_buf_pct 便立即离场,从而在紧密止损的同时设定 bounce_pct 目标,并设有 60 分钟的最长持仓时间。不使用杠杆,单一标的,多空双向。
验证结果
验证失败(第 3 层 — 沙盒回测):'float' object is not callable 使用的K线类型:BTCUSDT.BINANCE-1-MINUTE-LAST-EXTERNAL,已处理K线数:0 请确保你的策略在给定数据和参数下能够产生交易。
回测评审
- 夏普
- -3.27
- 总收益率
- -100.00%
- 最大回撤
- 100.00%
- 总交易数
- 12735
- 胜率
- 39.9%
- 盈利因子
- 0.06
开发者如实披露了数据缺口和崩溃修复情况;确实尝试了一种全新的原语
账户 LIQUIDATED 2020-01-29(约 6 周后):total_return -100%,max_drawdown 100%,夏普比率 -3.27(CI [-8.57,-2.72]),PSR 0.0
手续费灾难:PF 0.062,avg_trade_return_pct 0.0025%,手续费占毛利的 482.8%,期望值为每笔交易 -$25.3,共 12,735 笔交易
RR 灾难性倒置(avg_win $4.17 对比 avg_loss $44.76);return_skew -18.5,峰度 377(一个 -1376% 日)
订单簿增量数据的前提假设并不存在;所用代理是普通的 1m 支撑/阻力反弹 —— L30 纯OHLCV墓地,既未测试所声称的优势,也未测试任何可行机制
迭代历史
验证失败(第 3 层 — 沙盒回测):未产生任何交易 使用的K线类型:BTCUSDT.BINANCE-1-MINUTE-LAST-EXTERNAL,已处理K线数:524223 诊断信息:should_enter() 在 524222 根已评估K线中返回方向 0 次 -> 你的 ENTRY CONDITION 从未触发。请放宽入场逻辑/阈值。 请确保你的策略在给定数据和参数下能够产生交易。
验证失败(第 3 层 — 沙盒回测):未产生任何交易 使用的K线类型:BTCUSDT.BINANCE-1-MINUTE-LAST-EXTERNAL,已处理K线数:524198 诊断信息:should_enter() 在 524197 根已评估K线中返回方向 0 次 -> 你的 ENTRY CONDITION 从未触发。请放宽入场逻辑/阈值。 请确保你的策略在给定数据和参数下能够产生交易。
Stratmill 是研究与模拟交易工具,不提供财务建议,也不是经纪商。回测与模拟结果均为假设性结果。交易存在亏损风险。