//+------------------------------------------------------------------+ //| MMLevls_VG.mq4 | //| Copyright © 2006, Vladislav Goshkov (VG). | //| 4vg@mail.ru | //| Many thanks to Tim Kruzel | //+------------------------------------------------------------------+ //---- author of the indicator #property copyright "Copyright © 2006, Vladislav Goshkov (VG)." //---- link to the website of the author #property link "4vg@mail.ru" //---- indicator version #property version "1.00" //---- drawing the indicator in the main window #property indicator_chart_window #property indicator_buffers 1 #property indicator_plots 1 //+-----------------------------------+ //| enumeration declaration | //+-----------------------------------+ enum STYLE { STYLE_SOLID_, // Solid line STYLE_DASH_, // Dashed line STYLE_DOT_, // Dotted line STYLE_DASHDOT_, // Dot-dash line STYLE_DASHDOTDOT_ // Dot-dash line with double dots }; //+-----------------------------------+ //| Indicator input parameters | //+-----------------------------------+ input int P=90; input ENUM_TIMEFRAMES MMPeriod=PERIOD_D1; input int StepBack=0; // Bar index for levels calculation //---- input color mml_clr_m_2_8 = Gray; // [-2]/8 level color input color mml_clr_m_1_8 = Gray; // [-1]/8 level color input color mml_clr_0_8 = Aqua; // [0]/8 level color input color mml_clr_1_8 = Yellow; // [1]/8 level color input color mml_clr_2_8 = Red; // [2]/8 level color input color mml_clr_3_8 = Green; // [3]/8 level color input color mml_clr_4_8 = Blue; // [4]/8 level color input color mml_clr_5_8 = Green; // [5]/8 level color input color mml_clr_6_8 = Red; // [6]/8 level color input color mml_clr_7_8 = Yellow; // [7]/8 level color input color mml_clr_8_8 = Aqua; // [8]/8 level color input color mml_clr_p_1_8 = Gray; // [+1]/8 level color input color mml_clr_p_2_8 = Gray; // [+2]/8 level color //---- input STYLE mml_style_m_2_8 = STYLE_SOLID; // [-2]/8 level line style input STYLE mml_style_m_1_8 = STYLE_DASHDOTDOT; // [-1]/8 level line style input STYLE mml_style_0_8 = STYLE_DASHDOTDOT; // [0]/8 level line style input STYLE mml_style_1_8 = STYLE_DASHDOTDOT; // [1]/8 level line style input STYLE mml_style_2_8 = STYLE_DASHDOTDOT; // [2]/8 level line style input STYLE mml_style_3_8 = STYLE_DASHDOTDOT; // [3]/8 level line style input STYLE mml_style_4_8 = STYLE_DASHDOTDOT; // [4]/8 level line style input STYLE mml_style_5_8 = STYLE_DASHDOTDOT; // [5]/8 level line style input STYLE mml_style_6_8 = STYLE_DASHDOTDOT; // [6]/8 level line style input STYLE mml_style_7_8 = STYLE_DASHDOTDOT; // [7]/8 level line style input STYLE mml_style_8_8 = STYLE_DASHDOTDOT; // [8]/8 level line style input STYLE mml_style_p_1_8 = STYLE_DASHDOTDOT; // [+1]/8 level line style input STYLE mml_style_p_2_8 = STYLE_SOLID; // [+2]/8 level line style //---- input int mml_wdth_m_2_8 = 1; // [-2]/8 level width input int mml_wdth_m_1_8 = 1; // [-1]/8 level width input int mml_wdth_0_8 = 1; // [0]/8 level width input int mml_wdth_1_8 = 1; // [1]/8 level width input int mml_wdth_2_8 = 1; // [2]/8 level width input int mml_wdth_3_8 = 1; // [3]/8 level width input int mml_wdth_4_8 = 1; // [4]/8 level width input int mml_wdth_5_8 = 1; // [5]/8 level width input int mml_wdth_6_8 = 1; // [6]/8 level width input int mml_wdth_7_8 = 1; // [7]/8 level width input int mml_wdth_8_8 = 1; // [8]/8 level width input int mml_wdth_p_1_8 = 1; // [+1]/8 level width input int mml_wdth_p_2_8 = 1; // [+2]/8 level width //---- input color MarkColor=Red; // Label color input int MarkNumber=217; // Label index input string Font= "Arial"; // Levels font input int FontSize = 11; // Font size //+-----------------------------------+ double dmml,dvtl,sum,v1,v2,mn,mx,x1, x2,x3,x4,x5,x6,y1,y2,y3,y4,y5,y6, octave,fractal,range,finalH,finalL,mml[13]; string ln_txt[13],buff_str=""; int bn_v1,bn_v2,OctLinesCnt=13, mml_thk=8,mml_clr[13],mml_wdth[13],mml_style[13], mml_shft=35,ntime,CurPeriod,nDigits,NewPeriod,CurPeriod_; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ void OnInit() { //---- CurPeriod_=PeriodSeconds(PERIOD_CURRENT)/60; if(MMPeriod>0) NewPeriod=P*(int)MathCeil(PeriodSeconds(MMPeriod)/PeriodSeconds(PERIOD_CURRENT)); else NewPeriod=P; ln_txt[0] = "[-2/8]P"; // "Extremely overshoot [-2/8]";// [-2/8] ln_txt[1] = "[-1/8]P"; // "Overshoot [-1/8]";// [-1/8] ln_txt[2] = "[0/8]P"; // "Ultimate Support - extremely oversold [0/8]";// [0/8] ln_txt[3] = "[1/8]P"; // "Weak, Stall and Reverse - [1/8]";// [1/8] ln_txt[4] = "[2/8]P"; // "Pivot, Reverse - major [2/8]";// [2/8] ln_txt[5] = "[3/8]P"; // "Bottom of Trading Range - [3/8], if 10-12 bars then 40% Time. BUY Premium Zone";//[3/8] ln_txt[6] = "[4/8]P"; // "Major Support/Resistance Pivotal Point [4/8]- Best New BUY or SELL level";// [4/8] ln_txt[7] = "[5/8]P"; // "Top of Trading Range - [5/8], if 10-12 bars then 40% Time. SELL Premium Zone";//[5/8] ln_txt[8] = "[6/8]P"; // "Pivot, Reverse - major [6/8]";// [6/8] ln_txt[9] = "[7/8]P"; // "Weak, Stall and Reverse - [7/8]";// [7/8] ln_txt[10] = "[8/8]P"; // "Ultimate Resistance - extremely overbought [8/8]";// [8/8] ln_txt[11] = "[+1/8]P"; // "Overshoot [+1/8]";// [+1/8] ln_txt[12] = "[+2/8]P"; // "Extremely overshoot [+2/8]";// [+2/8] //mml_shft = 3; mml_thk=3; // Initial setting of octaves levels colors and lines width mml_clr[0] = mml_clr_m_2_8; mml_style[0] = mml_style_m_2_8; mml_wdth[0] = mml_wdth_m_2_8; // [-2]/8 mml_clr[1] = mml_clr_m_1_8; mml_style[1] = mml_style_m_1_8; mml_wdth[1] = mml_wdth_m_1_8; // [-1]/8 mml_clr[2] = mml_clr_0_8; mml_style[2] = mml_style_0_8; mml_wdth[2] = mml_wdth_0_8; // [0]/8 mml_clr[3] = mml_clr_1_8; mml_style[3] = mml_style_1_8; mml_wdth[3] = mml_wdth_1_8; // [1]/8 mml_clr[4] = mml_clr_2_8; mml_style[4] = mml_style_2_8; mml_wdth[4] = mml_wdth_2_8; // [2]/8 mml_clr[5] = mml_clr_3_8; mml_style[5] = mml_style_3_8; mml_wdth[5] = mml_wdth_3_8; // [3]/8 mml_clr[6] = mml_clr_4_8; mml_style[6] = mml_style_3_8; mml_wdth[6] = mml_wdth_3_8; // [4]/8 mml_clr[7] = mml_clr_5_8; mml_style[7] = mml_style_5_8; mml_wdth[7] = mml_wdth_5_8; // [5]/8 mml_clr[8] = mml_clr_6_8; mml_style[8] = mml_style_6_8; mml_wdth[8] = mml_wdth_6_8; // [6]/8 mml_clr[9] = mml_clr_7_8; mml_style[9] = mml_style_7_8; mml_wdth[9] = mml_wdth_7_8; // [7]/8 mml_clr[10] = mml_clr_8_8; mml_style[10]= mml_style_8_8; mml_wdth[10]= mml_wdth_8_8; // [8]/8 mml_clr[11] = mml_clr_p_1_8; mml_style[11]= mml_style_p_1_8; mml_wdth[11]= mml_wdth_p_1_8; // [+1]/8 mml_clr[12] = mml_clr_p_2_8; mml_style[12]= mml_style_p_2_8; mml_wdth[12]= mml_wdth_p_2_8; // [+2]/8 //---- } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //---- for(int i=0; i