描述
网格交易本质上是算术运算,而大多数网格代码在以下三个方面存在错误:它比较的是价格而不是阶梯索引,因此浮点噪声会重新触发填充;它没有超出区间的概念,因此会不断在低于底部的价格买入;而且它没有退出机制,因此会永远积累库存。 该软件包首先将价格简化为整数阶梯指数,并在该指数空间内进行所有决策。这从结构上消除了重复触发问题。此外,当价格收盘价低于底部时,它还会返回一个明确的止损动作——此时网格不再“有效”,而是失效了。当有人询问机器人为何持续买入时,这种差异至关重要。 何时使用此功能 • 代理人执行区间约束累积计划,需要进行层级决策。• 您必须检测到网格结构已失效,而不仅仅是无利可图。• 您需要一个关于指数空间与价格空间网格逻辑的示例。 在下跌趋势中,这种做法会起到积极作用。该指标是整体风险控制的一部分,但该指标本身并不决定你的设置位置。 本包裹特意不包含以下内容 这是一个框架版本,并非经过优化的生产版本。具体来说: • 不提供每级报价金额。故意省略了 `amount_per_grid` 参数,因此该软件包无法告知您构建完整阶梯所需的资金——请在开始之前自行根据网格计算。• 不支持自动调整范围。价格区间为输入值。如果您根据近期价格设置价格区间,则该逻辑由您自行实现。• 不支持调整价格区间或阶梯数量。 • 代码中没有默认阈值。scripts/grid_ladder.py 会抛出 PARAM_INCOMPLETE 异常,而不是回退到一个数值。这种静默的默认值会让你误以为自己正在运行一个经过校准的系统,而实际上你运行的是别人的参数。 每一个决策边界都是一个输入。这就是整个合同。 决策合同 • 操作:条件 • 种子:尚未记录任何阶梯 - 记录级别并打开第一个片段 • 买入:当前阶梯低于上一个已记录的阶梯 • 退出:价格至少高于您的平均入场价一级 • 停止:价格低于底部 - 阶梯失效 • 等待:以上均不适用 响应包含级别、步长和网格,以便调用者可以将其自己的账簿与阶梯索引进行核对,而不是与浮动价格进行核对。 输出方案 { "action": "buy", "price": 58840.0, "level": 2, "step": 583.33, "grids": 24, "avg_entry": 60020.0, "reason": "rung 2 is below the last filled rung 3" } 操作是唯一必须基于其进行分支的字段。原因字段仅供日志记录和代理向用户反馈,请勿解析。 运行它 python3 scripts/grid_ladder.py \ --params references/params-example.json \ --symbol BTC/USDT \ --interval 15m references/params-example.json 文件包含一些整数,显然是为了便于说明。它们的存在是为了确保命令能够一次性成功运行,并非因为它们本身是正确的。 进料位置状态: python3 scripts/grid_ladder.py --params my.json --state '{"avg_entry": 61250.5, "layers": 2}' 校准阈值 1. 上下轨——整个风险模型都基于这个区间。设置上下轨时,应基于你从结构上认可的范围,而不是基于你每天重新计算的移动平均线:跟随价格走势的上下轨能够确保底部得到测试。 2. 网格 - 阶梯数。阶梯越多,平均值越平滑,步长越小,这在区间震荡中是好事,但在趋势中却是致命的,因为下跌时阶梯填充得更快。总资金为网格数量乘以每网格金额;请在调整夹点大小之后再调整阶梯数,切勿在此之前调整。 3. 合理性检查:网格(上限 - 下限)应大于您所交易品种的典型柱线范围。如果单个柱线跨越多个网格,则说明网格过细。 至少要进行一次完整的震荡行情到趋势行情的回测。在平静样本中看起来盈利的网格通常只是反映了未实现的库存。 已知极限 • 该阶梯策略是单向的:它向下买入,并在平均值处退出,不会向上突破区间卖出。对称网格行为尚未实现。• avg_entry 值由调用者提供。过时的平均值会使退出测试失去意义。• 阶梯索引使用浮点数步长的向下取整,因此价格恰好位于阶梯边界上可能会导致两次调用之间索引翻转。将同一阶梯上的两次买入视为执行器去重问题。• 没有资金、借款或费用核算;在长期运行的网格中,这些成本占主导地位。 免责声明 这是一个用于研究和教育的决策框架。它并非投资建议、盈利声明或回测结果。加密货币衍生品可能损失超过本金。您需对您选择的参数以及您的执行人下的每一笔订单负责。