Написание эксперта - страница 3

 
Vitalii Ananev:
А вы оказывается прицепились к слову

Почему так категорично? Разве согласие с основной частью фразы и несогласие только с одной её частью уже называется "прицепился"???

 
Vitalii Ananev:

Это я знаю. А вот как компилятор будет работать встретив в коде две функции предназначение которых вызываться при получении нового тика, при этом одна из них устаревшая? Как минимум надо использовать какую то одну из них, а не обе вместе. Функция Start() оставлена для совместимости с устаревшими версиями и на данный момент ее уже ни кто не использует. Я думаю, что топик стартер просто начитался где то старых статей по Mql4.

возможно если функция пустая то она игнорируется компилятором или есть какой-то приоритет по выполнению
 
Alexey Viktorov:

Почему так категорично? Разве согласие с основной частью фразы и несогласие только с одной её частью уже называется "прицепился"???


Просто, главная мысль того моего сообщения была о том что там две функции одновременно, а про то что не используют это так к слову пришлось. Согласен, что утверждение, что Start ни кто не использует звучит не совсем верно, но смысл был не в этом. У меня сложилось такое впечатление, что автор кода просто прочитав где то примеры где используется функция start, добавил ее к коду, который был сгенерирован MQL. А генератор шаблона кода, как известно там вставляет функцию OnTick

 
Aleksey Semenov:
возможно если функция пустая то она игнорируется компилятором или есть какой-то приоритет по выполнению

Это можно выяснить экспериментальным путем. Но если судить по тому, что у автора кода возникли проблемы, то думаю, что приоритет отдается функции OnTick().

 

Вот что мне нравиться на этом форуме. Кто то создаст тему с одним сообщением и пропадает. Но тема живет и продолжает наполнятся, хотя топик стартера давно уже и след простыл :)

 
Vitalii Ananev:

Вот что мне нравиться на этом форуме. Кто то создаст тему с одним сообщением и пропадает. Но тема живет и продолжает наполнятся, хотя топик стартера давно уже и след простыл :)

Стареем. Нам только бы язык почесать
 

схемапростэкспертаЗначит я почитал справочник и там указано что большинство


данных пишется в функции Start() поэтому я так записал, также так было и в ютубе, справочник уже устарел. Нужно написать в сп чтобы обновили справку.



структурапрограммы

Файлы:
 

Я никуда не пропал но не думал что так активно люди принимают участие в темах форума. Значит вот код программы

#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
input int Period_MA_1=6;
input int Period_MA_2=10;
input int Period_MA_3=1;
input double Lots=0.1;

int OnInit()
{
return(INIT_SUCCEEDED);
}
void OnDeinit(const int reason)
 {
 }
void OnTick()
  {
hfjfu();
  }
void hfjfu()
  {
   double MA_1;
   MA_1=iMA(Symbol(),0,6,0,1,0,0);
   double MA_3;
   MA_3=iMA(Symbol(),0,1,0,1,0,0);
int ticket=0;
    {
      if(MA_3 > MA_1)
       ticket=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,_Digits),0,0,0,NULL,0,0,Green);
      if(MA_3 < MA_1)
        ticket=OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,_Digits),0,0,0,NULL,0,0,Red);
       }
   return;
  }

  Старт устаревшая функция. Вся нагрузка идёт на функцию OnTick() старт уже не имеет смысл использовать, но использовать можно. Ошибка была устранена когда была введена переменная ticket, если я правильно понял.

 
Aleksey Semenov:
возможно если функция пустая то она игнорируется компилятором или есть какой-то приоритет по выполнению
да я почитал старую справку я не виноват в том что разработчик её не обновил смотрите внизу мой комментария я там рисунки прикрепил.
 
Alexey Viktorov:

Посмотрите повнимательней CodeBase и найдёте в достаточно свежих кодах и extern и start() не только в советниках, но и в индикаторах.

А что касается "начитался", так свежее чем учебник Ковалёва не писали и вряд-ли напишут.
Учебник Ковалёва, дайте ссылку может там информация по свежее.
Причина обращения: