// Hedge Hog.mq4 // Ñîâåòíèê /*  íà÷àëå ÷àñà StartHour îòêðûâàþòñÿ 1 îðäåð BUY è 1 îðäåð SELL ExpirationDays: âðåìÿ æèçíè îðäåðà â äíÿõ TimeZoneOfData: âðåìÿ äèëåðà ìèíóñ âðåìÿ ïî Ãðèíâè÷ó (äëÿ Alpari = 1, äëÿ FXTeam = 2, äëÿ FIBO = 1, äëÿ LiteForex = 1) */ //Ðàáîòàåò ïî îïèñàíîé âûøå ñèñòåìå â êà÷åñòâå ôèëüòðà èñïîëüçóåòñÿ ADX è SAR //ïîçèöèè îòêðûâàåò â 9,2 è 21 ïî ìîñêâå. //+------------------------------------------------------------------+ //| SerJSystem | //+------------------------------------------------------------------+ //------- Âíåøíèå ïàðàìåòðû ñîâåòíèêà -------------------------------- #define MAGIC 20051208 extern string _Parameters_Trade = "----- Ïàðàìåòðû òîðãîâëè"; extern double Lots = 0.1; // Ðàçìåð òîðãóåìîãî ëîòà extern int StopLoss = 0; // Ðàçìåð ôèêñèðîâàííîãî ñòîïà extern int hour = 7; // ÷àñ îòêðûòèÿ extern int TakeProfit = 7; // Ðàçìåð ôèêñèðîâàííîãî òýéêà extern bool UseClosePos = True; // Èñïîëüçîâàòü çàêðûòèå ïîçèöèè extern bool UseTrailing = True; // Èñïîëüçîâàòü òðàë extern bool ProfitTrailing = True; // Òðàëèòü òîëüêî ïðîôèò extern int TrailingStop = 1000; // Ôèêñèðîâàííûé ðàçìåð òðàëà extern int TrailingStep = 5; // Øàã òðàëà extern int Slippage = 3; // Ïðîñêàëüçûâàíèå öåíû extern int ORDER = 0; // Ïðîñêàëüçûâàíèå öåíû extern int LotsWayChoice = 2; // Ñïîñîá âûáîðà ðàáî÷åãî ëîòà: // 0-ôèêñèðîâàííûé, // 1-ïðîöåíò îò äåïîçèòà, // 2-ôðàêöèîííî-ïðîïîðöèîíàëüíûé, // 3-ôðàêöèîííî-ôèêñèðîâàííûé, extern int LotsPercent=10; // Ïðîöåíò îò äåïîçèòà extern int LotsDeltaDepo=500; // Êîýôôèöèåíò ïðèðàùåíèÿ äåïîçèòà extern int LotsDepoForOne=500; // Ðàçìåð äåïîçèòà äëÿ îäíîãî ìèíèëîòà extern int LotsMax=100000; // Ìàêñèìàëüíîå êîëè÷åñòâî ìèíèëîòîâ extern string _Parameters_Expert = "----- Ïàðàìåòðû ñîâåòíèêà"; extern bool UseOneAccount = False; // Òîðãîâàòü òîëüêî íà îäíîì ñ÷¸òå extern int NumberAccount = 11111; // Íîìåð òîðãîâîãî ñ÷¸òà extern string Name_Expert = "SerJSystem"; extern bool UseSound = True; // Èñïîëüçîâàòü çâóêîâîé ñèãíàë extern string NameFileSound = "expert.wav"; // Íàèìåíîâàíèå çâóêîâîãî ôàéëà extern color clOpenBuy = LightBlue; // Öâåò îòêðûòèÿ ïîêóïêè extern color clOpenSell = LightCoral; // Öâåò îòêðûòèÿ ïðîäàæè extern color clModifyBuy = Aqua; // Öâåò ìîäèôèêàöèè ïîêóïêè extern color clModifySell = Tomato; // Öâåò ìîäèôèêàöèè ïðîäàæè extern color clCloseBuy = Blue; // Öâåò çàêðûòèÿ ïîêóïêè extern color clCloseSell = Red; // Öâåò çàêðûòèÿ ïðîäàæè //---- Ãëîáàëüíûå ïåðåìåííûå ñîâåòíèêà ------------------------------- int LotsBuy=0.1,LotsSell=0.1; double dLot=0.1; //------- Ïîäêëþ÷åíèå âíåøíèõ ìîäóëåé -------------------------------- //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ void deinit() { Comment(""); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ void start() { if (UseOneAccount && AccountNumber()!=NumberAccount) { if (!IsTesting()) Comment("Òîðãîâëÿ íà ñ÷¸òå: "+AccountNumber()+" ÇÀÏÐÅÙÅÍÀ!"); return; } else if (!IsTesting()) Comment(""); double ldStop=0, ldTake=0; double Op1=iOpen (NULL,0, 1); double Cl1=iClose(NULL,0, 1); double PADX=iADX(NULL,PERIOD_M30,14 ,PRICE_CLOSE,1,0); double NADX=iADX(NULL,PERIOD_M30,14 ,PRICE_CLOSE,2,0); double Psar = iSAR(NULL,PERIOD_M30,0.02,0.2,0) ; if((Hour()==19 || Hour()==0 || Hour()==7)&& Minute()==0 && Seconds()<3) { if (Psar < iClose(NULL, PERIOD_M30,0) && PADX > NADX) //if (iCCI(NULL, 0, 5, PRICE_CLOSE, 0)>iCCI(NULL, 0, 5, PRICE_CLOSE, 2) && iCCI(NULL, 0, 5, PRICE_CLOSE, 0)<50) //if (OrderType()!=OP_BUY) { if (StopLoss!=0)ldStop=Ask-StopLoss*Point; if (TakeProfit!=0)ldTake=Ask+TakeProfit*Point; SetOrder(OP_BUY, Ask,ldStop,ldTake); } if (Psar > iClose(NULL, PERIOD_M30,0) && NADX > PADX) //if (iCCI(NULL, 0, 5, PRICE_CLOSE, 0)<iCCI(NULL, 0, 5, PRICE_CLOSE, 2) && iCCI(NULL, 0, 5, PRICE_CLOSE, 0)>50) //if (OrderType()!=OP_SELL) { if (StopLoss!=0)ldStop=Bid+StopLoss*Point; if (TakeProfit!=0)ldTake=Bid-TakeProfit*Point; SetOrder(OP_SELL, Bid, ldStop, ldTake); } } } //+------------------------------------------------------------------+ void SetOrder(int op, double pp, double ldStop, double ldTake) { color clOpen; string lsComm=GetCommentForOrder(); if (op==OP_BUYLIMIT || op==OP_BUYSTOP) clOpen=clOpenBuy; else clOpen=clOpenSell; if (LotsWayChoice==0) dLot=Lots; // ôèêñèðîâàííûé ïðîöåíò îò äåïîçèòà if (LotsWayChoice==1) { dLot=MathCeil(AccountFreeMargin()/10000*LotsPercent)/10; } // ôðàêöèîííî-ïðîïîðöèîíàëüíûé if (LotsWayChoice==2) { int k=LotsDepoForOne; for (double i=2; i<=LotsMax; i++) { k=k+i*LotsDeltaDepo; if (k>AccountFreeMargin()) { dLot=(i-1)/10; break; } } } // ôðàêöèîííî-ôèêñèðîâàííûé if (LotsWayChoice==3) { dLot=MathCeil((AccountFreeMargin()-LotsDepoForOne)/LotsDeltaDepo)/10; } OrderSend(Symbol(),op,dLot,pp,Slippage,ldStop,ldTake,lsComm,MAGIC,0,clOpen); if (UseSound) PlaySound(NameFileSound); } //+------------------------------------------------------------------+ string GetCommentForOrder() { return(Name_Expert); }
Sample
Analysis
Market Information Used:
Series array that contains close prices for each bar
Indicator Curves created:
Indicators Used:
Movement directional index
Parabolic Stop and Reverse system
Custom Indicators Used:
Order Management characteristics:
It automatically opens orders when conditions are reached
Other Features:
It plays sound alerts