Cronex_T_Taichi_GF

Indicators Used
Ichimoku Kinko HyoMoving average indicator
Miscellaneous
Implements a curve of type %1
1 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 counted_bars = IndicatorCounted();
   if(counted_bars < 0)  return(-1);
   if(counted_bars > 0)   counted_bars--;
   int limit = Bars - counted_bars;
   if(counted_bars==0) limit-=1+Kijun;
      

   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

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---