Новая версия платформы MetaTrader 4 build 1170 - страница 14

 
После смены интернет-провайдера стали возникать такие вещи
2019.04.03 11:13:19.921 'xxx': login datacenter on XXX through Access Server #3 (ping: 113.28 ms)
2019.04.03 11:13:18.915 'xxx': login on XXX through Access Server #3 (ping: 113.28 ms)
2019.04.03 11:13:17.915 'xxx': datacenter connecting failed [6]
2019.04.03 11:13:17.914 'xxx': ping failed


Открыто два терминала, подключенные к одному и тому же торговому серверу/точке. На одном терминале все в порядке, на другом случается такая ерунда. Через какое-то время происходит то же самое, но уже на другом терминале.

Не понимаю, почему рвется соединение на одном терминале, но не рвется на другом.

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


Делал ping google.com -t - никаких проблем. Как проанализировать причину проблемы?


ЗЫ На MT5 такой проблемы нет.

 
fxsaber:

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

#property strict
#property indicator_chart_window
#property indicator_buffers 0

input int AlertTime = 3; // Сообщаем, если TimeCurrent застыл на такое количество секунд

int OnInit() { return(!EventSetTimer(1)); }

int OnCalculate( const int, const int, const datetime &[], const double &[], const double &[],
                 const double &[], const double &[], const long &[], const long &[], const int &[] ) { return(0); }

#define TOSTRING(A) #A + " = " + (string)(A) + " "

void OnTimer()
{
  static int Count = 0;
  static datetime PrevTime = 0;
  
  const datetime NewTime = TimeCurrent();
  
  if (NewTime != PrevTime)
  {
    PrevTime = NewTime;
    Count = 0;
  }
  
  if (++Count >= AlertTime )
    Alert(TOSTRING(TimeCurrent()) + TOSTRING(Count) + "seconds.");  
}


Запустил на двух терминалах.


Первый терминал:

2019.04.03 13:13:45.134 LogTimeCurrent EURUSD,M1: Alert: TimeCurrent() = 2019.04.03 13:13:43 Count = 6 seconds.
...
2019.04.03 13:13:42.088 LogTimeCurrent EURUSD,M1: Alert: TimeCurrent() = 2019.04.03 13:13:43 Count = 3 seconds.


Второй терминал:

2019.04.03 13:14:31.374 LogTimeCurrent EURUSD,M1: Alert: TimeCurrent() = 2019.04.03 13:13:43 Count = 52 seconds.
...
2019.04.03 13:13:41.688 LogTimeCurrent EURUSD,M1: Alert: TimeCurrent() = 2019.04.03 13:13:43 Count = 3 seconds.


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

2019.04.03 13:14:36.536 'xxx': previous successful authorization performed from xxx
2019.04.03 13:14:36.116 'xxx': login datacenter on XXX through Access Server #2 (ping: 48.01 ms)
2019.04.03 13:14:35.718 'xxx': login on XXX through Access Server #2 (ping: 48.01 ms)
2019.04.03 13:14:34.978 'xxx': auto connecting to a better access point Access Server #2 (ping is 48.01 ms)
2019.04.03 13:14:32.368 'xxx': previous successful authorization performed from xxx
2019.04.03 13:14:31.824 'xxx': login datacenter on XXX through Access Server #3 (ping: 113.19 ms)
2019.04.03 13:14:30.768 'xxx': login on XXX through Access Server #3 (ping: 113.19 ms)
2019.04.03 13:14:29.751 'xxx': datacenter connecting failed [6]
2019.04.03 13:14:29.751 'xxx': ping failed


В чем может быть причина разного поведения терминалов?

Жаль, что терминал столь долго соображает (50 секунд), что нужен релогин.


ЗЫ На обоих терминалах одинаковые наборы символов в Обзоре рынка.

 

После очередного релогина засек такое состояние



второй параллельный терминал обошелся без релогина


Может ли причина быть в том, что второй терминал через инвест используется?

 

Запустил тот же индикатор на MT5 MQ-Beta для доп. проверки.

