新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 374

 
 while (Count < FindPeak)
   {
// - 2 - ======================== Поиск одного экстремума ЗЗ ============================ 
    double ZZCur = 0;
    while(ZZCur == 0 && i < Bars)
      {
       if(iCustom(Symbol(), 0, "FastZZ", Depth, 0, i)!=0.0) ZZCur =iCustom(Symbol(), 0, "FastZZ", Depth, 0, i);
       else  if(iCustom(Symbol(), 0, "FastZZ", Depth, 1, i)!=0.0) ZZCur =iCustom(Symbol(), 0, "FastZZ", Depth, 1, i);
       i++;
      }
// - 2 - ============================ Окончание блока ===================================

// - 3 - ======================== Анализ найденного экстремума ========================== 
    if (ZZCur == 0)
      return(False);           // Если ни один из экстремумов не определен, то это ошибка
 
Novaja:

下面是另一个与你类似的变体......for循环的标题说的是i++,所以我去掉了底部的大括号。我去掉了大括号,因为循环中只有一个运算符(if else)。

 while (Count < FindPeak)
 {
    double ZZCur;
    for(i=0,ZZCur=0; ZZCur==0 && i<Bars; i++)
       if      (iCustom(NULL, 0, "FastZZ", Depth, 0, i)!=0.0) ZZCur =iCustom(Symbol(), 0, "FastZZ", Depth, 0, i);
       else  if(iCustom(NULL, 0, "FastZZ", Depth, 1, i)!=0.0) ZZCur =iCustom(Symbol(), 0, "FastZZ", Depth, 1, i);

    if (ZZCur == 0) return(False);   // Если ни один из экстремумов не определен, то это ошибка
.......
}
 
STARIJ:

这里是另一个与你类似的变体......for循环的标题写着i++,所以我在底部把它们删除了。删除了大括号,因为循环中只有一个运算符(if else)。


非常感谢你提供的替代方案,都在猪圈里,需要获得经验。所以我也猜对了,只是猫头鹰不愿意开交易,我会继续找。

 

你好!有一个订单开放价格 的阵列。知道了这个订单的索引,我怎样才能确定它的类型?

if(index_elementa_masiva=OP_BUY)???
 
vikzip:

你好!有一个订单开放价格 的阵列。知道了这个订单的索引,我们怎样才能确定它的类型?

对于这种任务,拥有一个开盘价数组并不是很理想,因为假设有一个以上的订单有相同的开盘价。

但在一般情况下,我们应该采取已知的开盘价,循环浏览所有订单,并选择那些开盘价等于已知索引的数组中的订单。

然后,如果有不止一个这样的订单,我们必须通过其他标准进行比较,例如通过时间,以了解这是你需要的订单。

如果只有一个订单,那么它就是正确的订单--不需要通过其他标准进一步选择。

 
Artyom Trishkin:

对于这项任务来说,拥有一个公开价格阵列是不可取的,因为假设有一个以上的订单有相同的公开价格。

但一般来说,我们应该取已知的开盘价,循环浏览所有的订单,通过你知道的索引选择那些开盘价等于数组中的订单。

然后,如果有一个以上的顺序,我们应该通过其他标准进行比较,例如,通过时间,以了解这是正确的顺序。

如果只有一个,那么它就是正确的--无需通过其他标准进一步选择。


谢谢你!

 
你能告诉我如何写一个条件,说:如果订单类型 相同?
 bool TYP_A=OrderType;
 bool TYP_B=OrderType;
 if (TYP_A=TYP_B)????
double PriceBlizkoA;                          // Цена выбранного ордера
         bool TYP_A; 
   for(int i=1; i<=OrdersTotal(); i++)          // Цикл перебора ордер
     {
      if (OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий
        {                                       // Анализ ордеров:  
        if (OrderOpenPrice=PriceBlizkoA);                                     //если цена ордера равна цене заданого   и вот здесь ошибка. Догадываюсь неверно записано условие. Подскажите, что исправить?
         TYP_A=OrderType;   
 
vikzip:
你能告诉我如何写一个听起来像这样的条件:如果订单类型 相同?
阅读什么是比较运算符,什么是赋值运算符,以及它们是如何书写的。
 
vikzip:
你能告诉我如何编写听起来像这样的条件:如果订单类型 相同?

这等于说是同一件事。

bool TYP_A=OrderType;
bool TYP_B=OrderType;

bool TYP_A=0; // Buy
bool TYP_B=1; // Sell

因此,我们得到

if(TYP_A) // false
if(TYP_B) // true
阅读Artiom的建议。
 

大家好!

请给我一个命令,让机器人在每根蜡烛上不超过1个订单。

即使他在这支蜡烛上采取了他的措施--不在同一蜡烛上开出下一个订单。

现在,它出来了,如果指标的 条件得到满足 - 打开一个交易。

当采取的交易被关闭时,它立即在同一蜡烛图上打开一个新的交易,这里对我来说已经是不必要的,并产生了问题。

我觉得有必要给出一些反馈。

它需要一个严格的,所以1支蜡烛--1个交易。

事先非常感谢!