如何使用 Origami Tech 构建双层合约加密货币交易机器人

简介
在本指南中,我们将在 Origami Tech 中从零开始构建一个能感知仓位的合约机器人。该策略使用 1 分钟 RSI 数据开多或开空,在价格变动达到设定幅度后对现有仓位进行补仓,并在达到指定盈利目标时全部平仓。
策略逻辑分为两个网格层:
- 开仓与补仓层
- Reduce Only 平仓层
这种拆分让这套交易机器人策略的各个部分更易于配置、测试和管理。
通过本指南,你将学会如何:
- 创建工作区并连接交易所账户
- 在 One Way 仓位模式下创建合约加密货币交易机器人
- 配置买入和卖出输出
- 使用 1 分钟 K线的 RSI 信号
- 让机器人根据当前仓位做出响应
- 围绕盈亏平衡价添加补仓逻辑
- 为平仓单独创建 Reduce Only 层
- 检查模拟结果并运行机器人
开始之前请记住,加密货币交易机器人自动化的是执行,而不是结果。RSI 阈值、补仓规则和盈利目标都不能保证盈利。请仔细测试逻辑,并使用你能够承受风险的金额。
Origami Tech 中的网格层如何运作
在 Origami Tech 中,网格是一层策略逻辑。它不一定代表在某个价格区间内分布大量固定订单的传统网格交易策略。
每一层都可以执行单独的任务。例如,一层可以贴近市场报价,另一层可以在更宽的区间内挂单,第三层可以管理止盈或风险控制。各层还可以独立启用和禁用。
本指南中的机器人使用两层,因为入场和平仓的要求不同。第一层可以增加敞口,第二层只能减少敞口。
在构建合约网格机器人时,这种结构很有用,因为它避免了将所有条件、价格、数量和仓位检查都塞进一个庞大的表达式。
本指南使用的交易机器人策略
本示例基于 Extended 的合约市场创建,使用 One Way 仓位模式和 PUMP 加密货币交易对。
机器人遵循以下规则:
- 基于 1 分钟 K线计算 RSI。
- 当 RSI 小于或等于 30 时准备多头入场。
- 当 RSI 大于或等于 70 时准备空头入场。
- 下一笔买单和一笔卖单。
- 在本示例中,每笔初始订单的价值约为 $20。
- 如果已有仓位,当价格偏离盈亏平衡价 1% 且满足相应的 RSI 条件时,机器人可以进行补仓。
- 第二层按可配置的盈利目标全部平仓。
- 平仓层使用 Reduce Only,确保平仓订单不会开出反方向的敞口。
这些数值仅用于演示流程,并非适用于所有市场的推荐设置。
第 1 步:创建工作区
注册 Origami Tech 后,创建一个工作区。
工作区用于集中管理某一加密货币交易设置所使用的账户、机器人、布局和权限。团队成员可被分配 Admin、Editor、Viewer 或 Analyst 角色。Admin 可以管理机器人并添加账户。
如果你已有工作区,请打开它并继续进行账户设置。

第 2 步:连接交易所账户
打开账户菜单并点击 Add Account。选择要使用的交易所,并完成连接流程。
具体流程因交易平台而异:
- 中心化交易所可能需要提供 API 凭证,并将 Origami Tech 的 IP 地址添加到白名单。
- 受支持的去中心化交易所通常使用钱包连接。
在创建机器人之前,请确认账户有足够的可用余额,并且所选市场已开通合约加密货币交易。
第 3 步:创建合约加密货币交易机器人
前往 Bots 页面并点击 Add Bot。
选择以下设置:
- 市场类型:Futures
- 账户:已连接的 Extended 账户
- 仓位模式:One Way
- 加密货币交易对:PUMP/USD
- 保证金模式:Cross
- 机器人名称:任意能清楚表明策略的名称
- 杠杆:本示例中为 10x
然后点击 Continue。

仓位模式十分关键。One Way 模式为该交易品种保留单一的净仓位。在支持 Hedge Mode 的交易平台上,该模式可同时持有多头和空头仓位。本指南中的逻辑是为 One Way 模式设计的,若未调整仓位检查,不应直接用于 Hedge Mode。
在此设置下,Extended 不支持多资产保证金或交叉抵押。每个市场都以其计价资产进行交易,因此在机器人启动前,账户必须持有足够的相应计价资产。
本示例使用的 10x 杠杆仅用于演示设置,不应视为推荐值。
第 4 步:使用预设或从零开始构建
Origami Tech 提供可导入并调整的交易策略预设。预设可以帮助你了解可用的输入、函数和输出,但不应视为收益承诺。
在本指南中,我们将从零开始创建策略。打开机器人编辑器,必要时移除现有网格层,然后添加一个新的网格层。
在构建自己的配置之前,你也可以查看 Futures | One Way | RSI Pivot Grid MM 预设。它使用 1 分钟 RSI 枢轴,随敞口变化调整价差和订单规模,并在盈亏平衡价附近以较小的止盈区间挂出平仓单。

