//+------------------------------------------------------------------+ //| GoStopAndProfitVVP.mq4 | //| Вадим Полуян | //|ВЫСТАВЛЯЕМ СТОП И ПРОФИТ, ЗАТЕМ ИЗМЕНЯЕМ СТОП И ПРОФИТ. | //|Скользящие Стоп и Профит, | //|Вы выставляете ордер вручную, а советник тут же выставляет | //|Стоп и Профит (если вы это разрешили), затем если позиция идет | //|в "плюс" то Стоп уменьшается (если позиция уйдет резко | //|в "минус" - получим меньший убыток); если же позиция идет | //|в "Минус", то Профит уменьшается (на случай если будет небольшое | //|движение в "полюс" есть вероятность получить хоть какую то прибыль| //+------------------------------------------------------------------+ #property copyright "Вадим Полуян" #property link "" bool result; double stop_loss,take_profit,point; int cmd,total,error; extern int TrailingStop = 400; extern int TrailingProfit = 400; extern int GoStop = 1;// если "1" то двигаем стоп, если "0" то не двигаем. extern int GoProfit = 1;// если "1" то двигаем, если "0" то не двигаем. //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- total=OrdersTotal(); //Print("total",total); point=MarketInfo(Symbol(),MODE_POINT); //---- for(int i=0; i= 1) { if(cmd==OP_BUY) { if((OrderStopLoss()< Ask-point*TrailingStop)||(OrderStopLoss()==0)) stop_loss=Ask-TrailingStop*point; } else { if((OrderStopLoss()> Bid+point*TrailingStop)||(OrderStopLoss()==0)) stop_loss=Bid+TrailingStop*point; } } if (GoProfit >= 1) { if(cmd==OP_BUY) { if((OrderTakeProfit()>Ask+(point*TrailingProfit))||(OrderTakeProfit()==0)) take_profit=Ask+(TrailingProfit*point); } else { if((OrderTakeProfit()