Indicator MMR

MMR - Technical Forex Market Indicator

MMR - Technical Forex Market Indicator
MMR
MMR - Technical Forex Market Indicator
MMR
MMR - Technical Forex Market Indicator
MMR
MMR - Technical Forex Market Indicator
MMR
MMR - Technical Forex Market Indicator
MMR
MMR - Technical Forex Market Indicator
MMR
MMR - Technical Forex Market Indicator
MMR
MMR - Technical Forex Market Indicator
MMR









MMR (M=MA Crossover, M=MACD, R=RSI)  is a very popular indicator among traders. Indicator was developed by Khlystov Vladimir (Cmillion) in 2011, and is a excellent indicator used in technical analysis. As already indicated, indicator combines a strategy based on MA crossover with Relative Strength Index - RSI and Moving Average Convergence Divergence - MACD. MMR  is a versatile indicator that can be used to identify a new trend, buying and selling signals, identify overbought and oversold levels or warn of extreme market conditions. MMR crosses above and below a zero line, buying and selling signals can be seen by passing the crosses the ("0") line, respectively, Enter when red or green bar appears and Exit when main line crosses zero line.

MMR MQ4 Code Base (Copy Code)
//+------------------------------------------------------------------+
//|                                                          MMR.mq4 |
//|                                  Based on a strategy by cmillion |
//|             EMA5+LWMA85 crossover with MACD and RSI confirmation |
//+------------------------------------------------------------------+
#property copyright "Copyright @ 2011, downspin"
#property link      "mg@downspin.de"

int deinit(){return(0);}
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 DodgerBlue
#property indicator_color2 Green
#property indicator_color3 Red
#property indicator_level1 0
#property indicator_levelcolor DarkSlateGray

extern int mac_fast_ma=12,
           mac_slow_ma=26,
           mac_signal=9,
           rsi_period=14,
           ema_period=5,
           lwma_period=85;

double long1[],
       short1[],
       val[];

int init(){
  SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,val);
  SetIndexStyle(1,DRAW_HISTOGRAM,EMPTY,5); SetIndexBuffer(1,long1);
  SetIndexStyle(2,DRAW_HISTOGRAM,EMPTY,5); SetIndexBuffer(2,short1);
  return(0);
}

int start(){
  double ema,lwma,rsi,mac;
  for(int i=0;i<Bars-IndicatorCounted();i++){
    ema=iMA(Symbol(),0,ema_period,0,1,0,i);
    lwma=iMA(Symbol(),0,lwma_period,0,3,0,i);
    rsi=iRSI(Symbol(),0,rsi_period,0,i);
    mac=iMACD(Symbol(),0,mac_fast_ma,mac_slow_ma,mac_signal,0,0,i);
    mac*=3000;
    rsi-=50;
    val[i]=(ema-lwma)/(Point*10)+mac+rsi;
    if((ema>lwma)&&(rsi>10)&&(mac>0)){
      long1[i]=val[i]-10;
    }
    if((ema<lwma)&&(rsi<-10)&&(mac<0)){
      short1[i]=val[i]+10;
    }
  }
  return(0);
}