Поищите в функциях, что то подобное там было.
- www.mql5.com
Спасибо. искал конечно же там но что то не нашел...
в вашем же случае будет ошибка так как ордера с номером OrdersTotal() не существует. последний это OrdersTotal()-1
Ни разу так не писал, но дату можно описать и так: D 'нужная дата'
Ни разу так не писал, но дату можно описать и так: D 'нужная дата'
Если же нужно отобрать сегодняшние ордера без привязки к конкретной дате, то это делается так:
datetime dayStartTime = iTime(NULL, PERIOD_D1, 0); for (int i = OrdersTotal() - 1; i >= 0; i--) { if (!OrderSelect(i, SELECT_BY_POS)) continue; if (OrderOpenTime() < dayStartTime) continue; // Вот он - ордер, открытый сегодня }
здесь надо писать так: for(int i=1; i<OrdersTotal(); i++) , а ещё лучше так: for(int i=OrdersTotal()-1; i>=0; i--)
в вашем же случае будет ошибка так как ордера с номером OrdersTotal() не существует. последний это OrdersTotal()-1
Ни разу так не писал, но дату можно описать и так: D 'нужная дата'
Нет, не так. Таким образом вы один ордер пропускаете - тот, что в нулевой ячейке массива. Нужно так:
for(int i=0; i<OrdersTotal(); i++) {}
Но лучше с конца - удалённые и закрытые не будете терять в цикле.
Нет, не так. Таким образом вы один ордер пропускаете - тот, что в нулевой ячейке массива. Нужно так:
for(int i=0; i<OrdersTotal(); i++) {}
Но лучше с конца - удалённые и закрытые не будете терять в цикле.
Если же нужно отобрать сегодняшние ордера без привязки к конкретной дате, то это делается так:
datetime dayStartTime = iTime(NULL, PERIOD_D1, 0);
Так есть опасность получить старые данные, если график Д1 не открыт (и проверка не вызывается каждый тик).
Лучше от TimeCurrent отбросить время, оставив только дату (TimeToStr + StrToTime).
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Помогите отобрать сегодняшние ордера и просумировать профиты. Не могу Понять как сравнить стринговую величину. Спасибо.
void OnTick()