0_MoR3_mtf





//+--------------------------------------------------------------+
//|                                                      MoR.mq4 |
//+--------------------------------------------------------------+
//mod2008fxtsd mtf
#property copyright "Wolfe"
#property link "xxxxwolfe@gmail.com"

#property indicator_separate_window
#property indicator_level1  100
#property indicator_level2  80
#property indicator_level3  50
#property indicator_level4  20
#property indicator_buffers 4
#property indicator_color1 Black    //RSI
#property indicator_color2 Blue     //MA1
#property indicator_color3 Red      //MA2
#property indicator_color4 Green    //Ratio

extern int  RSI_TimeFrame=0;//0=current chart,1=m1,5=m5,15=m15,30=m30,60=h1,240=h4,etc...
extern int  RSI_Period = 10;
extern int  RSI_Applied_Price = 0;//0=close, 1=open, 2=high, 3=low, 4=(high+low)/2, 5=(high+low+close)/3, 6=(high+low+close+close)/4
extern int  MA1_Period = 10;
extern int  MA1_Method = 1;// 0=SMA, 1=EMA, 2=SMMA, 3=LWMA
extern int  MA2_Period = 30;
extern int  MA2_Method = 1;// 0=SMA, 1=EMA, 2=SMMA, 3=LWMA

double RSI[],RSI1[],MA1_Array[],MA2_Array[],MR_Ratio[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators setting
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1); //RSI
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1); //EMA10
SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,1); //EMA30
SetIndexStyle(3,DRAW_LINE,STYLE_SOLID,2); //Ratio

IndicatorBuffers(5);

SetIndexBuffer(0,RSI);
SetIndexLabel(0,"RSI");

SetIndexBuffer(1,MA1_Array);
SetIndexLabel(1,"MA1");

SetIndexBuffer(2,MA2_Array);
SetIndexLabel(2,"MA2");

SetIndexBuffer(3,MR_Ratio);
SetIndexLabel(3,"Ratio");

SetIndexBuffer(4,RSI1);


IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
IndicatorShortName("MoR");

return(0);
}

//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
   int  counted_bars=IndicatorCounted();
   int  i,y,limit;

   if (counted_bars<0) return(-1);
   if (counted_bars>0) counted_bars--;
         limit=Bars-counted_bars;

   //+------------------------------------------------------------------+
   //| RSI |RSI_Timeframe
   //+------------------------------------------------------------------+
 //  for(i=limit; i>=0; i--){
 
    datetime TimeArray[],TimeArray1[];
    
   ArrayCopySeries(TimeArray,MODE_TIME,Symbol(),RSI_TimeFrame); 
   ArrayCopySeries(TimeArray1,MODE_TIME,Symbol(),RSI_TimeFrame);

limit = Bars-counted_bars;
limit = MathMax (limit,RSI_TimeFrame/Period());

   for(i=0,y=0;i<limit;i++)
   {
   if (Time[i]<TimeArray[y]) y++; 

 
      RSI[i]= iRSI(NULL,RSI_TimeFrame,RSI_Period,RSI_Applied_Price,y);
   
      RSI1[y]  = RSI[i];
    }

   //+------------------------------------------------------------------+
   //| EMA 10 & 30 |
   //+------------------------------------------------------------------+
   for(y=0,i=0; i<limit; i++)
     {
      if (Time[i]<TimeArray1[y]) y++;
       
      MA1_Array[i] = iMAOnArray(RSI1,0,MA1_Period,0,MA1_Method,y);
      MA2_Array[i] = iMAOnArray(RSI1,0,MA2_Period,0,MA2_Method,y);
   
   //+------------------------------------------------------------------+
   //| Ratio of EMA 10 & 30 |
   //+------------------------------------------------------------------+

      if (MA2_Array[i]!=0)
      MR_Ratio[i] = MA1_Array[i] / MA2_Array[i] * 100;
      }
   
   //----
   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_LINE


Indicators Used:

Relative strength index
Moving average indicator


Custom Indicators Used:

Order Management characteristics:

Other Features: