Новая версия платформы MetaTrader 5 build 2650: Фоновая загрузка графиков и улучшения в профилировщике MQL5-кода - страница 33

 
Доступна новая бета 2669
 
Renat Fatkhullin:
Доступна новая бета 2669

Помимо исправления явных багов какие изменения?

 
fxsaber:

Помимо исправления явных багов какие изменения?

Большая работа по исправлению багов

 
Renat Fatkhullin:

Большая работа по исправлению багов

Что-то по этой ветке вошло?


Ничего не сделано с CopyTicks-багом.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

MT5 и скорость в боевом исполнении

fxsaber, 2020.10.29 05:55

// Создание копий оригинальных символов из Обзора рынка в виде пользовательских.
#property script_show_inputs

input datetime inStartTime = D'2020.06.01'; // С какого времени закачивать тики

void OnStart()
{
  for (int i = SymbolsTotal(true) - 1; !IsStopped() && (i >= 0); i--)
  {
    const string Symb = SymbolName(i, true);
    
    if (!SymbolInfoInteger(Symb, SYMBOL_CUSTOM)) // Если символ не кастомный.
    {
      Alert(Symb + " - Start.");
      
      MqlTick Ticks[];
      
      if (CopyTicksRange(Symb, Ticks, COPY_TICKS_ALL, (long)inStartTime * 1000) > 0) // Взяли с него тики.
      {
        const string CustomSymb = "CUSTOM_" + Symb;
      
        if (SymbolInfoInteger(CustomSymb, SYMBOL_EXIST) || CustomSymbolCreate(CustomSymb, AccountInfoString(ACCOUNT_SERVER), Symb)) // Содали кастомный.
        {
          Alert((string)i + ": " + Symb + " - " + (string)CustomTicksReplace(CustomSymb, 0, LONG_MAX, Ticks)); // Поместили в него тики.
          
          SymbolSelect(CustomSymb, true);
        }
       }
    }
  }
}


Скрипт просто делает копии оригинальных символов из Обзора рынка.

запустив скрипт, столкнулся с тем, что он подвисает на MQ-Demo. Снимается только через Abnormal termination

b2669 - актуально на MQ-Demo.

MT5 и скорость в боевом исполнении
MT5 и скорость в боевом исполнении
  • 2020.05.28
  • www.mql5.com
MT5 - шустрая платформа. Но есть узкие горлышки, которые сводят на нет все старания быстрой торговли...
 
Renat Fatkhullin:

Большая работа по исправлению багов

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Библиотеки: Benchmark

fxsaber, 2020.10.01 23:49

CHART_IS_MAXIMIZED тормозит для чужих чартов. Баг-репорт готов! С библиотекой это было очень просто.

#include <fxsaber\Benchmark\Benchmark.mqh> // https://www.mql5.com/ru/code/31279

const bool Init = EventSetTimer(1);

void OnTimer()
{
  for (long Chart = ::ChartFirst(); Chart != -1; Chart = ::ChartNext(Chart))
    if (Chart != ChartID())
      _B(::ChartGetInteger(Chart, CHART_IS_MAXIMIZED), 1);
}


Результат.

2020.11.04 03:02:13.617 Test9 (EURUSD,M1)       Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 94 in OnTimer: ::ChartGetInteger(Chart,CHART_IS_MAXIMIZED)] = 3320 mcs.
2020.11.04 03:02:13.618 Test9 (EURUSD,M1)       Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 94 in OnTimer: ::ChartGetInteger(Chart,CHART_IS_MAXIMIZED)] = 1558 mcs.
2020.11.04 03:02:14.619 Test9 (EURSEK,M1)       Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 94 in OnTimer: ::ChartGetInteger(Chart,CHART_IS_MAXIMIZED)] = 221 mcs.
2020.11.04 03:02:14.619 Test9 (EURUSD,M1)       Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 94 in OnTimer: ::ChartGetInteger(Chart,CHART_IS_MAXIMIZED)] = 113 mcs.
2020.11.04 03:02:15.616 Test9 (EURUSD,M1)       Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 94 in OnTimer: ::ChartGetInteger(Chart,CHART_IS_MAXIMIZED)] = 862 mcs.
2020.11.04 03:02:15.617 Test9 (EURUSD,M1)       Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 94 in OnTimer: ::ChartGetInteger(Chart,CHART_IS_MAXIMIZED)] = 340 mcs.
2020.11.04 03:02:16.619 Test9 (EURUSD,M1)       Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 94 in OnTimer: ::ChartGetInteger(Chart,CHART_IS_MAXIMIZED)] = 10954 mcs.
 

Хорошо бы ревизию ChartGet-функций провести.

#include <fxsaber\Benchmark\Benchmark.mqh> // https://www.mql5.com/ru/code/31279

const bool Init = EventSetTimer(1);

void OnTimer()
{
  _B(::ChartGetString(0, CHART_EXPERT_NAME), 1);
}


2020.11.04 03:11:45.716 Test9 (EURUSD,M1)       Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 92 in OnTimer: ::ChartGetString(0,CHART_EXPERT_NAME)] = 1277 mcs.
2020.11.04 03:11:46.716 Test9 (EURUSD,M1)       Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 92 in OnTimer: ::ChartGetString(0,CHART_EXPERT_NAME)] = 220 mcs.
2020.11.04 03:11:47.698 Test9 (EURUSD,M1)       Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 92 in OnTimer: ::ChartGetString(0,CHART_EXPERT_NAME)] = 153 mcs.
2020.11.04 03:11:48.712 Test9 (EURUSD,M1)       Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 92 in OnTimer: ::ChartGetString(0,CHART_EXPERT_NAME)] = 1625 mcs.
2020.11.04 03:11:49.716 Test9 (EURUSD,M1)       Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 92 in OnTimer: ::ChartGetString(0,CHART_EXPERT_NAME)] = 170 mcs.
2020.11.04 03:11:50.716 Test9 (EURUSD,M1)       Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 92 in OnTimer: ::ChartGetString(0,CHART_EXPERT_NAME)] = 3742 mcs.
2020.11.04 03:11:51.716 Test9 (EURUSD,M1)       Alert: Bench_Stack = 0, 1 <= Time[Test9.mq5 92 in OnTimer: ::ChartGetString(0,CHART_EXPERT_NAME)] = 1541 mcs.
 
fxsaber:

Что-то по этой ветке вошло?


Ничего не сделано с CopyTicks-багом.

b2669 - актуально на MQ-Demo.

Подробности, хотя бы логи, будут?

 
Anton:

Подробности, хотя бы логи, будут?

Выше CopyTicks-баг. Зависание. На MQ-Demo добавьте все символы  в Обзор рынка и запустите. Все это было написано изначально.


Еще ArrayPrint-баг.

 
fxsaber:

Выше CopyTicks-баг. Зависание. На MQ-Demo добавьте все символы  в Обзор рынка и запустите. Все это было написано изначально.

Не зависает. Без доказательств дальнейший разговор смысла не имеет.

 
Anton:

Не зависает. Без доказательств дальнейший разговор смысла не имеет.

Что принимается в качестве доказательства?

2020.11.04 17:44:42.186 Alert: XTIUSD - Start.
2020.11.04 17:44:42.300 Alert: XRPUSD - Start.
2020.11.04 17:45:09.005 Abnormal termination
Причина обращения: