This technical tool, known as MoR, is designed to provide traders with a multi-layered view of market momentum and trend strength by analyzing price fluctuations through several mathematical transformations. Instead of looking at price directly, it focuses on the "velocity" and "relationship" between different trading averages.
Here is a breakdown of the logic behind how this script processes data:
1. The Foundation: Momentum Analysis
The process begins by calculating the Relative Strength Index (RSI). This is a standard financial metric used to measure the speed and change of price movements. By using the RSI as its primary data source, the tool ignores some of the "noise" of raw price action and focuses instead on whether the market is gaining or losing strength over a specific period.
2. Double Smoothing (The Moving Averages)
Rather than applying standard moving averages to the price chart, this script applies two different Exponential Moving Averages (EMAs) directly onto the RSI values:
- Short-Term Average: A faster average that reacts more quickly to recent momentum shifts.
- Long-Term Average: A slower average that represents the broader trend of the momentum.
By layering these averages over the RSI, the tool helps identify "crossovers"—moments where short-term momentum begins to pull away from the long-term trend, often signaling a potential change in market direction.
3. The Momentum Ratio
The final and unique component of this logic is the Ratio. The script takes the value of the Short-Term Average and divides it by the Long-Term Average (multiplied by 100).
This calculation creates a specific "Ratio" line that tells you exactly how much faster (or slower) the short-term momentum is moving compared to the long-term trend.
- When the Ratio is significantly higher than 100, it suggests that short-term momentum is accelerating aggressively.
- When the Ratio drops, it suggests that the immediate momentum is weakening or cooling off relative to the larger trend.
Summary of Visual Output
On your trading platform, the tool provides four distinct visual elements:
- RSI: The raw momentum line.
- MA1: The fast-moving average of that momentum.
- MA2: The slow-moving average of that momentum.
- Ratio: A specialized line showing the mathematical relationship between the two averages, allowing you to see trend intensity at a glance.
//+------------------------------------------------------------------+
//| MoR.mq4 |
//| Copyright © 1999-2007, MetaQuotes Software Corp. |
//| http://www.metaquotes.ru |
//+------------------------------------------------------------------+
#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
//----
int RSI_Timeframe=0;//0=current chart,1=m1,5=m5,15=m15,30=m30,60=h1,240=h4,etc...
int RSI_Period=10;
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
int MA1_Period=10;
int MA1_Method=1;// 0=SMA, 1=EMA, 2=SMMA, 3=LWMA
int MA2_Period=30;
int MA2_Method=1;// 0=SMA, 1=EMA, 2=SMMA, 3=LWMA
double RSI[],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
//----
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");
//----
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
IndicatorShortName("MoR");
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int i,limit=Bars - IndicatorCounted() - 1;
//+------------------------------------------------------------------+
//| RSI |
//+------------------------------------------------------------------+
for(i=limit; i>=0; i--)
{
RSI[i]= iRSI(NULL,RSI_Timeframe,RSI_Period,RSI_Applied_Price,i);
}
//+------------------------------------------------------------------+
//| EMA 10 & 30 |
//+------------------------------------------------------------------+
for(i=limit; i>=0; i--)
{
MA1_Array[i]=iMAOnArray(RSI,0,MA1_Period,0,MA1_Method,i);
MA2_Array[i]=iMAOnArray(RSI,0,MA2_Period,0,MA2_Method,i);
}
//+------------------------------------------------------------------+
//| Ratio of EMA 10 & 30 |
//+------------------------------------------------------------------+
for(i=0; i<=limit; i++)
{
MR_Ratio[i]=MA1_Array[i]/MA2_Array[i] * 100;
}
//----
return(0);
}
//+------------------------------------------------------------------+
Comments