//+------------------------------------------------------------------+ //| geAlertCanal.mq4 | //| Copyright © 2007, ver 1.0 | //| Forte928 | //+------------------------------------------------------------------+ #property copyright "Forte928" #property link "" #define IndicatorName "geAlertCanal" #property indicator_chart_window //#property indicator_separate_window #property indicator_buffers 3 #property indicator_color1 Gold//Goldenrod//LightSkyBlue #property indicator_color2 Lime #property indicator_color3 Gold//PaleGreen extern int Canal = 5; extern color CanalColor = LimeGreen; extern int StepPoint = 5; // ñèãíàë ïðè èçìåíåíèè öåíû íà extern bool HighAlert = true; extern string HighSound = "HighUp.wav"; extern bool LowAlert = true; extern string LowSound = "LowDown.wav"; extern bool StepAlert = true; extern string UpperSound = "Upper.wav"; extern string DownerSound = "Downer.wav"; extern bool CenterAlert = true; extern string CenterSound = "Center.wav"; extern int Counter = 2000; double FxView1[]; double FxView2[]; double FxView3[]; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~V~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ string PrefixLow="_LOW_"; string PrefixHigh="_HIGH_"; string PrefixPrice="_PRICE_"; double PriceSave=0; double PriceUpper=0; double PriceCenter=0; double PriceLower=0; double PriceSound=0; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~V~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Custom indicator initialization function ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ int init() { SetupChartLineColor(0,FxView1,0,1,CanalColor,"Upper"); SetupChartLineColor(1,FxView2,0,1,CanalColor,"Center"); SetupChartLineColor(2,FxView3,0,1,CanalColor,"Lower"); PriceUpper=Close[0]+Canal*Point; PriceCenter=Close[0]; PriceLower=Close[0]-Canal*Point; PriceSound=PriceCenter; PriceSave=PriceCenter; return(0); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~V~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Custom indicator deinitialization function ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ int deinit() { //---- ObjectDelete(PrefixHigh); ObjectDelete(PrefixPrice); ObjectDelete(PrefixLow); //---- return(0); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~V~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Start defination ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ int start() { double Price=Close[0]; bool AlertActive=false; /* if (ObjectFind(PrefixLow)<0) { ObjectCreate(PrefixLow,OBJ_LABEL,0,Time[0],PriceLower); ObjectSet(PrefixLow,OBJPROP_COLOR,CanalColor); ObjectSet(PrefixLow,OBJPROP_WIDTH,CanalWigth); ObjectSet(PrefixLow,OBJPROP_ARROWCODE,6); } if (ObjectFind(PrefixHigh)<0) { ObjectCreate(PrefixHigh,OBJ_LABEL,0,Time[0],PriceUpper); ObjectSet(PrefixHigh,OBJPROP_COLOR,CanalColor); ObjectSet(PrefixHigh,OBJPROP_WIDTH,CanalWigth); ObjectSet(PrefixHigh,OBJPROP_ARROWCODE,6); } if (ObjectFind(PrefixPrice)<0) { ObjectCreate(PrefixPrice,OBJ_LABEL,0,Time[0],PriceCenter); ObjectSet(PrefixPrice,OBJPROP_COLOR,CanalColor); ObjectSet(PrefixPrice,OBJPROP_WIDTH,CanalWigth); ObjectSet(PrefixPrice,OBJ_TEXT,DoubleToStr(PriceCenter,MathLog(1/Point)/MathLog(10))); } */ // îïóñêàíèå öåíû íèæå óðîâíÿ êàíàëà if (PriceLower>Price) { PriceSave=Price; PriceSound=Price; PriceUpper=Price+2*Canal*Point; PriceCenter=Price+Canal*Point; PriceLower=Price; PlaySound(LowSound); } // ïîäüåì öåíû âûøå óðîâíÿ êàíàëà if (PriceUpper<Price) { PriceSave=Price; PriceSound=Price; PriceUpper=Price; PriceCenter=Price-Canal*Point; PriceLower=Price-2*Canal*Point; PlaySound(HighSound); } ArrayInitialize(FxView1,PriceUpper); ArrayInitialize(FxView2,PriceCenter); ArrayInitialize(FxView3,PriceLower); Comment((PriceSave-PriceCenter)/Point," ",(Price-PriceCenter)/Point," ",MathAbs(PriceSound-Price)/Point); // äâèæåíèå öåííû ÷åðåç öåíòð êàíàëà if (CenterAlert==true){ if ((PriceSave<PriceCenter)&&(PriceCenter<Price)) { PriceSave=Price; //PlaySound(UpperSound);Sleep(10000); PlaySound(CenterSound); } if ((PriceSave>PriceCenter)&&(PriceCenter>Price)) { PriceSave=Price; //PlaySound(DownerSound);Sleep(10000); PlaySound(CenterSound); } // if (((PriceSave-PriceCenter)*(PriceCenter-Price))<0) PriceSave=Price; if ((PriceSave-PriceCenter)==0) PriceSave=Price; } // èçìåíåíèå öåíû íà øàã if (((MathAbs(PriceSound-Price)/Point)>=StepPoint)) { if ((PriceSound<Price)&&(StepAlert==true)) { PlaySound(UpperSound);//Sleep(10000);PlaySound(StepSound); } if ((PriceSound>Price)&&(StepAlert==true)) { PlaySound(DownerSound);//Sleep(10000);PlaySound(StepSound); } PriceSound=Price; } //---- return(0); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //------------------------------------------ Style active Line -------------------------- void SetupChartLineColor(int Index,double& ViewAy[],int Style,int Width,color ColorLine,string Label) { switch(Style) { case 0 : SetIndexStyle(Index,DRAW_LINE,STYLE_DASHDOT,Width,ColorLine);break; case 1 : SetIndexStyle(Index,DRAW_HISTOGRAM,STYLE_DASHDOT,Width,ColorLine);break; case 2 : SetIndexStyle(Index,DRAW_ARROW,STYLE_DASHDOT,Width,ColorLine);break; default : SetIndexStyle(Index,DRAW_LINE,STYLE_DASHDOT,Width,ColorLine);break; } if (Label!="") SetIndexLabel(Index,Label); SetIndexBuffer(Index,ViewAy); return(0); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sample
Analysis
Market Information Used:
Series array that contains close prices for each bar
Series array that contains open time of each bar
Indicator Curves created:
Implements a curve of type DRAW_LINE
Implements a curve of type DRAW_HISTOGRAM
Implements a curve of type DRAW_ARROW
Indicators Used:
Custom Indicators Used:
Order Management characteristics:
Other Features:
It plays sound alerts