Новая версия платформы MetaTrader 5 build 3081: Улучшения в MQL5-сервисах и обновленный дизайн - страница 48

 
Slava #:

Правая кнопка мыши на таскбаре (нижняя полоса на экране с кнопкой пуск, иконками программ, временем), выбрать Task manager (Диспетчер задач). В самой первой вкладке диспетчера задач - список запущенных приложений. Найдите строку MetaTrader5 Strategy Tester Agent и правой кнопкой мыши вызовите контекстное меню. Выберите Create dump file (Создать dump файл)

спс. Понял.
 

почему после этого глючного и нафиг не нужного обновления перестали работать роботы? 

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

че делать? 

 
Алексей Бел #:

почему после этого глючного и нафиг не нужного обновления перестали работать роботы? 

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

че делать? 

Пожалуйста дайте больше информации. Операционная система, терминал - пример как это сделать:

Forum on trading, automated trading systems and testing trading strategies

Very Glitchy MetaTrader

Vladimir Karputov, 2021.03.16 04:20

If you have a question, first of all you should show the first three lines from the 'Journal' tab


(select these lines, copy to the clipboard and paste into the message using the button Code). It should look like this:

2021.03.16 05:13:07.133 Terminal        MetaTrader 5 x64 build 3003 started for MetaQuotes Software Corp.
2021.03.16 05:13:07.134 Terminal        Windows 10 build 19042, Intel Core i7-9750H  @ 2.60GHz, 26 / 31 Gb memory, 842 / 947 Gb disk, IE 11, UAC, GMT+2
2021.03.16 05:13:07.134 Terminal        C:\Users\barab\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075


Также нужна информация о антивирусе.

 
Vladimir Karputov #:

Пожалуйста дайте больше информации. Операционная система, терминал - пример как это сделать:


Также нужна информация о антивирусе.



вот пожалуйста.

антивирус встроенный 

 

Почините, пожалуйста CopyTicksRange() и CopyTicks()

//+------------------------------------------------------------------+
//|                                                      G_ticks.mq5 |
//|                                     Copyright 2021, prostotrader |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, prostotrader"
#property link      "https://www.mql5.com"
#property version   "1.00"

input datetime Stime = D'19.10.2021 07:00:00'; //Начало получения тиков
input datetime Etime = D'19.10.2021 23:50:00'; //Конец получения тиков
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
//  ulong c_time = ulong(D'15.10.2021 07:00:00');
  MqlTick g_ticks[];
  string t_date;
  string t_time;
  string c_flags;
  ulong mem_ms, cur_ms;
  int result = CopyTicksRange(Symbol(), g_ticks, COPY_TICKS_ALL, ulong(Stime) * 1000, ulong(Etime) * 1000);
  if(result > 0)
  {
    int f_handle=FileOpen("range_ticks.csv",FILE_WRITE|FILE_CSV); 
    if(f_handle!=INVALID_HANDLE)
    {
      FileWrite(f_handle,"Иструмент:", Symbol());
      FileWrite(f_handle,"Всего записей:", string(result));
      FileWrite(f_handle, "Номер", "Дата", "Время", "Флаги", "Цена(Last)", "Объем", "Реальный объем", "Предложение (ASK)", "Спрос (BID)");
      mem_ms = ulong(g_ticks[0].time_msc) - ulong(g_ticks[0].time)*1000;
      for(int i=0;i<result;i++)
      {
        t_date = TimeToString(g_ticks[i].time, TIME_DATE);
        cur_ms = ulong(g_ticks[i].time_msc) - ulong(g_ticks[i].time)*1000;
        t_time = TimeToString(g_ticks[i].time, TIME_SECONDS) + "." + StringFormat("%03i", cur_ms);
        if(cur_ms != mem_ms) FileWrite(f_handle, "");
        c_flags = "";
        if((g_ticks[i].flags&TICK_FLAG_BID) == TICK_FLAG_BID) c_flags += " TICK_FLAG_BID,"; 
        if((g_ticks[i].flags&TICK_FLAG_ASK) == TICK_FLAG_ASK) c_flags += " TICK_FLAG_ASK,";
        if((g_ticks[i].flags&TICK_FLAG_LAST) == TICK_FLAG_LAST) c_flags += " TICK_FLAG_LAST, ";
        if((g_ticks[i].flags&TICK_FLAG_VOLUME) == TICK_FLAG_VOLUME) c_flags += " TICK_FLAG_VOLUME,";
        if((g_ticks[i].flags&TICK_FLAG_BUY) == TICK_FLAG_BUY) c_flags += " TICK_FLAG_BUY,";
        if((g_ticks[i].flags&TICK_FLAG_SELL) == TICK_FLAG_SELL) c_flags += " TICK_FLAG_SELL,";
        int f_len = StringLen(c_flags);
        if(f_len > 1)
        {
          StringSetCharacter(c_flags, f_len - 1, ushort(" "));
          StringTrimRight(c_flags);          
        }
        if(c_flags == "")
        {
          FileWrite(f_handle, string(i + 1), t_date, t_time, string(g_ticks[i].flags), DoubleToString(g_ticks[i].last, Digits()),
                              string(g_ticks[i].volume), string(g_ticks[i].volume), DoubleToString(g_ticks[i].ask, Digits()),
                              DoubleToString(g_ticks[i].bid, Digits()));
        }
        else FileWrite(f_handle, string(i + 1), t_date, t_time, c_flags + " (" + string(g_ticks[i].flags) + ")",
                                 DoubleToString(g_ticks[i].last, Digits()), string(g_ticks[i].volume),
                                 string(g_ticks[i].volume), DoubleToString(g_ticks[i].ask, Digits()), DoubleToString(g_ticks[i].bid, Digits())); 
      mem_ms = cur_ms;
      }
      FileClose(f_handle);
    }  
  }
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+



