//+------------------------------------------------------------------+ //| MAMy v.3.mq4 | //| Copyright © 2006, Victor Chebotariov | //| http://www.chebotariov.com/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2006, Victor Chebotariov" #property link "http://www.chebotariov.com/" //---- extern int period = 3; extern int ma_method = 3; //---- #property indicator_separate_window #property indicator_buffers 2 #property indicator_color1 Green #property indicator_color2 Red //---- buffers double ExtMapBuffer1[]; double ExtMapBuffer2[]; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int init() { IndicatorShortName("MAMy v.3 (" + period + ", " + ma_method + ")"); //---- indicators SetIndexStyle(0, DRAW_LINE); SetIndexBuffer(0, ExtMapBuffer1); SetIndexStyle(1, DRAW_LINE); SetIndexBuffer(1, ExtMapBuffer2); //---- return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start() { int i, counted_bars = IndicatorCounted(); //---- i = Bars - counted_bars-1; if(counted_bars==0) i--; while(i >= 0) { double close = iMA(NULL, 0, period, 0, ma_method, 0, i); double open = iMA(NULL, 0, period, 0, ma_method, 1, i); double weighted = iMA(NULL, 0, period, 0, ma_method, 6, i); double close1 = iMA(NULL, 0, period, 0, ma_method, 0, i + 1); double open1 = iMA(NULL, 0, period, 0, ma_method, 1, i + 1); double weighted1 = iMA(NULL, 0, period, 0, ma_method, 6, i + 1); ExtMapBuffer2[i] = (close - weighted)*1000; if((close < close1 && weighted < weighted1 && close < weighted && weighted < open && weighted1 < open1 && ExtMapBuffer2[i] <= ExtMapBuffer2[i+1]) || (close > close1 && weighted > weighted1 && close>weighted && weighted > open && weighted1>open1 && ExtMapBuffer2[i] >= ExtMapBuffer2[i+1])) { ExtMapBuffer1[i] = ((weighted - open) + (close - weighted))*1000; } else ExtMapBuffer1[i] = 0; if(ExtMapBuffer1[i] >= 0 && ExtMapBuffer1[i] > ExtMapBuffer1[i+1] && ExtMapBuffer2[i] < 0 && ExtMapBuffer2[i+1] >= 0) { ExtMapBuffer2[i] = 0; } else ExtMapBuffer2[i] = (close - weighted)*1000; i--; } //---- return(0); } //+------------------------------------------------------------------+