Он показал одновременную остановку TimeCurrent в MT4 и MT5. MT4-2 и MT5 восстановились быстро без релогина. MT4-1 - сделал релогин после длительного ожидания.


Проблема явно в интернет-провайдере. Но почему MT5 обходится без релогина, а MT4 иногда релогинится при работающем другом MT4?


Подскажите, какую утилиту использовать, чтобы аргументировано показать интернет-провайдеру, что имеется проблема?

 
fxsaber:

Подскажите, какую утилиту использовать, чтобы аргументировано показать интернет-провайдеру, что имеется проблема?

Wireshark но если вы не разбираетесь в сетях, это вряд ли поможет.
Обычно ping - это icmp протокол с типом 8 и 0.
Что под ping понимает MQ - не известно, скорее всего это передача "пустого" пакета по ранее открытому сокет соединению.
Соединение скорее всего будет шифрованное и, соответственно, в Wireshark будет отображаться как непонятный набор данных.

 
Sergey Dzyublik:

Wireshark но если вы не разбираетесь в сетях, это вряд ли поможет.
Обычно ping - это icmp протокол с типом 8 и 0.
Что под ping понимает MQ - не известно, скорее всего это передача "пустого" пакета по ранее открытому сокет соединению.
Соединение скорее всего будет шифрованное и, соответственно, в Wireshark будет отображаться как непонятный набор данных.

Спасибо. Раз проблема со связью, то, скорее всего, не только у терминала это наблюдается.

Какой железный способ есть показать провайдеру, что обрывы случаются? Ну и чтобы не было в ответ "у вас очень специфический случай".


Наверное, есть же возможность не вникать во все дебри?

Компьютерные сети
  • www.asozykin.ru
Занимаюсь консалтингом в Data Science и Big Data.
 

Что-нибудь из этих настроек роутера может влиять на поведение терминала?

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

 
Результат выполнения
ping 78.140.180.203 -t


Ответ от 78.140.180.203: число байт=32 время=32мс TTL=117
Ответ от 78.140.180.203: число байт=32 время=32мс TTL=117
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Ответ от 78.140.180.203: число байт=32 время=34мс TTL=117
Ответ от 78.140.180.203: число байт=32 время=32мс TTL=117
Ответ от 78.140.180.203: число байт=32 время=32мс TTL=117
Ответ от 78.140.180.203: число байт=32 время=33мс TTL=117
Ответ от 78.140.180.203: число байт=32 время=32мс TTL=117
Ответ от 78.140.180.203: число байт=32 время=32мс TTL=117
Ответ от 78.140.180.203: число байт=32 время=32мс TTL=117
Превышен интервал ожидания для запроса.
Ответ от 78.140.180.203: число байт=32 время=32мс TTL=117
Ответ от 78.140.180.203: число байт=32 время=32мс TTL=117


Вроде, это MQ-сервер. Что можно сделать?

 

Я так не играю ))

SYMBOL_TRADE_TICK_VALUE

Значение SYMBOL_TRADE_TICK_VALUE_PROFIT

double

SYMBOL_TRADE_TICK_VALUE_PROFIT

Не поддерживается

double

Измените, пожалуйста, описание в справке для 4-ки.

 
fxsaber:

Что-нибудь из этих настроек роутера может влиять на поведение терминала?

вряд ли, если бы не работал бы терминал был бы смысл там искать, если работает, то максимум что там интересного - это ВайВай покрутить если через 2 стены не пробивает

в лог роутера нужно поглядывать, дисконекты он будет логировать

а так - про провайдеров и скорость - ни как не докажешь, у меня все лето прошлого года то ютуб с затыками был, то на Андроид девайсах аккаунты гугл отваливались - тож и звонил провайдеру и тестировал, толку ноль, потом на все андроиды установил Orbot - тунель от Тора и все как рукой сняло, в этом году не пользуюсь Orbot - все норм и так работает


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

ЗЫ; еще бы брокеров пару протестировать, а вдруг у брокера проблемы, а не в инете дело?