噪音太大,而且有些地方的代码很奇怪。
例如,批次验证部分。
// 获取符号的最小批次步长 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); }
你好,我看到一篇帖子说 MT4 版本的 EA 代码已经修复,但 MT5 版本的代码是否已经修复?

VR Breakdown level - 基于突破前期高点或低点的交易策略:
基于简单突破前期高点或低点的交易策略
作者: Vladimir Pastushak