Бета-версия платформы MetaTrader 5 build 1910: Свободное перетаскивание графиков и .Net библиотеки в MQL5 - страница 19

 
Renat Fatkhullin:

Ответ может дать техсаппорт брокера, если он проследит весь путь этой заявки.

Только брокер имеет эту информацию.

Больше никто.

Спасибо, уже написал брокеру...

 
prostotrader:

Спасибо, уже написал брокеру...

Прочтите дополнение к #178, пожалуйста.
 
prostotrader:

А брокер говорит, что у них всё отлично...

Просто непонятно, почему 7 мс и вдруг 14 секунд?

У меня сегодня Открытие тоже чудит с открытием/закрытием сделок - каламбур так себе. Терминал правда 1881. Все сделки сделаны руками:


2018.10.18 18:22:12.346    Trades    'xxxxx': order #94246807 sell 1.00 / 1.00 BR-11.18 at market done in 22277.357 ms

2018.10.18 18:35:14.055    Trades    'xxxxx': order #94248092 sell 1.00 / 1.00 Si-12.18 at market done in 17773.927 ms

2018.10.18 20:16:15.997    Trades    'xxxxx': order #94269409 sell 1.00 / 1.00 BR-11.18 at market done in 586.697 ms

2018.10.18 20:18:11.849    Trades    'xxxxx': order #94269722 buy limit 1.00 / 1.00 BR-11.18 at 79.90 done in 1738.378 ms

 
ottenand:

Каким образом была налажена расширенная аутентификация под wine ?  Прокомментируйте пожалуйста.

ПС. И если кто-то уже пробовал, то интересен был бы отзыв о работе.

Проверим.

 
Выпустили бету 1914 билда.
 
Renat Fatkhullin :

This means that there is no data on the direction.

It depends only on data feed. "Old" servers are long gone.

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

Пример для DA6Z18 (AMP Broker, реальный счет):


2018.10.18 13: 57: 05.305 ImportCQGData (EURUSD, M5) DA6Z18: 20 tick: 2018.09.13 01: 37: 33.985 0.7195 / 0.7197 / 0.7196 1 флаги: 2
2018.10.18 13: 57: 05.305 ImportCQGData (EURUSD, M5) DA6Z18: 21 tick: 2018.09.13 01: 37: 33.985 0.7195 / 0.7197 / 0.7196 1 флажок: 376
2018.10.18 13: 57: 05.305 ImportCQGData (EURUSD, M5) DA6Z18: 22 tick: 2018.09.13 01: 37: 33.985 0.7195 / 0.7197 / 0.7196 1 флажок: 376
2018.10.18 13: 57: 05.305 ImportCQGData (EURUSD, M5) DA6Z18: 23 tick: 2018.09.13 01: 37: 33.985 0.7195 / 0.7197 / 0.7196 5 флаги: 376
2018.10.18 13: 57: 05.305 ImportCQGData (EURUSD, M5) DA6Z18: 24 tick: 2018.09.13 01: 37: 33.985 0.7195 / 0.7197 / 0.7196 2 флажка: 376
2018.10.18 13: 57: 05.305 ImportCQGData (EURUSD, M5) DA6Z18: 25 tick: 2018.09.13 01: 37: 33.986 0.7195 / 0.7196 / 0.7196 2 флажка: 4

Эти торговые тики имеют флаг BUY и SELL. (Кстати, почему добавлен недокументированный флаг «256»?).

Однако у меня есть данные CQG, которые хорошо упорядочены (без миллисекунд).


Обратите внимание, что временная последовательность отменена по сравнению со скриншотом MT5, и между AMP-сервером и Chicago EAST TIME существует временной сдвиг в 5 часов). T является сделкой, B для Bid, A для Ask.

Как вы можете видеть, тик BID 7195 приходит после торгов. Таким образом, во время торгов Bid было 7196, и тогда очевидно, что 4 сделки были сделаны на Bid, поэтому они являются сделкой SELL. Однако MT5 (или AMP?) Размещают этот тик до торгов, так что эти сделки, похоже, происходят между спредом (7195-7197) и не могут определить направление.

Я могу предоставить все необходимые данные, но не публично.

 

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

CopyTicks возвращает более старые данные, чем были запрошены, если запрашивать не свежие тики. Т.е. возвращает данные старее, чем параметр from. Баг плавающий - проявляется в разное время, поэтому написал небольшой код, который воспроизводит. Запускал в тестере на EURUSD H1, 2017.08.01 - 2018.08.01.

void OnTick()
{
   static datetime lastActivityTime = D'2017.08.01';   
   static MqlTick ticks[2000];
   static const uint requestedCount = 2000;
   datetime dt[1];
   CopyTime(NULL, PERIOD_CURRENT, 0, 1, dt);
   if (lastActivityTime >= dt[0]) {
      return;
   }
   lastActivityTime = TimeCurrent();
   
   int zero = 0;
   int idx = 0;
   do {
      ++idx;
      CopyTime(NULL, PERIOD_CURRENT, idx, 1, dt);
      if (dt[0] <= D'2017.08.01') break;
      Print("idx=", idx, ", dt[0]=", dt[0]);
      long from = 1000 * dt[0];
      int cnt = CopyTicks(Symbol(), ticks, COPY_TICKS_INFO, from, requestedCount);
      if (cnt < 1) {
         Print("Error in CopyTicks");
         return;
      }
      Print("cnt=", cnt);
      for (int i = 0; i < cnt; ++i) {
         if (ticks[i].time_msc < from) {
            Print("ERROR: i=", i, ", ticks[i].time_msc=", ticks[i].time_msc, " (", ticks[i].time, ")");
            i = i / zero;
         }
      }
      Print("done");
   } while(true);  
}

Выхлоп:

2018.10.18 13:58:07.882 2017.08.02 12:00:00   idx=31, dt[0]=2017.08.01 05:00:00

2018.10.18 13:58:07.882 2017.08.02 12:00:00   cnt=2000

2018.10.18 13:58:07.882 2017.08.02 12:00:00   ERROR: i=0, ticks[i].time_msc=1501555854472 (2017.08.01 02:50:54)

Т.е. запросил с 5 часов, а получил с 2:50.
 
У меня смешной вопрос) Где ссылка на скачивание бетта версии ? Я с сайта попробовал скачать но скачал прошлую версию терминала.
 
Andrey Azatskiy:
У меня смешной вопрос) Где ссылка на скачивание бетта версии ? Я с сайта попробовал скачать но скачал прошлую версию терминала.
Подключаетесь к серверу демо, и автоматом придёт обновление. Вы с сайта качаете релиз-версию
 
Renat Fatkhullin:
Прочтите дополнение к #178, пожалуйста.

Прочёл, но дело не в последней строчке, а во второй

Термиминал отдал приказ:

2018.10.18 19:36:43.456 Trades  'xxxxx': cancel order #94261786 buy limit 2.00 SBRF-3.19 at 19632

Сервер МТ 5 проверил ордер и утвердил его

2018.10.18 19:36:57.936 Trades  'xxxxx': accepted cancel order #94261786 buy limit 2.00 SBRF-3.19 at 19632

Посмотрите сколько времени прошло...