第 5 步:配置必需的网格输出
每个网格层都需要四项输出:
- Execute Price(执行价格)
- Order Amounts(订单数量)
- Buy Order Count(买单数量)
- Sell Order Count(卖单数量)
首先分别为买入和卖出的价格与数量创建变量,然后根据订单方向路由输出。execute_price 输出在买单时使用 price_buy,在卖单时使用 price_sell。相应的数量通过 execute_volume 返回。
在本示例中,将买单数量和卖单数量都设为 1。

在此阶段,表达式可能仍会出现变量未定义的错误。在添加 K线、RSI、价格和数量变量之前,这属于正常现象。
第 6 步:添加 1 分钟 RSI 信号
创建一个 candles_ 变量,通过 candles_futures('m1') 引用 1 分钟周期的合约 K线。只定义一次 K线序列,可以让其余表达式更简短、更易于检查。
然后定义两个 RSI 阈值:
- 多头阈值:30
- 空头阈值:70
使用 RSI 计算确定每个阈值对应的价格。买入方向应响应多头阈值,卖出方向应响应空头阈值。

在买卖两侧之间复制表达式时要格外小心。如果卖出表达式引用了多头阈值,Grid Simulation 可能显示相同的买入和卖出价格。买入表达式必须使用多头阈值,卖出表达式必须使用空头阈值。
这正是每次重要修改后都应检查模拟结果的原因。
第 7 步:设置订单价值并计算数量
本示例将 quote_usd 定义为 20,因此每笔订单的价值约为 $20。
Origami Tech 发送的数量是代币或合约的数量,而不是固定的美元金额。将 amount_buy 计算为 quote_usd / execute_price,并对 amount_sell 应用相同的计算。得出的数量取决于执行价格。当买入和卖出价格不同时,即使两笔订单的价值大致相同,其数量也会不同。
定义数量变量后,刷新 Grid Simulation。你应该能看到一笔买单和一笔卖单,以及计算出的价格和数量。

这一层现在可以生成订单,但还不能感知仓位。如果不添加其他条件,它可能会无视当前敞口,持续下达相同的入场订单。
第 8 步:读取当前仓位
将当前仓位变量创建为 position('one_way', 'cross')。策略随后使用可用仓位数量来判断当前是无仓位、持有多头仓位还是持有空头仓位。
策略通过可用仓位数量区分三种状态:
- 等于零:无持仓
- 大于零:持有多头仓位
- 小于零:持有空头仓位
价格表达式会检查 position_available_quantity == 0 是否成立。条件为真时,机器人使用初始 RSI 入场逻辑;条件为假时,机器人切换到围绕仓位盈亏平衡价的补仓逻辑。
这项仓位检查让第一层从一个重复发出信号的生成器,变成了能感知仓位的加密货币网格交易机器人。
第 9 步:用订单簿数据约束初始入场
在市场快速波动时,由 RSI 推导出的价格可能不再合适。为避免以较差的价位提交初始订单,应将信号价格与当前订单簿数据结合使用。
对于多头方向,将基于 RSI 的入场价与当前最优买价比较,并使用更合适的买入价位。对于空头方向,则使用当前最优卖价应用相反的逻辑。
这并不能消除执行风险,只是让入场逻辑能够参考实时订单簿,而不是仅依赖指标价格。
第 10 步:围绕盈亏平衡价添加补仓
如果已有持仓,第一层应停止使用原始入场价,改为围绕仓位盈亏平衡价计算下一笔订单。
将补仓间距设为 1%:
- 对于多头仓位,下一个买入价位低于盈亏平衡价 1%。
- 对于空头仓位,下一个卖出价位高于盈亏平衡价 1%。
相应的 RSI 条件仍必须满足。因此,多头补仓单需要满足多头 RSI 条件,空头补仓单需要满足空头 RSI 条件。
这里会再次应用订单簿约束,使计算出的价格与当前买价或卖价保持兼容。

