/*
   Generated by EX4-TO-MQ4 decompiler V4.0.224.1 []
   Website: http://purebeam.biz
   E-mail : purebeam@gmail.com
*/

#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1 White
#property indicator_color2 White
#property indicator_color3 Red
#property indicator_color4 Lime
#property indicator_color5 Gray
#property indicator_color6 Gray

extern color zhengdang = Gray;
double gd_80 = 2022.0;
double gd_unused_88 = 12.0;
double gd_unused_96 = 31.0;
double gd_unused_104 = 24.0;
int g_width_112 = 8;
double g_ibuf_116[];
double g_ibuf_120[];
double g_ibuf_124[];
double g_ibuf_128[];
double g_ibuf_132[];
double g_ibuf_136[];
int gi_unused_140 = 0;
int gi_unused_144 = 0;
string gs_148 = "MHDMT_XMA";
string gs_156 = "MHDMT_GRAY_BELT";

int init() {
   string ls_unused_0;
   IndicatorBuffers(6);
   SetIndexStyle(0, DRAW_LINE);
   SetIndexBuffer(0, g_ibuf_116);
   SetIndexStyle(1, DRAW_LINE);
   SetIndexBuffer(1, g_ibuf_120);
   SetIndexStyle(2, DRAW_LINE, STYLE_DASH);
   SetIndexBuffer(2, g_ibuf_124);
   SetIndexStyle(3, DRAW_LINE, STYLE_DASH);
   SetIndexBuffer(3, g_ibuf_128);
   SetIndexStyle(4, DRAW_LINE);
   SetIndexBuffer(4, g_ibuf_132);
   SetIndexStyle(5, DRAW_LINE);
   SetIndexBuffer(5, g_ibuf_136);
   IndicatorShortName("MHDMT_ZT");
   SetIndexLabel(0, "ZD");
   SetIndexLabel(1, "ZK");
   SetIndexLabel(2, "KS");
   SetIndexLabel(3, "DS");
   SetIndexLabel(4, "GBH");
   SetIndexLabel(5, "GBL");
   return (0);
}

int deinit() {
   ObjectsDeleteAll(WindowOnDropped());
   return (0);
}

