Обсуждение статьи "Копирование торговли из MetaTrader 5 в MetaTrader 4"

 

Опубликована статья Копирование торговли из MetaTrader 5 в MetaTrader 4:

Можно ли в MetaTrader 5 торговать на реале уже сегодня? Как организовать такую торговлю? Приводится теория этих вопросов и рабочие коды, при помощи которых реализуется копирование сделок из терминала MetaTrader 5 в MetaTrader 4. Статья будет полезна как разработчикам советников, так и практикующим трейдерам.

Автор: Николай

 

Пожалуй самая интересная на сегодняшний день тема.

По крайней мере лично для меня самая интересная статья из всех.


 

Согласен, на данный момент тема актуальна. Позволяет не ждать пока ДЦ раскачаются.

 

Полезная и актуалная статья, спасибо автору!


Одно смущает:

Чтобы не пропустить момент изменения позиции, следящая система должна быть реализована в функции OnTimer(), т.к. следить придется за всеми инструментами сразу, а тики приходят на разных символах в разное время. Также требуется передать сигнал об изменении содержимого файла.

Почему не OnTrade()?

 
komposter:

Почему не OnTrade()?

Согласен, нормальная обработка OnTrade() нужна, также как и продвинутый тамер. Их отсутствие это косяк в любом советнике, особенно в мульте...

Да и зря автор от библиотек отказался, с ними можно намутить гораздо больше (я уже не говорю о специализированном ПО).

Хотя это и правильно, у нас остается больше места для фантазии :)

PS

Еще бы хотелось чтобы в качестве примеров разбирались различные моменты, а не только усреднения и пирамидинг (вроде только их видел, может не внимательный просто).

Я исходил из этого:

1.2 Объемы торговых позиций

Рассмотрим в деталях, есть ли разница какой ордер закрывать? Не скажется ли это на прибыли? Например, имеем два ордера, открытые в разное время, и закрытые так же в разное время, но имеющие пересечения по времени жизни. То есть, попробуем в ордерной системе учета эмулировать торговую позицию.

Рассчитаем по вариантам, что произойдет с прибылью, если мы поменяем уровни закрытия ордеров местами:

тип 
объем
уровень открытия
 уровень закрытия
sell0.11.393881.38438
sell0.11.38868
1.38149
 

Хочу добавить несколько слов по поводу DLL и дополнительного ПО.

На данный момент я рассматриваю вариант позволяющий передавать сигналы и обмениваться информацией при помощи DLL (с обязательной возможностью работы с ini-файлами).

А максимальной задачей вижу (моя давняя мечта) разработка сервера, основной задачей которого станет сбор и обработка информации от разных платформ (не плохо было бы еще и от нескольких клиентов).


 
Interesting:

Согласен, отсутствие таймера косяк в любом мульте...

Да и зря автор от библиотек отказался, с ними можно намутить гораздо больше (я уже не говорю о специализированном ПО).

Хотя это и правильно, у нас остается больше места для фантазии :)

PS

Еще бы хотелось чтобы в качестве примеров разбирались различные моменты, а не только усреднения и пирамидинг (вроде только их видел, может не внимательный просто).

Я исходил из этого:

1.2 Объемы торговых позиций

Рассмотрим в деталях, есть ли разница какой ордер закрывать? Не скажется ли это на прибыли? Например, имеем два ордера, открытые в разное время, и закрытые так же в разное время, но имеющие пересечения по времени жизни. То есть, попробуем в ордерной системе учета эмулировать торговую позицию.

Рассчитаем по вариантам, что произойдет с прибылью, если мы поменяем уровни закрытия ордеров местами:

тип 
объем
уровень открытия
 уровень закрытия
sell0.11.393881.38438
sell0.11.38868
1.38149

Суть этого примера показать что прибыль зависит от поставленных на прогноз денег, при более сложных случаях будет тоже самое(просто не хотелось загружать статью большим количеством примеров доказывающих одно и тоже).

По поводу библиотек я не против ex5 библиотек, но вот применять dll не хочу тк это отталкивает конечного пользователя.

Ну и правда кому хочется вместе с приобретением получить ещё трояна. MQ же в своей политике старается придерживатся безопастности.

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

 
komposter:

Полезная и актуалная статья, спасибо автору!


Одно смущает:

Почему не OnTrade()?

Интересная мысль, всё что идёт на сервер однозначно будет отображено в OnTrade(). Вот только нужно фильтровать, передавать в файл не запросы, а уже отклики сервера об исполненом приказе.

Я просто не думал в этом направлении.

 
Urain:

Суть этого примера показать что прибыль зависит от поставленных на прогноз денег, при более сложных случаях будет тоже самое(просто не хотелось загружать статью большим количеством примеров доказывающих одно и тоже).


Тоже самое будет только если подгонять торговые процессы MT4 под MT5, в противном случае в определенных ситуациях могут быть различия (причем достаточно существенные).

Примеров будет всего два: "переворот" и "урезка" (если их расписать достаточно компактно много места они не займут).

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

Urain:

По поводу библиотек я не против ex5 библиотек, но вот применять dll не хочу тк это отталкивает конечного пользователя.

Ну и правда кому хочется вместе с приобретением получить ещё трояна. MQ же в своей политике старается придерживатся безопастности.

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

По поводу ex5 библиотек соглашусь (возможно также будет хорошим решением создание специализированной библиотеки классов), но тут есть одно большое "но"  - Функционал решений основанных только на MQL5 резко уступает всем возможностям которые предоставит DLL.

А вопрос с DLL решается проще чем это многим кажется, есть два варианта:

1. Опубликовать исходники библиотеки;

2. Предоставить исходники MQ чтобы они их проверили, скомпилировали библиотеку и выложили для общего доступа.

PS

Я бы еще подумал над синхронизацией балансовой информации двух платформ (по возможности конечно).

 
Interesting:

Тоже самое будет только если подгонять торговые процессы MT4 под MT5, в противном случае в определенных ситуациях могут быть различия (причем достаточно существенные).

Примеров будет всего два: "переворот" и "урезка" (если их расписать достаточно компактно много места они не займут).

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

По поводу ex5 библиотек соглашусь (возможно также будет хорошим решением создание специализированной библиотеки классов), но тут есть одно большое "но"  - Функционал решений основанных только на MQL5 резко уступает всем возможностям которые предоставит DLL.

А вопрос с DLL решается проще чем это многим кажется, есть два варианта:

1. Опубликовать исходники библиотеки;

2. Предоставить исходники MQ чтобы они их проверили, скомпилировали библиотеку и выложили для общего доступа.

PS

Я бы еще подумал над синхронизацией балансовой информации двух платформ (по возможности конечно).

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

В идеале если котировки между МТ равны и запаздывание равно 0 торговля принесёт одинаковую прибыль.

Вы поймите главную суть, прибыль приносит ставка. Если вы в одни и те же моменты ,на обоих терминалах, на одинаковых котировках держите одну и туже ставку вы получите одну и туже прибыль.

По dll, врядли MQ станет копатся в каждом стороннем коде проверяя его безопастность, а компиляторы делфи или срр есть не у каждого. Выложить же код можно одной библы а скомпилированный файл подставить другой. Так что пока только ex5.

 
Urain:

Интересная мысль, всё что идёт на сервер однозначно будет отображено в OnTrade(). Вот только нужно фильтровать, передавать в файл не запросы, а уже отклики сервера об исполненом приказе.

Я просто не думал в этом направлении.

Действительно, OnTrade - идеальное место для обработки изменений списка позиций. Только нужно за инициализацией проследить, чтоб существующие трейды скопировались сразу при запуске (а не при следующем торговом событии).

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