Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Если интересует расчёт на данных другого индикатора, то делается так. Сначала создается тот самый другой индикатор с о своим методом расчёта данных, затем берётся хендл этого индикатора (Справочник MQL5 / Технические индикаторы / iCustom ) и уже этот хендл используется в новом индикаторе. Посмотрите внимательно пример. Если будут вопросы по примеру -
есть вопросы. всеравно не понимаю.
ок, берем Custom Moving Average.mq5 за основу.
добавить в список процедуру нового сглаживания MODE_MYMA - не вопрос.
вопрос как подсунуть данные. через и-кастом другого индикатора? замечательно. берем для примера любой, сделанный по второй форме (если индикатор сделан по первой.. не понял откуда брать хай-лоу.. значит только по второй форме?)
ок, объявляем
int newHandl;
в onInit определяем его (как пример - параболик. пофиг, главное чтоб был 2го типа, верно? как реализовать свое, примерно понятно)
newHandl=iCustom(_Symbol,0,"ParabolicSAR.mq5",0.02,0.2);
а дальше? в onCalculate подсовываем вместо стандартной цены? или что?
CalculateEMA(rates_total,prev_calculated,begin,newHandl); ???
ругаецо. или как? поясните, я не понимаю... (((((
да, я пока мыслю шаблонами мкл4. там просто - цикл, данные(любые!) взял, сгладил, вывел.
тут же.... не ясно, за что хватацо..
(если индикатор сделан по первой.. не понял откуда брать хай-лоу.. значит только по второй форме?)
Да, про хай-лоу это был только пример, как самому разбираться со статьями. Для первой формы можно взять задачу построения линии close[i]/2 [или sqrt(close[i]/2)]. В общем, вариаций можно придумать кучу и при использовании одного массива.
ок, объявляем
int newHandl;
в onInit определяем его (как пример - параболик. пофиг, главное чтоб был 2го типа, верно? как реализовать свое, примерно понятно)
newHandl=iCustom(_Symbol,0,"ParabolicSAR.mq5",0.02,0.2);
Всё отлично. Щаз допишу.
Если полученный хендл индикатора является корректным, то это значит, что мы можем обращаться к буферам такого индикатора. Вот смотрите опять пример из Справочник MQL5 / Технические индикаторы / iCustom Там есть такая строчка:
Посмотрите, где эта строчка расположена. Теперь читайте Справочник MQL5 / Доступ к таймсериям и индикаторам / CopyBuffer (...Опять-таки: многое проясняется при разборе примеров построчно).
Попробуйте получить данные любого буфера индикатора, который Вы выбрали. У меня нет под рукой терминала, но в параболике можете сами посмотреть, какие буфера рассчитываются и их нумерацию.
Вопрос по поводу описания функций ArrayIsSeries() и ArrayGetAsSeries().
В Справочнике есть такая фраза: "Переданные в функцию массивы отражают ценовые данные, т.е. эти массивы имеют признак таймсерии и функция ArrayIsSeries() вернет true при проверке этих массивов. Но тем не менее, направление индексации необходимо в любом случае проверять только функцией ArrayGetAsSeries()".
Из буквального прочтения следует, что даже если функция ArrayIsSeries() вернет true (т.е. подтвердит, что проверяемый массив является массивом-таймсерией), то всё равно направление индексации необходимо в любом случае проверять только функцией ArrayGetAsSeries(). Непонятен тогда смысл введения в обиход функции ArrayIsSeries() , если её результаты всё равно требуется проверять дополнительно. В чём фишка? Что, могут быть ситуации, когда массив может быть таймсерией, но направление индексации у него будет не как у таймсерии (не будет установлен флаг AS_SERIES)?
При портировании с Mql4 на Mql5 выпала ошибка Lot:
'Lot' - constant cannot be modified
Как править?
При портировании с Mql4 на Mql5 выпала ошибка Lot:
'Lot' - constant cannot be modified
Как править?
Никак. Это не баг, это фича. :)
В mql5 input-переменные не модифицируются (const).
Сделайте простую развязку:
В продолжение вопроса. В разделе "Справочник MQL5 / Операции с массивами / ArraySetAsSeries" есть пример, когда функция ArraySetAsSeries() применяется к массиву const datetime &time[] на каждом тике:
Это что, так все делают (переворачивают массив на каждом тике), чтобы работать с массивом, как с таймсерией?
Ещё вопрос: могут ли массивы, используемые функцией OnCalculate(), произвольно менять направление своей индексации? Или же достаточно один раз проверить это направление?
При портировании с Mql4 на Mql5 выпала ошибка SymbolInfoDouble:
'SymbolInfoDouble' - no one of the overloads can be applied to the function call
Как править?
При портировании с Mql4 на Mql5 выпала ошибка SymbolInfoDouble:
'SymbolInfoDouble' - no one of the overloads can be applied to the function call
Как править?
Почему внизу 0?Там указываем свойство.
https://www.mql5.com/ru/docs/constants/environment_state/marketinfoconstants#enum_symbol_info_double
ну а в дополнение проверку деления на 0.
Результаты работы тестера стратегий отображаются в виде графиков:
Не подскажите, где посмотреть, что означают разные цвета на графиках?
Результаты работы тестера стратегий отображаются в виде графиков:
Не подскажите, где посмотреть, что означают разные цвета на графиках?