Друзья, никак не пойму, что не правильно.
Нужно, чтобы робот в тестере записывал в файл после каждой сделки время ее открытия, тип ордера, цену открытия, цену закрытия, Сл, ТП, а также минимум и максимум цены со времени открытия сделки до ее закрытия. Все пишется верно, но минимум и максимум фиксируются не за время сделки, а с начала тестирования, если они обновляются за время сделки, а если нет - остаются прошлые мин и макс.
Попытка изменить ситуацию через флаг и условие (открыт ордер бай или сел && тикет ордера не равен сохраненному = новая сделка), но похоже, что флаг никогда не работает (видимо, условие не выполняется). Подскажите, почему, и что сделать, чтобы все-таки минимум и максимум считались за сделку, а не за всю историю тестирования.
Вы из торговой истории не найдёте мин и макс свечи на ктр.был выставлен ордер. Нужно смотреть когда был выставлен ордер и поэтому времени смотреть мин и Макс конкретной свечи. И у Вас пишется цена открытия ордера и закрытия ордера, а не свечи, так и должно быть?
У меня мин и макс пишется не по истории, а с момента открытия сделки. И нужно мин и макс не свечи, а локальный мин и макс со времени открытия сделки до ее закрытия. Проблема в том, что у меня переписывается этот мин и макс не по каждой сделке, а только если значения обновляются. Если не обновляются исторически - сохраняются предыдущие мин или макс. А мне надо сохранять и записывать данные по каждой сделке. Не знаю, может быть надо статические переменные минимума и максимума делать, а не глобальные. Попробую, может поможет. Но что-то я в это не верю.
У меня мин и макс пишется не по истории, а с момента открытия сделки. И нужно мин и макс не свечи, а локальный мин и макс со времени открытия сделки до ее закрытия. Проблема в том, что у меня переписывается этот мин и макс не по каждой сделке, а только если значения обновляются. Если не обновляются исторически - сохраняются предыдущие мин или макс. А мне надо сохранять и записывать данные по каждой сделке. Не знаю, может быть надо статические переменные минимума и максимума делать, а не глобальные. Попробую, может поможет. Но что-то я в это не верю.
Ну и в чём проблема? Всего-то по 2 функции для минимума и для максимума. CopyLow() и из полученного массива ArrayMinimum() Соответственно CopyHigh() и ArrayMaximum()
Для записи такого набора информации в файл лучше использовать структуру. На каждом баре писать новый High и новый Low в структуру, а когда ордер закрылся эту структуру писать в файл.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Друзья, никак не пойму, что не правильно.
Нужно, чтобы робот в тестере записывал в файл после каждой сделки время ее открытия, тип ордера, цену открытия, цену закрытия, Сл, ТП, а также минимум и максимум цены со времени открытия сделки до ее закрытия. Все пишется верно, но минимум и максимум фиксируются не за время сделки, а с начала тестирования, если они обновляются за время сделки, а если нет - остаются прошлые мин и макс.
Попытка изменить ситуацию через флаг и условие (открыт ордер бай или сел && тикет ордера не равен сохраненному = новая сделка), но похоже, что флаг никогда не работает (видимо, условие не выполняется). Подскажите, почему, и что сделать, чтобы все-таки минимум и максимум считались за сделку, а не за всю историю тестирования.