Скрипт запускается вручную. А вам нужен советник который будет следить за позициями этого символа.Такой вы не найдёте . Просто задача нестандартная, врядли кому нибудь это могло бы понадобиться.
Кто возьмётся написать такой советник за 3$ ?
bool Play=true; int r,ret,Orders_B=0,Orders_S=0; int init() { for( r=0;r<OrdersTotal();r++) // { if(OrderSelect(r,SELECT_BY_POS,MODE_TRADES)==false) continue; if(OrderSymbol()==Symbol()) { if (OrderType()==OP_BUY) Orders_B++; if (OrderType()==OP_SELL) Orders_S++; }} } int start() { if (Play==false) { Comment("Ничего не ждём"); return(0); } Comment("Ждём закрытия"); int B=0,S=0; //Проверим что имеем for( r=0;r<OrdersTotal();r++) // { if(OrderSelect(r,SELECT_BY_POS,MODE_TRADES)==false) continue; if(OrderSymbol()==Symbol()) { if (OrderType()==OP_BUY) B++; if (OrderType()==OP_SELL) S++; }} if (Orders_B>B) CloseALL(); if (Orders_S>S) CloseALL(); } //---------------- Функция ----------------------------------------- int Ord_Tot_Sym() { int O_T=0; for(int rr=0;rr<OrdersTotal();rr++) // { if(OrderSelect(rr,SELECT_BY_POS,MODE_TRADES)==false) continue; if(OrderSymbol()==Symbol()) { O_T++; }} if (O_T>0) return(1); else return(0); } //-------------- CloseAll -------------------------- int CloseALL() { int ic; while (Ord_Tot_Sym()>0) { RefreshRates(); for(ic=OrdersTotal()-1;ic>=0;ic--) { if(OrderSelect(ic,SELECT_BY_POS,MODE_TRADES)==false) continue; if (OrderSymbol()==Symbol()) { if (OrderType()==OP_BUY) { //RefreshRates(); ret=OrderClose(OrderTicket(),OrderLots(),Bid,0,CLR_NONE); if (IsTradeAllowed()) continue; else Sleep(1000); } if (OrderType()==OP_SELL) { //RefreshRates(); ret=OrderClose(OrderTicket(),OrderLots(),Ask,0,CLR_NONE); if (IsTradeAllowed()) continue; else Sleep(1000); }}} //--------- Закрыли все позиции теперь закроем все ордера ------------------------ for(ic=OrdersTotal()-1;ic>=0;ic--) { if(OrderSelect(ic,SELECT_BY_POS,MODE_TRADES)==false) continue; if (OrderSymbol()==Symbol()) { if (OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP || OrderType()==OP_BUYLIMIT || OrderType()==OP_SELLLIMIT) ret=OrderDelete(OrderTicket()); }} PlaySound("MsgBell.wav" ); Play=false; } return(0); }Попробуйте
Вы должны его установить после того как все ордера и позиции есть. Если после установки вы добавите позицию,то ничего не произойдёт. Так было в 1 посте.
А что у вас?
А что у вас?
Понял, сейчас попробую.
Я только что пробовал всё работает.

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Помогите найти скрипт, который закрывает все открытые позиции и отложенники при срабатывании ТП (например есть два отложенника и две открытые позиции, и когда по одному из них сработает ТП, то скрипт должен закрыть все ордера). Заранее благодарен!