复制入场与补仓网格
下方代码块包含完整的入场与补仓网格。启用 Post Only,并保持 Reduce Only 为禁用状态。
execute_price = price_buy if side == 'buy' else price_sell
execute_volume = amount_buy if side == 'buy' else amount_sell
buy_orders_count = 1
sell_orders_count = 1
candles_ = candles_futures('m1')
price_buy = min(rsi_to_price(candles_, rsi_long_open), orderbook_futures().bid[0].price) if position_available_quantity == 0 else min(position_breakeven_price * (1 - gap), rsi_to_price(candles_, rsi_long_open), orderbook_futures().bid[0].price)
quote_usd = 20
amount_buy = quote_usd / execute_price
price_sell = max(rsi_to_price(candles_, rsi_short_open), orderbook_futures().ask[0].price) if position_available_quantity == 0 else max(position_breakeven_price * (1 + gap), rsi_to_price(candles_, rsi_short_open), orderbook_futures().ask[0].price)
amount_sell = quote_usd / execute_price
rsi_long_open = 30
rsi_short_open = 70
position_ = position('one_way', 'cross')
gap = 0.01
补仓会增加敞口,如果市场继续朝不利于仓位的方向变动,亏损可能扩大。仅靠补仓频率并不能构成完整的网格交易策略,还必须考虑仓位限制、可用余额、强平风险、手续费和市场状况。
第 11 步:添加 Reduce Only 平仓层
第一层现在负责初始入场和补仓,但不会平掉盈利仓位。添加第二个网格层用于平仓,并启用 Reduce Only。
平仓层应仅在存在仓位时下单:
- 如果仓位数量小于零,机器人可以下买单平掉空头仓位。
- 如果仓位数量大于零,机器人可以下卖单平掉多头仓位。
- 如果仓位数量为零,该层不应下单。
根据仓位盈亏平衡价和以小数表示的可配置盈利目标计算平仓价格。将 take_profit 设为 0.002,即 0.2%。
对于多头仓位,卖出价格的计算方式为盈亏平衡价 × (1 + take_profit)。对于空头仓位,买入价格的计算方式为盈亏平衡价 × (1 - take_profit)。配置数量,使订单能够平掉全部可用仓位。
在这里,Reduce Only 必不可少。如果没有它,超量或重复的平仓单可能会让账户从已平仓状态转为反方向的新仓位。

复制 Reduce Only 平仓网格
为该层同时启用 Post Only 和 Reduce Only。
execute_price = price_buy if side == 'buy' else price_sell
execute_volume = position_available_quantity
buy_orders_count = 1 if position_available_quantity < 0 else 0
sell_orders_count = 1 if position_available_quantity > 0 else 0
position_ = position('one_way', 'cross')
price_buy = position_breakeven_price * (1 - take_profit)
price_sell = position_breakeven_price * (1 + take_profit)
take_profit = 0.002
第 12 步:检查 Grid Simulation
保存机器人之前,先刷新 Grid Simulation。
检查以下内容:
- 第一层返回的订单不超过一笔买单和一笔卖单。
- 买入方向使用多头 RSI 阈值。
- 卖出方向使用空头 RSI 阈值。
- 订单价值已转换为预期的合约数量。
- 初始入场仅在无持仓时出现。
- 补仓价格根据盈亏平衡价计算。
- 多头和空头方向使用正确的买价或卖价数据。
- 平仓层仅在存在仓位时起作用。
- 平仓数量与全部仓位数量一致。
- 平仓层已启用 Reduce Only。
模拟结果反映的是该层在当前时刻会返回的内容。它有助于在机器人启动前发现未定义的变量、重复的条件、错误的方向和异常的价格,但无法预测交易机器人未来的收益。
第 13 步:保存并运行机器人
当两层都返回预期输出后,保存配置并点击 Run Bot。
打开交易终端并切换到机器人视图。活跃订单应显示在图表和订单表中,你可以在其中查看价格、数量和价值。

如果手动取消策略生成的订单,只要其条件仍然有效,机器人可能会重新下单。如果不希望订单被重新创建,请停止或调整相应的层。
启动后,请持续监控仓位、活跃订单、可用余额、手续费和机器人状态。自动化省去了重复的手动操作,但并不能免除监督的必要。
结语
这款合约加密货币交易机器人将完整的仓位周期拆分为两个网格层。
第一层读取 1 分钟 RSI 数据,准备多头和空头入场,并在已有仓位时转入补仓逻辑。第二层使用盈亏平衡价和可配置的盈利目标,以 Reduce Only 模式全部平仓。
由于开仓、补仓和平仓规则在逻辑上相互独立,这一流程比单个庞大的表达式更易于检查。Grid Simulation 则在机器人上线前,对各层将返回的订单做最后一次检查。
请将本示例作为起步结构,而不是成熟的推荐方案。根据你自己的测试和账户情况,调整市场、阈值、订单价值、补仓间距、盈利目标、杠杆和风险限制。



.jpeg)
