在 GitHub 上查看

配对K线方向策略图

两个品种,一根K线。本图示读取交易品种与第二个参考品种上同一根五分钟K线的方向,只在两者相悖时买入:参考品种的K线收涨,而交易品种的K线收跌。只要价格收于前一根K线最高价之上,持仓就立即了结。

策略概览

  • 两个K线模块为图示提供数据。交易用的那个运行在策略自身的品种上;参考用的那个由品种变量 (Security) 指向一个指定品种,因此配对是一项设置,而不是接线上的决定。
  • 两个序列都设为仅使用已完成的K线,因此未完成的K线永远无法影响决策。
  • 同步 (Sync) 为每个品种保留一条线路,并在五分钟节拍上让两根K线同时放行。两路数据独立到达,只有经过这次等待,两根K线才属于同一根K线——而这正是使两者的比较有意义的关键。
  • 转换器从每根放行的K线中取出开盘价和收盘价,把每个品种简化成两个数字,它们说明这根K线走向何方。
  • 两个比较模块读取这些数字:参考收盘价高于参考开盘价,意味着参考K线收涨;交易收盘价低于交易开盘价,意味着交易K线收跌。
  • 前值 (Previous value) 把交易K线保留在前一步,再由转换器从中读出最高价。该模块保存的是K线本身,字段随后才被读取,正是这个顺序保证每根K线上都能得到数值。
  • 持仓由一个在K线触发上输出的变量对齐到该K线,然后与零做两次比较:小于或等于零允许入场,大于零允许离场。
  • 两个逻辑与门驱动两个仓位修改 (Position modify) 模块——一个以开仓条件 (Open position) 开仓,另一个以平仓条件 (Close position) 平仓——图表面板显示交易品种的K线、离场价位、委托与成交。

入场与出场规则

  • 做多入场: 在一根放行的K线上,参考品种收盘价高于自身开盘价,交易品种收盘价低于自身开盘价,且持仓小于或等于零。与门触发,仓位修改 (Position modify) 以开仓条件 (Open position) 按市价买入设定的下单数量,因此在持仓已经开立时,再次出现同样形态的K线不会追加任何委托。
  • 做空入场: 本图示没有做空方向。它只做多:交易品种上的下跌K线被视为可以买入的折价,而绝不作为卖出的理由。
  • 离场: 当持仓大于零时,若某根放行的K线收盘价高于前一根K线的最高价,离场与门即触发,第二个仓位修改 (Position modify) 以平仓条件 (Close position) 按市价平仓。这里没有止损也没有止盈:前一根K线的最高价就是全部的离场规则;而且由于该模块平掉的是已有持仓,而不是卖出固定数量,离场不会把持仓翻成空头。

参数

参数 默认值 说明
Reference Instrument TONUSDT@BNBFT 其K线方向用于确认入场的品种;它必须与交易品种一起可从连接中获取。
Reference Candles 00:05:00 参考K线的时间框架。
Traded Candles 00:05:00 交易K线的时间框架。
Sync Interval 00:05:00 同步 (Sync) 放行两个品种所依据的节拍;应使其等于K线的时间框架,否则放行的这一对K线就不是比较所假定的同一根K线。
Order Volume 1 下单数量,以手为单位。

图表详情

  • 两个仓位修改 (Position modify) 模块都设为不要求在线连接,因此同一张图示在历史数据和实盘行情上表现一致。
  • 入场刻意带上开仓条件 (Open position)。没有它,该模块会对经由它触发的每一次持仓变化做出动作,单个信号就会变成一连串委托。
  • 图示中的每个常量——零和下单数量——都由放行的K线触发。变量按其触发输出,而不是按自身数值输出,因此未被触发的常量会让它旁边的比较在整个运行过程中保持沉默。
  • 每条同步 (Sync) 线路的两端都已连接。送入模块却从未取出的数值会让它一直等待一条永远不会闭合的线路,策略将根本无法启动。
  • 离场价位在图表上单独画成一条线,因此收于其上的那根K线,可以直接在面板上与随后的成交并排读出。

使用方法

将 .json 文件导入 Designer,在回测器中用历史数据运行,然后根据自己的交易品种调整参数或方块,确认无误后再用于实盘。