Обсуждение статьи "Использование MetaTrader 5 как поставщика торговых сигналов для MetaTrader 4"

 

Опубликована статья Использование MetaTrader 5 как поставщика торговых сигналов для MetaTrader 4:

В статье обсуждаются особенности использования MetaTrader 5 в качестве поставщика торговых сигналов для MetaTrader 4. Вы узнаете как создать простой поставщик торговых сигналов из MetaTrader 5 и как его подключить к нескольким терминалам MetaTrader 4. Также вы узнаете о том, как в реальном времени копировать сделки участников Automated Trading Championship на свой реальный счет в MetaTrader 4.

Автор: Karlis Balcers

 

Небольшие обновления для DealClient:

- Если открыто несколько ордеров и приходит запрос на закрытие, то клиент сначала закроет ордера с прибылью;

- Добавлена улучшенная обработка ошибок для устранения проблем, когда ордера не открывались из-за плохого соединения. Добавлена новая функция для проверки необходимости повторной передачи:

//+------------------------------------------------------------------+
//| Проверьте, исправит ли еще одна попытка проблему |
//+------------------------------------------------------------------+
bool bCanRetryFixTheProblem(int error)
{
   switch(error)
   {
      case ERR_NO_ERROR:
      case ERR_NO_RESULT:
      case ERR_COMMON_ERROR:
      case ERR_SERVER_BUSY:
      case ERR_NO_CONNECTION:
      case ERR_TRADE_TIMEOUT:
      case ERR_INVALID_PRICE:
      case ERR_PRICE_CHANGED:
      case ERR_OFF_QUOTES:
      case ERR_BROKER_BUSY:
      case ERR_REQUOTE:
      case ERR_TOO_MANY_REQUESTS:
      case ERR_TRADE_CONTEXT_BUSY:
         return(true);
      default:
         return(false);
   }
}

/tsaktuo

Файлы:
 

Обновлен код DealClient: tsaktuodealclient.mq4  (см. комментарий)

 

Отличная работа!!! Я получаю ошибку socketserver.dll не 64 битная версия. Вы можете предоставить?

 
939211:

Отличная работа!!! Я получаю ошибку socketserver.dll не 64 битной версии. Вы можете предоставить?

Это должна быть та самая.
Файлы:
 
Огромное спасибо за предоставленный код и dll. Пытаюсь написать серверную часть для mql4. Фрагмент кода, где происходит конвертации котировок вывела меня из строя, но я так просто не сдамся :)
 

Пробую не сигналы передавать, а хотя бы цену. На клиентском терминале отображается в протоколе, что получена строка с вопросительными знаками:

2011.12.28 16:34:54 Client EURUSD,M15: Received(20): ????????????????8???

Как можно исправить эту ошибку? Отправляю строку: <EURUSD;1.30675;1.30667> 

 

Привет,

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

MT5 (Build 597) log:
2012.03.08 01:17:55 TsaktuoDealServer(EURUSD,H1) DEAL:<955492;EURUSD;SELL;IN;0.01;1.31080>.


MT4 (Build 409) log:
2012.03.08 01:17:55 TsaktuoDealClient EURUSD,H1: Invalid order received: "4444EEEESSSSEEEEIIII....11110000"

Есть мысли?

 

Обновил MT4 до Build 416 без изменений.

Кроме того, вот что я получаю при компиляции скрипта в MT4

Compiling 'TsaktuoDealClient.mq4'...
Функция "struct2int" не имеет ссылки и будет удалена из exp-файла
Функция "str2struct" не имеет ссылки и будет удалена из exp-файла
Функция "htonl" не имеет ссылки и будет удалена из exp-файла.
Функция "ntohl" не ссылается и будет удалена из exp-файла
Функция "ntohs" не ссылается и будет удалена из exp-файла
0 ошибок(ы), 5 предупреждений(ий)

Кто-нибудь знает, что происходит?

 
кто-нибудь может исправить скрипт для запуска микро суффиксов? например, mt5 - EURUSD, а mt4 - EURUSDm. спасибо.
 

Я использую его в течение 1 недели, есть 2 ошибки, поэтому я отказываюсь от него.