![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
человек же сказал хеджинговый счет
про стопы речи не было
Причём здесь хедж и стопы? Что это меняет в нашем обсуждении?
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
3 строки кода MQL4 не получается переписать в MQL5
Aleksey Mavrin, 2020.12.05 16:32
Пробовал, нет в истории сделки закрывающей сразу после успешной отправки ордера закрывающего.
Если у вас есть, везёт, может исполнение особое. Но в общем случае нет.
з.ы. в тестере работать будет, там всё сразу естьне уверен, но наверное не сделка, а ордер, который на закрытие был отправлен можно найти в истории сразу после OrderSend()
столкнулся уже в правильности закрытия всех позиций и отложенных ордеров - если на одном тике сначала закрыть все позиции, а потом ордера, то можно попытаться закрыть ордер который был отправлен при закрытии позиции
поменял местами - сначала закрываю ордера, потом позиции - работает как часы
брошу в ЛС, но код рабочий вариант, много правок было, хотя структуру кода должны понять
Моя вставка в Ваш код.
После этих правок советник будет работать, как задумано. При этом полностью будет совпадать результат, если запустить в Виртуалке (VIRTUAL_TESTER). В Виртуале производительность возрастет где-то в два раза.
Интересно другое, Вы сеткой открываете одновременно противоположные позиции. Отсюда получаете большие минусы. Режим VIRTUAL_TESTER_FAST позволяет подобные системы торговать гораздо выгоднее по прибыли.
Моя вставка в Ваш код.
После этих правок советник будет работать, как задумано. При этом полностью будет совпадать результат, если запустить в Виртуалке (VIRTUAL_TESTER). В Виртуале производительность возрастет где-то в два раза.
Интересно другое, Вы сеткой открываете одновременно противоположные позиции. Отсюда получаете большие минусы. Режим VIRTUAL_TESTER_FAST позволяет подобные системы торговать гораздо выгоднее по прибыли.
ОК
Спасибо!
ЗЫ: код, для экспериментов, для торговли он не предназначен, да и если торговать, то через виртуал проще оценить робастоть ТС
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
3 строки кода MQL4 не получается переписать в MQL5
Igor Makanu, 2020.12.05 16:20
по сабжу - не тестировал, как работает OnTradeTransaction в тестере, может, все таки, там быстрее будет отслеживать закрытие ордера, чем выбор по тикету из истории - постараюсь и эту идею проверить
нужно было на MQL5 попробовать код написать, да и повод был - проверил скорость (500 проходов оптимизатора на слабом ноуте):
7 min 28 sec - tst_Select_Pos.mq5
7 min 34 sec - tst_OnTradeTransaction_Pos.mq5
7 min 32 sec - tst_MT4_style.mq5
ТС рандомно выставляет ордера, по закрытию позиции анализ профита ордера - если профит <0 , то "перевернемся" и удвоим лот, СЛ и ТП - рандом, в целом общая имитация оптимизации
результаты соизмеримы, так сказать - что нравится, то и юзаем
PS: MQL5 писан по справке, исходники ниже
tst_Select_Pos.mq5
tst_OnTradeTransaction_Pos.mq5
tst_MT4_style.mq5
нужно было на MQL5 попробовать код написать, да и повод был - проверил скорость (500 проходов оптимизатора на слабом ноуте):
7 min 28 sec - tst_Select_Pos.mq5
7 min 34 sec - tst_OnTradeTransaction_Pos.mq5
7 min 32 sec - tst_MT4_style.mq5
ТС рандомно выставляет ордера, по закрытию позиции анализ профита ордера - если профит <0 , то "перевернемся" и удвоим лот, СЛ и ТП - рандом, в целом общая имитация оптимизации
результаты соизмеримы, так сказать - что нравится, то и юзаем
PS: MQL5 писан по справке, исходники ниже
Сколько сделок в истории на этих прогонах?
Хорошо что HistorySelectByPosition не тормозит, значит история индексирована, успокаивает)
в случае tst_OnTradeTransaction_Pos.mq5
Всё же можно делать прям в OnTradeTransaction, т.е. открывать новую позу. И не нужно каждый тик пробегать список, может чуть пошустрее будет.
Сколько сделок в истории на этих прогонах?
зависит от размера массива POSITION[] и периода тестирования, пару сотен точно было
в случае tst_OnTradeTransaction_Pos.mq5
Всё же можно делать прям в OnTradeTransaction, т.е. открывать новую позу. И не нужно каждый тик пробегать список, может чуть пошустрее будет.
не будет шустрее, только путаницы в код добавит - действия те же, алгоритм тот же
шустрее будет использовать совет @fxsaber ;)
в общем исходники выложил, протестировать можно в 2 клика - думаю, что если сделать массив POSITION[] хотя бы на 30-40 позиций..... в общем код есть, кому интересно проверит