//+------------------------------------------------------------------+ //| 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); } //+------------------------------------------------------------------+