//+------------------------------------------------------------------+ //| PowerDynamiteAreas-MTF.mq4 | //| Copyright 2015, MetaQuotes Software Corp. | //| https://www.mql5.com | //| 2016 Modifications of Fillellin | //+------------------------------------------------------------------+ #property copyright "Copyright 2016, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property indicator_chart_window #property indicator_buffers 4 #property indicator_color1 clrNONE #property indicator_color2 clrNONE #property indicator_color3 clrNONE #property indicator_color4 clrNONE input ENUM_TIMEFRAMES TIME_FRAMES = PERIOD_CURRENT; extern int pivotStrength = 5; extern int maxLookBackBars = 200; extern int pivotPipDiff = 10; extern int zonePipSize = 2; extern int maxLevels = 3; extern color Color_1 = clrSnow; extern color Color_2 = clrGold; string IndID = "PowerDynamiteAreas-MTF"; bool GLi_96 = TRUE; double GL_ibuf_100[]; double GL_ibuf_104[]; double GL_ibuf_108[]; double GL_ibuf_112[]; string GL_symbol_116 = ""; double GL_point_124 = 0.0; double GL_digits_132 = 0.0; int GLi_140 = 1; // E37F0136AA3FFAF149B351F6A4C948E9 int init() { IndicatorBuffers(4); SetIndexBuffer(0, GL_ibuf_100); SetIndexBuffer(1, GL_ibuf_104); SetIndexBuffer(2, GL_ibuf_108); SetIndexBuffer(3, GL_ibuf_112); GL_symbol_116 = Symbol(); GL_point_124 = MarketInfo(GL_symbol_116, MODE_POINT); GL_digits_132 = MarketInfo(GL_symbol_116, MODE_DIGITS); if (GL_point_124 == 0.001) { GL_point_124 = 0.01; GL_digits_132 = 3; } else { if (GL_point_124 == 0.00001) { GL_point_124 = 0.0001; GL_digits_132 = 5; } } if (GL_digits_132 == 3.0 || GL_digits_132 == 5.0) GLi_140 = 10; return (0); } // 52D46093050F38C27267BCE42543EF60 int deinit() { obj_delete(IndID); return (0); } // EA2B2676C28C0DB26D39331A336C6B92 int start() { int LCi_16; double point_20; double LCd_28; double LCd_36; string LCs_44; int LCi_52,LCi_56; int ind_counted_0 = IndicatorCounted(); int LCi_4 = iBars(NULL,TIME_FRAMES) - ind_counted_0; int LCi_8 = 0; if (GLi_96) LCi_8 = 1; //覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧慾 for (int LCi_12 = LCi_4; LCi_12 >= LCi_8; LCi_12--) { LCi_16 = iHighest(Symbol(), TIME_FRAMES, MODE_HIGH, pivotStrength * 2 + 1, LCi_12); GL_ibuf_100[LCi_12] = 0; GL_ibuf_104[LCi_12] = 0; GL_ibuf_108[LCi_12] = 0; GL_ibuf_112[LCi_12] = 0; if (LCi_16 == LCi_12 + pivotStrength) { GL_ibuf_100[LCi_12] = iHigh(NULL,TIME_FRAMES,LCi_16); GL_ibuf_104[LCi_12] = (double)Time[LCi_16]; } LCi_16 = iLowest(Symbol(), TIME_FRAMES, MODE_LOW, pivotStrength * 2 + 1, LCi_12); if (LCi_16 == LCi_12 + pivotStrength) { GL_ibuf_108[LCi_12] = iLow(NULL,TIME_FRAMES,LCi_16); GL_ibuf_112[LCi_12] = (double)Time[LCi_16]; } //覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧慾 if (LCi_12 == LCi_8) { point_20 = MarketInfo(Symbol(), MODE_POINT); LCd_28 = iClose(NULL,TIME_FRAMES,LCi_8); LCd_36 = 0; LCs_44 = ""; LCi_52 = 0; for (LCi_56 = 1; LCi_56 <= maxLevels; LCi_56++) { LCd_28 = f0_0(LCd_28, 1, LCi_8); if (LCd_28 == LCd_36) LCs_44 = LCs_44 + " L" + (string)LCi_56; else { LCs_44 = "L" + (string)LCi_56; LCi_52 = LCi_56; } f0_1("resZone" + (string)LCi_52, LCd_28 - zonePipSize * point_20 * GLi_140 / 2.0, LCd_28 + zonePipSize * point_20 * GLi_140 / 2.0, Time[LCi_8], Time[LCi_8 + maxLookBackBars-1], Color_1, 3); f0_2("resLine" + (string)LCi_52, LCd_28 - zonePipSize * point_20 * GLi_140 / 2.0, Time[LCi_8], Time[LCi_8 + maxLookBackBars-1], STYLE_SOLID, Color_1, 1); f0_3("resTag" + (string)LCi_52, LCs_44, Time[3], LCd_28 - zonePipSize * point_20 * GLi_140 / 2.0, Color_1); LCd_36 = LCd_28; LCd_28 += pivotPipDiff * point_20 * GLi_140; } LCd_28 = iClose(NULL,TIME_FRAMES,LCi_8); LCd_36 = 0; LCs_44 = ""; LCi_52 = 0; for (LCi_56 = 1; LCi_56 <= maxLevels; LCi_56++) { LCd_28 = f0_0(LCd_28, -1, LCi_8); if (LCd_28 == LCd_36) LCs_44 = LCs_44 + " L" + (string)LCi_56; else { LCs_44 = "L" + (string)LCi_56; LCi_52 = LCi_56; } f0_1("supZone" + (string)LCi_52, LCd_28 - zonePipSize * point_20 * GLi_140 / 2.0, LCd_28 + zonePipSize * point_20 * GLi_140 / 2.0, Time[LCi_8], Time[LCi_8 + maxLookBackBars-1], Color_2, 3); f0_2("supLine" + (string)LCi_52, LCd_28 - zonePipSize * point_20 * GLi_140 / 2.0, Time[LCi_8], Time[LCi_8 + maxLookBackBars-1], STYLE_SOLID, Color_2, 1); f0_3("supTag" + (string)LCi_52, LCs_44, Time[3], LCd_28 - zonePipSize * point_20 * GLi_140 / 2.0, Color_2); LCd_36 = LCd_28; LCd_28 -= pivotPipDiff * point_20 * GLi_140; } } } return (0); } // A35D1FA551F99704156133930369CEBE double f0_0(double ARd_0, int ARi_8, int ARi_12) { double LCda_48[]; double LCda_52[]; int index_16 = 0; int index_20 = 0; double LCd_ret_24 = 0; int LCi_32 = 0; int LCi_36 = 0; int LCi_40 = -1; int LCi_44 = -1; ArrayResize(LCda_48, maxLookBackBars); ArrayInitialize(LCda_48, 0); ArrayResize(LCda_52, maxLookBackBars); ArrayInitialize(LCda_52, 0); index_16 = ARi_12; for (index_20 = 0; index_20 < MathMin(maxLookBackBars, iBars(NULL,TIME_FRAMES)) && index_16 < iBars(NULL,TIME_FRAMES); index_16++) { if (GL_ibuf_100[index_16] != 0.0) { LCda_48[index_20] = GL_ibuf_100[index_16]; LCda_52[index_20] = GL_ibuf_104[index_16]; index_20++; } if (GL_ibuf_108[index_16] != 0.0) { LCda_48[index_20] = GL_ibuf_108[index_16]; LCda_52[index_20] = GL_ibuf_112[index_16]; index_20++; } } double point_56 = MarketInfo(Symbol(), MODE_POINT); int count_64 = 0; int count_68 = 0; LCi_32 = 0; LCi_36 = 0; LCi_40 = -1; LCi_44 = -1; for (index_16 = 0; index_16 <= maxLookBackBars - 1; index_16++) { if (LCda_52[index_16] < Time[maxLookBackBars]) break; count_64 = 0; count_68 = 0; for (index_20 = maxLookBackBars - 2; index_20 >= 0; index_20--) { if (LCda_52[index_20] > Time[maxLookBackBars] && LCda_48[index_20] > 0.0) { if (ARi_8 > 0 && LCda_48[index_16] > 0.0 && LCda_48[index_16] >= ARd_0) { if (MathAbs(LCda_48[index_16] - LCda_48[index_20]) / (point_56 * GLi_140) <= pivotPipDiff) count_64++; if (count_64 > LCi_32) { LCi_32 = count_64; LCd_ret_24 = LCda_48[index_16]; LCi_40 = index_16; } } if (ARi_8 < 0 && LCda_48[index_16] > 0.0 && LCda_48[index_16] <= ARd_0) { if (MathAbs(LCda_48[index_16] - LCda_48[index_20]) / (point_56 * GLi_140) <= pivotPipDiff) count_68++; if (count_68 > LCi_36) { LCi_36 = count_68; LCd_ret_24 = LCda_48[index_16]; LCi_44 = index_16; } } } } } if (ARi_8 > 0) { if (LCi_40 >= 0) LCd_ret_24 = LCda_48[LCi_40]; else LCd_ret_24 = iHigh(NULL,TIME_FRAMES,iHighest(Symbol(),TIME_FRAMES,MODE_HIGH,maxLookBackBars,ARi_12)); } if (ARi_8 < 0) { if (LCi_44 >= 0) LCd_ret_24 = LCda_48[LCi_44]; else LCd_ret_24 = iLow(NULL,TIME_FRAMES,iLowest(Symbol(),TIME_FRAMES,MODE_LOW,maxLookBackBars,ARi_12)); } return (LCd_ret_24); } // EED6EE06967100CA6A4AC543C5CD83C5 void f0_2(string main, double ARd_8, datetime AR_datetime_16, datetime AR_datetime_20, int AR_style_24, double AR_color_28, int AR_width_36) { string AR_name_0 = StringConcatenate( IndID, " ョ ", main); if (ObjectFind(AR_name_0) == -1) ObjectCreate(AR_name_0, OBJ_TREND, 0, 0, 0); ObjectSet(AR_name_0, OBJPROP_BACK, FALSE); ObjectSet(AR_name_0, OBJPROP_PRICE1, ARd_8); ObjectSet(AR_name_0, OBJPROP_PRICE2, ARd_8); ObjectSet(AR_name_0, OBJPROP_COLOR, AR_color_28); ObjectSet(AR_name_0, OBJPROP_STYLE, AR_style_24); ObjectSet(AR_name_0, OBJPROP_WIDTH, AR_width_36); ObjectSet(AR_name_0, OBJPROP_TIME1, AR_datetime_16); ObjectSet(AR_name_0, OBJPROP_TIME2, AR_datetime_20); ObjectSet(AR_name_0, OBJPROP_RAY, FALSE); } // F4D97453AAC62369841FFF4CBBADE270 void f0_3(string main, string AR_text_8, datetime AR_datetime_16, double AR_price_20, color AR_color_28) { string AR_name_0 = StringConcatenate( IndID, " ョ ", main); if (ObjectFind(AR_name_0) != 0) ObjectCreate(AR_name_0, OBJ_TEXT, 0, AR_datetime_16, AR_price_20); else ObjectMove(AR_name_0, 0, AR_datetime_16, AR_price_20); ObjectSetText(AR_name_0, AR_text_8, 8, "Arial", AR_color_28); } // D128187CF2E53899B703BEB28921A08E void f0_1(string main, double ARd_8, double ARd_16, datetime AR_datetime_24, datetime AR_datetime_28, double AR_color_32, int AR_width_40) { string AR_name_0 = StringConcatenate( IndID, " ョ ", main); if (ObjectFind(AR_name_0) == -1) ObjectCreate(AR_name_0, OBJ_RECTANGLE, 0, 0, 0, 0, 0); ObjectSet(AR_name_0, OBJPROP_TIME1, AR_datetime_24); ObjectSet(AR_name_0, OBJPROP_TIME2, AR_datetime_28); ObjectSet(AR_name_0, OBJPROP_COLOR, AR_color_32); ObjectSet(AR_name_0, OBJPROP_PRICE1, ARd_8); ObjectSet(AR_name_0, OBJPROP_PRICE2, ARd_16); ObjectSet(AR_name_0, OBJPROP_STYLE, STYLE_SOLID); ObjectSet(AR_name_0, OBJPROP_WIDTH, AR_width_40); ObjectSet(AR_name_0, OBJPROP_BACK, TRUE); } //覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧覧慾 void obj_delete( string prefix ) { int obj_total = ObjectsTotal(); string name; for(int i = obj_total - 1; i >= 0; i --) { name = ObjectName(i); if(StringFind(name , prefix) == 0) ObjectDelete(name); } } //覧覧覧覧覧覧覧覧| end of the algorithm |覧覧覧覧覧覧覧覧慾