Для вставки кода используйте кнопку SRC
И Вы принципиально фигурные скобки не ставите?
extern double lot=0.1; extern int MagicNumber=007; extern int TP=200; extern int SL=50; extern int Tral_dist=50; extern int Shag=40; extern int MA_Period=20; extern bool Use_shag=false; extern bool Use_bezubitok=false; int start() { //================ double tp,sl; if (Digits==3||Digits==5) {tp=TP*10*Point; sl=SL*10*Point;} else if (Digits==2||Digits==4) {tp=TP*Point; sl=SL*Point;} double MA=iMA(Symbol(),0,MA_Period,0,MODE_SMA,PRICE_CLOSE,0); if (OrdersTotal()==0) { //================Условия открытия ордеров====================================== if (Close[1]>MA&&Volume[0]<2) OrderSend(Symbol(),OP_BUY,lot,Ask,20,Ask-sl,Ask+tp,NULL,MagicNumber,0,CLR_NONE); else if (Close[1]<MA&&Volume[0]<2) OrderSend(Symbol(),OP_SELL,lot,Bid,20,Bid+sl,Bid-tp,NULL,MagicNumber,0,CLR_NONE); } //=============================Вызов Трэйлинг Стопа==================================================================== if (OrdersTotal()>0) Trailing_stop (MagicNumber,Symbol(),Tral_dist, Shag, Use_shag, Use_bezubitok); { double dist, shag; if(Digits==3||Digits==5) {dist=Tral_dist*10*Point; shag=Shag*10*Point;} else if (Digits==2||Digits==4) {dist=Tral_dist*Point;shag=Shag*Point;} for (int pos=0; pos<OrdersTotal(); pos++) { OrderSelect(pos, SELECT_BY_POS,MODE_TRADES); if (OrderMagicNumber()==MagicNumber && OrderSymbol()== Symbol()) { if(OrderType()==OP_BUY) { if(!Use_shag&&!Use_bezubitok&&NormalizeDouble(Ask-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits)) OrderModify(OrderTicket(),0,Ask-dist,OrderTakeProfit(),0,CLR_NONE); if(Use_shag&&!Use_bezubitok&&NormalizeDouble(Ask-OrderOpenPrice(),Digits)>=NormalizeDouble(shag,Digits)&& NormalizeDouble(Ask-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits)) OrderModify(OrderTicket(),0,Ask-dist,OrderTakeProfit(),0,CLR_NONE); if(!Use_shag&&Use_bezubitok&&NormalizeDouble(OrderStopLoss(),Digits)<NormalizeDouble(OrderOpenPrice(),Digits)&& NormalizeDouble(Ask-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits)) OrderModify(OrderTicket(),0,Ask-dist,OrderTakeProfit(),0,CLR_NONE); if(Use_shag&&Use_bezubitok&&NormalizeDouble(Ask-OrderOpenPrice(),Digits)>=NormalizeDouble(shag,Digits)&& NormalizeDouble(OrderStopLoss(),Digits)<NormalizeDouble(OrderOpenPrice(),Digits)&& NormalizeDouble(Ask-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits)) OrderModify(OrderTicket(),0,Ask-dist,OrderTakeProfit(),0,CLR_NONE); } else if (OrderType()==OP_SELL) { if(!Use_shag&&!Use_bezubitok&&NormalizeDouble(OrderStopLoss()-Bid,Digits)>NormalizeDouble(dist,Digits)) OrderModify(OrderTicket(),0,Bid+dist,OrderTakeProfit(),0,CLR_NONE); if(Use_shag&&!Use_bezubitok&&NormalizeDouble(OrderOpenPrice()-Bid,Digits)>=NormalizeDouble(shag,Digits)&& NormalizeDouble(OrderStopLoss()-Bid,Digits)>NormalizeDouble(dist,Digits) OrderModify(OrderTicket(),0,Bid+dist,OrderTakeProfit(),0,CLR_NONE); if(!Use_shag&&Use_bezubitok&&NormalizeDouble(OrderStopLoss(),Digits)>NormalizeDouble(OrderOpenPrice(),Digits)&& NormalizeDouble(OrderStopLoss()-Bid,Digits)>NormalizeDouble(dist,Digits)) OrderModify(OrderTicket(),0,Bid+dist,OrderTakeProfit(),0,CLR_NONE); if(Use_shag&&Use_bezubitok&&NormalizeDouble(OrderOpenPrice()-Bid,Digits)>=NormalizeDouble(shag,Digits)&& NormalizeDouble(OrderStopLoss(),Digits)>NormalizeDouble(OrderOpenPrice(),Digits)&& NormalizeDouble(OrderStopLoss()-Bid,Digits)>NormalizeDouble(dist,Digits)) OrderModify(OrderTicket(),0,Bid+dist,OrderTakeProfit(),0,CLR_NONE); } } } } return(0); } //+------------------------------------------------------------------+
А где Вы имеете ввиду фигурные скобки? Я просто не могу найти эту брешь!
Это не брешь, это треш...
Расставляйте скобки так:
{ { { { } } } }
и тогда станет понятно какая скобка и где пропущена.
ktest0:
Это не брешь, это треш...
Расставляйте скобки так:
и тогда станет понятно какая скобка и где пропущена.
Пропущена была круглая скобка и одна фигурная не там стояла
Не совсем понятна вот эта конструкция
if (Digits==3||Digits==5) {tp=TP*10*Point; sl=SL*10*Point;} else if (Digits==2||Digits==4) {tp=TP*Point; sl=SL*Point;}
Зачем такое городить то?
Перевод на русский:
if - если
(Digits==3||Digits==5){tp=TP*10*Point; sl=SL*10*Point;}
else - в любом другом случае:
if - если:
(Digits==2||Digits==4) {tp=TP*Point; sl=SL*Point;}
Кроме того здесь же и логическая ошибка. На мой взгляд. Наверно хотели сделать так
if (Digits==5) {tp=TP*10*Point; sl=SL*10*Point;} else {tp=TP*Point; sl=SL*Point;}Ну и далее косяков достаточно. Вызов функции трала откуда происходит? Само тело трала оформлено под отдельную функцию вроде, а сам вызов где? И почему отдельная функция не обьявлена (double, int, void, bool или по другому) и вмонтирована в тело функции старт?
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Идея советника в пересечении ценой средней СМА, после чего начинает работу трал