Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 606

 
Amon1953:
Спасибо за совет. Я не очень опытный программист. и использую удобный для меня стиль, приводить к общепринятому на этом сайте я еще не научился. - цейтнот.

Но в своё сообщение-то код вы же можете вставить (Alt+S), пусть и с вашим стилем. Впрочем, всегда можно воспользоваться стилизатором в редакторе (Ctrl+,), чтобы привести стиль к принятому на сайте. Хотя он и не каждому удобен, но это лучше, чем нечто вообще нечитаемое.

 
Artyom Trishkin:

Но в своё сообщение-то код вы же можете вставить (Alt+S), пусть и с вашим стилем. Впрочем, всегда можно воспользоваться стилизатором в редакторе (Ctrl+,), чтобы привести стиль к принятому на сайте. Хотя он и не каждому удобен, но это лучше, чем нечто вообще нечитаемое.

 
 if((cnt_OO > 1))
  {
   for(int h = OrdersTotal()-1; h >= 0; h--)
    {
     if(OrderSelect(h, SELECT_BY_POS))
      {
       if((OrderMagicNumber() == Magic))
        {
         Nextstep  = NextStep;
         BaseNext  = OrderOpenPrice();
         LotsNext  = NormalizeDouble(OrderLots()*K,lotDigit);
         if(NewPB > 0)
          {
           PBcloseON = true;
          } 
         Alert ("Pospedny Order NEXT  ",OrderTicket());
         Alert ("Otkritih orderov  ",cnt_OO);
         break;
    }}} }
       if((cnt_OO == 1))
        {
         LotsNext    = NormalizeDouble(Lots*Prikup,lotDigit); 
         Alert ("Otkritih orderov NEXT net ");
         Alert ("Otkritih orderov  ",cnt_OO);
        }
Ну кое что получилось. Только по существу я не понял, где моя ошибка
 
Amon1953:
Ну кое что получилось. Только по существу я не понял, где моя ошибка

Чего вообще хотите добиться?

Из того, что показали невозможно понять - нет данных о значениях используемых переменных.

 
Artyom Trishkin:

Чего вообще хотите добиться?

Из того, что показали невозможно понять - нет данных о значениях используемых переменных.

второй оператор if  не является обязательным, но без него не работает
 
Amon1953:
второй оператор if  не является обязательным, но без него не работает

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Любые вопросы новичков по MQL4, помощь и обсуждение по алгоритмам и кодам

Artyom Trishkin, 2018.08.21 22:14

Чего вообще хотите добиться?

Из того, что показали невозможно понять - нет данных о значениях используемых переменных.


 
Artyom Trishkin:

 я уже показывал один из результатов работы этого блока 

РЕЗУЛЬТАТ: Otkritih orderov NEXT net 

                    Otkritih orderov    5

 
Amon1953:

 я уже показывал один из результатов работы этого блока 

РЕЗУЛЬТАТ: Otkritih orderov NEXT net 

                    Otkritih orderov    5

Ясно - поток сознания. Я удалился из обсуждения...

Почитайте.

 

Anton1953 если вы про работу того блока который был самый первый без if то там ошибка. Даю наводку - попробуйте прогнать тот кусок кода с ордерами с другими майджиками, ордеров много но они не прходят условие по майджику. Дальше надо подсказывать или уж сами разберётесь?

Кстати выбор правильной разметки кода очень сильно помогает в поиске подобных ошибок, разметив в привычном для себя стиле данная ошибка просто лезет в глаза!

 
Vitaly Gorbunov:

Anton1953 если вы про работу того блока который был самый первый без if то там ошибка. Даю наводку - попробуйте прогнать тот кусок кода с ордерами с другими майджиками, ордеров много но они не прходят условие по майджику. Дальше надо подсказывать или уж сами разберётесь?

Кстати выбор правильной разметки кода очень сильно помогает в поиске подобных ошибок, разметив в привычном для себя стиле данная ошибка просто лезет в глаза!

Работают несколько советников, с разными мэйджиками. cnt_OO - определяется ранее - это количество открытых ордеров с конкретным мэйджиком. Блок задуман так:если ордеров больше одного  cnt_OO>1, из всех открытых ордеров  OrdersTotal() выбираем с нужным мэйджиком if((OrderMagicNumber() == Magic)) последний и делаем необходимые действия.

Иначе выполняем другие действия. Вот "иначе" не выполняется, приходится вводить        if((cnt_OO == 1)) без этого не работает


	          
 
Amon1953:

Работают несколько советников, с разными мэйджиками. cnt_OO - определяется ранее - это количество открытых ордеров с конкретным мэйджиком. Блок задуман так:если ордеров больше одного  cnt_OO>1, из всех открытых ордеров  OrdersTotal() выбираем с нужным мэйджиком if((OrderMagicNumber() == Magic)) последний и делаем необходимые действия.

Иначе выполняем другие действия. Вот "иначе" не выполняется, приходится вводить        if((cnt_OO == 1)) без этого не работает

То что вы определили где то количество нужных ордеров это хорошо, но в этом блоке вы снова бежите по всем ордерам и проверяете их! 

Разбейте код по нормальному сразу увидите!