Написал советника. Нужна конструктивная критика и предложения для улучшения

  • Автор темы Автор темы kuangenii
  • Дата начала Дата начала

AlexeNP

Гуру форума
может тут что то нет так. Это у меня в коде

if (!IsDemo()) {
Comment("Советник может работать только на демо счёте");
Sleep(1000);
Print("Советник может работать только на демо счёте");
return(0);
}
ну, тут ошибок нет, но есть)
постараемся подробно их рассмотреть... 1 - давайте использовать более современные функции (это обеспечит более легкий переход на mql5 в случае необходимости)
Код:
Expand Collapse Copy
   if(AccountInfoInteger(ACCOUNT_TRADE_MODE)!=ACCOUNT_TRADE_MODE_DEMO)
     {
      Comment("Советник может работать только на демо счёте");
      //Sleep(1000); - не нужен с какой стати советник тут должен ждать?
      Print("Советник может работать только на демо счёте");
      //return(0); - использование этого оператора в данном случае ошибка
      //Вместо Comment и Print может лучше использовать Alert?
      Alert("Demo account only!");
     }
С конструктивной критикой закончили, переходим сразу к мордобою) при попытке запустить получаем сообщение: is not expert and cannot be executed - "это не эксперт". Это может быть вызвано тем, что отсутствуют функции, которые должны быть в эксперте по умолчанию: OnInit(), OnDeinit(), OnTick(). Компиляция (при отсутствии этих функций) возможна только в том случае, если отсутствует #property strict - поставьте ее, и выловите все ошибки.
 

Илон

Гуру форума
блин шарил-бы я, в чем суть этого эксперта, алгоритм- знатоки мож и написали бы. нет алгоритма нет робота
 

Илон

Гуру форума
ну, тут ошибок нет, но есть)
постараемся подробно их рассмотреть... 1 - давайте использовать более современные функции (это обеспечит более легкий переход на mql5 в случае необходимости)
Код:
Expand Collapse Copy
   if(AccountInfoInteger(ACCOUNT_TRADE_MODE)!=ACCOUNT_TRADE_MODE_DEMO)
     {
      Comment("Советник может работать только на демо счёте");
      //Sleep(1000); - не нужен с какой стати советник тут должен ждать?
      Print("Советник может работать только на демо счёте");
      //return(0); - использование этого оператора в данном случае ошибка
      //Вместо Comment и Print может лучше использовать Alert?
      Alert("Demo account only!");
     }
С конструктивной критикой закончили, переходим сразу к мордобою) при попытке запустить получаем сообщение: is not expert and cannot be executed - "это не эксперт". Это может быть вызвано тем, что отсутствуют функции, которые должны быть в эксперте по умолчанию: OnInit(), OnDeinit(), OnTick(). Компиляция (при отсутствии этих функций) возможна только в том случае, если отсутствует #property strict - поставьте ее, и выловите все ошибки.
походу я был прав очередной начинающий барыга
 

barop

Интересующийся
Мой советник с моими настройками ,возможен такой результат за год 2018 с 01.01 п 31.12?
 

Вложения

  • Безымянный..png
    Безымянный..png
    40,6 КБ · Просмотры: 73
  • Безымянный.png
    Безымянный.png
    27,9 КБ · Просмотры: 72
Верх