Ребята помогите завершить код. Хочу закрыть ордер не по стоп лоссу а по цене. Т.е. я установил пороги, а они не срабатывают. В чем проблема не понимаю.

 

Ребята помогите завершить простой советник. Хочу закрыть ордер не по стоп лоссу а по цене. Т.е. я установил минимальные пороги, а они не срабатывают. Почему...


extern int R1 =200; //- ограничение на прибыль тейк профит
extern int R2 =200; //- ограничение убыток стоплосс
extern double Klot=3; //-Величина проскальзывания
double Lots =0.1;

int t;

int init()
{

}
int start()
{

int a=OrdersTotal();
Alert(a+"-всего ордеров висит");   

if(OrdersTotal()==0)
{
int ticket=OrderSend(Symbol (),OP_BUY,Lots,Ask,Klot,Ask-R2*Point,Ask+R1*Point,"Повышение",NULL,Green);
Alert (ticket+"тиккет ордера");     

double t =OrderProfit();
Alert(t+" - это значение ордера +/-");

                if (t<-10)//- ордер закрылся в убыток, значит закрываем ордер при-5
                  {
                   //тут должны закрыть ордер  так как он убыточен
                            
                    bool r= OrderClose (ticket,Lots,NULL,NULL,NULL);
                  Alert (r+" =1=1 Ордер закрыт с убытком");
                  }
                  
                if ( t>15 )//- прибыль ограничиваем 10 требуется заменить переменной
                  {
                   //тут закрываем ордер с прибылью  
                 
                  bool q = OrderClose(ticket,Lots,NULL,NULL,NULL);
                  Alert (q+" =1=1 Ордер закрыт с прибылью");
                  }
                                
 }
 return(0);
 }
 
pruslan1:

Ребята помогите завершить простой советник. Хочу закрыть ордер не по стоп лоссу а по цене. Т.е. я установил минимальные пороги, а они не срабатывают. Почему..


надо примерно так (пример для закрытия sell) Вместо ........ подставите свой убыток

if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
 
       
         if(OrderType()==OP_SELL  && Ask>OrderOpenPrice()+ ........ )
      
         OrderClose(OrderTicket(),OrderLots(),Ask,Sleepage,Yellow);
         
 
Sleepage не проходит)  Буду разбираться)))