Сделки указаны с правильной ценой (сравнивал с другим брокером), а вот ask и bid пропущены или не правильное время.
Файлы:
Range_bug.zip  3586 kb
 
prostotrader #:

Почините, пожалуйста CopyTicksRange() и CopyTicks()

Сделки указаны с правильной ценой (сравнивал с другим брокером), а вот ask и bid пропущены или не правильное время.

Гораздо сильнее MQ заинтересован в том, чтобы с тиками было все  идеально.

Очень внимательное посмотрел ваш пост. Ничего не понял! Не думаю, что MQ заняться нечем, как увидеть то, не знаю, что.


Попробуйте формулировать так, чтобы было понятно не только вам. Текущий способ подачи - выброшенное в мусорку время.

 

хм хм хм ...

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

 
fxsaber #:

Гораздо сильнее MQ заинтересован в том, чтобы с тиками было все  идеально.

Очень внимательное посмотрел ваш пост. Ничего не понял! Не думаю, что MQ заняться нечем, как увидеть то, не знаю, что.


Попробуйте формулировать так, чтобы было понятно не только вам. Текущий способ подачи - выброшенное в мусорку время.

Странно, что Вы не понимаете (или не хотите понять, ведь на форекс нет стаканов и сделки нельзя проверить).

На Срочном рынке ВСЕ сделки совершаются ТОЛЬКО по цене ask или bid.

Из записей видно, что есть сделка(и) совершена(ы) по цене, которой нет в ask или bid.

следовательно этот ask(bid) пропущен или указано не верно время!  

Даже, если "пробивается" стакан на несколько цен, то Биржа все-рано фиксирует ask и bid

 с наносекундной точностью! ( mod_time_ns - Дата и время изменения записи (UNIX-время в наносекундах по стандарту UTC))


 
Здесь не конкурс на свободное творчество - здесь технический форум. Ещё одно сочинение - и идёте в лес за ветками для парилки.
 
prostotrader #:

Из записей видно, что есть сделка(и) совершены по цене, которой нет в ask или bid.

В исходном сообщении об этом ни слова. Не будут же рассматривать кастомную таблицу на предмет соблюдения обширного списка правил? 

следовательно этот ask(bid) пропущен или указано не верно время!

Не пропущен. Два разных потока (INFO и LAST) искусственно объединены в один ALL-поток.

В одну и ту же миллисекунду биржа дала в INFO-поток bid-цену 36800. И в LAST-поток кучу сделок. Понятно, что если бы время измерялась в наносекундах, то INFO-цена оказалась бы позже сделок.

Хотите, чтобы в таких ситуациях MQ в объединенном ALL-потоке помещали INFO-цену после LAST-цен? Возможно, это имеет смысл для бэктеста, но не для боевого режима.


MT5 тратит время на объединение и синхронизацию потоков. Из-за этого могут быть очень приличные лаги в реал-тайме при формировании текущей тиковой истории. Можно терять миллисекунды.

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