TraillingStop - страница 3

 
Interesting:

б. Работать с хендлами индюков нужно в блоке инициализации и деинициализации (где обязательно нужно хендлы освободить).


Не совсем так. Если индикатор больше не требуется, то он автоматически будет освобожден по завершении MQL5-программы. Освобождать хэндл индикатора с помощью IndicatorRelease() нужно только в том случае, если программа будет работать и дальше, а сам индикатор уже не понадобится.
 
Rosh:
Не совсем так. Если индикатор больше не требуется, то он автоматически будет освобожден по завершении MQL5-программы. Освобождать хэндл индикатора с помощью IndicatorRelease() нужно только в том случае, если программа будет работать и дальше, а сам индикатор уже не понадобится.
Хорошее замечание, но я предпочитаю освобождать хендлы в любом случае (если нет особых условий).
 
Interesting:

 Спасибо за столь подроббное разъяснения ошибок. Даже в голову не приходило что в хендалах было дело )))

По поводу критики не обижаюсь, т.к знаю что сейчас код очень кривой и пишется все на коленке. С ООП знаком, просто сейчас хочу на простейшем уровне все сделать, увидеть что оно работает как задумано, потом переписывать с использованием объектов, по аналогии как это делает встроенный генератор советников

Нашел вот такой пример использования хендлов:

int MAhandle;           //хенд MA
double maVal[3];        //массив для хранения значений индикатора MA

int OnInit()
{
   MAhandle=iMA(NULL,0,MA_Period,0,MODE_SMA,PRICE_CLOSE); // я так понимаю вместо символа можно либо NULL либо _Symbol подставлять
}

void OnTick()
{
   maVal[0]<maVal[1] //это даст корректное сравнение текущего и предыдущего значений MA
}

Причина обращения: