Нужно добавить стоп лосс в советник.

[Удален]  
Советник прибыль как бы и приносит, но т.к. в нем нету стоп лосса то в конце концов сливает все.
Файлы:
 
//+------------------------------------------------------------------+
//| ExpertZigZag.mq4 |
//| Copyright © 2006, Sw |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, Sw"
#property link "sw76t@narod.ru"
#define MAGIC 240406

//---- input parameters
extern int StopLoss=100;
extern int ExtDepth=13;
extern int ExtDeviation=5;
extern int ExtBackstep=3;
extern double Lots=0.1;
extern string Symb="*";
extern int TimeFrame=0;

int i,STP,UD,UDP,TF,DG,MN,PNT;
string SMB;
//+------------------------------------------------------------------+
//| фуккция инициализации эксперта |||||||||||||||||||||||||||||||||||
//+------------------------------------------------------------------+
int init()
{
 if(Symb=="*") SMB=Symbol(); else SMB=Symb;
 if(TimeFrame==0) TF=Period(); else TF=TimeFrame;
 DG=MarketInfo(SMB,MODE_DIGITS);
 MN=MAGIC+TF;
 PNT=MarketInfo(SMB,MODE_POINT);
 STP=MarketInfo(SMB,MODE_STOPLEVEL)*PNT;
 UDP=0;
 return(0);
}
//+------------------------------------------------------------------+
//| фуккция деинициализации эксперта |||||||||||||||||||||||||||||||||
//+------------------------------------------------------------------+
int deinit() { return(0); }
//+------------------------------------------------------------------+
//| основная функция |||||||||||||||||||||||||||||||||||||||||||||||||
//+------------------------------------------------------------------+
int start()
{
 double zc,zp,zcn,zpn,CO,PR;
 bool f;

 for(f=true,i=2;i<Bars;i++)
 {
 zp=iCustom(SMB,TF,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,i);
 if(zp>0) { if(f) { f=false; zc=zp; } else break; }
 }
 if(zp<zc)  
 {
 UD=OP_SELLSTOP;
 PR=NormalizeDouble((zc-zp)/10,DG);
 CO=NormalizeDouble((zp+zc)/2.0+PR,DG);
 } else
 if(zp>zc)
 {
 UD=OP_BUYSTOP;
 PR=NormalizeDouble((zp-zc)/10,DG);
 CO=NormalizeDouble((zp+zc)/2.0-PR,DG);
 } else return(0);
 if(PR<10*PNT) return(0);
for(i=0;i<OrdersTotal();i++)
{
 OrderSelect(i,SELECT_BY_POS);
 if(OrderSymbol()!=SMB || OrderMagicNumber()!=MN) continue;
 if(OrderType()==OP_BUY) continue;

 if(OrderType()==OP_SELL) continue;

 if(OrderType()==OP_BUYSTOP)
 {
 if(UD==OP_SELLSTOP) OrderDelete(OrderTicket()); else
 if(OrderOpenPrice()!=CO) OrderModify(OrderTicket(),CO,0,CO+PR,0,CLR_NONE);
 return(0);
 }
 if(OrderType()==OP_SELLSTOP)
 {
 if(UD==OP_BUYSTOP) OrderDelete(OrderTicket()); else
 if(OrderOpenPrice()!=CO) OrderModify(OrderTicket(),CO,0,CO-PR,0,CLR_NONE);
 return(0);
 }
}
 for(f=true,i=0;i<Bars;i++)// опред. 2-й зигзаг
 {
 zpn=iCustom(SMB,TF,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,0);
 if(zpn>0) { if(f) { f=false; zcn=zpn; } else break; }
 }
 if(zpn<=0) {zcn=zc; zpn=zp;}
 if(UD==OP_BUYSTOP && UDP!=OP_BUYSTOP && zcn<CO)  
 {
 if(CO-MarketInfo(SMB,MODE_ASK)<STP) return(0);
 OrderSend(SMB,OP_BUYSTOP,Lots,CO,3,
 CO-(StopLoss)*Point,CO+PR,NULL,MN,0,Red);
 UDP=UD;
 } else
 if(UD==OP_SELLSTOP && UDP!=OP_SELLSTOP && zcn>CO)
 {
 if(MarketInfo(SMB,MODE_BID)-CO<STP) return(0);
 OrderSend(SMB,OP_SELLSTOP,Lots,CO,3,
 CO+StopLoss*Point,CO-PR,NULL,MN,0,Blue);
 UDP=UD;
 }
 Print(" zp=",zp," zc=",zc," zpn=",zpn," zcn=",zcn," CO=",CO);
return(0);
}
[Удален]  
Спасибо. Теперь он начал работать более правдоподобно. Прям как я в реале.