Советник прибыль как бы и приносит, но т.к. в нем нету стоп лосса то в конце концов сливает все.
Файлы:
avto_zigzag.mq4
4 kb
- Добавить стоп лосс к советнику MACD
- Трейлинг Стоп если Стоп Лосс в убыточной области.
- Помогите пожалуйста добавить стоп лосс в советник.
//+------------------------------------------------------------------+ //| 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); }
Спасибо. Теперь он начал работать более правдоподобно. Прям как я в реале.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь