WIchimokuKUMO

Author: Copyright 2010.11.29 M.Sasaki
WIchimokuKUMO
Indicators Used
Ichimoku Kinko Hyo
Miscellaneous
Implements a curve of type %1
0 Views
0 Downloads
0 Favorites
WIchimokuKUMO
//+------------------------------------------------------------------+
//|                                                WIchimokuKUMO.mq4 |
//|                                    Copyright 2010.11.25 M.Sasaki |
//|                                      http://youtarou.blogzine.jp |
//+------------------------------------------------------------------+
#property copyright "Copyright 2010.11.29 M.Sasaki"
#property link      "http://youtarou.blogzine.jp"

#property indicator_chart_window
#property indicator_buffers 8
#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_color3 SandyBrown
#property indicator_color4 MediumSlateBlue
#property indicator_color5 DeepPink
#property indicator_color6 Cyan
#property indicator_color7 Violet
#property indicator_color8 Yellow

// buffers ichimoku
double buffTenkan[];
double buffKijun[];
double buffSenkouA[];
double buffSenkouB[];
double buffTenkan_2[];
double buffKijun_2[];
double buffSenkouA_2[];
double buffSenkouB_2[];

// parameters ichimoku
extern int tenkan_k = 9;
extern int kijun_k = 26;
extern int senkou_k = 52;
extern int tenkan_k2 = 51;
extern int kijun_k2 = 101;
extern int senkou_k2 = 151;

// View option
extern int ViewType = 4;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   // Set Buffers
   SetIndexBuffer(0, buffTenkan);
   SetIndexBuffer(1, buffKijun);
   SetIndexBuffer(2, buffSenkouA);
   SetIndexBuffer(3, buffSenkouB);
   
   SetIndexBuffer(4, buffTenkan_2);   
   SetIndexBuffer(5, buffKijun_2);
   SetIndexBuffer(6, buffSenkouA_2);
   SetIndexBuffer(7, buffSenkouB_2);
   
   // Set Style
   SetIndexStyle(0, DRAW_LINE, STYLE_SOLID);
   SetIndexStyle(1, DRAW_LINE, STYLE_SOLID);
   SetIndexStyle(2, DRAW_HISTOGRAM, STYLE_DOT);
   SetIndexStyle(3, DRAW_HISTOGRAM, STYLE_DOT);
   
   SetIndexStyle(4, DRAW_LINE, STYLE_SOLID);
   SetIndexStyle(5, DRAW_LINE, STYLE_SOLID);
   SetIndexStyle(6, DRAW_HISTOGRAM, STYLE_DOT);
   SetIndexStyle(7, DRAW_HISTOGRAM, STYLE_DOT);
   
   // Set Label
   SetIndexLabel(0, "Tenkan");
   SetIndexLabel(1, "Kijun");
   SetIndexLabel(2, "Senkou A");
   SetIndexLabel(3, "Senkou B");
   SetIndexLabel(4, "Tenkan 2");
   SetIndexLabel(5, "Kijun 2");
   SetIndexLabel(6, "Senkou A 2");
   SetIndexLabel(7, "Senkou B 2");

   return(0);
  }

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int counted_bars=IndicatorCounted();
   int limit = Bars-counted_bars;
   double spread = (Ask-Bid)/Point;
   Comment("\n\n",Symbol(),"\n\n\n","Local Time : ", TimeToStr(TimeLocal(), TIME_DATE|TIME_MINUTES), "\n\n\n","SPREAD : ",spread," pips");
   
   for(int i=limit-1; i>=0; i--)
   {
      // Ichimoku
      if( ViewType == 1 || ViewType == 3 || ViewType == 5 )
      {
         buffTenkan[i] = iIchimoku(NULL, 0, tenkan_k, kijun_k, senkou_k, MODE_TENKANSEN, i);
         buffKijun[i] = iIchimoku(NULL, 0, tenkan_k, kijun_k, senkou_k, MODE_KIJUNSEN, i);
         buffSenkouA[i] = iIchimoku(NULL, 0, tenkan_k, kijun_k, senkou_k, MODE_SENKOUSPANA, i);
         buffSenkouB[i] = iIchimoku(NULL, 0, tenkan_k, kijun_k, senkou_k, MODE_SENKOUSPANB, i);
      }
      else if( ViewType == 4 )
      {
         buffTenkan[i] = EMPTY_VALUE;
         buffKijun[i] = EMPTY_VALUE;
         buffSenkouA[i] = iIchimoku(NULL, 0, tenkan_k, kijun_k, senkou_k, MODE_SENKOUSPANA, i);
         buffSenkouB[i] = iIchimoku(NULL, 0, tenkan_k, kijun_k, senkou_k, MODE_SENKOUSPANB, i);
      }
      else
      {
         buffTenkan[i] = EMPTY_VALUE;
         buffKijun[i] = EMPTY_VALUE;
         buffSenkouA[i] = EMPTY_VALUE;
         buffSenkouB[i] = EMPTY_VALUE;
      
      }

   }
   
   for(i = limit-1; i>=0; i--)
   {
      // Ichimoku 2
      if( ViewType == 2 || ViewType == 3 || ViewType == 4 )
      {
         buffTenkan_2[i] = iIchimoku(NULL, 0, tenkan_k2, kijun_k2, senkou_k2, MODE_TENKANSEN, i);
         buffKijun_2[i] = iIchimoku(NULL, 0, tenkan_k2, kijun_k2, senkou_k2, MODE_KIJUNSEN, i);
         buffSenkouA_2[i] = iIchimoku(NULL, 0, tenkan_k2, kijun_k2, senkou_k2, MODE_SENKOUSPANA, i);
         buffSenkouB_2[i] = iIchimoku(NULL, 0, tenkan_k2, kijun_k2, senkou_k2, MODE_SENKOUSPANB, i);
      }
      else if( ViewType == 5 )
      {
         buffTenkan_2[i] = EMPTY_VALUE;
         buffKijun_2[i] = EMPTY_VALUE;
         buffSenkouA_2[i] = iIchimoku(NULL, 0, tenkan_k2, kijun_k2, senkou_k2, MODE_SENKOUSPANA, i);
         buffSenkouB_2[i] = iIchimoku(NULL, 0, tenkan_k2, kijun_k2, senkou_k2, MODE_SENKOUSPANB, i);
      }
      else
      {
         buffTenkan_2[i] = EMPTY_VALUE;
         buffKijun_2[i] = EMPTY_VALUE;
         buffSenkouA_2[i] = EMPTY_VALUE;
         buffSenkouB_2[i] = EMPTY_VALUE;
      }
   }      
      
   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 ---