int start() {
   double ld_0;
   double ld_8;
   bool li_16;
   bool li_20;
   int l_ind_counted_24 = IndicatorCounted();
   ObjectsDeleteAll(WindowOnDropped());
   int li_28 = WindowFirstVisibleBar();
   int l_highest_32 = iHighest(NULL, 0, MODE_HIGH, WindowBarsPerChart(), WindowFirstVisibleBar() - WindowBarsPerChart() + 1);
   double ld_36 = (WindowPriceMax() - WindowPriceMin()) / 15.0;
   int l_window_44 = WindowOnDropped();
   ObjectDelete("duoqujian");
   ObjectCreate("duoqujian", OBJ_TEXT, 0, Time[li_28 / 2], High[l_highest_32]);
   ObjectSetText("duoqujian", "【红色多头区间：只做多,不做空】", 16, "黑体", Maroon);
   ObjectDelete("kongqujian");
   ObjectCreate("kongqujian", OBJ_TEXT, 0, Time[li_28 / 2], High[l_highest_32] - ld_36);
   ObjectSetText("kongqujian", "【绿色空头区间：只做空,不做多】", 16, "黑体", DarkGreen);
   ObjectDelete("zhendangqujian");
   ObjectCreate("zhendangqujian", OBJ_TEXT, 0, Time[li_28 / 2], High[l_highest_32] - 2.0 * ld_36);
   ObjectSetText("zhendangqujian", "【震荡区间：多空双向操作】", 16, "黑体", zhengdang);
   if (Year() <= gd_80) {
      for (int li_48 = 0; li_48 < li_28; li_48++) {
         li_16 = FALSE;
         li_20 = FALSE;
         g_ibuf_116[li_48] = 2.0 * iCustom(NULL, 0, gs_148, 25, 25, 3, 1, li_48) - iCustom(NULL, 0, gs_148, 25, 25, 2, 1, li_48);
         g_ibuf_120[li_48] = 2.0 * iCustom(NULL, 0, gs_148, 25, 25, 2, 1, li_48) - iCustom(NULL, 0, gs_148, 25, 25, 3, 1, li_48);
         g_ibuf_124[li_48] = 3.9 * (iCustom(NULL, 0, gs_148, 25, 25, 2, 1, li_48) - iCustom(NULL, 0, gs_148, 25, 25, 3, 1, li_48)) + iCustom(NULL, 0, gs_148, 25, 25, 2, 1, li_48);
         g_ibuf_128[li_48] = iCustom(NULL, 0, gs_148, 25, 25, 3, 1, li_48) - 3.9 * (iCustom(NULL, 0, gs_148, 25, 25, 2, 1, li_48) - iCustom(NULL, 0, gs_148, 25, 25, 3, 1, li_48));
         g_ibuf_132[li_48] = iCustom(NULL, 0, gs_156, 2, li_48);
         g_ibuf_136[li_48] = iCustom(NULL, 0, gs_156, 3, li_48);
         ld_0 = iCustom(NULL, 0, gs_156, 2, li_48) + 2.0 * iCustom(NULL, 0, gs_156, 4, li_48);
         ld_8 = iCustom(NULL, 0, gs_156, 3, li_48) - 2.0 * iCustom(NULL, 0, gs_156, 4, li_48);
         ObjectCreate("Graybelt" + DoubleToStr(Time[li_48], 0), OBJ_TREND, l_window_44, Time[li_48], g_ibuf_132[li_48], Time[li_48], g_ibuf_136[li_48]);
         ObjectSet("Graybelt" + DoubleToStr(Time[li_48], 0), OBJPROP_COLOR, C'0x55,0x55,0x55');
         ObjectSet("Graybelt" + DoubleToStr(Time[li_48], 0), OBJPROP_RAY, FALSE);
         ObjectSet("Graybelt" + DoubleToStr(Time[li_48], 0), OBJPROP_WIDTH, g_width_112);
         ObjectSet("Graybelt" + DoubleToStr(Time[li_48], 0), OBJPROP_BACK, TRUE);
         if (g_ibuf_120[li_48] > ld_0 && g_ibuf_116[li_48] > ld_8) {
            ObjectCreate("duo" + DoubleToStr(Time[li_48], 0), OBJ_TREND, l_window_44, Time[li_48], g_ibuf_116[li_48], Time[li_48], g_ibuf_120[li_48]);
            ObjectSet("duo" + DoubleToStr(Time[li_48], 0), OBJPROP_COLOR, Maroon);
            ObjectSet("duo" + DoubleToStr(Time[li_48], 0), OBJPROP_RAY, FALSE);
            ObjectSet("duo" + DoubleToStr(Time[li_48], 0), OBJPROP_WIDTH, g_width_112);
            ObjectSet("duo" + DoubleToStr(Time[li_48], 0), OBJPROP_BACK, TRUE);
         }
         if (g_ibuf_120[li_48] < ld_0 && g_ibuf_116[li_48] < ld_8) {
            ObjectCreate("dong" + DoubleToStr(Time[li_48], 0), OBJ_TREND, l_window_44, Time[li_48], g_ibuf_120[li_48], Time[li_48], g_ibuf_116[li_48]);
            ObjectSet("dong" + DoubleToStr(Time[li_48], 0), OBJPROP_COLOR, DarkGreen);
            ObjectSet("dong" + DoubleToStr(Time[li_48], 0), OBJPROP_RAY, FALSE);
            ObjectSet("dong" + DoubleToStr(Time[li_48], 0), OBJPROP_WIDTH, g_width_112);
            ObjectSet("dong" + DoubleToStr(Time[li_48], 0), OBJPROP_BACK, TRUE);
         }
         if (g_ibuf_120[li_48] < ld_0 && g_ibuf_116[li_48] > ld_8) {
            ObjectCreate("dang" + DoubleToStr(Time[li_48], 0), OBJ_TREND, l_window_44, Time[li_48], g_ibuf_116[li_48], Time[li_48], g_ibuf_120[li_48]);
            ObjectSet("dang" + DoubleToStr(Time[li_48], 0), OBJPROP_COLOR, zhengdang);
            ObjectSet("dang" + DoubleToStr(Time[li_48], 0), OBJPROP_RAY, FALSE);
            ObjectSet("dang" + DoubleToStr(Time[li_48], 0), OBJPROP_WIDTH, g_width_112);
            ObjectSet("dang" + DoubleToStr(Time[li_48], 0), OBJPROP_BACK, TRUE);
         }
         if (g_ibuf_116[li_48 + 1] < Low[li_48 + 1] && g_ibuf_116[li_48] > Low[li_48] && (g_ibuf_120[li_48] > ld_0 && g_ibuf_116[li_48] > ld_8) || (g_ibuf_120[li_48] < ld_0 &&
            g_ibuf_116[li_48] > ld_8)) {
            ObjectCreate("duosong" + DoubleToStr(Time[li_48], 0), OBJ_TEXT, 0, Time[li_48], g_ibuf_128[li_48]);
            ObjectSetText("duosong" + DoubleToStr(Time[li_48], 0), "损", 10, "黑体", Red);
            ObjectCreate("zuoduo" + DoubleToStr(Time[li_48], 0), OBJ_TEXT, 0, Time[li_48], Low[li_48]);
            ObjectSetText("zuoduo" + DoubleToStr(Time[li_48], 0), "多", 12, "黑体", Red);
            li_16 = TRUE;
         }
         if (High[li_48 + 1] < g_ibuf_120[li_48 + 1] && High[li_48] > g_ibuf_120[li_48] && (g_ibuf_120[li_48] < ld_0 && g_ibuf_116[li_48] < ld_8) || (g_ibuf_120[li_48] < ld_0 &&
            g_ibuf_116[li_48] > ld_8)) {
            ObjectCreate("kongsong" + DoubleToStr(Time[li_48], 0), OBJ_TEXT, 0, Time[li_48], g_ibuf_124[li_48]);
            ObjectSetText("kongsong" + DoubleToStr(Time[li_48], 0), "损", 10, "黑体", Lime);
            ObjectCreate("zuokong" + DoubleToStr(Time[li_48], 0), OBJ_TEXT, 0, Time[li_48], High[li_48]);
            ObjectSetText("zuokong" + DoubleToStr(Time[li_48], 0), "空", 12, "黑体", Lime);
            li_20 = TRUE;
         }
         if (g_ibuf_116[li_48 + 1] < Low[li_48 + 1] && g_ibuf_116[li_48] > Low[li_48] && (g_ibuf_120[li_48] < ld_0 && g_ibuf_116[li_48] < ld_8) || !(g_ibuf_120[li_48] < ld_0 &&
            g_ibuf_116[li_48] > ld_8) && li_16 == FALSE) {
            ObjectCreate("kongping" + DoubleToStr(Time[li_48], 0), OBJ_TEXT, 0, Time[li_48], Low[li_48]);
            ObjectSetText("kongping" + DoubleToStr(Time[li_48], 0), "平", 12, "黑体", Yellow);
         }
         if (High[li_48 + 1] < g_ibuf_120[li_48 + 1] && High[li_48] > g_ibuf_120[li_48] && (g_ibuf_120[li_48] > ld_0 && g_ibuf_116[li_48] > ld_8) || !(g_ibuf_120[li_48] < ld_0 &&
            g_ibuf_116[li_48] > ld_8) && li_20 == FALSE) {
            ObjectCreate("duoping" + DoubleToStr(Time[li_48], 0), OBJ_TEXT, 0, Time[li_48], High[li_48]);
            ObjectSetText("duoping" + DoubleToStr(Time[li_48], 0), "平", 12, "黑体", Yellow);
         }
      }
   }
   return (0);
}