描述
突破交易策略之所以有效,是因为时钟的固定片段将流动性集中在一个特定的范围内。而它们失效的原因却很平淡:实现中会将当前K线包含在范围内,这使得`range_high >= last_price`根据定义总是成立,因此向上突破永远不会触发。该策略实际上只会默默地做空。 此软件包的设计初衷是将形成柱状图排除在范围之外,并根据 UTC 时间计算窗口,包括 22:00 至 02:00 等环绕窗口。突破容差是一个单独的输入,因此您可以要求明确的收盘价,而不是轻微触及。 何时使用此功能 • 代理需要一个基于区间形成时间的突破规则。• 您正在比较不同交易品种或交易场所的会话条件行为。• 您需要一个关于“当前K线污染区间”漏洞及其修复的示例,因为它是此类漏洞中最常见的隐性故障之一。 不适用于没有明确交易时段结构的 24 小时市场——价格波动范围只会反映近期的波动情况。 本包裹特意不包含以下内容 这是一个框架版本,并非经过优化的生产版本。具体来说: • 无需设置仓位大小。仓位大小由您自行决定。• 无需设置止损。突破失败需要设置止损;此规则在此不适用。• 无需进行时区转换。交易窗口以 UTC 时间为准。如果您在本地交易时段进行交易,则必须在调用前进行转换。• 无需调整交易窗口或容差值。 • 代码中没有默认阈值。scripts/session_range_breakout.py 会抛出 PARAM_INCOMPLETE 异常,而不是回退到一个数值。这种静默的默认值会让你误以为自己正在运行一个经过校准的系统,而实际上你运行的是别人的参数。 每一个决策边界都是一个输入。这就是整个合同。 决策合同 • 操作:条件 • 做多:最后收盘价等于或高于当日最高价的倍数(1 + 容差) • 平仓:最后收盘价等于或低于当日最低价的倍数(1 - 容差) • 横盘:在区间内,或连续下跌少于两根K线 响应包含 session_high、session_low 和 in_session_bars 信息,以便调用者可以验证范围是否由其预期的小时数构成。这种验证比信号本身更重要。 输出方案 { "action": "long", "price": 63240.0, "session_high": 62970.5, "session_low": 62210.0, "in_session_bars": 13, "reason": "closed 0.43% above the session high 62970.50" } 操作是唯一必须基于其进行分支的字段。原因字段仅供日志记录和代理向用户反馈,请勿解析。 运行它 python3 scripts/session_range_breakout.py \ --params references/params-example.json \ --symbol BTC/USDT \ --interval 30m references/params-example.json 文件包含一些整数,显然是为了便于说明。它们的存在是为了确保命令能够一次性成功运行,并非因为它们本身是正确的。 进料位置状态: python3 scripts/session_range_breakout.py --params my.json --state '{"avg_entry": 61250.5, "layers": 2}' 校准阈值 1. session_start / session_end - UTC 时间 HH:MM。窗口必须包含足够多的柱状图,才能构成有意义的范围;例如,30 分钟的间隔,两小时的窗口只有四根柱状图,这太窄了。请先数柱状图的数量,然后再选择窗口。 2. 突破阈值(breakout_threshold)——决策要求。如果设为零,则每次触及边缘都会被断仓;如果设为过大,则行情已结束。应将其锚定在典型的K线波动范围,而不是整数百分比。 同时校准窗口和容差——最佳容差取决于窗口范围的窄窄程度。保留最近约30%的样本,并在确认该时间对仍然有效后再进行验证。 已知极限 • 每次调用时,系统都会根据您传入的K线数据重建价格区间,并且仅使用最近连续的盘中K线数据。如果您的--limit数据未跨越该盘口的起始点,则价格区间不完整,且价格水平错误。请确保您提供的K线数据量超过一个盘口。• 系统支持循环窗口(起始点晚于结束点),但跨越数据获取边界的窗口仍会显示不完整的价格区间。• 无波动率或成交量限制:低流动性盘口会产生较窄的价格区间和近乎连续的突破。• 形成K线的K线不包含在价格区间内,但会用作触发价格,因此盘中信号可能在K线收盘前出现。 免责声明 这是一个用于研究和教育的决策框架。它并非投资建议、盈利声明或回测结果。加密货币衍生品可能损失超过本金。您需对您选择的参数以及您的执行人下的每一笔订单负责。