Как выбрать ордер по magic?
и удалить по magic?
void CloseAllOrders() { for (int k=OrdersTotal()-1;k>=0;k--) { RefreshRates(); if (OrderSelect(k,SELECT_BY_POS,MODE_TRADES)==true&&OrderMagicNumber()==MAGIK) { int cmd=OrderType(); if(cmd>1) { OrderDelete(OrderTicket()); } if (cmd==OP_BUY) { OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID),MarketInfo(OrderSymbol(),MODE_DIGITS)),Slippage); } if (cmd==OP_SELL) { OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_ASK),MarketInfo(OrderSymbol(),MODE_DIGITS)),Slippage); } } } }
спасибо буду пробовать внедрить код.
Здравствуйте. Есть проблемка небольшая. Пробовал прикрутить данный фрагмент кода к своему случаю, но что-то никак не хочет работать. Есть 2 противоположно направленных отложенных ордера, у каждого свои TP, но если открылись оба, то как убрать TP с них чтоб получился лок без TP и SL ? Пробовал сделать как в коде приведенном ниже, но не работает. В старой версии компилятора я использовал готовые шаблоны с фкнуциями , которые проверяли есть ли бай, есть ли селл, есть ли отложка и присваивали переменным какие-то значения и потом использовал эти переменные дальше в коде, в новом компиляторе такой вариант не проходит , ищу новое решение такой задачи. Подводя итог , как из списка открытых и отложенных ордеров выбрать несколько, которые нужно изменить, если соблюдаются определенные условия, в данном конкретном случае условие такое что нужно выбрать 2 сработавших разнонаправленных ордера убрать у них TP.
Причем желательно чтоб проверка была не только когда tip==2 а когда tip==3 и tip==4 тоже, так как кроме открытого лока могут присутствовать еще отложенные ордера, соответственно одновременно может быть от 1 до 4 типов ордеров из которых нужно выбрать только 2 открытых противоположно направленных
for(int k=OrdersTotal()-1;k>=0;k--)
{
RefreshRates();
if(OrderSelect(k,SELECT_BY_POS,MODE_TRADES)==true)
{
int tip=OrderType();
if(tip==2)
{
if(tip==OP_BUY)
{
bool check=OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),0,0,clrNONE);
}
if(tip==OP_SELL )
{
bool check=OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),0,0,clrNONE);
}
}
}
}
Здравствуйте. Есть проблемка небольшая. Пробовал прикрутить данный фрагмент кода к своему случаю, но что-то никак не хочет работать. Есть 2 противоположно направленных отложенных ордера, у каждого свои TP, но если открылись оба, то как убрать TP с них чтоб получился лок без TP и SL ? Пробовал сделать как в коде приведенном ниже, но не работает. В старой версии компилятора я использовал готовые шаблоны с фкнуциями , которые проверяли есть ли бай, есть ли селл, есть ли отложка и присваивали переменным какие-то значения и потом использовал эти переменные дальше в коде, в новом компиляторе такой вариант не проходит , ищу новое решение такой задачи. Подводя итог , как из списка открытых и отложенных ордеров выбрать несколько, которые нужно изменить, если соблюдаются определенные условия, в данном конкретном случае условие такое что нужно выбрать 2 сработавших разнонаправленных ордера
и убрать у них TP
for(int k=OrdersTotal()-1;k>=0;k--) { RefreshRates(); if(OrderSelect(k,SELECT_BY_POS,MODE_TRADES)==true) { int tip=OrderType(); if(tip>1) { if(tip==OP_BUY) { bool check=OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),0,0,clrNONE); } if(tip==OP_SELL ) { bool check=OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),0,0,clrNONE); } } } }
Если почитаешь документацию, то поймёшь что типы > 1 это отложенные ордера
OP_BUY |
0 |
Покупка |
OP_SELL |
1 |
Продажа |
OP_BUYLIMIT |
2 |
Отложенный ордер BUY LIMIT |
OP_SELLLIMIT |
3 |
Отложенный ордер SELL LIMIT |
OP_BUYSTOP |
4 |
Отложенный ордер BUY STOP |
OP_SELLSTOP |
5 |
Отложенный ордер SELL STOP |
И пользуйся кнопкой SRC при вставки кода. Расположена чуть выше окна ввода текста.
- docs.mql4.com
Если почитаешь документацию, то поймёшь что типы > 1 это отложенные ордера
OP_BUY |
0 |
Покупка |
OP_SELL |
1 |
Продажа |
OP_BUYLIMIT |
2 |
Отложенный ордер BUY LIMIT |
OP_SELLLIMIT |
3 |
Отложенный ордер SELL LIMIT |
OP_BUYSTOP |
4 |
Отложенный ордер BUY STOP |
OP_SELLSTOP |
5 |
Отложенный ордер SELL STOP |
И пользуйся кнопкой SRC при вставки кода. Расположена чуть выше окна ввода текста.
Ах вот оно что ) ясно, но все-равно вопрос остается в силе, там сверху подредактировал сообщение, 3 дня пытаюсь понять как сделать такую выборку, но никак не выходит
Может поможет, здесь есть всё, ну или почти всё
- 2011.02.18
- www.mql5.com
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
и удалить по magic?