#property copyright "Copyright © 2009, Bryan A Rivera - BARforex.com" #property link "BARforex.com - futurehorizon@gmail.com" #include #import "MT4WebConnect.dll" int GetIntValue(string a0, string a1); #import extern string RBC_RangeSize = "5,15,25"; extern int StartYear = 2009; extern int StartMonth = 11; bool gi_92 = FALSE; int gi_unused_96 = 0; int gi_unused_100 = 0; int gi_104 = 0; int gia_108[10]; int gia_112[10]; int gia_116[10]; int gia_120[10]; int gia_124[10]; double gda_128[10]; double gda_132[10]; double gda_136[10]; double gda_140[10]; double gda_144[10]; double gda_148[10]; double gda_152[10]; double gda_156[10]; string gs_unused_160; string g_str_concat_168; string gs_176; int init() { int l_error_28; int li_unused_32; int li_unused_36; int lia_40[13]; double ld_44; double ld_52; double ld_60; double ld_68; double ld_76; double ld_84; double ld_92; int li_100; int li_104; int li_108; int li_112; int l_file_116; double ld_120; string ls_128; string l_str_concat_136; string l_str_concat_144; int li_152; int li_156; int li_160; int li_164; int li_168; int l_datetime_172; int l_str2time_176; double ld_180; double ld_188; string ls_unused_196; string ls_unused_204; int l_file_212; int lia_216[]; double lda_220[]; double lda_224[]; double lda_228[]; double lda_232[]; int li_236; int li_240; checkActivation(); if (gi_92 != TRUE) return (-1); int li_0 = 0; int l_str_len_4 = StringLen(RBC_RangeSize); string ls_12 = ""; for (int li_20 = 0; li_20 <= l_str_len_4; li_20++) { li_0 = StringGetChar(RBC_RangeSize, li_20); if (li_0 != ',' && li_20 != l_str_len_4) ls_12 = ls_12 + CharToStr(li_0); else { gda_156[gi_104] = StrToDouble(ls_12); gi_104++; ls_12 = ""; if (gi_104 > 10) { Alert("There are too many Range Sizes for one instance of Range Bars!!"); return (0); } } } for (int l_index_24 = 0; l_index_24 <= gi_104 - 1; l_index_24++) { l_error_28 = 0; li_unused_32 = 0; li_unused_36 = 0; ld_44 = 0; ld_52 = 0; ld_60 = 0; ld_68 = 0; ld_76 = 0; ld_92 = gda_156[l_index_24]; li_100 = gia_124[l_index_24]; li_104 = gia_112[l_index_24]; li_108 = gia_116[l_index_24]; li_112 = gia_120[l_index_24]; l_file_116 = gia_108[l_index_24]; ld_120 = 0; l_file_116 = -1; if (Digits == 5) ld_84 = ld_92 / 10000.0; if (Digits == 4) ld_84 = ld_92 / 1000.0; if (Digits == 3) ld_84 = ld_92 / 100.0; if (Digits == 2) ld_84 = ld_92 / 10.0; gda_152[l_index_24] = ld_84; gs_176 = Symbol(); if (StringFind(AccountServer(), "IBFX", 0) != -1 && StringFind(AccountServer(), "Mini", 0) != -1) { gs_unused_160 = "IBFXMini"; ls_128 = StringSetChar(gs_176, 6, ' '); ls_128 = StringTrimRight(ls_128); if (Digits == 5) ld_84 = ld_92 / 100000.0; if (Digits == 4) ld_84 = ld_92 / 10000.0; if (Digits == 3) ld_84 = ld_92 / 1000.0; if (Digits == 2) ld_84 = ld_92 / 100.0; gda_152[l_index_24] = ld_84; gs_176 = ls_128; } if (StringFind(gs_176, "jfx", 0) != -1) { gs_unused_160 = "JadeFX"; ls_128 = StringSubstr(gs_176, 0, StringFind(gs_176, "jfx", 0)); gs_176 = ls_128; } if (StringFind(gs_176, "b", 0) != -1) { gs_unused_160 = "JadeFX"; ls_128 = StringSubstr(gs_176, 0, StringFind(gs_176, "b", 0)); gs_176 = ls_128; } l_str_concat_136 = StringConcatenate("\n", "Symbol: ", gs_176, " Bar Range: ", RBC_RangeSize, "\n", "Broker: ", AccountCompany(), " Server: ", AccountServer(), "\n", "\n", "Range Bar Charts", "\n", "Copyright © 2009-2010, Bryan A Rivera - BARforex.com", "\n", "\n", "LOADING...."); Comment(l_str_concat_136); l_str_concat_144 = StringConcatenate("!RBC©", gs_176, ld_92, ".hst"); l_file_116 = FileOpenHistory(l_str_concat_144, FILE_BIN|FILE_WRITE); if (l_file_116 < 0) { l_error_28 = GetLastError(); Alert("FileOpenHistory( \"", l_str_concat_144, "\", FILE_BIN | FILE_WRITE )", " - Error #", l_error_28); return (0); } FileWriteInteger(l_file_116, 400, LONG_VALUE); FileWriteString(l_file_116, "Copyright © 2009-2010, Bryan A Rivera", 64); FileWriteString(l_file_116, StringConcatenate("!RBC©", gs_176), 12); FileWriteInteger(l_file_116, ld_92, 8); FileWriteInteger(l_file_116, Digits, LONG_VALUE); FileWriteInteger(l_file_116, 0, LONG_VALUE); FileWriteInteger(l_file_116, 0, LONG_VALUE); FileWriteArray(l_file_116, lia_40, 0, 13); li_152 = StartYear; li_156 = StartMonth; li_160 = 100 * li_152 + li_156; li_164 = 100 * Year() + Month(); li_168 = 1; li_100 = 60; ld_44 = 0; ld_52 = 0; ld_60 = 0; ld_68 = 0; ld_76 = 0; l_file_212 = FileOpenHistory(StringConcatenate(Symbol(), "1.HST"), FILE_BIN|FILE_READ); if (l_file_212 < 0) { Alert("Please download the M1 data for this Symbol and restart Range Bars."); return (0); } ArrayCopySeries(lia_216, 5, Symbol(), PERIOD_M1); ArrayCopySeries(lda_220, 0, Symbol(), PERIOD_M1); ArrayCopySeries(lda_224, 2, Symbol(), PERIOD_M1); ArrayCopySeries(lda_228, 1, Symbol(), PERIOD_M1); ArrayCopySeries(lda_232, 3, Symbol(), PERIOD_M1); l_str2time_176 = StrToTime(StringConcatenate(StartYear, ".", StartMonth, ".01 00:00")); l_datetime_172 = TimeCurrent(); li_236 = ArrayBsearch(lia_216, l_str2time_176, WHOLE_ARRAY, 0, MODE_DESCEND); li_240 = ArrayBsearch(lia_216, l_datetime_172, WHOLE_ARRAY, 0, MODE_DESCEND); while (li_236 > li_240) { for (li_168 = 1; li_168 <= 4; li_168++) { if (li_168 == 1) ld_180 = lda_220[li_236]; if (li_168 == 2) { if (lda_220[li_236] >= lda_232[li_236]) ld_180 = lda_224[li_236]; if (lda_220[li_236] < lda_232[li_236]) ld_180 = lda_228[li_236]; } if (li_168 == 3) { if (lda_220[li_236] >= lda_232[li_236]) ld_180 = lda_228[li_236]; if (lda_220[li_236] < lda_232[li_236]) ld_180 = lda_224[li_236]; } if (li_168 == 4) ld_180 = lda_232[li_236]; while (ld_188 > ld_180) { if (ld_120 < ld_84) { if (ld_188 < ld_60) ld_60 = ld_188; if (ld_188 > ld_68) ld_68 = ld_188; ld_44 = ld_188; ld_76++; ld_120 = MathAbs(ld_68 - ld_60); } if (ld_120 >= ld_84) { FileWriteInteger(l_file_116, li_100, LONG_VALUE); FileWriteDouble(l_file_116, ld_52, DOUBLE_VALUE); FileWriteDouble(l_file_116, ld_60, DOUBLE_VALUE); FileWriteDouble(l_file_116, ld_68, DOUBLE_VALUE); FileWriteDouble(l_file_116, ld_44, DOUBLE_VALUE); FileWriteDouble(l_file_116, ld_76, DOUBLE_VALUE); FileFlush(l_file_116); li_100 += 60; ld_52 = ld_188; ld_60 = ld_188; ld_68 = ld_188; ld_44 = ld_188; ld_76 = 1; ld_120 = MathAbs(ld_68 - ld_60); } ld_188 -= 0.00001; } while (ld_188 < ld_180) { if (ld_120 < ld_84) { if (ld_188 < ld_60) ld_60 = ld_188; if (ld_188 > ld_68) ld_68 = ld_188; ld_44 = ld_188; ld_76++; ld_120 = MathAbs(ld_68 - ld_60); } if (ld_120 >= ld_84) { FileWriteInteger(l_file_116, li_100, LONG_VALUE); FileWriteDouble(l_file_116, ld_52, DOUBLE_VALUE); FileWriteDouble(l_file_116, ld_60, DOUBLE_VALUE); FileWriteDouble(l_file_116, ld_68, DOUBLE_VALUE); FileWriteDouble(l_file_116, ld_44, DOUBLE_VALUE); FileWriteDouble(l_file_116, ld_76, DOUBLE_VALUE); FileFlush(l_file_116); li_100 += 60; ld_52 = ld_188; ld_60 = ld_188; ld_68 = ld_188; ld_44 = ld_188; ld_76 = 1; ld_120 = MathAbs(ld_68 - ld_60); } ld_188 += 0.00001; } } li_236--; l_str2time_176 = l_datetime_172; ld_188 = ld_180; } gia_124[l_index_24] = li_100; gda_128[l_index_24] = ld_44; gda_132[l_index_24] = ld_52; gda_136[l_index_24] = ld_60; gda_140[l_index_24] = ld_68; gda_144[l_index_24] = ld_76; gda_148[l_index_24] = ld_120; FileClose(l_file_212); GetLastError(); g_str_concat_168 = StringConcatenate(g_str_concat_168, gs_176); l_str_concat_136 = StringConcatenate("\n", "Symbol: ", gs_176, " Bar Range: ", RBC_RangeSize, "\n", "Broker: ", AccountCompany(), " Server: ", AccountServer(), "\n", "\n", "Range Bar Charts", "\n", "Copyright © 2009-2010, Bryan A Rivera - BARforex.com", "\n", "LOADING.... Ranges Loaded:", g_str_concat_168); g_str_concat_168 = StringConcatenate(g_str_concat_168, " - "); Comment(l_str_concat_136); li_104 = FileTell(l_file_116); FileWriteInteger(l_file_116, li_100, LONG_VALUE); FileWriteDouble(l_file_116, ld_52, DOUBLE_VALUE); FileWriteDouble(l_file_116, ld_60, DOUBLE_VALUE); FileWriteDouble(l_file_116, ld_68, DOUBLE_VALUE); FileWriteDouble(l_file_116, ld_44, DOUBLE_VALUE); FileWriteDouble(l_file_116, ld_76, DOUBLE_VALUE); FileFlush(l_file_116); gia_112[l_index_24] = li_104; gia_116[l_index_24] = li_108; gia_120[l_index_24] = li_112; gia_124[l_index_24] = li_100; gia_108[l_index_24] = l_file_116; RefreshWindow(l_index_24); } l_str_concat_136 = StringConcatenate("\n", "Symbol: ", gs_176, " Bar Range: ", RBC_RangeSize, "\n", "Broker: ", AccountCompany(), " Server: ", AccountServer(), "\n", "\n", "Range Bar Charts", "\n", "Copyright © 2009-2010, Bryan A Rivera - BARforex.com", "\n", "\n", "DONE"); Comment(l_str_concat_136); return (0); } int start() { double l_bid_4; double ld_12; double l_bid_20; double l_bid_28; double ld_36; double ld_44; double ld_52; double ld_unused_60; int li_68; int li_72; int l_file_76; if (gi_92 != TRUE) return (-1); for (int l_index_0 = 0; l_index_0 <= gi_104 - 1; l_index_0++) { ld_52 = gda_152[l_index_0]; l_bid_4 = gda_128[l_index_0]; ld_12 = gda_132[l_index_0]; l_bid_20 = gda_136[l_index_0]; l_bid_28 = gda_140[l_index_0]; ld_36 = gda_144[l_index_0]; ld_44 = gda_148[l_index_0]; ld_unused_60 = gda_156[l_index_0]; li_68 = gia_112[l_index_0]; li_72 = gia_124[l_index_0]; l_file_76 = gia_108[l_index_0]; if (l_file_76 < 0) return (-1); FileSeek(l_file_76, li_68, SEEK_SET); ld_36++; ld_44 = MathAbs(l_bid_28 - l_bid_20); if (ld_44 < ld_52) { if (Bid < l_bid_20) l_bid_20 = Bid; if (Bid > l_bid_28) l_bid_28 = Bid; l_bid_4 = Bid; ld_44 = MathAbs(l_bid_28 - l_bid_20); FileWriteInteger(l_file_76, li_72, LONG_VALUE); FileWriteDouble(l_file_76, ld_12, DOUBLE_VALUE); FileWriteDouble(l_file_76, l_bid_20, DOUBLE_VALUE); FileWriteDouble(l_file_76, l_bid_28, DOUBLE_VALUE); FileWriteDouble(l_file_76, l_bid_4, DOUBLE_VALUE); FileWriteDouble(l_file_76, ld_36, DOUBLE_VALUE); FileFlush(l_file_76); } if (ld_44 >= ld_52) { li_72 += 60; ld_12 = Bid; l_bid_20 = Bid; l_bid_28 = Bid; l_bid_4 = Bid; ld_36 = 1; ld_44 = MathAbs(l_bid_28 - l_bid_20); li_68 = FileTell(l_file_76); FileWriteInteger(l_file_76, li_72, LONG_VALUE); FileWriteDouble(l_file_76, ld_12, DOUBLE_VALUE); FileWriteDouble(l_file_76, l_bid_20, DOUBLE_VALUE); FileWriteDouble(l_file_76, l_bid_28, DOUBLE_VALUE); FileWriteDouble(l_file_76, l_bid_4, DOUBLE_VALUE); FileWriteDouble(l_file_76, ld_36, DOUBLE_VALUE); FileFlush(l_file_76); } gia_112[l_index_0] = li_68; gia_124[l_index_0] = li_72; gda_128[l_index_0] = l_bid_4; gda_132[l_index_0] = ld_12; gda_136[l_index_0] = l_bid_20; gda_140[l_index_0] = l_bid_28; gda_144[l_index_0] = ld_36; gda_148[l_index_0] = ld_44; RefreshWindow(l_index_0); } return (0); } void RefreshWindow(int ai_0) { string ls_12; int li_4 = gia_116[ai_0]; int l_timeframe_8 = gda_156[ai_0]; if (li_4 == 0) { if (StringFind(gs_176, "jfx", 0) != 1) ls_12 = StringSubstr(gs_176, 0, StringFind(gs_176, "jfx", 0)); li_4 = WindowHandle(StringConcatenate("!RBC©", ls_12), l_timeframe_8); } if (li_4 != 0) PostMessageA(li_4, WM_COMMAND, 33324, 0); gia_116[ai_0] = li_4; } int deinit() { int l_file_4; int li_0 = 0; if (li_0 <= gi_104 - 1) { l_file_4 = gia_108[li_0]; if (l_file_4 > 0) { FileClose(l_file_4); l_file_4 = -1; } return (0); } return (0); } void checkActivation() { double l_acc_number_0 = AccountNumber(); gi_92 = FALSE; string l_dbl2str_12 = DoubleToStr(l_acc_number_0, 0); string ls_20 = "GH7JN3HB34"; int li_8 = GetIntValue(l_dbl2str_12, ls_20); if (li_8 == 345) gi_92 = TRUE; if (li_8 == 666) Alert("Invalid License Key - Please Contact Me At futurehorizon@gmail.com"); if (li_8 == 3) Alert("Something Went Wrong, please contact me at futurehorizon@gmail.com"); if (li_8 == -1110) Alert("Activation Server Could Not Be Reached - Check Your Internet Connection and Try Again"); if (li_8 == 77) Alert("Something Went Wrong - Try Again"); if (li_8 == 676) Alert("Account has been deleted, If this is an error please contact me!!"); if (li_8 == 444) Alert("Activation Server is Down - Try Again Soon"); if (gi_92 == TRUE) { } }