Как выявить из истории позиций какие позиции остались открытыми на момент закрытия конкретной позиции.
1. берите дату закрытия ордера Х
2. Затем выбирайте ордера, которые был открыты ранее даты Х, но закрыты позже даты Х.
sergeev:
1. берите дату закрытия ордера Х
2. Затем выбирайте ордера, которые был открыты ранее даты Х, но закрыты позже даты Х.
Проверочный скрипт, надеюсь что правильно написал.
int i,x; datetime OrdCloseTime, OrdOpenTime2, OrdCloseTime2; //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start() { //---- for( i = 0; i < OrdersHistoryTotal(); i++ ){ if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) { if (OrderType()==OP_BUY || OrderType()==OP_SELL) { OrdCloseTime = OrderCloseTime(); Print("===== Positions: ",OrderTicket()); for( x = 0; x < OrdersHistoryTotal(); x++ ){ if (OrderSelect(x, SELECT_BY_POS, MODE_HISTORY)) { if (OrderType()==OP_BUY || OrderType()==OP_SELL) { if (OrderOpenTime() < OrdCloseTime && OrderCloseTime() > OrdCloseTime){ Print(OrderTicket(),";",TimeToStr(OrderOpenTime(),TIME_DATE|TIME_MINUTES),";",OrderType(),";", OrderLots(),";",OrderSymbol(),";",OrderOpenPrice(),";",OrderStopLoss(),";",OrderTakeProfit(),";",TimeToStr(OrderCloseTime(),TIME_DATE|TIME_MINUTES),";"); } } } } for( x = 0; x < OrdersTotal(); x++ ){ if (OrderSelect(x, SELECT_BY_POS, MODE_TRADES)) { if (OrderType()==OP_BUY || OrderType()==OP_SELL) { if (OrderOpenTime() < OrdCloseTime){ Print(OrderTicket(),";",TimeToStr(OrderOpenTime(),TIME_DATE|TIME_MINUTES),";",OrderType(),";", OrderLots(),";",OrderSymbol(),";",OrderOpenPrice(),";",OrderStopLoss(),";",OrderTakeProfit(),";"); } } } } } } } //---- return(0); }
Всё оказалось проще, чем я думал изначально. Спасибо sergeev

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Суть задачи такова. Нужно из истории закрытых позиций, выявить какие позиции остались открытыми на момент закрытия позиций.
Условие такое.
1. Имеем закрытую позицию в истории. (Знаем время открытия, время закрытия)
2. Во время закрытия позиции осталось несколько открытых ордеров в рынке. (Знаем время открытия)
3. Некоторые позиции были открыты по времени ранее чем была открыта закрытая конкретная позиция, а некоторые открыты позже.
4. Некоторые позиции из открытых ранее чем конкретная закрытая позиция были закрыты, а так же были закрыты несколько позиций открытых позже чем конкретная позиция.
Как выявить из истории позиций какие позиции остались открытыми на момент закрытия конкретной позиции.
Всю голову сломал уже, помогите кто понял суть вопроса.