Тестер стратегий MetaTrader 5: ошибки, баги, предложения по улучшению работы - страница 101

 
Vladimin Mikhaltsov #:
Это происходит на разных компьютерах без какой либо закономерности.

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

 
Vladimin Mikhaltsov #:

Здравствуйте.

На нескольких моих компьютерах установлен MetaTrader 5 Strategy Tester и стоит галочка "Продавать мощности агентов". Так вот периодически в поле "Аккаунт" сам логин исчезает, и приходится прописывать его по новой. И спустя время он снова исчезает. При этом, как я понимаю, оплата за мощность не начисляется. Это происходит на разных компьютерах без какой либо закономерности.

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

AVX больше не поддерживается.

Проверьте здесь:


 
Вчера как минимум полдня тестер постоянно чего-то считал на одном ядре с PR 188, но выхлоп составил сущие копейки, буквально несколько центов. В плюс, как говорится, не в минус, но КПД вчерашней работы не впечатлил, мягко говоря( 
 
igogo # :
Вчера как минимум полдня тестер постоянно чего-то считал на одном ядре с PR 188, но выхлоп составил сущие копейки, буквально несколько центов. В плюс, как говорится, не в минус, но КПД вчерашней работы не впечатлил, мягко говоря( 

Я много раз видел, как группа агентов работала на моем компьютере более 24 часов, только для того, чтобы работа была отменена, и компьютер ничего не заработал за весь день — после того, как потребил более 6 кВт·ч электроэнергии. Нам платят только за выполненные пропуски. Иногда я думаю, не используют ли они вычислительную мощность для чего-то другого (что не связано с пропусками, например, для взлома хэшей), и мы не получаем надлежащую компенсацию за работу. Потому что я не могу представить себе ни одного законного отдельного пропуска, который бы занял около 24 часов, не говоря уже о том, чтобы длиться днями. К сожалению, пока агенты заняты такой работой, они не получают нормальную, оплачиваемую работу.

Original English: I have seen a set of agents run on my computer for over 24 hours on many occasions, only for the job to be canceled and the computer earn nothing for the entire day—after consuming over 6kWh of electricity.  We only get paid for completed passes.  Sometimes I wonder if they're using the computing power for something else (that doesn't involve passes, such as hash cracking), and we are not getting properly compensated for the work.  Because I cannot imagine any legitimate single pass that would take anywhere near 24 hours, much less go on for days.  Unfortunately, while agents are tied up with such work, they are not receiving normal, paying jobs.
 
Shalem Loritsch #:

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

Звучит несколько конспирологически;)

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

 

Столкнулся с глюком тестера. Глюк выражается в том, что на custom символе тестер выдает эксперту неверные цены в свечах.

Символ создается из баров M1 стороннего брокера. Создаю custom символ, ставлю все параметры, доступные из mql, затем

CustomTicksDelete, CustomRatesReplace. Тиков в базе нет, только бары.

В окне "Cимволы" все отображается правильно, все параметры, которые ставил - на месте.
График строится по LastPrice, тип расчета Exchange Stocks. Маржа, свопы, спреды - все по нулям.

На графике символа запускаю скрипт, он сохраняет все бары в mql-файл.
Сравниваю с исходным, из которого импортировались котировки - файлы идентичны.

Удаляю базы тестера, запускаю тестер. Синхронизация котировок проходит без вопросов, в логе чисто.
Запускаю тестового эксперта на всю историю, OHLC на М1 или цены открытия.
Он в OnDeinit() читает все свечи и сравнивает их с mql-файлом. Результат примерно такой:

2025.07.11 18:44:57.141 Свеч на графике тестера 3892968
2025.07.11 18:44:57.161 Начальный индекс 0
2025.07.11 18:44:57.161 Конечный индекс 3892966
2025.07.11 18:44:57.161 Начало проверки 2018.02.09 10:00
2025.07.11 18:44:57.161 Конец проверки 2025.07.09 23:58
2025.07.11 18:44:57.161 Первая ошибка open 2018.02.19 05:29 проверено свечей 14080
2025.07.11 18:44:57.161 Ошибка open, 2018.02.19 05:29 файл: 10.81650 тестер: 10.80300
2025.07.11 18:44:57.161 Первая ошибка high 2018.02.19 05:29 проверено свечей 14080
2025.07.11 18:44:57.161 Ошибка high, 2018.02.19 05:29 файл: 10.81650 тестер: 10.80300
2025.07.11 18:44:57.163 Ошибка open, 2018.04.27 23:27 файл: 14.30000 тестер: 14.32040
2025.07.11 18:44:57.163 Первая ошибка low 2018.04.27 23:27 проверено свечей 111638
2025.07.11 18:44:57.229 Ошибок даты 0
2025.07.11 18:44:57.229 Ошибок open 198
2025.07.11 18:44:57.229 Ошибок close 0
2025.07.11 18:44:57.229 Ошибок high 112

2025.07.11 18:44:57.229 Ошибок low 101

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

вместо open ставит их же close, и свеча схлопывается  в ноль.

На "родных" символах тест работает, ошибок нет.

Кто-то с подобным сталкивался, что-то можете подсказать?

Документация по MQL5: Пользовательские символы / CustomRatesReplace
Документация по MQL5: Пользовательские символы / CustomRatesReplace
  • www.mql5.com
Полностью заменяет ценовую историю пользовательского инструмента в указанном временном интервале данными из массива типа MqlRates . Параметры...
 
Особенность мультивалютного режима Тестера.

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

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

fxsaber, 2025.10.02 19:44

Демонстрация проблемы.

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

#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

input bool inTimer = false; // false - OnTick, true - OnTimer

ulong TimeMsc = TimeTradeServer() * 1000 + (inTimer && EventSetMillisecondTimer(1));

void PositionOpen()
{
  for (uint i = ArraySize(OnTickMultiObject.Symbols); (bool)i--;)
  {
    const string SymbName = OnTickMultiObject.Symbols[i];
    
    OrderSend(SymbName, OP_BUY, 1, SymbolInfoDouble(SymbName, SYMBOL_ASK), 0, 0, 0);
  }
}

void OnTimer()
{
  if (TimeMsc++ == 1759280400081) // 2025.10.01 01:00:00.081
    PositionOpen();
}

// Мультисимвольный OnTick.
void OnTickMulti( const string &Symb, const uint &Index )
{  
  MqlTick Tick;
  
  if (!inTimer && SymbolInfoTick(Symb, Tick) && (Tick.time_msc == 1759280400081) && // 2025.10.01 01:00:00.081
      !OrdersTotal())
    PositionOpen();
}

На скрине все данные для воспроизведения на MetaQuotes-Demo. Хорошо видно, что через OnTick тики не синхронизированы, а через OnTimer (жутко тормозной) - синхронизированы.

 
Просьба сообщить, что обозначают эти записи в логе самого Агента?
CS      0       03:08:44.019    127.0.0.1       tester forced to stop
CS      0       03:08:44.020    127.0.0.1       prepare for shutdown
CS      3       03:08:46.989    Network additional connect from 127.0.0.1
CS      3       03:08:47.099    Network previous connect context not freed
CS      2       03:08:47.099    127.0.0.1       cannot accept connect, agent is busy
CS      0       03:08:50.623    Tester  107 of 108 passes processed (107 successfully finished) in 0:18:08.187
CS      0       03:08:50.623    Tester  optimize Experts\EA.ex5 on FILTER0_GBPJPY,M1 thread finished
CS      0       03:08:50.624    127.0.0.1       shutdown finished