в MQL5 есть оба эти формата
Спасибо, и правда так. А в МТ4 в Справке только один формат - с 11 параметрами, хотя все компилируется и с 4-мя. Написал в СД.
В СД ответили, что поддерживается только формат с 11 параметрами, а то, что с 4-мя компилируется, но не работает - задел на будущее.
Про задел на будущее разве кто-то говорил.?
В четвёрке вряд ли будет OnCalculate на одном ценовом массиве. Только на всех таймсериях
Сейчас обратил внимание, что в примере \MQL4\Indicators\Examples\SimplePanel\SimplePanel.mq4 в обработчике события объявлены 4 параметра вместо 11, причем параметр begin не передается, как массив по ссылке, а как просто const int
Как это понимать? Как какие-то очередные выверты в духе "старого" MQL4, который вообще никаким стандартам не соответствовал?
Из SimplePanel.mq4
Пример их Справки
Это просто взяли готовый пример из пятёрки, переименовали в mq4, скомпилировали и запустили. Всё заработало
Для панелей входные данные для расчётов никак не используются, поэтому OnCalculate может быть любым
Про задел на будущее разве кто-то говорил.?
В четвёрке вряд ли будет OnCalculate на одном ценовом массиве. Только на всех таймсериях
Про задел на будущее я спросил )) Получил ответ - Да.
-----------------------------------
В четвёрке не поддерживается OnCalculate на буфере ценовых данных.
Только OnCalculate с таймсериями
В самом деле, при запуске примера пишет
2015.11.16 17:15:21.813 SimplePanel EURUSD.e,M1: indicator on custom buffer is not supported yet
Почему тогда пример компилируется - задел на будущее?
SimplePanel.mq4 //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const int begin, const double &price[]) { //--- // do nothing //--- return value of prev_calculated for next call Print("price[0]= ", DoubleToString(price[0], Digits()), "price[1]=", DoubleToString(price[1], Digits())); return(rates_total); }
VDev #
задел на будущее?Да
-----------------------------------
Это просто взяли готовый пример из пятёрки, переименовали в mq4, скомпилировали и запустили. Всё заработало
Для панелей входные данные для расчётов никак не используются, поэтому OnCalculate может быть любым
Компилятор настолько умный, что контролирует наличие функции OnCalculate в компилируемом индикаторе.
А использовать входные данные или нет - это дело разработчика
Компилятор настолько умный, что контролирует наличие функции OnCalculate в компилируемом индикаторе.
А использовать входные данные или нет - это дело разработчика
А общность кода?
Зачем ошибка компиляции? Вы можете писать любую свою функцию с любыми параметрами по правилам MQL4. В том числе такую OnCalculate
И вообще сообщение о неприменимости данного формата OnCalculate выводится в журнал при загрузке индикатора и то при отсутствии "правильной" OnCalculate
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Сейчас обратил внимание, что в примере \MQL4\Indicators\Examples\SimplePanel\SimplePanel.mq4 в обработчике события объявлены 4 параметра вместо 11, причем параметр begin не передается, как массив по ссылке, а как просто const int
Как это понимать? Как какие-то очередные выверты в духе "старого" MQL4, который вообще никаким стандартам не соответствовал?
Из SimplePanel.mq4
Пример их Справки