//+------------------------------------------------------------------+ //| JMASlope_MTF.mq4 | //| Copyright © 2007, ASystem 2000 | //| asystem2000@rambler.ru | //+------------------------------------------------------------------+ #property copyright "Copyright © 2007, Asystem2000" #property link "asystem2000@rambler.ru" #property indicator_separate_window #property indicator_buffers 2 #property indicator_color1 LimeGreen #property indicator_color2 Red //---- input parameters extern int TimeFrame=0; extern int Length=14; extern int Phase=0; extern string Note="Yoy can adjust indicator name"; extern string Indicator="JMASlope"; //---- buffers double B_Up[]; double B_Dn[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { if (TimeFrame!=0) { if (TimeFrame<Period()) { Alert("Íàñòðàèâàåìûé òàéìôðåéì äîëæåí áûòü áîëüøå òåêóùåãî èëè ðàâåí 0"); deinit(); return(0); } } bool OK_Period=false; switch (TimeFrame) { case 0:OK_Period=true;break; case 1:OK_Period=true;break; case 5:OK_Period=true;break; case 15:OK_Period=true;break; case 30:OK_Period=true;break; case 60:OK_Period=true;break; case 240:OK_Period=true;break; case 1440:OK_Period=true;break; case 10080:OK_Period=true;break; case 43200:OK_Period=true;break; } if (OK_Period==false) { Alert("Âû ââåëè íåêîððåêòíóþ öèôðó òàéìôðåéìà"); deinit(); return(0); } //---- indicators SetIndexStyle(0,DRAW_HISTOGRAM,0,0); SetIndexBuffer(0,B_Up); SetIndexStyle(1,DRAW_HISTOGRAM,0,0); SetIndexBuffer(1,B_Dn); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); int limit; if (TimeFrame>0) limit=Bars-counted_bars+(2*TimeFrame/Period()); else limit=Bars-counted_bars-1; int C_time; int Bar_Shift; if (limit==0) return(0); //---- int i=0; while(i<=limit) { C_time=Time[i]; Bar_Shift=iBarShift(NULL,TimeFrame,C_time,false); B_Up[i]=iCustom(NULL,TimeFrame,Indicator,Length,Phase,0,Bar_Shift); B_Dn[i]=iCustom(NULL,TimeFrame,Indicator,Length,Phase,1,Bar_Shift); i++; } //---- return(0); } //+------------------------------------------------------------------+
Sample
Analysis
Market Information Used:
Series array that contains open time of each bar
Indicator Curves created:
Implements a curve of type DRAW_HISTOGRAM
Indicators Used:
Custom Indicators Used:
Indicator
Order Management characteristics:
Other Features:
It issuies visual alerts to the screen