Overview
The Cronex T Taichi GF is a technical analysis tool designed for the MetaTrader platform. It functions as a specialized indicator that synthesizes data from the popular "Ichimoku Kinko Hyo" system to provide a more streamlined visual representation of market trends. By blending multiple components into a single unified line and calculating secondary signals, it helps traders identify momentum, trend direction, and potential consolidation zones more clearly.
Core Logic and Components
The script operates by processing four primary components of the Ichimoku system: the Tenkan-sen (Conversion Line), Kijun-sen (Base Line), Senkou Span A, and Senkou Span B. It then uses these to generate several distinct visual outputs:
1. The Taichi Line (Main Trend)
The core of the indicator is the Taichi Buffer. Instead of looking at any single Ichimoku component in isolation, the script calculates the mathematical average of all four main components. This creates a "smoothed" primary line that represents the overall equilibrium of the market price based on recent highs, lows, and future projections.
2. Signal Lines (Momentum Tracking)
To help traders determine when the trend is gaining or losing strength, the script generates two additional moving averages based on the Taichi Line:
- Fast Signal: A shorter-term smoothed average of the Taichi line.
- Slow Signal: A longer-term smoothed average of the Taichi line. By observing the relationship between these two lines and the main Taichi line, users can visually identify shifts in market velocity.
3. Forward Projections (Future Sentiment)
The script calculates a "TaichiFor" value, which is derived from the average of the Senkou Spans. This serves as a forward-looking projection, helping to visualize where the price might be pressured in the future. It also distinguishes between "Up" and "Down" sentiments by comparing the two Senkou components; if Span A is greater than Span B, it identifies an upward bias, and vice versa.
4. Flat Zone Detection (Consolidation Identification)
One of the unique features of this script is its ability to detect "Flat" periods. The logic calculates the distance between the Taichi line, the Fast Signal, and the Slow Signal simultaneously. If these three values are extremely close to one another (falling within a specific small threshold), the indicator identifies a period of stagnation or consolidation. It marks these areas visually, signaling to the trader that the market is currently sideways and may be preparing for a breakout.
Summary for Traders
In essence, this tool simplifies a complex multi-line system into a cohesive set of visual cues. It provides:
- A primary trend line (Taichi) to see where the price is heading.
- Momentum signals to see how fast it is moving.
- Future projections to anticipate upcoming pressure.
- Stagnation markers to warn you when the market is "flat" and trading activity might be low.
//+------------------------------------------------------------------+
//| Cronex T Taichi GF.mq4 |
//| Copyright © 2009, Cronex. |
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, Cronex"
#property link "http://www.metaquotes.net/"
//---- indicator settings
#property indicator_chart_window
#property indicator_buffers 8
#property indicator_color1 Silver
#property indicator_color2 Red
#property indicator_color3 Lime
#property indicator_color4 Blue
#property indicator_color5 DeepSkyBlue
#property indicator_color6 DeepSkyBlue
#property indicator_color7 DeepSkyBlue
#property indicator_color8 DarkOrange
//#property indicator_width1 2
//#property indicator_width4 2
//---- indicator parameters
extern int Tenkan=9;
extern int Kijun=26;
extern int Senkou=52;
extern int FlatSE=10;
//---- indicator buffers
double TaichiBuffer[];
double TaichiForBuffer[];
double SignalBuffer[];
double SSignalBuffer[];
double FlatBuffer1[];
double FlatBuffer2[];
double TaichiFCUBuffer[];
double TaichiFCDBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- drawing settings
SetIndexStyle(0,DRAW_LINE);
SetIndexStyle(1,DRAW_LINE);
SetIndexStyle(2,DRAW_LINE);
SetIndexStyle(3,DRAW_LINE);
SetIndexStyle(4,DRAW_HISTOGRAM,STYLE_DOT);
SetIndexStyle(5,DRAW_HISTOGRAM,STYLE_DOT);
SetIndexStyle(6,DRAW_LINE);
SetIndexStyle(7,DRAW_LINE);
IndicatorDigits(Digits);
//---- indicator buffers mapping
SetIndexBuffer(0,TaichiBuffer);
SetIndexBuffer(1,SignalBuffer);
SetIndexBuffer(2,SSignalBuffer);
SetIndexBuffer(3,TaichiForBuffer);
SetIndexBuffer(4,FlatBuffer1);
SetIndexBuffer(5,FlatBuffer2);
SetIndexBuffer(6,TaichiFCUBuffer);
SetIndexBuffer(7,TaichiFCDBuffer);
SetIndexEmptyValue(4,0.0);
SetIndexEmptyValue(5,0.0);
SetIndexEmptyValue(6,0.0);
SetIndexEmptyValue(7,0.0);
SetIndexShift(3,Kijun);
SetIndexShift(6,Kijun);
SetIndexShift(7,Kijun);
// SetIndexDrawBegin(3,Kijun);
//---- name for DataWindow and indicator subwindow label
IndicatorShortName("Cronex Taichi");
SetIndexLabel(0,"Taichi");
SetIndexLabel(1,"Fast Signal");
SetIndexLabel(2,"Slow Signal");
SetIndexLabel(3,"TaichiFor");
SetIndexLabel(4,"FlatUp");
SetIndexLabel(5,"FlatDn");
SetIndexLabel(6,"TaichiFor Up");
SetIndexLabel(7,"TaichiFor Dn");
//---- initialization done
return(0);
}
//+------------------------------------------------------------------+
//| Cronex Taichi |
//+------------------------------------------------------------------+
int start()
{
double TenkanSen,KijunSen,SenkouSpanA,SenkouSpanB,ChinkouSpan;
int limit;
int counted_bars=IndicatorCounted();
//---- last counted bar will be recounted
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
for(int i=-Kijun; i<limit; i++)
{
TenkanSen = iIchimoku(NULL,0,Tenkan,Kijun,Senkou,MODE_TENKANSEN,i);
KijunSen = iIchimoku(NULL,0,Tenkan,Kijun,Senkou,MODE_KIJUNSEN,i);
SenkouSpanA = iIchimoku(NULL,0,Tenkan,Kijun,Senkou,MODE_SENKOUSPANA,i);
SenkouSpanB = iIchimoku(NULL,0,Tenkan,Kijun,Senkou,MODE_SENKOUSPANB,i);
ChinkouSpan = iIchimoku(NULL,0,Tenkan,Kijun,Senkou,MODE_CHINKOUSPAN,i);
if (i>=0)
{
TaichiBuffer[i]=(TenkanSen+KijunSen+SenkouSpanA+SenkouSpanB)/4;
TaichiForBuffer[i+Kijun]=(SenkouSpanA+SenkouSpanB)/2;
if (SenkouSpanA>SenkouSpanB)
{
TaichiFCUBuffer[i+Kijun]=(SenkouSpanA+SenkouSpanB)/2;
}
else
{
TaichiFCDBuffer[i+Kijun]=(SenkouSpanA+SenkouSpanB)/2;
}
}
else
{
TaichiForBuffer[i+Kijun]=(SenkouSpanA+SenkouSpanB)/2;
if (SenkouSpanA>SenkouSpanB)
{
TaichiFCUBuffer[i+Kijun]=(SenkouSpanA+SenkouSpanB)/2;
}
else
{
TaichiFCDBuffer[i+Kijun]=(SenkouSpanA+SenkouSpanB)/2;
}
}
}
//========================== signal line counted ================
for(i=0; i<limit; i++)
{
SignalBuffer[i]=iMAOnArray(TaichiBuffer,Bars,Kijun,0,MODE_LWMA,i);
SSignalBuffer[i]=iMAOnArray(TaichiBuffer,Bars,Senkou,0,MODE_LWMA,i);
//========================== Flat line counted ================
if(MathAbs(((TaichiBuffer[i]-SignalBuffer[i])+(TaichiBuffer[i]- SSignalBuffer[i])+(SignalBuffer[i]-SSignalBuffer[i]))/3)<FlatSE*Point)
{
FlatBuffer1[i]=SignalBuffer[i]+FlatSE*Point;
FlatBuffer2[i]=SignalBuffer[i]-FlatSE*Point;
}
}
//---- done
return(0);
}
//+------------------------------------------------------------------+
Comments