Автоматический конвертер MQL4 -> MQL5

 

Идея запуска MQL4-кода в MT5 через добавление в начале одного инклудника.

Т.е. сделать все MQL4-работы рабочими в MT5 через добавление одной строки. Тем самым сделав весь MQL4-код кроссплатформенным, не потеряв в производительности

 

Плохо знаю MQL4/5, поэтому прошу помощи у знающих - сообщить, какие непреодолимые препятствия возникнут, если начать реализовывать идею.

На данный момент есть понимание, как заставить работать iMA и т.д. и iCustom. При этом, чтобы это было быстро.

 

Единственное серьезное препятствие, что вижу - IndicatorBuffers. Подскажите, какие еще подводные камни есть при подобной конвертации одним инклудником?

IndicatorBuffers - Пользовательские индикаторы - Справочник MQL4
IndicatorBuffers - Пользовательские индикаторы - Справочник MQL4
  • docs.mql4.com
IndicatorBuffers - Пользовательские индикаторы - Справочник MQL4
 

Конвертер - это утопия.

Все вменяемые пользователи уже или начисто переписали свои кода на MQL5 или находятся в процессе. И только некоторые всё время ищут способы воскресить трупы и стрелять себе в обе ноги на полном ходу.

 
Vladimir Karputov:

Конвертер - это утопия.

Все вменяемые пользователи уже или начисто переписали свои кода на MQL5 или находятся в процессе. И только некоторые всё время ищут способы воскресить трупы и стрелять себе в обе ноги на полном ходу.

Интересуют компетентные мнения по вопросу - кто знает хорошо обе платформы.

Из своих представлений пока вижу, что можно одним махом сделать 99% MT4-кода рабочим (и быстрым) в MT5.

Нужно понять, из-за чего будет 1%, который для конвертации будет требовать чуть больше, чем прописывание одного инклудника.

 
fxsaber:

Интересуют компетентные мнения по вопросу - кто знает хорошо обе платформы.

Из своих представлений пока вижу, что можно одним махом сделать 99% MT4-кода рабочим (и быстрым) в MT5.

Нужно понять, из-за чего будет 1%, который для конвертации будет требовать чуть больше, чем прописывание одного инклудника.

Если конечно постараться, то можно с минимальными усилиями переносить код из MQL4 в MQL5. Так обычно и поступаю.

Наоборот, значительно сложнее. Возможности разные.

 
Victor Nikolaev:

Если конечно постараться, то можно с минимальными усилиями переносить код из MQL4 в MQL5. Так обычно и поступаю.

Речь идет о переносе даже без минимальных усилий.

Наоборот, значительно сложнее. Возможности разные.

Такая задача ни к чему.
 
fxsaber:

Речь идет о переносе даже без минимальных усилий.

Такая задача ни к чему.
Извини, Не совсем корректно написал. Из MQL5 в MQL4
 
Victor Nikolaev:
Извини, Не совсем корректно написал. Из MQL5 в MQL4

Ну это уже по другой теме. И мне не совсем понятно даже, где бы это лично мне могло пригодится.

Все таки основная база кода - MQL4. 

 

начало положено тут?

https://www.mql5.com/ru/code/1787

Библиотека совместимости MQL4 с MQL5
Библиотека совместимости MQL4 с MQL5
  • голосов: 34
  • 2014.01.24
  • T-1000
  • www.mql5.com
Версия 1.2 - MQL5\Include\mql4compat.mqh
 
fxsaber:

Идея запуска MQL4-кода в MT5 через добавление в начале одного инклудника.

Т.е. сделать все MQL4-работы рабочими в MT5 через добавление одной строки. Тем самым сделав весь MQL4-код кроссплатформенным, не потеряв в производительности

 

Плохо знаю MQL4/5, поэтому прошу помощи у знающих - сообщить, какие непреодолимые препятствия возникнут, если начать реализовывать идею.

в конвертация кода сложности есть.

Но повторю для скептиков "это утопия" - это не утопия, а вполне реализуемое без глюков и проблем.

Итак.

1. Медленный OrderSelect

2. Для iMA, iCustom и т.д. - надо будет создавать динамический массив хендлов индикатора

3. Для неттинга придется ставить Стоплос и Тейкпрофит в виде отложенных ордеров со связанными с позицией магиками.

остальное - вроде как не все свойства берутся из MarketInfo, но они практически не используются.

---

У меня есть полностью готовый файл - то как вы хотите сделать - Инклуд в начале и остальное сразу оборачивается в класс.


то есть было

int init()
int deinit()
int start()

стало

#include <MQL4to5.mqh>

class _My : CMQL4to5
{
int init()
int deinit()
int start()
}

 
o_O:

1. Медленный OrderSelect

Очень быстрый уже в кодобазе лежит.

2. Для iMA, iCustom и т.д. - надо будет создавать динамический массив хендлов индикатора

Да, так и вижу. Причем неиспользуемые хэнды со временем автоматически удаляются.

3. Для неттинга придется ставить Стоплос и Тейкпрофит в виде отложенных ордеров со связанными с позицией магиками.

Если идет конвертация в MQL5, то предполагается Hedging.

остальное - вроде как не все свойства берутся из MarketInfo, но они практически не используются.

Здесь совсем проблем не увидел пока.

У меня есть полностью готовый файл - то как вы хотите сделать - Инклуд в начале и остальное сразу оборачивается в класс.

Отлично! Вроде же можно обойтись и без оборачивания - только один инклуд.
 

ну тогда там всего на 3-4 дня работы с тестами.