Author: MojoFX - Conversion only
T3 RSI_v1

This technical script is designed to provide traders with a more refined and smoothed perspective on market momentum by combining two distinct types of mathematical analysis: the Relative Strength Index (RSI) and the T3 Moving Average logic.

Core Functional Logic

The primary purpose of this tool is to filter out "market noise"—the minor, erratic price fluctuations that can often lead to false signals—to reveal the underlying trend more clearly. It achieves this through a two-stage calculation process:

1. Momentum Identification (RSI) First, the script calculates the Relative Strength Index (RSI). This is a standard financial tool used to measure the speed and change of price movements. By looking at the RSI, the script identifies whether an asset is being overbought, oversold, or maintaining a specific direction of strength.

2. Advanced Smoothing (T3 Logic) Instead of simply plotting a raw RSI line (which can be very jagged), the script passes that data through a T3 smoothing algorithm. The T3 is a sophisticated moving average designed to reduce "lag"—the delay between a price move and its appearance on a chart—while still maintaining a very smooth visual curve.

3. The Multi-Stage Filtering Process To reach the final result, the script performs a series of "weighted" calculations:

  • It takes the RSI value and processes it through six consecutive stages of smoothing.
  • At each stage, it applies specific weights based on user-defined periods (such as the 8-period setting).
  • The final output is a weighted combination of these smoothed stages, which results in a line that tracks the price momentum more fluidly than a standard indicator.

Summary for the User

In practical terms, this script provides you with two visual lines on your chart:

  • A Standard RSI Reference: To see the raw momentum of the market.
  • A T3-Smoothed RSI Line: A much "cleaner" version of that momentum.

By comparing these two, you can better distinguish between temporary price spikes and actual sustained trends. The result is a tool that aims to provide a clearer picture of where the market is heading without the visual clutter of high-frequency volatility.

Indicators Used
Relative strength index
Miscellaneous
Implements a curve of type %1
11 Views
0 Downloads
0 Favorites
T3 RSI_v1
/*-----------------------------+
|			       |
| Shared by www.Aptrafx.com    |
|			       |
+------------------------------*/

//+------------------------------------------------------------------+
//| T3_RSI.mq4 |
//| MojoFX |
//| http://groups.yahoo.com/group/MetaTrader_Experts_and_Indicators/ |
//+------------------------------------------------------------------+
#property copyright "MojoFX - Conversion only"
#property link "http://groups.yahoo.com/group/MetaTrader_Experts_and_Indicators/"

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 White

extern int RSI_Period = 8;
extern int T3_Period = 8;
extern double T3_Curvature = 0.618;

double t3Array[];
double rsiArray[];

double e1,e2,e3,e4,e5,e6;
double c1,c2,c3,c4;
double n,w1,w2,b2,b3;

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators setting
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,3,Red);
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1,White);

IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
IndicatorShortName("T3 RSI "+T3_Period);

SetIndexBuffer(0,t3Array);
SetIndexLabel(0,"T3 "+T3_Period);

SetIndexBuffer(1,rsiArray);
SetIndexLabel(1,"RSI "+T3_Period);


//---- variable reset

e1=0; e2=0; e3=0; e4=0; e5=0; e6=0;
c1=0; c2=0; c3=0; c4=0;
n=0;
w1=0; w2=0;
b2=0; b3=0;

b2=T3_Curvature*T3_Curvature;
b3=b2*T3_Curvature;
c1=-b3;
c2=(3*(b2+b3));
c3=-3*(2*b2+T3_Curvature+b3);
c4=(1+3*T3_Curvature+b3+3*b2);
n=T3_Period;

if (n<1) n=1;
n = 1 + 0.5*(n-1);
w1 = 2 / (n + 1);
w2 = 1 - w1;

//----
return(0);
}

//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int limit=Bars;

//---- indicator calculation

for(int i=limit; i>=0; i--)
{
rsiArray[i] = iRSI(NULL,0,T3_Period,PRICE_CLOSE,i);

e1 = w1*rsiArray[i] + w2*e1;
e2 = w1*e1 + w2*e2;
e3 = w1*e2 + w2*e3;
e4 = w1*e3 + w2*e4;
e5 = w1*e4 + w2*e5;
e6 = w1*e5 + w2*e6;

t3Array[i]=c1*e6 + c2*e5 + c3*e4 + c4*e3;
}
//----
return(0);
}
//+------------------------------------------------------------------+

Comments