//################################################################# //################################################################# double TrailingStop=20; //################################################################# //################################################################# int start(){ //################################################################# //################################################################# double Point_Info= MarketInfo(Symbol(),MODE_POINT); double Digit_Info= MarketInfo(Symbol(),MODE_DIGITS); double Stop_Info= MarketInfo(Symbol(),MODE_STOPLEVEL); int Slippage= MarketInfo(Symbol(),MODE_SPREAD); //################################################################# //################################################################# //#---Normalize Prices: double Ask_Norm=NormalizeDouble(Ask,Digit_Info); double Bid_Norm=NormalizeDouble(Bid,Digit_Info); //################################################################# //################################################################# static int Ticket; if(OrderSelect(Ticket,SELECT_BY_TICKET)==true){ for(int a=0;a<=Bars;a++){ int Bar_Time=Time[a]; if(Bar_Time<=OrderOpenTime()){int End_Bar=a;break;} } } //################################################################# //################################################################# double Minute1_Highest=High[iHighest(NULL,1,MODE_HIGH,End_Bar,0)]; double Highest_Norm=NormalizeDouble(Minute1_Highest,Digit_Info); double Minute1_Lowest=High[iLowest(NULL,1,MODE_LOW,End_Bar,0)]; double Lowest_Norm=NormalizeDouble(Minute1_Lowest,Digit_Info); double Dynamic_Stop_Buy=Highest_Norm-(TrailingStop*Point_Info); double Dynamic_Stop_Sell=Lowest_Norm+(TrailingStop*Point_Info); //################################################################# //################################################################# if(OrderType()==OP_BUY){ if(OrderStopLoss()!=Dynamic_Stop_Buy){ if(OrderStopLoss()==0 || Dynamic_Stop_Buy > OrderStopLoss()){ if(Bid_Norm > Dynamic_Stop_Buy+(Stop_Info*Point_Info)){ OrderModify(Ticket,OrderOpenPrice(),Dynamic_Stop_Buy, OrderTakeProfit(),0,Green); } } } } //################################################################# //################################################################# if(OrderType()==OP_SELL){ if(OrderStopLoss()!=Dynamic_Stop_Sell){ if(OrderStopLoss()==0 || Dynamic_Stop_Sell < OrderStopLoss()){ if(Ask_Norm < Dynamic_Stop_Sell-(Stop_Info*Point_Info)){ OrderModify(Ticket,OrderOpenPrice(),Dynamic_Stop_Sell, OrderTakeProfit(),0,Red); } } } } //################################################################# //################################################################# if(OrdersTotal()<1){ Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask_Norm,Slippage,0,0, "James_Bond",007,0,Green); /*Ticket=OrderSend(Symbol(),OP_SELL,0.1,Bid_Norm,Slippage,0,0, "James_Bond",007,0,Red);*/ } //################################################################# //################################################################# return(0);} //################################################################# //#################################################################