Всем трейдерам привет, вот написал небольшой скрипт для закрытия отложенного ордера
Условие простое.
вводятся 2 тикета. Первый ордер открытой позиции 2 тикет отложенного ордера. Из истории выбирается ордер каждый тик и если цена закрытия меньше или равна тейкпрофиту -30 пунктов то снимается отложенный ордер.
Проблема втом что наблюдал что первый ордер ещо не закрыт а значит по логике он в Историю ещо не попал а отложенный ордер закрывается при выполнении условия. С моей точьки зрения чтото не так при выборе ордера из истории.
Что понимаю не так?
Выбор ордера по тикету не зависит от места его нахождения, в истории или в рынке. В этом случае надо проверять дополнительно время закрытия ордера. Если == 0, то ордер в рынке.
Выбор ордера по тикету не зависит от места его нахождения, в истории или в рынке. В этом случае надо проверять дополнительно время закрытия ордера. Если == 0, то ордер в рынке.
Спасибо за подсказку
Алексей спасибо. Вот на базе выше сказанного написал вот этот блок. Работает безотказно.
//--------------------------проверка на наличир Отложки на ТП if(ticketBuy1>0 /*&& BuyCountStop()==Buy_Lots*/)// ордер на покупку открыт { if(OrderSelect(ticketBuy1, SELECT_BY_TICKET)==true && OrderCloseTime()!=0) //Выбераю ордер из истории по номеру тикета { //if(OrderClosePrice() >= (OrderTakeProfit() - (10*Point))) if(OrderOpenPrice() > OrderTakeProfit() /*- (10*Point))*/) { bool chek=OrderDelete(ticketSELL2);// Udalenie otloxennogo ordera Comment(chek," ",GetLastError()); if(chek) {ticketBuy1=0;ticketSELL2=0;} }//-- удаление ордера по тикету } } //------------------------------ if(ticketSell1>0 /*&& SellCountStop()==Sell_Lots*/)// ордер на покупку открыт { if(OrderSelect(ticketSell1, SELECT_BY_TICKET)==true && OrderCloseTime()!=0) //Выбераю ордер из истории по номеру тикета { //if(OrderClosePrice() >= (OrderTakeProfit() - (10*Point))) if(OrderOpenPrice() < OrderTakeProfit() /*- (10*Point))*/) { bool chek=OrderDelete(ticketBuy2);// Udalenie otloxennogo ordera Comment(chek," ",GetLastError()); if(chek) {ticketBuy2=0;ticketSell1=0;} }//-- удаление ордера по тикету } } //------------------------------
Теперь мне нужно понять как на базе данного модуля можно открывать позицию после закрытия отложенного ордера.
Суть в следующем.
Если отложенный ордер небыл снят а начал торговатся то установить ещо один отложенный ордер.
С установлением отложенных ордеров проблем нет. Хочю понять условие при котором можно проверить торгуется ли отложенный ордер или он был снят
Алексей спасибо. Вот на базе выше сказанного написал вот этот блок. Работает безотказно.
Теперь мне нужно понять как на базе данного модуля можно открывать позицию после закрытия отложенного ордера.
Суть в следующем.
Если отложенный ордер небыл снят а начал торговатся то установить ещо один отложенный ордер.
С установлением отложенных ордеров проблем нет. Хочю понять условие при котором можно проверить торгуется ли отложенный ордер или он был снят
Просто проверить тип ордера.
Просто проверить тип ордера.
У меня в наличии есть тикет отложенного ордера. Я его могу проверитя Но не знаю по какому признаку определить торгуется ли ордер или нет
После того как ордер выбран (OrderSelect) определите его тип, вызвав OrderType(). Далее в зависимости от того какой тип возвратил OrderType() :
если OrderType() возвратил тип отложенного ордера (и далее ваши условия) - удаляете отложку,
если OrderType() возвратил тип рыночного (и далее ваши условия) - открываете нужную позицию.
После того как ордер выбран (OrderSelect) определите его тип, вызвав OrderType(). Далее в зависимости от того какой тип возвратил OrderType() :
если OrderType() возвратил тип отложенного ордера (и далее ваши условия) - удаляете отложку,
если OrderType() возвратил тип рыночного (и далее ваши условия) - открываете нужную позицию.
Сергей спасибо за разьяснения, буду писать сейчас блок.
Кстати если планируете чтобы скрипт постоянно проверял наличие отложки, то его необходимо зациклить, либо перекладывайте ваш код в эксперта.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Условие простое.
вводятся 2 тикета. Первый ордер открытой позиции 2 тикет отложенного ордера. Из истории выбирается ордер каждый тик и если цена закрытия меньше или равна тейкпрофиту -30 пунктов то снимается отложенный ордер.
Проблема втом что наблюдал что первый ордер ещо не закрыт а значит по логике он в Историю ещо не попал а отложенный ордер закрывается при выполнении условия. С моей точьки зрения чтото не так при выборе ордера из истории.
Что понимаю не так?