Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
соовтесвенно будет так ?
Если нужно открыть следующий ордер в той же серии, то индекс серии не нужно инкрементировать, только индекс ордера. К примеру, первый ордер в серии с индексом 0:
Второй ордер этой серии:
Первый ордер следующей серии:
Второй ордер серии с индексом 1:
Если нужно открыть следующий ордер в той же серии, то индекс серии не нужно инкрементировать, только индекс ордера. К примеру, первый ордер в серии с индексом 0:
Второй ордер этой серии:
Первый ордер следующей серии:
Второй ордер серии с индексом 1:
Спасибо !
все получается теперь более изящно !
Спасибо !
все получается теперь более изящно !
Пожалуйста.
Если потребуется, могу еще представить вариант с упаковкой в Magic Number времени открытия серии (наряду ID и индексом ордера). Правда, такой вариант более труден в понимании, т. к. там используются побитовые операции.
Пожалуйста.
Если потребуется, могу еще представить вариант с упаковкой в Magic Number времени открытия серии (наряду ID и индексом ордера). Правда, такой вариант более труден в понимании, т. к. там используются побитовые операции.
Спасибо ! пока не надо . простота текущого решения устраивает. но если время откртыия понадобится то обращусь !
Причину закрытия ордера можно определить вот так:
enum ENUM_CLOSE_REASON { CLOSE_REASON_NONE, // Не удалось определить причину закрытия CLOSE_REASON_BY_SL, // Закрытие ордера по стопу CLOSE_REASON_BY_TP, // Закрытие ордера по профиту CLOSE_REASON_MARKET_PROFIT, // Закрытие ордера по рынку в прибыль CLOSE_REASON_MARKET_LOSS // Закрытие ордера по рынку в убыток }; ENUM_CLOSE_REASON GetOrderCloseReason(int ticket) { if (!OrderSelect(ticket, SELECT_BY_TICKET) || OrderCloseTime() == 0 || (OrderType() != OP_BUY && OrderType() != OP_SELL)) return CLOSE_REASON_NONE; if (OrderType() == OP_BUY) { if (OrderTakeProfit() > 0.0 && OrderClosePrice() - OrderTakeProfit() > -DBL_EPSILON) return CLOSE_REASON_BY_TP; if (OrderStopLoss() > 0.0 && OrderStopLoss() - OrderClosePrice() > -DBL_EPSILON) return CLOSE_REASON_BY_SL; } if (OrderType() == OP_SELL) { if (OrderTakeProfit() > 0.0 && OrderTakeProfit() - OrderClosePrice() > -DBL_EPSILON) return CLOSE_REASON_BY_TP; if (OrderStopLoss() > 0.0 && OrderClosePrice() - OrderStopLoss() > -DBL_EPSILON) return CLOSE_REASON_BY_SL; } // Ордер закрыт по рынку if (OrderProfit() + OrderSwap() + OrderCommission() >= 0.0) return CLOSE_REASON_MARKET_PROFIT; return CLOSE_REASON_MARKET_LOSS; }По ходу, здесь что-то не то. DBL_EPSILON должен быть со знаком +.