Смотри, как бесплатно скачать роботов
Ищи нас в Twitter!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Библиотеки

Реализация делегата - библиотека для MetaTrader 5

Просмотров:
1429
Рейтинг:
(8)
Опубликован:
2019.11.02 10:09
Обновлен:
2019.11.04 09:59
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Ограничения связанные с ограничениями языка mql4/5:

  1. максимальное количество передаваемых параметров в функцию, для делегата типа void - 8 шт., а для делегата с возвращаемым значением - 7 шт.
  2. не работает с методами классов.

Объявление делегата:

delegate(type,count)<types> value;

type - тип, может принимать два значения:

VOID - делегат не возвращает значение,

OUT - делегат возвращает значение, тип которого указывается первым в списке types.

count - количество передаваемых в функцию параметров

types - список типов, передаваемых в функцию, для делегата с типом OUT, первым в списке идет тип результата функции.

Пример:

delegate(VOID,0) test1;
delegate(VOID,2)<int,double> test2;
delegate(OUT,0)<int> test3;
delegate(OUT,2)<double,int,double> test4;
test1 - делегат не принимающий параметры и не возвращающий значение.
test2 - делегат принимающий два параметра с типами int и double и не возвращающий значение.
test3 - делегат не принимающий параметры и возвращающий значение типа int.
test4 - делегат принимающий два параметра с типами int и double и возвращающий значение типа double.

Опеатор =(InvokeDelegateFunction mInvokeFunction) - обнуляет список вызовов делегата и добавляет в него указатель на функцию,

оператор +=(InvokeDelegateFunction mInvokeFunction) - добавляет в список вызовов делегата указатель на функцию,

оператор -=(InvokeDelegateFunction mInvokeFunction) - удаляет последнее вхождение указателя на функцию из списка вызовов,

int Find(InvokeDelegateFunction mInvokeFunction) - возвращает первое вхождение указателя на функцию в списке вызовов, если указатель отсутствует, то возвращается -1,

T Invoke(param list) - последовательно выполняет все функции из списка вызовов с передачей им указанных параметров, для делегатов с возвращаемым параметром, возвращает результат вычисления последней функции списка. Пример:

delegate(OUT,2)<double,int,double> test4;

...

Print(test4.Invoke(2,2.5));
Stop Balance Percentage Stop Balance Percentage

Утилита: советник производит трейлинг баланса торгового счёта. Трейлинг задаётся в процентах

Percolator Multicurrency 3 Percolator Multicurrency 3

Мультисимвольная торговля. Индивидуальные настройки для каждого символа. Наращивание позиций. Отложенные Limit ордера. Вывод Тейк профита в безубыток. Страховка прибыли.

Volumes Alert Volumes Alert

На основе индикатора iVolumes - подаёт сигнал, когда iVolumes пересекает горизонтальную линию, нанесённую в окно индикатора

News template News template

News template