is not expert and cannot be executed. Ошибка при прикреплении советника к счету. - страница 5

 
Lenar Shajdullin:
Спасибо господа программисты за потраченное время! Только я не прошу мой код поправлять, а ищу ответ в каких случаях выскакивает эта ошибка, кроме как удаления функций из прошлого века. Как исправлю напишу вам причину.

На всякий случай скажу:

Посмотрите скобки, блоки и операторы у себя в коде. Подробно не смотрела, но из того, что заметила на вскидку (зелёным шрифтом - добавленное мной, красным же выделила то, что вызывает вопрос):

//+------------------------------------------------------------------+
//| Блок открытия сделок по экстремумам                              |
//+------------------------------------------------------------------+
//.......................................
           if ((SchetchikPriceMAX(OP_SELL,Magic)>SLS && SchetchikPriceMAX(OP_SELL,Magic)!=0 && Schetchik(OP_SELL,Magic2)!=0) ||     //не хватает оператора if
              (SchetchikPriceMAX2(OP_SELL,Magic2)>SLS && SchetchikPriceMAX(OP_SELL,Magic2)!=0 && Schetchik(OP_SELL,Magic2)>1) ||
              (SchetchikPriceMAX(OP_SELL,Magic2)>SLS && SchetchikPriceMAX(OP_SELL,Magic2)!=0 && Schetchik(OP_SELL,Magic2)>1))
               
               ) {                                                                                                                  // круглая скобка перед фигурной здесь стоит лишней            
            SL=NormalizeDouble(SLS,Digits());
            while(tries<3){
            ticket=OrderModify(OrderTicket(),OrderOpenPrice(),SL,OrderTakeProfit(),0,Purple);
               if(ticket<=0){
                  Print("Error Accured : ",ErrorDescription(GetLastError())," SellOrderModify, SL @ ",SL);
                  tries++;}
                     else tries=3;
                                 }
                              }
                           }
                        }
                     }
                  }
               }
            }
          }                                                                                                                       //не хватает скобки для закрытия блока void OnTick()
//.......................................
//+------------------------------------------------------------------+
//| Счетчик открытых позиций                                         |
//+------------------------------------------------------------------+
int Schetchik(int type,int magic) {
int a=0;
  for (int i=OrdersTotal()-1; i>=0; i--) {
 
действительно лишние скобки :-) 
 
Всем спасибо! Слезно прошу прощения. Вы были правы(((((((((((((((.... Проблема была в функции старт... Несколько раз удалял его, компилировал и не работало, а в этот раз после удаления все нормально стало.
 
Dina Paches:

На всякий случай скажу:

Посмотрите скобки, блоки и операторы у себя в коде. Подробно не смотрела, но из того, что заметила на вскидку (зелёным шрифтом - добавленное мной, красным же выделила то, что вызывает вопрос):

Благодраю, но там все верно, про круглую скобку, а закрытие функции там просто часть кода не видно, что нужна фигурная.
 
Lenar Shajdullin:
Все правильно, по такому шаблону сделано.

Как это? А OnStart зачем?

Наличие OnStart превращает советника в скрипта

 
Lenar Shajdullin:
Благодраю, но там все верно, про круглую скобку, а закрытие функции там просто часть кода не видно, что нужна фигурная.

Вот это скрин вашего кода из вашего поста:


Сами посмотрите - нет оператора if и круглая скобка не к месту не взаимоувязано стоит.

Допускаю, что выкладывая код, может вы удалили их. Но смотрится - как не хватающее.


P./S.: Но действительно замечательно, что ваша проблема решена.

Успехов.

Только если в последующем будете обращаться на форум с вопросами, предоставляйте, пожалуйста, корректную инфу.

/*Когда вопрос широк, то нужна точная инфа. Профи, к которым можно обратиться без точной инфы - немного в другом месте тусуются.*/

 
Slawa:

Ваш пост увидела уже после публикации своего (перед этим обновляла страницу посмотреть, не было ли других комментов, но вашего ещё не было). Видимо пока потом свой ещё раз перед отправкой быстро просмотрела, тут и ваш.

 
небольшое замечание, хотя влиять не должно
цвета сейчас записывают как clrGreen, а не в старом стиле Green. Попробуйте все же переправить. А варнинги тоже не выдает?
 
Alexey Volchanskiy:
небольшое замечание, хотя влиять не должно
цвета сейчас записывают как clrGreen, а не в старом стиле Green. Попробуйте все же переправить. А варнинги тоже не выдает?
Всё уже заработало :)
 
Vladislav Andruschenko:
действительно лишние скобки :-) 
Я загоняю код в VS С++? там студия сразу считает, кто тут лишний, а кто нет )) А раньше, по старинке, считал сложные скобки вручную. Начинаешь с нуля, на каждую скобку ( прибавляешь в уме 1, на каждую ( отнимаешь 1. В конце выражения должен получиться ноль. Вот так сурово жили программеры лет 15 тому назад ))