Board logo

标题: 【Parabolic ModStop LX/SX】(抛物线ModStop多/空单出场法) [打印本页]

作者: 龙听    时间: 2022-5-26 12:38     标题: 【Parabolic ModStop LX/SX】(抛物线ModStop多/空单出场法)

【Parabolic ModStop LX/SX】(抛物线ModStop多/空单出场法)

EasyLanguage Signal: Parabolic ModStop LX:

Signal EasyLanguage:
  1. Inputs: Acceleration(.2), FirstBarMultp(1.5);
  2. Variables: AF(0), StopPrice(0), MP(0), HighValue(0);

  3. MP = MarketPosition;
  4. If High > HighValue Then HighValue = High;

  5. If MP = 1 Then Begin
  6. If MP[1] <> 1 Then Begin
  7. StopPrice = Low - Average(TrueRange, 3) * FirstBarMultp;
  8. AF = Acceleration;
  9. HighValue = High;
  10. End
  11. Else Begin
  12. StopPrice = StopPrice + AF * (HighValue - StopPrice);
  13. If HighValue > HighValue[1] AND AF < 0.2 Then AF = AF + MinList(Acceleration, 0.2 - AF);
  14. End;

  15. If StopPrice > Low Then StopPrice = Low;
  16. End;

  17. If MP = 1 Then EXitLong ("PM") NeXt Bar at StopPrice Stop;
复制代码


设置


在每个交易日,我们需要考虑两个项目。首先,我们将MarketPosition存储到MP中,这样就可以在每个柱子的基础上引用它。我们还检查当前的高点是否大于HighValue。如果是的话,我们将当前的高点存储到HighValue中。
  1. MP = MarketPosition;
  2. If High > HighValue Then HighValue = High;
复制代码
如果我们处于多头位置,MarketPosition将返回1。我们检查这是否是新仓位的第一条,如果是,我们计算初始止损价格为低点减去FirstBarMultp(输入)乘以过去三条的平均真实范围。我们还将加速度(输入)存入AF,并将HighValue重置为当前条形图的高点。
  1. If MP = 1 Then Begin
  2. If MP[1] <> 1 Then Begin
  3. StopPrice = Low - Average(TrueRange, 3) * FirstBarMultp;
  4. AF = Acceleration;
  5. HighValue = High;
  6. End
复制代码
如果这不是头寸的第一个条形图,StopPrice会把HighValue和StopPrice之间的差额的AF倍加到自己身上。如果当前条形图包含了头寸的最高点,并且AF小于0.2,那么AF将以加速度或0.2与AF的当前值之间的差值为基础进行递增,两者中的较小者。
  1. Else Begin
  2. StopPrice = StopPrice + AF * (HighValue - StopPrice);
  3. If HighValue > HighValue[1] AND AF < 0.2 Then AF = AF + MinList(Acceleration, 0.2 - AF);
  4. End;
复制代码
最后,如果新计算的StopPrice大于当前条形图的Low,StopPrice将被下移至Low。
  1. If StopPrice > Low Then StopPrice = Low;
  2. End;
复制代码
多头退出

我们的退出只是在计算出的StopPrice上的一个止损单。
  1. If MP = 1 Then EXitLong ("PM") NeXt Bar at StopPrice Stop;
复制代码

作者: 龙听    时间: 2022-5-26 12:41

EasyLanguage Signal: Parabolic ModStop SX:

Signal EasyLanguage:
本帖隐藏的内容需要回复才可以浏览




设置

在每个交易日,我们需要考虑两个项目。首先,我们将MarketPosition存储到MP中,这样就可以在每个柱子的基础上引用它。我们还检查当前的低点是否小于LowValue。如果是,我们将当前的低点存储到LowValue中。
  1. MP = MarketPosition;
  2. If Low < LowValue Then LowValue = Low;
复制代码
如果我们处于空头位置,MarketPosition将返回-1。我们检查这是否是新仓位的第一条,如果是,我们计算初始止损价格为高点加上FirstBarMultp(输入)乘以过去三条的平均真实范围。我们还将加速度(输入)存储到AF中,并将LowValue重置为当前条形的低点。
  1. If MP = -1 Then Begin
  2. If MP[1] <> -1 Then Begin
  3. StopPrice = High + Average(TrueRange, 3) * FirstBarMult;
  4. AF = Acceleration;
  5. LowValue = Low;
  6. End
复制代码
如果这不是头寸的第一个条形图,StopPrice将LowValue和StopPrice之间的差额的AF倍加到自己身上。如果当前条形图包含了头寸的最低低点,并且AF小于0.2,那么AF将以加速度或0.2与AF的当前值之间的差值为基础进行递增,两者中的较小者。
  1. Else Begin
  2. StopPrice = StopPrice - AF * (StopPrice - LowValue);
  3. If LowValue < LowValue[1] AND AF < 0.2 Then AF = AF + MinList(Acceleration, 0.2 - AF);
  4. End;
复制代码
最后,如果新计算的StopPrice小于当前条形图的High,StopPrice将被上移至High。
  1. End;
  2. If StopPrice < High Then StopPrice = High;
复制代码
空头退出

我们的退出只是在计算出的StopPrice上的一个止损单。
  1. If MP = -1 Then EXitShort ("PM") NeXt Bar at StopPrice Stop;
复制代码

作者: 龙听    时间: 2022-6-23 15:31

multicharts平台程式码:
本帖隐藏的内容需要回复才可以浏览





欢迎光临 龙听期货论坛 (http://www.qhlt.cn/) Powered by Discuz! 7.2