EA: VR Breakdown level - 基于突破前期高点或低点的交易策略

 

VR Breakdown level - 基于突破前期高点或低点的交易策略:

基于简单突破前期高点或低点的交易策略

VR Breakdown level - 基于突破前期高点或低点的交易策略

作者: Vladimir Pastushak

 

噪音太大,而且有些地方的代码很奇怪。

例如,批次验证部分。

// 获取符号的最小批次步长
  double stepvol = ::SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_STEP);
  if(stepvol > 0)
    // 计算批量大小,四舍五入到最接近的有效步长
    lt = stepvol * (int)(iLots / stepvol);
// 检查计算出的地段是否小于允许的最小地段
  if(lt < ::SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN))
    lt = 0.0;  // 如果低于最小值(无效),则设置为 0
// 返回初始化成功的结果
  return(INIT_SUCCEEDED);
}

我们得到了手数 0.0

然后我们进入 OnTick(),用手数 "0.0 "建仓。

if(trade.Buy(lt))

这是一种有趣的方法,我认为交易将是有利可图的。

--

没有对足够资金的简单检查,如果没有这个检查,EA 即使在测试器中运行也很可怕,更不用说在演示模式中了。

--

我不明白为什么要采用这种方法,使其 "与其他人和其他地方一样"------------。

  if(new_time != old_time)
    // 更新 old_time,并返回 true(检测到新条形)。
    if((old_time = new_time) != NULL)
      return(true);

--

TP 和 SL 订单设置检查的执行方式不正确 -- 如果检查失败,仓位将随机为零。



 
Vitaly Muzichenko #:

噪音太大,有些地方的代码有点奇怪

例如,地段验证部分

我们得到了批号 0.0

然后转到 OnTick() 并用手数 "0.0 "建仓。

有趣的方法,也许会为交易带来利润

--

没有对足够资金进行简单检查,如果没有这种检查,EA 即使在测试器中也很难运行,更不用说在演示模式中了

--

我不明白为什么要采用这种方法,使其 "与其他人和其他地方一样"。

--

TP 和 SL 订单设置检查的执行方式不正确--如果检查失败,位置将随机为零值

部分代码是使用帮助编写的,也就是说,我没有编写自己的代码,而是从其他来源获取的,这样初学者就可以看到熟悉的代码。

因此,代码缩短了一行,对我来说更方便、更熟悉,而且初学者也能看到这种语言的更多可能性。

if(new_time != old_time)
    // 更新 old_time,并返回 true(检测到新条形)。
    if((old_time = new_time) != NULL)
      return(true);

и

if(new_time != old_time)
    // 更新 old_time,并返回 true(检测到新条形)。
      {
       old_time = new_time;
       return(true);
      }
 
Vitaly Muzichenko #:

设置 TP 和 SL 订单的检查执行不正确 - 如果失败,仓位将随机为零值

该如何处理?

我的设想是,在任何情况下都 设置TP 和 SL,如果出现距离小于最小允许值的错误 = 将其设置为最小允许值。

现在的形式是不设置订单,位置仍然是随机的。

 
你好,我看到一篇帖子说 MT4 版本的 EA 代码已经修复,但 MT5 版本的代码是否已经修复?