//+------------------------------------------------------------------+ //| SSL channel chart.mq4 | //| mladen | //| | //| initial SSL for metatrader developed by Kalenzo | //+------------------------------------------------------------------+ #property copyright "mladen" #property link "mladenfx@gmail.com" //---- #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Red #property indicator_color2 Green #property indicator_width1 2 #property indicator_width2 2 //---- extern int Lb =10; extern bool alertsOn =false; extern bool alertsMessage=true; extern bool alertsSound =false; extern bool alertsEmail =false; //---- double ssld[]; double sslu[]; double Hlv[]; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int init() { IndicatorBuffers(3); SetIndexBuffer(0,ssld); SetIndexDrawBegin(0,Lb+1); SetIndexBuffer(1,sslu); SetIndexDrawBegin(0,Lb+1); SetIndexBuffer(2,Hlv); return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); int i,limit; //---- if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; //---- for(i=limit;i>=0;i--) { Hlv[i]=Hlv[i+1]; if(Close[i]>iMA(Symbol(),0,Lb,0,MODE_SMA,PRICE_HIGH,i+1)) Hlv[i]= 1; if(Close[i]<iMA(Symbol(),0,Lb,0,MODE_SMA,PRICE_LOW,i+1)) Hlv[i]=-1; if(Hlv[i]==-1) { ssld[i]=iMA(Symbol(),0,Lb,0,MODE_SMA,PRICE_HIGH,i+1); sslu[i]=iMA(Symbol(),0,Lb,0,MODE_SMA,PRICE_LOW ,i+1); } else { ssld[i]=iMA(Symbol(),0,Lb,0,MODE_SMA,PRICE_LOW ,i+1); sslu[i]=iMA(Symbol(),0,Lb,0,MODE_SMA,PRICE_HIGH,i+1); } } //---- if (alertsOn) if (Hlv[0]!=Hlv[1]) if (Hlv[0]==1) doAlert("up"); else doAlert("down"); //---- return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void doAlert(string doWhat) { static string previousAlert="nothing"; static datetime previousTime; string message; //---- if (previousAlert!=doWhat || previousTime!=Time[0]) { previousAlert =doWhat; previousTime =Time[0]; //---- message= StringConcatenate(Symbol()," at ",TimeToStr(TimeLocal(),TIME_SECONDS)," SSL trend changed to ",doWhat); if (alertsMessage) Alert(message); if (alertsEmail) SendMail(StringConcatenate(Symbol(),"SSL "),message); if (alertsSound) PlaySound("alert2.wav"); } } //+------------------------------------------------------------------+
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:
Indicators Used:
Moving average indicator
Custom Indicators Used:
Order Management characteristics:
Other Features:
It issuies visual alerts to the screen
It sends emails
It plays sound alerts