#property copyright "© 2007 BJF Trading Group" #property link "www.fxstrategy.ca" #property indicator_chart_window #property indicator_buffers 1 #property indicator_color1 Black extern string _tmp1_ = " --- Common ---"; extern int Depth = 7; extern int dy = 3; extern bool TF.M1 = FALSE; extern bool TF.M5 = TRUE; extern bool TF.M15 = TRUE; extern bool TF.M30 = TRUE; extern bool TF.H1 = TRUE; extern bool TF.H4 = FALSE; extern bool TF.D1 = FALSE; extern bool TF.W1 = FALSE; extern bool TF.MN = FALSE; extern string _tmp2_ = " --- Graph. options ---"; extern int Corner = 0; extern color Header = Gold; extern color TimeFrame = Gold; extern color UpArrow = SeaGreen; extern color DownArrow = Crimson; extern color NeutralSymbol = DodgerBlue; string gs_160 = "i-Trend_"; int gia_168[9]; void init() { ArrayInitialize(gia_168, -1); if (TF.M1) gia_168[0] = 1; if (TF.M5) gia_168[1] = 5; if (TF.M15) gia_168[2] = 15; if (TF.M30) gia_168[3] = 30; if (TF.H1) gia_168[4] = 60; if (TF.H4) gia_168[5] = 240; if (TF.D1) gia_168[6] = 1440; if (TF.W1) gia_168[7] = 10080; if (TF.MN) gia_168[8] = 43200; clear(); show(); } void deinit() { clear(); } void start() { show(); } void show() { string l_text_16; int l_count_36; int li_44; double ld_48; int li_0 = 28; int l_window_4 = 0; string l_name_8 = ""; int l_arr_size_24 = ArraySize(gia_168); int l_count_28 = 0; for (int l_index_32 = 0; l_index_32 < l_arr_size_24; l_index_32++) { if (gia_168[l_index_32] != -1) { l_name_8 = gs_160 + TF2Str(gia_168[l_index_32]) + "_timeframe"; if (ObjectFind(l_name_8) == -1) ObjectCreate(l_name_8, OBJ_LABEL, l_window_4, 0, 0); ObjectSet(l_name_8, OBJPROP_XDISTANCE, 20); ObjectSet(l_name_8, OBJPROP_YDISTANCE, 20 * l_count_28 + 60); ObjectSetText(l_name_8, TF2Str(gia_168[l_index_32]), 10, "Tahoma", TimeFrame); ObjectSet(l_name_8, OBJPROP_CORNER, Corner); l_count_28++; } } for (l_index_32 = 0; l_index_32 < Depth; l_index_32++) { l_name_8 = gs_160 + "_" + l_index_32 + "bar"; if (ObjectFind(l_name_8) == -1) ObjectCreate(l_name_8, OBJ_LABEL, l_window_4, 0, 0); ObjectSet(l_name_8, OBJPROP_XDISTANCE, (l_index_32 + 1) * li_0 + 40); ObjectSet(l_name_8, OBJPROP_YDISTANCE, 35); l_text_16 = Depth - l_index_32 - 1; ObjectSetText(l_name_8, l_text_16, 11, "Verdana", Header); ObjectSet(l_name_8, OBJPROP_CORNER, Corner); } l_name_8 = gs_160 + "_" + "bars_total"; if (ObjectFind(l_name_8) == -1) ObjectCreate(l_name_8, OBJ_LABEL, l_window_4, 0, 0); ObjectSet(l_name_8, OBJPROP_XDISTANCE, (Depth + 2) * li_0 + 40); ObjectSet(l_name_8, OBJPROP_YDISTANCE, 35); ObjectSetText(l_name_8, CharToStr(252), 12, "Wingdings", Header); ObjectSet(l_name_8, OBJPROP_CORNER, Corner); l_count_28 = 0; for (l_index_32 = 0; l_index_32 < l_arr_size_24; l_index_32++) { if (gia_168[l_index_32] != -1) { l_count_36 = 0; for (int l_count_40 = 0; l_count_40 < Depth; l_count_40++) { l_name_8 = gs_160 + TF2Str(gia_168[l_index_32]) + "_" + l_count_40; if (ObjectFind(l_name_8) == -1) ObjectCreate(l_name_8, OBJ_LABEL, l_window_4, 0, 0); li_44 = iBarShift(NULL, gia_168[l_index_32], iTime(NULL, gia_168[0], 0)) + Depth - l_count_40 - 1; ld_48 = iClose(NULL, gia_168[l_index_32], li_44) - iOpen(NULL, gia_168[l_index_32], li_44); ObjectSet(l_name_8, OBJPROP_CORNER, Corner); if (ld_48 > dy * Point) { ObjectSet(l_name_8, OBJPROP_XDISTANCE, (l_count_40 + 1) * li_0 + 38); ObjectSet(l_name_8, OBJPROP_YDISTANCE, 20 * l_count_28 + 60); ObjectSetText(l_name_8, CharToStr(225), 12, "Wingdings", UpArrow); l_count_36++; } else { if (ld_48 < (-dy) * Point) { ObjectSet(l_name_8, OBJPROP_XDISTANCE, (l_count_40 + 1) * li_0 + 38); ObjectSet(l_name_8, OBJPROP_YDISTANCE, 20 * l_count_28 + 60); ObjectSetText(l_name_8, CharToStr(226), 12, "Wingdings", DownArrow); l_count_36--; } else { ObjectSet(l_name_8, OBJPROP_XDISTANCE, (l_count_40 + 1) * li_0 + 41); ObjectSet(l_name_8, OBJPROP_YDISTANCE, 20 * l_count_28 + 60); ObjectSetText(l_name_8, CharToStr(159), 12, "Wingdings", NeutralSymbol); } } } l_name_8 = gs_160 + TF2Str(gia_168[l_index_32]) + "_trend"; if (ObjectFind(l_name_8) == -1) ObjectCreate(l_name_8, OBJ_LABEL, l_window_4, 0, 0); ObjectSet(l_name_8, OBJPROP_CORNER, Corner); if (l_count_36 > 0) { ObjectSet(l_name_8, OBJPROP_XDISTANCE, (Depth + 2) * li_0 + 40); ObjectSet(l_name_8, OBJPROP_YDISTANCE, 20 * l_count_28 + 60); ObjectSetText(l_name_8, CharToStr(225), 12, "Wingdings", UpArrow); } else { if (l_count_36 < 0) { ObjectSet(l_name_8, OBJPROP_XDISTANCE, (Depth + 2) * li_0 + 40); ObjectSet(l_name_8, OBJPROP_YDISTANCE, 20 * l_count_28 + 60); ObjectSetText(l_name_8, CharToStr(226), 12, "Wingdings", DownArrow); } else { ObjectSet(l_name_8, OBJPROP_XDISTANCE, (Depth + 2) * li_0 + 43); ObjectSet(l_name_8, OBJPROP_YDISTANCE, 20 * l_count_28 + 60); ObjectSetText(l_name_8, CharToStr(159), 12, "Wingdings", NeutralSymbol); } } l_count_28++; } } } void clear() { string l_name_0; int l_objs_total_8 = ObjectsTotal(); for (int li_12 = l_objs_total_8 - 1; li_12 >= 0; li_12--) { l_name_0 = ObjectName(li_12); if (StringFind(l_name_0, gs_160) == 0) ObjectDelete(l_name_0); } } string TF2Str(int ai_0) { switch (ai_0) { case 1: return ("M1"); case 5: return ("M5"); case 15: return ("M15"); case 30: return ("M30"); case 60: return ("H1"); case 240: return ("H4"); case 1440: return ("D1"); case 10080: return ("W1"); case 43200: return ("MN"); } return (ai_0); }