В самом коде для переносимомти с mq5 на mq4 поменял только
2 строки c
добавил #property indicator_chart_window
изменил пару имен у обьявляемых переменных (т.к они дублировались и компилятор ругался)
и все. Код компилируется нормально, но отображение реверсное
В МТ5, в отличие от МТ4, нумерация баров по умолчанию слева направо по графику (в МТ4 - справа налево). Чтобы сделать нумерацию, как в МТ4, нужно установить индексацию индикаторных буферов, как в таймсериях. Функция ArraySetAsSeries.
Здесь обратная задача: на 5 работает, а на 4 - нет. Дальше не обсуждаю, дабы опять не получить бан за флуд (
Иначе говоря, нужна функция ArraySetAsNotSeries )
Да хрен с ним, с баном. Метаквоты, ставя благие цели, наступили сами на горло своей песне. С одной стороны - незыблемый принцип проектирования: "совместимость снизу вверх", с другой - равноправное присутствие нижней и верхней версий. имхенько
Здесь обратная задача: на 5 работает, а на 4 - нет. Дальше не обсуждаю, дабы опять не получить бан за флуд (
Выведите print массив и посмотрите каков порядок получаемых баров. Если обратный, то переверните.
Выведите print массив и посмотрите каков порядок получаемых баров. Если обратный, то переверните.
Не я бенефициар
Выведите print массив и посмотрите каков порядок получаемых баров. Если обратный, то переверните.
Кстати, как его перевернуть, если не обратный? Желательно, на уровне определений.
Понял. Никак. Опять Ассемблер, опять необходимость понимания среды, опять нужны разработчики.
Кстати, как его перевернуть, если не обратный? Желательно, на уровне определений.
Понял. Никак. Опять Ассемблер, опять необходимость понимания среды, опять нужны разработчики.
В коде у вас переворачивания нету. И если этот-же код в MQL5 работает так как нужно. И т.к. в MQL5 по умолчанию идут в обратном порядке массивы в OnCalculate, а в MQL4 в нормалном. То стоит попробовать в MQL4 их перевернуть
int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { #ifdef __MQL4__ ArraySetAsSeries(high, true); ArraySetAsSeries(low, true); ArraySetAsSeries(time, true); #endif /* work */ }
Или если считает все нормально, но просто на буферах идет реверс. Можно перевернуть массивы в эксперте, или буферы в индикаторе.
P.S. В код не вникал. Скажу честно.
В коде у вас переворачивания нету. И если этот-же код в MQL5 работает так как нужно. И т.к. в MQL5 по умолчанию идут в обратном порядке массивы в OnCalculate, а в MQL4 в нормалном. То стоит попробовать в MQL4 их перевернуть
Или если считает все нормально, но просто на буферах идет реверс. Можно перевернуть массивы в эксперте, или буферы в индикаторе.
P.S. В код не вникал. Скажу честно.
Константин, я тоже в код не вникал.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Доброго всем времени.
Помогите плз понять - почему этот код в MQ5 отрисовывается нормально на последнем баре, а в MQ4 рисует на конце истории, т.е в абсолютно противоположную сторону??
(взят индикатор от сюда - https://www.mql5.com/ru/code/7050)