Cronex T Taichi GF

Cronex T Taichi GF

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.
Indicators Used
Ichimoku Kinko HyoMoving average indicator
Miscellaneous
Implements a curve of type %1
10 Views
0 Downloads
0 Favorites
Cronex T Taichi GF
//+------------------------------------------------------------------+
//|                                           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