Code: Select all
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Black
#property indicator_color2 Black
#property indicator_color3 Black
#property indicator_color4 Black
extern string SubSymbol = "GBPUSD";
extern color BullBarColor = Lime;
extern color BearBarColor = Red;
extern color GridColor = Gold;
extern bool Mirroring = FALSE;
extern int _BarsCount = 208;
string gs_104;
int gi_112 = 10;
int gi_116 = 10;
double g_ibuf_120[];
double g_ibuf_124[];
double g_ibuf_128[];
double g_ibuf_132[];
string gs_dummy_136;
// E37F0136AA3FFAF149B351F6A4C948E9
int init() {
gs_104 = "OverLayChart" + SubSymbol;
IndicatorShortName("OverLay Chart( " + SubSymbol + " )");
SetIndexBuffer(0, g_ibuf_120);
SetIndexBuffer(1, g_ibuf_124);
SetIndexBuffer(2, g_ibuf_128);
SetIndexBuffer(3, g_ibuf_132);
SetIndexStyle(0, DRAW_HISTOGRAM, STYLE_SOLID, 0, BullBarColor);
SetIndexStyle(1, DRAW_HISTOGRAM, STYLE_SOLID, 0, BearBarColor);
SetIndexStyle(2, DRAW_HISTOGRAM, STYLE_SOLID, 3, BullBarColor);
SetIndexStyle(3, DRAW_HISTOGRAM, STYLE_SOLID, 3, BearBarColor);
SetIndexEmptyValue(0, 0.0);
SetIndexEmptyValue(1, 0.0);
SetIndexEmptyValue(2, 0.0);
SetIndexEmptyValue(3, 0.0);
return (0);
}
// 52D46093050F38C27267BCE42543EF60
int deinit() {
ObjectDelete(gs_104 + "Status");
ObjectDelete(gs_104 + "Copyright");
ObjectDelete("pengenprofit");
ObjectDelete("pppp");
for (int li_0 = 1; li_0 <= gi_112; li_0++) {
ObjectDelete(gs_104 + "Grid" + li_0);
ObjectDelete(gs_104 + "Price" + li_0);
}
return (0);
}
// EA2B2676C28C0DB26D39331A336C6B92
int start() {
double ld_24;
double ld_32;
double ld_64;
double ld_72;
double ld_80;
double ld_88;
double ld_112;
RefreshRates();
ArrayInitialize(g_ibuf_120, 0.0);
ArrayInitialize(g_ibuf_124, 0.0);
ArrayInitialize(g_ibuf_128, 0.0);
ArrayInitialize(g_ibuf_132, 0.0);
int li_124 = 0;
int li_128 = _BarsCount;
double high_0 = High[iHighest(NULL, 0, MODE_HIGH, _BarsCount, li_124)];
double low_8 = Low[iLowest(NULL, 0, MODE_LOW, _BarsCount, li_124)];
double ld_16 = (high_0 + low_8) / 2.0;
if (Mirroring) {
ld_24 = iLow(SubSymbol, 0, iLowest(SubSymbol, 0, MODE_LOW, _BarsCount, li_124));
ld_32 = iHigh(SubSymbol, 0, iHighest(SubSymbol, 0, MODE_HIGH, _BarsCount, li_124));
} else {
ld_24 = iHigh(SubSymbol, 0, iHighest(SubSymbol, 0, MODE_HIGH, _BarsCount, li_124));
ld_32 = iLow(SubSymbol, 0, iLowest(SubSymbol, 0, MODE_LOW, _BarsCount, li_124));
}
double ld_40 = (ld_24 + ld_32) / 2.0;
double point_48 = MarketInfo(SubSymbol, MODE_POINT);
double digits_56 = MarketInfo(SubSymbol, MODE_DIGITS);
double ld_96 = (high_0 - low_8) / (ld_24 - ld_32);
double ld_104 = (ld_24 - ld_32) / gi_112;
ld_104 = MathRound((ld_24 - ld_32) / gi_112 / (point_48 * gi_116)) * (point_48 * gi_116);
for (int li_120 = li_124; li_120 < li_124 + _BarsCount; li_120++) {
ld_64 = iOpen(SubSymbol, 0, li_120) - ld_40;
ld_72 = iHigh(SubSymbol, 0, li_120) - ld_40;
ld_80 = iLow(SubSymbol, 0, li_120) - ld_40;
ld_88 = iClose(SubSymbol, 0, li_120) - ld_40;
if (Mirroring) {
if (ld_64 < ld_88) {
g_ibuf_124[li_120] = ld_16 + ld_72 * ld_96;
g_ibuf_120[li_120] = ld_16 + ld_80 * ld_96;
} else {
g_ibuf_124[li_120] = ld_16 + ld_80 * ld_96;
g_ibuf_120[li_120] = ld_16 + ld_72 * ld_96;
}
g_ibuf_132[li_120] = ld_16 + ld_88 * ld_96;
g_ibuf_128[li_120] = ld_16 + ld_64 * ld_96;
} else {
if (ld_64 < ld_88) {
g_ibuf_120[li_120] = ld_16 + ld_72 * ld_96;
g_ibuf_124[li_120] = ld_16 + ld_80 * ld_96;
} else {
g_ibuf_120[li_120] = ld_16 + ld_80 * ld_96;
g_ibuf_124[li_120] = ld_16 + ld_72 * ld_96;
}
g_ibuf_128[li_120] = ld_16 + ld_88 * ld_96;
g_ibuf_132[li_120] = ld_16 + ld_64 * ld_96;
}
}
ObjectCreate(gs_104 + "Copyright", OBJ_LABEL, 0, 0, 0);
ObjectSet(gs_104 + "Copyright", OBJPROP_COLOR, GridColor);
ObjectSet(gs_104 + "Copyright", OBJPROP_CORNER, 3);
ObjectSet(gs_104 + "Copyright", OBJPROP_XDISTANCE, 4);
ObjectSet(gs_104 + "Copyright", OBJPROP_YDISTANCE, 4);
ObjectSetText(gs_104 + "Copyright", "OverLay Chart by S.B.T.", 8);
ObjectCreate(gs_104 + "Status", OBJ_LABEL, 0, 0, 0);
ObjectSet(gs_104 + "Status", OBJPROP_COLOR, GridColor);
ObjectSet(gs_104 + "Status", OBJPROP_CORNER, 0);
ObjectSet(gs_104 + "Status", OBJPROP_XDISTANCE, 4);
ObjectSet(gs_104 + "Status", OBJPROP_YDISTANCE, 16);
ObjectSetText(gs_104 + "Status", SubSymbol + " O = " + DoubleToStr(iOpen(SubSymbol, 0, li_124), digits_56) + ", H= " + DoubleToStr(iHigh(SubSymbol, 0, li_124), digits_56) +
", L= " + DoubleToStr(iLow(SubSymbol, 0, li_124), digits_56) + ", C= " + DoubleToStr(iClose(SubSymbol, 0, li_124), digits_56), 8);
for (li_120 = 1; li_120 <= gi_112; li_120++) {
ld_112 = MathRound(ld_40 / (point_48 * gi_116)) * (point_48 * gi_116);
ld_112 = ld_112 + ld_104 / 2.0 + ld_104 * (gi_112 / 2 - 1) - ld_104 * (li_120 - 1);
ObjectCreate(gs_104 + "Grid" + li_120, OBJ_TREND, 0, 0, 0);
ObjectSet(gs_104 + "Grid" + li_120, OBJPROP_TIME1, Time[li_128]);
ObjectSet(gs_104 + "Grid" + li_120, OBJPROP_PRICE1, ld_16 + (ld_112 - ld_40) * ld_96);
ObjectSet(gs_104 + "Grid" + li_120, OBJPROP_TIME2, Time[li_124]);
ObjectSet(gs_104 + "Grid" + li_120, OBJPROP_PRICE2, ld_16 + (ld_112 - ld_40) * ld_96);
ObjectSet(gs_104 + "Grid" + li_120, OBJPROP_COLOR, GridColor);
ObjectSet(gs_104 + "Grid" + li_120, OBJPROP_STYLE, STYLE_DOT);
ObjectSet(gs_104 + "Grid" + li_120, OBJPROP_WIDTH, 1);
ObjectSet(gs_104 + "Grid" + li_120, OBJPROP_RAY, TRUE);
ObjectCreate(gs_104 + "Price" + li_120, OBJ_TEXT, 0, 0, 0);
ObjectSet(gs_104 + "Price" + li_120, OBJPROP_TIME1, Time[li_128 - _BarsCount / 10]);
ObjectSet(gs_104 + "Price" + li_120, OBJPROP_PRICE1, ld_16 + (ld_112 - ld_40) * ld_96);
ObjectSet(gs_104 + "Price" + li_120, OBJPROP_COLOR, GridColor);
ObjectSetText(gs_104 + "Price" + li_120, DoubleToStr(ld_112, digits_56), 8);
}
double price_132 = ld_16 + (iClose(SubSymbol, 0, li_124) - ld_40) * ld_96;
double ld_140 = (price_132 - Bid) / Point;
ObjectDelete("pengenprofit");
ObjectCreate("pengenprofit", OBJ_HLINE, 0, 0, price_132);
ObjectSet("pengenprofit", OBJPROP_WIDTH, 0);
ObjectSet("pengenprofit", OBJPROP_COLOR, GridColor);
ObjectDelete("pppp");
ObjectCreate("pppp", OBJ_TEXT, 0, Time[0], price_132);
ObjectSetText("pppp", " " + DoubleToStr(price_132, digits_56 + 1.0) + " , " + DoubleToStr(ld_140, 1) + " pip", 10, "Arial Bold",
GridColor);
return (0);
}