在 GitHub 上查看

资金目标平仓策略图

资金目标完全不看价格:只要持仓中的浮动金额达到设定数值,就把仓位平掉。本图把这条规则加在一套简单的双均线引擎之上。交叉决定何时进场;盈利目标和亏损上限决定何时收手,其中任意一个被触及的瞬间,仓位即被平掉,所有仍在挂着的委托也随之被全部撤销。

策略概览

  • 已收盘的五分钟K线送入一条快速和一条慢速指数移动平均线,交叉方块把这一对线变成一个事件:快线上穿慢线时为真,下穿慢线时为假。
  • 一个逻辑非让下穿也拥有属于自己的信号,于是两个方向各自成为一道独立的门。
  • 持仓方块与零比较,说明当前是空仓、多头还是空头,而每一道门都是一个交叉与一个持仓状态的逻辑与。
  • 两个入场都是固定手数的市价委托,并带有开仓条件,因此在已有持仓运行时到来的交叉无法继续加仓。
  • 策略盈亏方块(Strategy P&L)按自己的节奏输出运行中持仓的浮动盈亏,每小时若干次,而不是每根K线一次。
  • 两个比较把这个数值分别与盈利目标和亏损上限对照,而每个阈值都是由同一个盈亏值触发的变量,因此比较的两个操作数始终来自同一时刻。
  • 组合方块(Combination)把两个答案汇成一条出场线,它同时做两件事:持仓修改(Position modify)以市价平掉仓位,批量撤单(Mass order cancellation)清掉所有仍在挂着的委托。
  • 与已有持仓方向相反的交叉同样会把它平掉,因此本图不会一直守着一笔均线已经转向的交易。

入场与出场规则

  • 做多入场: 在一根已收盘的K线上,快线上穿慢线且当前为空仓:持仓修改以市价买入委托手数。
  • 做空入场: 在一根已收盘的K线上,快线下穿慢线且当前为空仓:持仓修改以市价卖出委托手数。
  • 离场: 有两条彼此独立的出场路径。只要持仓的浮动盈亏达到盈利目标或跌到亏损上限,资金出场就会触发:组合方块把信号传出去,仓位以市价平掉,剩余的委托全部被撤销。与已有持仓方向相反的交叉同样会把它平掉。无论哪一个先到,本图都会回到空仓并等待,而下一个碰上空仓的交叉将开出下一笔仓位,做多或做空。

参数

参数 默认值 说明
Candles 00:05:00 两条均线所基于的K线序列的时间周期。
Fast EMA Length 12 快速指数移动平均线的周期长度。
Slow EMA Length 26 慢速指数移动平均线的周期长度。
Volume 1 每次入场发出的委托数量,以手为单位。
Profit To Close 300 浮动盈亏达到该金额(以货币计)时,仓位作为盈利被平掉。
Loss To Close -600 浮动盈亏达到该金额(以货币计)时,仓位作为亏损被平掉;由于它直接与盈亏值比较,所以写成负数。

图表详情

  • 阈值比较的是浮动盈亏,也就是运行中持仓里的金额,因此它们对每一笔仓位依次起到资金止盈和资金止损的作用。把同样这两个比较接到已实现盈亏输出上,这一对阈值就变成一个单向开关:账户一旦达到该数值,本次运行就结束了。
  • 资金出场不受K线节奏的约束。它按盈亏的更新动作,因此目标可以在一根K线的中途被兑现,而不必等到下一次收盘。
  • 本图发出的每一笔委托都是市价委托,所以在打包的历史数据上,撤单动作找不到可撤的东西。之所以把它接上,是因为留下未成交委托的资金出场只算半个出场,而一旦图中加入挂单,它就开始起作用。
  • 两个平仓方块都带有平仓条件,因此既不需要方向也不需要手数:方块读取当前持仓,按正好这个数量发出反向委托。
  • 正是五分钟的节奏让这层资金逻辑显现出来。在长得多的K线上,这一对均线一个月只交叉寥寥数次,仓位很少,而阈值的大小是按五分钟序列所产生的波动幅度来设定的。

使用方法

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