ну если вопрос звучит так, то:
bool isCloseLastPosByTAKEPROFIT(string sy="", int op=-1, int mn=-1) {
datetime t;
double ocp, osl;
int dg, i, j=-1, k=OrdersHistoryTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderCloseTime()) {
t=OrderCloseTime();
j=i;
}
}
}
}
}
}
}
if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
ocp=NormalizeDouble(OrderClosePrice(), dg);
osl=NormalizeDouble(OrderTakeProfit(), dg);
if ((OrderProfit()>0 || osl==ocp) ) return(True);
}
return(False);
}
в MT4 выставлено два ордера, как сделать так, чтобы если 1 ордер сработал и взял профит то второй ордер автоматически удалился? если профита нет, то остался
если ордера однонаправленные, то через запоминание тикета ордера.
если разнонаправленные - то можно обойтись разделением через тип ордера.
если система упрощенная, то можно двум ордерам давать разные маджики.
короче вариантов много - выбирайте под свою задачу.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
в MT4 выставлено два ордера, как сделать так, чтобы если 1 ордер сработал и взял профит то второй ордер автоматически удалился? если профита нет, то остался