Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
Реализация делегата - библиотека для MetaTrader 5
- Просмотров:
- 1471
- Рейтинг:
- Опубликован:
- 2019.11.02 10:09
- Обновлен:
- 2019.11.04 09:59
- Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Ограничения связанные с ограничениями языка mql4/5:
- максимальное количество передаваемых параметров в функцию, для делегата типа void - 8 шт., а для делегата с возвращаемым значением - 7 шт.
- не работает с методами классов.
Объявление делегата:
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));
Утилита: советник производит трейлинг баланса торгового счёта. Трейлинг задаётся в процентах
Percolator Multicurrency 3Мультисимвольная торговля. Индивидуальные настройки для каждого символа. Наращивание позиций. Отложенные Limit ордера. Вывод Тейк профита в безубыток. Страховка прибыли.
На основе индикатора iVolumes - подаёт сигнал, когда iVolumes пересекает горизонтальную линию, нанесённую в окно индикатора
News templateNews template