extern int RR = 10; extern int sl = 25; void OnTick() { if(OrdersTotal() == 0) { int buyticket = OrderSend(_Symbol,OP_BUY,1,Ask,3,Ask - (25*_Point),0,"Manager",3,0,clrGreen); //test position double buy_partial_level = OrderOpenPrice()+(sl*RR*_Point); double sell_partial_level = OrderOpenPrice()+(sl*RR*_Point); Partial(buy_partial_level); Print("",buy_partial_level); } } void Partial(double qpartial_level) { if(OrdersTotal()) { if(!OrderSelect(0,SELECT_BY_POS,MODE_TRADES)) {Print("unable to select an order");} if(OrderType() == OP_BUY && Bid > qpartial_level) { if(!OrderClose(OrderTicket(),OrderLots()/2,Bid,3,clrRed)) {Print("failure to close the order");} } else if(OrderType() == OP_SELL && Ask < qpartial_level) { if(!OrderClose(OrderTicket(),OrderLots()/2,Ask,3,clrRed)) {Print("failure to close the order");} } } }