типа так
На 5-ке я пару лет точно не писал. Помню, раньше функции OrderSelect() не было ещё. Но вот вопрос, чем же она (функция OrderSelect()) в режиме MODE_HISTORY отличается от пробега по сделкам функцией HistoryDealsTotal? Ведь HistoryDealsTotal() возвращает количество сделок, т.е. реализованных ордеров, которые и нужно, чтобы узнать прибыльность отработки.
Ведь функция HistoryDealsTotal() для того и появилась, чтобы ею пользовались в плане замены OrderSelect(). Иначе зачем она вообще нужна? Реально интересно..
На 5-ке я пару лет точно не писал. Помню, раньше функции OrderSelect() не было ещё. Но вот вопрос, чем же она (функция OrderSelect()) в режиме MODE_HISTORY отличается от пробега по сделкам функцией HistoryDealsTotal? Ведь HistoryDealsTotal() возвращает количество сделок, т.е. реализованных ордеров, которые и нужно, чтобы узнать прибыльность отработки.
Ведь функция HistoryDealsTotal() для того и появилась, чтобы ею пользовались в плане замены OrderSelect(). Иначе зачем она вообще нужна? Реально интересно..
Человек ответивший Вам перепутал разделы сайта и ответил Вам старым кодом (MQL4).
Вам нужно решить самую главную задачу: если Вы запрашиваете сделки по HistorySelect, то ЗАЧЕМ Вы ставите дату от момента рождения динозавров?
HistorySelect(0, TimeCurrent());
Смотрим справку HistorySelect
HistorySelect
Запрашивает историю сделок и ордеров за указанный период серверного времени.
bool HistorySelect( datetime from_date, // с даты datetime to_date // по дату );
то есть Вам нужно манипулировать датой 'from_date' - хранить дату в переменной объявленной на глобальном программном уровне (в шапке эксперта). Если встретили сделку закрытую с плюсом, значит записываем её дату в свою глобальную переменную - в следующий раз не имеет смысла снова опрашивать эту сделку.
- www.mql5.com
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Появилась задача подсчёта некоторого количества сделок в подряд и, в зависимости от их количества, минипулировать с лотом. Я пошёл по пути наименьшего сопротивления. Решил плавно наращивать лот с каждым лосём, чтобы проверить верно ли я подсчитываю количество закрытых сделок по стопу в подряд.
У меня получилось как-то так:
Суть в том, что я не совсем понимаю, как это работает. Вроде бы, согласно алгоритму я с каждой найденной позицией инкрементирую переменную dealsCount от последней закрытой позиции в направлении истории, но... я заметил согласно скрина, что ситуация отличается от той, как я это понимаю.
Вот скрин:
Утроенный лот, который должен быть после 3-х закрытых сделок всегда, согласно базового теста оказывается лишь в месте со стрелкой. В остальных местах не так. Хотя, выше видно, что идёт 5 минусовых сделок в подряд, но лота утроенного нет. Лот утраивается у меня в OnTick() (черновой вариант):
В чём суть? Я так понимаю, сделка подразумевается уже закрытая сделка или может косяк в том, что нужно отфильтровывать ещё не закрытые?