#property indicator_separate_window #property indicator_buffers 6 #property indicator_color1 CLR_NONE #property indicator_color2 CLR_NONE #property indicator_color3 CLR_NONE #property indicator_color4 DodgerBlue #property indicator_color5 MediumVioletRed #property indicator_color6 Silver bool gi_76 = FALSE; int gi_unused_80 = 1; int gi_84 = 2; int gi_88 = 0; int gi_92 = 0; int gi_100 = 2; int gi_104 = 0; int gi_108 = 0; int gi_112 = 2; int gi_116 = 21; int gi_120 = 21; double gd_124 = 0.2; double gd_132; double g_ibuf_140[]; double g_ibuf_144[]; double g_ibuf_148[]; double g_ibuf_152[]; double g_ibuf_156[]; double g_ibuf_160[]; double gda_164[][7]; double gda_168[][7]; double gda_172[][7]; double gda_176[][7]; double gda_180[][7]; double gda_184[][7]; double gda_188[7]; double gda_192[7]; double gda_196[7]; double gda_200[7]; double gda_204[7]; double gda_208[7]; double gda_212[7]; double gda_216[7]; double gda_220[7]; int init() { SetIndexStyle(0, DRAW_NONE, STYLE_SOLID, 3); SetIndexStyle(1, DRAW_NONE, STYLE_SOLID, 0); SetIndexStyle(2, DRAW_NONE, STYLE_SOLID, 0); SetIndexStyle(3, DRAW_HISTOGRAM, STYLE_SOLID, 7); SetIndexStyle(4, DRAW_HISTOGRAM, STYLE_SOLID, 7); SetIndexStyle(5, DRAW_LINE, STYLE_SOLID, 4); IndicatorDigits(MarketInfo(Symbol(), MODE_DIGITS)); SetIndexLabel(0, NULL); SetIndexLabel(1, NULL); SetIndexLabel(2, NULL); SetIndexLabel(3, NULL); SetIndexLabel(4, NULL); SetIndexLabel(5, NULL); IndicatorShortName(" "); SetIndexDrawBegin(0, 100); SetIndexDrawBegin(1, 100); SetIndexDrawBegin(2, 100); SetIndexDrawBegin(3, 100); SetIndexDrawBegin(4, 100); SetIndexDrawBegin(5, 100); SetIndexBuffer(0, g_ibuf_140); SetIndexBuffer(1, g_ibuf_144); SetIndexBuffer(2, g_ibuf_148); SetIndexBuffer(3, g_ibuf_152); SetIndexBuffer(4, g_ibuf_156); SetIndexBuffer(5, g_ibuf_160); gda_204[1] = gi_100; gda_204[2] = gi_104; gda_204[3] = gi_108; gda_204[4] = gi_112; gda_204[5] = gi_116; gda_204[6] = gi_120; for (int li_0 = 1; li_0 < 7; li_0++) { gda_188[li_0] = 0; gda_192[li_0] = 0; gda_196[li_0] = 0; gda_200[li_0] = 0; gda_208[li_0] = 0; gda_212[li_0] = 0; gda_216[li_0] = 0; gda_220[li_0] = 0; gda_216[li_0] = gd_124 * gd_124; gda_220[li_0] = gda_216[li_0] * gd_124; gda_188[li_0] = -gda_220[li_0]; gda_192[li_0] = 3.0 * (gda_216[li_0] + gda_220[li_0]); gda_196[li_0] = -3.0 * (2.0 * gda_216[li_0] + gd_124 + gda_220[li_0]); gda_200[li_0] = 3.0 * gd_124 + 1.0 + gda_220[li_0] + 3.0 * gda_216[li_0]; if (gda_204[li_0] < 1.0) gda_204[li_0] = 1; gda_204[li_0] = (gda_204[li_0] - 1.0) / 2.0 + 1.0; gda_208[li_0] = 2 / (gda_204[li_0] + 1.0); gda_212[li_0] = 1 - gda_208[li_0]; } return (0); } int deinit() { ObjectsDeleteAll(gi_84, OBJ_TEXT); ObjectsDeleteAll(gi_84, OBJ_LABEL); return (0); } int start() { int lia_4[]; if (StringFind(Symbol(), "JPY", 0) != -1) gd_132 = 2; else gd_132 = 4; int li_16 = IndicatorCounted(); if (li_16 < 0) return (-1); if (li_16 > 0) li_16--; int li_0 = Bars - li_16 - 1; ArrayResize(gda_164, Bars + 1); ArrayResize(gda_168, Bars + 1); ArrayResize(gda_172, Bars + 1); ArrayResize(gda_176, Bars + 1); ArrayResize(gda_180, Bars + 1); ArrayResize(gda_184, Bars + 1); for (int li_12 = li_0; li_12 >= 0; li_12--) { for (int li_8 = 1; li_8 < 7; li_8++) { gda_164[Bars - li_12][li_8] = gda_208[li_8] * Close[li_12] + gda_212[li_8] * (gda_164[Bars - li_12 - 1][li_8]); gda_168[Bars - li_12][li_8] = gda_208[li_8] * (gda_164[Bars - li_12][li_8]) + gda_212[li_8] * (gda_168[Bars - li_12 - 1][li_8]); gda_172[Bars - li_12][li_8] = gda_208[li_8] * (gda_168[Bars - li_12][li_8]) + gda_212[li_8] * (gda_172[Bars - li_12 - 1][li_8]); gda_176[Bars - li_12][li_8] = gda_208[li_8] * (gda_172[Bars - li_12][li_8]) + gda_212[li_8] * (gda_176[Bars - li_12 - 1][li_8]); gda_180[Bars - li_12][li_8] = gda_208[li_8] * (gda_176[Bars - li_12][li_8]) + gda_212[li_8] * (gda_180[Bars - li_12 - 1][li_8]); gda_184[Bars - li_12][li_8] = gda_208[li_8] * (gda_180[Bars - li_12][li_8]) + gda_212[li_8] * (gda_184[Bars - li_12 - 1][li_8]); if (li_8 == 1) g_ibuf_140[li_12] = gda_188[li_8] * (gda_184[Bars - li_12][li_8]) + gda_192[li_8] * (gda_180[Bars - li_12][li_8]) + gda_196[li_8] * (gda_176[Bars - li_12][li_8]) + gda_200[li_8] * (gda_172[Bars - li_12][li_8]); if (li_8 == 2) g_ibuf_144[li_12] = gda_188[li_8] * (gda_184[Bars - li_12][li_8]) + gda_192[li_8] * (gda_180[Bars - li_12][li_8]) + gda_196[li_8] * (gda_176[Bars - li_12][li_8]) + gda_200[li_8] * (gda_172[Bars - li_12][li_8]); if (li_8 == 3) g_ibuf_148[li_12] = gda_188[li_8] * (gda_184[Bars - li_12][li_8]) + gda_192[li_8] * (gda_180[Bars - li_12][li_8]) + gda_196[li_8] * (gda_176[Bars - li_12][li_8]) + gda_200[li_8] * (gda_172[Bars - li_12][li_8]); if (li_8 == 4) g_ibuf_152[li_12] = gda_188[li_8] * (gda_184[Bars - li_12][li_8]) + gda_192[li_8] * (gda_180[Bars - li_12][li_8]) + gda_196[li_8] * (gda_176[Bars - li_12][li_8]) + gda_200[li_8] * (gda_172[Bars - li_12][li_8]); if (li_8 == 5) g_ibuf_156[li_12] = gda_188[li_8] * (gda_184[Bars - li_12][li_8]) + gda_192[li_8] * (gda_180[Bars - li_12][li_8]) + gda_196[li_8] * (gda_176[Bars - li_12][li_8]) + gda_200[li_8] * (gda_172[Bars - li_12][li_8]); if (li_8 == 6) g_ibuf_160[li_12] = gda_188[li_8] * (gda_184[Bars - li_12][li_8]) + gda_192[li_8] * (gda_180[Bars - li_12][li_8]) + gda_196[li_8] * (gda_176[Bars - li_12][li_8]) + gda_200[li_8] * (gda_172[Bars - li_12][li_8]); } if (gi_76) { ObjectDelete("ax"); ObjectCreate("ax", OBJ_LABEL, gi_84, 0, 0); ObjectSetText("ax", "Red Bar: " + DoubleToStr(g_ibuf_156[li_12], gd_132), 16, "Arial Bold", White); ObjectSet("ax", OBJPROP_CORNER, 0); ObjectSet("ax", OBJPROP_BACK, FALSE); ObjectSet("ax", OBJPROP_XDISTANCE, gi_88 + 25); ObjectSet("ax", OBJPROP_YDISTANCE, gi_92 + 10); ObjectDelete("tx2"); ObjectCreate("tx2", OBJ_LABEL, gi_84, 0, 0); ObjectSetText("tx2", "Blue Bar: " + DoubleToStr(g_ibuf_152[li_12], gd_132), 16, "Arial Bold", White); ObjectSet("tx2", OBJPROP_CORNER, 0); ObjectSet("tx2", OBJPROP_BACK, FALSE); ObjectSet("tx2", OBJPROP_XDISTANCE, gi_88 + 20); ObjectSet("tx2", OBJPROP_YDISTANCE, gi_92 + 30); } } return (0); }