Тестирование МТ4-советника в тестере МТ5. Используем торговый отчет с тестера МТ4. Есть готовое решение?
Есть потребность протестировать mql4-советник в тестере МТ5, потому что тестер МТ4 не показывает просадки по эквити. И в МТ5 спреды
более приближенные к реальности.
Протестировал в МТ4 по ценам открытия, на таймфрейме М1. Сохранил торговый отчет.
Идея такая: Советник,
который будет читать торговый отчет (а там же есть время открытия и закрытия сделок), и в нужное время осуществлять
торговые
операции.
Есть готовое решение?
Если есть исходники, можно переделать на мультиплатформенный вариант. Для универсальной работы с ордерами достаточно использовать библиотеку MT4Orders, остальное возможно придется дописывать.
#property strict int t; int Handle; // Файловый описатель string File_Name="StrategyTester.csv", // Имя файла Text, // Текст описания события Str_DtTm; // Дата и время события(строка) datetime Dat_DtTm; // Дата и время события(дата) bool pr; #include <Trade\PositionInfo.mqh> #include <Trade\Trade.mqh> CPositionInfo o_position; CTrade o_trade; int OnInit() { Handle=FileOpen("StrategyTester.csv",FILE_READ|FILE_CSV ,";");// Открытие файла return(INIT_SUCCEEDED); } void OnTick() { if(Handle<0) // Неудача при открытии файла { Alert("Ошибка при открытии файла ",GetLastError());//..такое сообщ return; // Выход из start() } bool b=FileSeek(Handle,0,SEEK_SET); while(FileIsEnding(Handle)==false) // До тех пор, пока файловый .. { Str_DtTm =FileReadString(Handle);// Дата и время события(дата) Text =FileReadString(Handle);// Текст описания события Alert (Str_DtTm); Alert (Text); Dat_DtTm=StringToTime(Str_DtTm); // Преобразование типа данных if (TimeCurrent()==Dat_DtTm) { if (Text=="buy") { pr=o_trade.Buy(1,_Symbol); } if (Text=="sell") { pr=o_trade.Sell(1,_Symbol); } if (Text=="close") { zakrit_vse(); } return; } } } void OnDeinit(const int reason) { FileClose( Handle ); // Закрываем файл } void zakrit_vse() { bool proverka=true; for (int i=PositionsTotal(); i>=1; i--) { if(o_position.SelectByIndex(i-1)==true ) { o_trade.PositionClose(o_position.Ticket()); } } }
Советник и CSV-файл прилагаю.
Когда же файл помещаю в общую папку для всех клиентских терминалов и FileOpen() использую с ключом FILE_COMMON, то не может прочитать данные из файла.
создал файл csv просто с числом.
иероглифы какие-то показывает при чтении с этого файла.


- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Есть потребность протестировать mql4-советник в тестере МТ5, потому что тестер МТ4 не показывает просадки по эквити. И в МТ5 спреды более приближенные к реальности.
Протестировал в МТ4 по ценам открытия, на таймфрейме М1. Сохранил торговый отчет.
Идея такая: Советник, который будет читать торговый отчет (а там же есть время открытия и закрытия сделок), и в нужное время осуществлять торговые операции.
Есть готовое решение?