Я делал следующим образом: скачал билд 3470 (или любой другой не выше 3492) и заменил файлы MetaEditor64, metatester64 и terminal64 (перед заменой нужно закрыть терминал). После этого открыл терминал, и дождался сообщения о том, что обновления готовы к установке и требуется перезапустить терминал. Соглашаюсь, терминал перезапустился с обновленным билдом 3491. В этом билде косяка с реальными тиками нету. Билды предоставил fxsaber.
Я не говорю по-русски, но очень часто слежу за форумами. Я тоже заметил, что сборка 3494 и даже сборка 3500 на агенте тестера работает УЖАСНО медленно при тестировании на истории с «каждым тиком, основанным на реальных тиках». Это также дает ОЧЕНЬ разные результаты, поскольку я запускаю это также на таймфрейме H1 .... Мне пришлось откатиться до 3492, чтобы правильно протестировать историю.
Кто-нибудь знает или сталкивался с такими проблемами? Можем ли мы доверять бэктесту агента тестировщика 3492? Я знаю, что 3494 и 3500 тестовых агентов кажутся ужасными.
Необычный баг Тестера (b3510), воспроизвести который пытался (много часов попыток) разными способами, но получилось только этим.
1. Создать папку и скопировать в нее exe-файлы своего терминала.
2. Распаковать файлы из прикрепленного архива в эту папку.
3. Запустить terminal64.exe.
4. Открыть Тестер и выбрать предложенный профайл.
5. Запустить Тестер и посмотреть результат в его журнале.
Для наглядности все шаги отобразил на этой картинке.
О сути бага. Создал кастомный символ. В Тестере тики этого символа подаются на OnTick искаженными - маркап на bid/ask, что создает граальную историю по сравнению с реальной.
Чтобы показать различия, в Тестере запускается такой советник (в приложенном архиве).
inputint inAmount = 5;
constbool IsTerminal = !MQLInfoInteger(MQL_TESTER);
string SymbName = _Symbol;
MqlTick MemoryTicks[];
int Pos = 0;
// Распечатка последних тиков символа в Терминале/Тестере (CopyTicks и SymbolInfoTick).void PrintLastTicks( conststring Symb )
{
MqlTick Ticks[];
CopyTicksRange(Symb, Ticks);
Print((IsTerminal ? "Terminal: " : "\nTester (CopyTicks): ") + Symb);
ArrayPrint(Ticks, _Digits, NULL, ArraySize(Ticks) - inAmount); // https://www.mql5.com/ru/forum/42122/page48#comment_43341353if (!IsTerminal)
{
for (int i = ArrayResize(Ticks, inAmount) - 1; i >= 0; i--)
Ticks[i] = MemoryTicks[--Pos % inAmount];
Print(("\nTester (SymbolInfoTick): ") + Symb);
ArrayPrint(Ticks);
}
}
voidOnTick() { SymbolInfoTick(_Symbol, MemoryTicks[Pos++ % inAmount]); } // Запоминаем SymbolInfoTick-тики.voidOnDeinit( constint ) { PrintLastTicks(SymbName); } // Распечатываем последние тики.intOnInit()
{
if (IsTerminal)
{
MqlTick Ticks[];
MathSrand((int)TimeLocal());
SymbName = "TESTER_BUG055_" + _Symbol + "_" + (string)MathRand();
// Создали символ.if (CustomSymbolCreate(SymbName, NULL, _Symbol) && SymbolSelect(SymbName, true) &&
(CopyTicksRange(_Symbol, Ticks, COPY_TICKS_INFO, D'2022.11.01' * 1000, D'2022.11.19' * 1000) > 0))
{
CustomTicksReplace(SymbName, 0, LONG_MAX, Ticks); // Разместили в символе тики.MessageBox("Запустите одиночный прогон в Тестере этого же советника на символе " + SymbName +
" в режиме по реальным тикам, вся история.\n\nИ сравните данные по тикам," +
" что выдал этот советник в логах Терминала и Тестера.");
}
}
elseArrayResize(MemoryTicks, inAmount);
return(IsTerminal);
}
Последние соответствующие пять тиков, полученные через CopyTicks и SymbolInfoTick, отличаются в bid/ask.
Тестер берет какие-то скрытые настройки из кастомного символа, которые недоступны через MQL-свойства и json-конфигурацию. Почему свойства кастомного символа не имеют полной прозрачности - отдельный (важный) вопрос.
Баг: Тестер генерирует (по реальным тикам) тики, которые не совпадают с историческими.
Необычный баг Тестера (b3510), воспроизвести который пытался (много часов попыток) разными способами, но получилось только этим.
1. Создать папку и скопировать в нее exe-файлы своего терминала.
2. Распаковать файлы из прикрепленного архива в эту папку.
3. Запустить terminal64.exe.
4. Открыть Тестер и выбрать предложенный профайл.
5. Запустить Тестер и посмотреть результат в его журнале.
Для наглядности все шаги отобразил на этой картинке.
О сути бага. Создал кастомный символ. В Тестере тики этого символа подаются на OnTick искаженными - маркап на bid/ask, что создает граальную историю по сравнению с реальной.
Чтобы показать различия, в Тестере запускается такой советник (в приложенном архиве).
Результат в логе Тестера.
Последние соответствующие пять тиков, полученные через CopyTicks и SymbolInfoTick, отличаются в bid/ask.
Тестер берет какие-то скрытые настройки из кастомного символа, которые недоступны через MQL-свойства и json-конфигурацию. Почему свойства кастомного символа не имеют полной прозрачности - отдельный (важный) вопрос.
Баг: Тестер генерирует (по реальным тикам) тики, которые не совпадают с историческими.
А до 3510 точно не было этого бага? Просто сейчас в данный момент занимаюсь тем же( расхождение ТС реал и тестера на кастомах) и тут Ваше сообщение увидел.
Не знаю, должны ли в тестере моделироваться в OnBookEvent события по реальным тикам, но документация говорит что должны, раз указана подписка MarketBookAdd.
По факту на реал тиках ни каких событий в OnBookEvent не приходит.
//ЗАПУСКАТЬ В ТЕСТЕРЕ С ПОДКАЧЕННОЙ РЕАЛЬНОЙ ТИКОВОЙ ИСТОРИЕЙ
//+------------------------------------------------------------------+intOnInit()
{
if(!MarketBookAdd("XTIUSD"))
return(INIT_FAILED);
if(!MarketBookAdd("XBRUSD"))
return(INIT_FAILED);
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
MarketBookRelease("XTIUSD");
MarketBookRelease("XBRUSD");
}
//+------------------------------------------------------------------+voidOnBookEvent(conststring &symbol)
{
Print(symbol); //Нет событий OnBookEvent
}
Вроде оперативно исправили. Откатили к билду 3491 и трабла ушла.
подскажите пожалуйста как откатиться к 3491? никогда не сталкивался с такой потребностью. замена terminal64.exe вроде билд меняет, а ошибка остается
Билды предоставил fxsaber.
Привет всем,
Я не говорю по-русски, но очень часто слежу за форумами. Я тоже заметил, что сборка 3494 и даже сборка 3500 на агенте тестера работает УЖАСНО медленно при тестировании на истории с «каждым тиком, основанным на реальных тиках». Это также дает ОЧЕНЬ разные результаты, поскольку я запускаю это также на таймфрейме H1 .... Мне пришлось откатиться до 3492, чтобы правильно протестировать историю.
Кто-нибудь знает или сталкивался с такими проблемами? Можем ли мы доверять бэктесту агента тестировщика 3492? Я знаю, что 3494 и 3500 тестовых агентов кажутся ужасными.
Я должен был использовать это ниже
Как отключить liveupdate в MetaTrader 5? / CommunityPower EA (userecho.com)
и это
Как откатиться на предыдущую версию (сборку)... / CommunityPower EA (userecho.com)
Необычный баг Тестера (b3510), воспроизвести который пытался (много часов попыток) разными способами, но получилось только этим.
1. Создать папку и скопировать в нее exe-файлы своего терминала.
2. Распаковать файлы из прикрепленного архива в эту папку.
3. Запустить terminal64.exe.
4. Открыть Тестер и выбрать предложенный профайл.
5. Запустить Тестер и посмотреть результат в его журнале.
Для наглядности все шаги отобразил на этой картинке.
О сути бага. Создал кастомный символ. В Тестере тики этого символа подаются на OnTick искаженными - маркап на bid/ask, что создает граальную историю по сравнению с реальной.
Чтобы показать различия, в Тестере запускается такой советник (в приложенном архиве).
Результат в логе Тестера.
Последние соответствующие пять тиков, полученные через CopyTicks и SymbolInfoTick, отличаются в bid/ask.
Тестер берет какие-то скрытые настройки из кастомного символа, которые недоступны через MQL-свойства и json-конфигурацию. Почему свойства кастомного символа не имеют полной прозрачности - отдельный (важный) вопрос.
Баг: Тестер генерирует (по реальным тикам) тики, которые не совпадают с историческими.
Строка для поиска: Oshibka 055.
Необычный баг Тестера (b3510), воспроизвести который пытался (много часов попыток) разными способами, но получилось только этим.
1. Создать папку и скопировать в нее exe-файлы своего терминала.
2. Распаковать файлы из прикрепленного архива в эту папку.
3. Запустить terminal64.exe.
4. Открыть Тестер и выбрать предложенный профайл.
5. Запустить Тестер и посмотреть результат в его журнале.
Для наглядности все шаги отобразил на этой картинке.
О сути бага. Создал кастомный символ. В Тестере тики этого символа подаются на OnTick искаженными - маркап на bid/ask, что создает граальную историю по сравнению с реальной.
Чтобы показать различия, в Тестере запускается такой советник (в приложенном архиве).
Результат в логе Тестера.
Последние соответствующие пять тиков, полученные через CopyTicks и SymbolInfoTick, отличаются в bid/ask.
Тестер берет какие-то скрытые настройки из кастомного символа, которые недоступны через MQL-свойства и json-конфигурацию. Почему свойства кастомного символа не имеют полной прозрачности - отдельный (важный) вопрос.
Баг: Тестер генерирует (по реальным тикам) тики, которые не совпадают с историческими.
Строка для поиска: Oshibka 055.
А до 3510 точно не было этого бага? Просто сейчас в данный момент занимаюсь тем же( расхождение ТС реал и тестера на кастомах) и тут Ваше сообщение увидел.
А до 3510 точно не было этого бага?
Думаю, данный баг не свежий.
Думаю, данный баг не свежий.
По моим наблюдением минимум 2 недели, пока только что не сверил и тут Ваше сообщение следом увидел.
Не знаю, должны ли в тестере моделироваться в OnBookEvent события по реальным тикам,
но документация говорит что должны, раз указана подписка MarketBookAdd.
По факту на реал тиках ни каких событий в OnBookEvent не приходит.