亏损后暂停策略图示
一张普通的动量图示中加入了一条规则,由它决定何时才允许交易。盈亏变动(P&L change)模块报告账户的已实现结果,因此无需测量价格,就能把每一笔平仓交易读作盈利或亏损。接连出现的亏损会被累计,当计数达到上限时,标志(Flag)模块被置位,并在固定数量的K线内保持交易关闭。只有在倒计时结束、标志被清除之后,入场才会恢复。
策略概览
- 已完成的小时K线送入周期为 1 的变动率(Rate of Change)指标,即收盘价相对前一根收盘价的百分比变动,因此同一个指标同时承担入场阈值和出场阈值。
- 两个比较模块把该百分比与两个变量对照:上行变动对应上方阈值,下行变动对应较低的负数阈值。
- 持仓(Position)模块与零比较三次——等于、大于和小于——从而得到用于入场的空仓判断,以及用于出场的多头判断和空头判断。
- 入场是三个信号的逻辑与:动量朝所需方向、持仓为空,且没有正在进行的暂停。两个入场模块都设为仅开仓,因此图示同一时间只持有一个仓位,并且从不加仓。
- 出场是反向动量与该方向持仓的逻辑与;它触发一个设为平仓的持仓修改(Position modify)模块,其数量由已持有的仓位推算得出。
- 盈亏变动模块报告已实现结果。前值(Previous value)模块保存最近一次变化之前的数值,两个比较模块判断结果是下降还是上升,也就是一笔亏损的或盈利的平仓交易。
- 亏损会让保存的连亏次数通过一个加一的公式,并把结果写回同一个变量;盈利则用零覆盖它。新计数与上限的比较,就是启动暂停的信号。
- 该信号置位标志(Flag),并启动一个对已完成K线计数的 N 值(N values)模块。在标志置位期间,每根K线读取的状态变量报告为“暂停中”,逻辑非把它转为“再次允许”,这就是两个入场闸门的第三个输入。
入场与出场规则
- 做多入场: 已完成K线的变动率高于多头阈值,持仓为空,且没有正在进行的暂停。持仓修改模块按订单量以市价买入,仅开仓。
- 做空入场: 已完成K线的变动率低于空头阈值,持仓为空,且没有正在进行的暂停。持仓修改模块按订单量以市价卖出,仅开仓。
- 离场: 一旦动量转为不利,仓位立即被放弃:变动率跌破空头阈值时平掉多头,升破多头阈值时平掉空头。该模块设为平仓,因此订单量来自仓位本身,图示绝不会用一张订单从一边直接翻到另一边——反向仓位只能由之后的某根K线从空仓状态开出。出场从不受暂停阻拦,受限的只有入场。
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
| Candles | 01:00:00 | 整个图示所依据的K线时间框架。暂停也按这些K线计数,因此K线周期越长,暂停在时钟时间上也越长。 |
| Rate Of Change Length | 1 | 变动率向前测量多少根K线。取 1 时它就是相对前一根收盘价的百分比变动,两个阈值正是按这一点设定的;周期变长会把它变成更宽泛的动量度量,阈值也必须随之放宽。 |
| Long Threshold, % | 0.3 | 开多并平空的百分比变动。调高它会让两者都更少出现,图示也更挑剔。 |
| Short Threshold, % | -0.3 | 开空并平多的百分比变动,写成负数。它不必与多头阈值对称;不对称的取值会让图示偏向某一边。 |
| Order Volume | 1 | 每笔入场订单的规模,以标的单位计。出场的数量取自仓位,因此该数值不会在出场处重复。 |
| Consecutive Losses | 3 | 在暂停交易之前,需要连续出现多少笔亏损的平仓交易。一笔盈利交易会把计数归零,因此这里数的是连续次数而不是总数;取 1 时,每一笔亏损交易都会启动暂停。 |
| Pause Candles | 8 | 一次暂停持续多少根已完成K线。在整个计数期间入场被拒绝,之后标志被清除,亏损计数也归零。 |
图表详情
- 交易一侧没有任何东西反馈给暂停:连亏计数器和标志只由账户结果驱动,因此图示中没有回路,暂停只可能收回许可,绝不会授予许可。
- 标志(Flag)模块只在首次置位的那一刻发出信号,而 N 值模块在已经计数时会忽略新的触发,因此暂停进行期间再出现亏损信号,既不会重启也不会延长倒计时。
- 倒计时按交易时间框架的已完成K线计量,而不是按账户事件计量,因此清淡时段与活跃时段产生的暂停长度相同。
- 入场闸门读取的是存储变量,而不是标志本身。标志报告的是一个瞬间,变量保存的是一种状态——标志置位时写入 true,倒计时结束时写入 false,并在每根K线上发出,因此两个闸门始终有一个新鲜数值可以与另外两个信号组合。
- 图表面板绘制K线、变动率、已实现结果、入场与出场订单以及每一笔成交,因此信号已经达成却没有订单跟进的那段时间,很容易被辨认为暂停。
使用方法
将 .json 文件导入 Designer,在回测器中用历史数据运行,然后根据自己的交易品种调整参数或方块,确认无误后再用于实盘。