K线连续同向利润锁定策略图
四根收盘方向一致的K线构成一段连续走势,本图就顺着这段走势的方向交易。开仓是简单的一半;有意思的一半是平仓,因为本图并不靠价格水平来做这个决定。它盯的是持仓上的浮动盈亏,一旦这个数字首次达到设定的金额,就平掉持仓、把利润落袋。一个标志位保证这条指令只发出一次,而不是在盈亏每次更新时都发。
策略概览
- 已完成的四小时K线只读取一次,然后反复使用:当前这根K线直接接入收盘价转换器和开盘价转换器,另有三个前值(Previous value)方块分别取回前一根、前两根和前三根K线,每个方块各自带一对收盘价与开盘价转换器。
- 八个比较把这四对价格变成每根K线的颜色:收盘价高于开盘价就是阳线,收盘价低于开盘价就是阴线;开收同价的K线两者都不是,它两项检验都通不过,因此无法延续任何一段连续走势。
- 一个逻辑与汇总四个阳线判断,另一个逻辑与汇总四个阴线判断;只有窗口内四根K线全部一致时才输出真,这正是连续走势的含义。
- 持仓量与零比较,得出本图当前是空仓、多头还是空头;下游的每一道闸门都是一段连续走势与一种持仓状态的逻辑与。
- 两个方向的开仓都是固定手数的市价委托,并且都带上空仓条件,因此在持仓已经建立之后,即使连续走势继续,也不会在原有委托之上再叠加一笔。
- 开仓成交汇入同一条线路,交给持仓保护(Position protection):它按成交价的百分比设定止盈和移动止损,并在持仓存续期间一直挂着。
- 策略盈亏(Strategy P&L)方块按自己的节拍输出当前持仓的浮动盈亏,一个比较把这个数字与利润锁定值对照;结果送入标志(Flag),它放行第一个真值之后就保持置位,因此平仓指令恰好只发出一次。
- 与持仓方向相反的连续走势会以市价把持仓平掉;标志由任一开仓闸门重新置位,因此每一笔新持仓开始时,锁定机制都重新就绪。
入场与出场规则
- 做多入场: 持仓为空仓时,连续四根已完成K线都收在各自开盘价之上:持仓修改(Position modify)以市价买入设定的委托手数。
- 做空入场: 持仓为空仓时,连续四根已完成K线都收在各自开盘价之下:持仓修改以市价卖出设定的委托手数。
- 离场: 三条出场路径,谁先到就按谁来。浮动盈亏一达到设定金额,利润锁定就把持仓平掉;由于标志已经把这个信号放行过一次,之后同一盈亏数字的更新不会再发出任何指令。持仓保护会在止盈或移动止损处平仓,交易一旦转为盈利,止损就跟着价格走。反方向的连续走势同样会以市价平仓,而且那根K线上只会发生这一件事:开仓闸门要求持仓为空仓,因此反手不是由清空持仓的那个信号打开的,而是由下一个发现本图已经空仓的连续走势信号打开的。
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
| Candle Type | 04:00:00 | 统计连续走势所用K线序列的时间周期;一段连续走势的四根K线就是四根这个长度的K线。 |
| Order Volume | 1 | 每次开仓发出的委托手数,以手计;它同时也放大了与利润锁定值对照的浮动盈亏。 |
| Take Profit | 1% | 止盈相对成交价的距离,以百分比表示。 |
| Stop Loss | 1% | 止损相对成交价的距离,以百分比表示;该止损是移动止损,交易转为有利后它会跟随价格,并且不会回退。 |
| Profit Lock | 200 | 以投资组合货币计的浮动盈亏,达到该值时平掉持仓、把利润落袋。 |
图表详情
- 连续走势的长度是搭在图里的,而不是用一个数字设定的:四根K线意味着三个前值方块,以及每个连续走势闸门上的四个输入。要数五根,就再加三个方块、每个闸门再加一个输入;要数三根,就少一个方块。
- 每个前值方块的类型都是K线,直接读取K线序列,收盘价和开盘价都取自它返回的那根K线。先取价格、再问它的前值是反过来的做法,而正是这种做法会让比较少一个操作数。
- 利润锁定是以投资组合货币计的金额,而不是价格上的距离,所以它既取决于合约,也同样取决于委托手数。手数翻倍,达到这个金额所需的价格波动就减半;换成价格量级不同的合约,情况就完全不同了。
- 利润锁定和止盈是对同一个问题的两个答案,谁更紧谁生效。把锁定设得先于止盈触发,止盈就成了只有在某根K线一跃越过锁定值时才会碰到的上限;把锁定设得宽松,止盈就是常规出场,锁定则是它背后的安全网。
- 本图发出的一切都是市价委托,而且K线序列只订阅已完成的K线。用尚在形成中的K线构造的信号带的是这根K线的开盘时间,而带着已成过去的时间戳的委托会被拒绝。
使用方法
将 .json 文件导入 Designer,在回测器中用历史数据运行,然后根据自己的交易品种调整参数或方块,确认无误后再用于实盘。