.
Учимся программировать в среде Metatrader (mql). Урок 15. Пользовательские функции
Автор megabax   
27.03.2011 г.
unit AIObj

Учимся программировать в среде Metatrader (mql). Урок 15. Пользовательские функции

Что бы смотреть урок полностью, подпишитесь на платный раздел.

В платном разделе статья находиться здесь.


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

Сигналы: Пересечение двух мувингов. Используем две пары мувингов, открываемся когда даст сигнал любая из пар. 

Закрытие: Закрываемся по стоп лоссу или тэйк профиту. 

В данной задаче нам как раз и придется писать однотипный код - для первой и второй пары мувингов. Что бы не писать одно и тоже два раза, как раз и придуманы функции....

...

...Теперь давайте посмотрим, как реализовать нашего советника при помощи функций...

...

...Как видим, благодаря функциям наша программа стала понятной, легко читаемой и быстро изменяемой. Допустим, в будущем мы захотели добавить ее одну пару мувингов. Нет ничего проще, добавляем еще один вызов пары функций Trade и Cross:

 

int start()

  {

   Trade(CrossMA(MA1_1,MA1_2));

   Trade(CrossMA(MA2_1,MA2_2));

   Trade(CrossMA(MA3_1,MA3_2));

   return(0);

  }

 

А если захотим добавить какой либо фильтр? Тоже нет ничего проще. Пишем функцию для вычисления сигнала с учетом фильтра, и реализуем советника, например, так:

int start()

  {

   Trade(Signal(MA1_1,MA1_2,myFilter1()));

   Trade(Signal(MA2_1,MA2_2,myFilter2()));

   return(0);

  }