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

 
Urain:

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

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


Не для всех торговых стратегий (как было написано выше я имею введу если не подгонять торговые методы МТ4 под MT5).

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

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

При этом в стратегии побольше использовать именно перевороты и урезки (в условиях мультивалютности).

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

PS

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

Единственным удобством в этом смысле является то что все торговые процессы MT4 можно со 100% результатом подогнать под неттенг.

Конечно немаловажным моментом является то что такие явления как переворот и резка очень редки в большинстве торговых стратегий.

Urain:

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

К сожалению MQL5 не скоро даст хотя бы половину половину тех возможностей которые можно получить при помощи DLL.

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

Как вариант можно применить MQL-библиотеку завязанную на WinAPI.

 
Interesting:

Не для всех торговых стратегий (как было написано выше я имею введу если не подгонять торговые методы МТ4 под MT5).

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

Я в n-ный раз читаю это заявление, и n-ый раз хочу попросить - приведи хоть одну последовательность ордеров/сделок, при переносе которой с МТ5 на МТ4 (или наоборот) изменится ее финансовый результат. Не список ордеров/сделок в истории поменяется, не отображение текущей открытой позиции будет другим, а именно изменится финансовый результат.

Я утверждаю, что при идентичности торговых условий (котировки/спреды/свопы/стоп-левелы и т.д.) результат на МТ5 будет таким же или лучшим, чем на МТ4 (лучшим - за счет свопов, если при переходе через сутки на МТ4 есть 2 встречные позиции).


Да, организовать учет всех нюансов при копировании сделок - задача сложная. Но это - другая задача, и к теоретической части вопроса неттинга она отношения не имеет.

 
komposter:

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

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

Я не об этой фильтрации, в OnTrade появляется событие не только о свершившейся сделке но и о выставленном ордере, а он в свою очередь не обязательно будет реализован.
 
Urain:
Я не об этой фильтрации, в OnTrade появляется событие не только о свершившейся сделке но и о выставленном ордере, а он в свою очередь не обязательно будет реализован.
Так об этом и речь - не надо реагировать на выставление/отмену/исполнение ордеров. Для этого надо проверять, изменилась ли позиция.
 

Хорошая идея. Отличный копир.! пытался делать еще давно но ничего не вышло, а тут просмотрел в чем была моя ошибка.


Автору РЕСПЕКТ. !!!

 
komposter:
Так об этом и речь - не надо реагировать на выставление/отмену/исполнение ордеров. Для этого надо проверять, изменилась ли позиция.

А ну тогда сделать копию OnTimer и переназвать его вот так:

void OnTimers()
  {
//--- получить поизиции 
   get_positions();
//--- если позиции не равны то сохранить новые данные
   if(compare_positions())saves_positions();
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTrade()
  {
//--- получить поизиции 
   get_positions();
//--- если позиции не равны то сохранить новые данные
   if(compare_positions())saves_positions();
  }

после чего закоментировать в OnDeinit уничтожение таймера //EventKillTimer();

а в OnInit вместо EventSetTimer(1); поставить 

OnTimers();

ЗЫ собственно вся переделка, но проверить смогу только в понедельник.

 
Urain:

А ну тогда сделать копию OnTimer и переназвать его вот так:

Ну так и я о том же, все просто ;)


Urain:

а в OnInit вместо EventSetTimer(1); поставить

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

 
Urain:

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

Ну а ставить дополнительную копию МТ4 тоже не очень удобно для конечного пользователя ;-). У юзера скорее всего МТ4 уже давно стоит, и вовсе не в файлах MT5. Может быть, в качестве финта порекомендовать использовать subst?
 
marketeer:
Ну а ставить дополнительную копию МТ4 тоже не очень удобно для конечного пользователя ;-). У юзера скорее всего МТ4 уже давно стоит, и вовсе не в файлах MT5. Может быть, в качестве финта порекомендовать использовать subst?
Была аналогичная мысль. Правда, у subst есть некоторые подводные камни (по крайней мере, в XP): перестаёт работать доступ к физическому диску (\\.\PHYSICALDRIVEx).
 
marketeer:
Ну а ставить дополнительную копию МТ4 тоже не очень удобно для конечного пользователя ;-). У юзера скорее всего МТ4 уже давно стоит, и вовсе не в файлах MT5. Может быть, в качестве финта порекомендовать использовать subst?

Я не ставил за цель написать статью о каналах передачи сигналов, нашёл самое простое и понятное решение.

Думаю передача сигналов это тема отдельной статьи.

А по поводу не очень удобно ставить второй МТ тут думаю вы ошибаетесь, насколько мне известно и личных переписок многие пользователи держать на машине до десятка МТ, и никаких проблем. К тому же МТ4 легко переносится простым копированием. Тем более что в моём коде нет защиты по магику так что пользовать счёт одновременно копировщиком и вручную не выйдет.

Причина обращения: