Автор темы#1
Переписываю свой советник с MQL4 на MQL5. Логика простая, возврат к средней на M30 по трём парам, но код старый, с OrderSelect по циклу и глобальными флагами. Чтобы не гадать, всё ли перенёс, поставил обе версии на два демо одного брокера, MT4 и MT5 (в MT5 счёт хеджинговый), лот 0,1. По пятницам выгружаю сделки в CSV и сравниваю скриптом на Python по символу, направлению и времени входа с допуском в минуту.
Первая неделя: в MT4 23 сделки, в MT5 26. Три лишних в MT5 одного типа: второй вход на той же свече после закрытия по тейку. Нашёл у себя вот это:
Хотел сбрасывать состояние после сделки, а сбросил заодно и защиту от повторного входа на баре. В MQL4 такого обработчика не было, и ошибки тоже. Убрал, смотрю дальше.
Первая неделя: в MT4 23 сделки, в MT5 26. Три лишних в MT5 одного типа: второй вход на той же свече после закрытия по тейку. Нашёл у себя вот это:
Код:
void OnTradeTransaction(const MqlTradeTransaction &trans,
const MqlTradeRequest &req,
const MqlTradeResult &res)
{
if(trans.type==TRADE_TRANSACTION_DEAL_ADD)
lastBar=0; // сброс состояния после сделки
}