#property copyright "Copyright © 2008, TRC Holdings Co. Ltd." #property link "http://trc-hd.com/" #property indicator_chart_window #property indicator_buffers 4 #property indicator_color1 Black #property indicator_color2 Black #property indicator_color3 Black #property indicator_color4 Black int gia_76[4]; int gi_80 = 0; double g_ibuf_84[]; double g_ibuf_88[]; double g_ibuf_92[]; double g_ibuf_96[]; extern double U_BUY_RCI_9 = 75.0; extern double U_BUY_RCI2_9 = 79.0; extern double U_BUY_RCI_14 = 75.0; extern double U_BUY_RCI2_14 = 79.0; extern double U_BUY_RCI_26 = -75.0; extern double U_BUY_RCI_52 = -69.0; extern double U_SELL_RCI_9 = -75.0; extern double U_SELL_RCI2_9 = -79.0; extern double U_SELL_RCI_14 = -75.0; extern double U_SELL_RCI2_14 = -79.0; extern double U_SELL_RCI_26 = 75.0; extern double U_SELL_RCI_52 = 69.0; extern double U2_BUY_RCI_9 = 70.0; extern double U2_BUY_RCI2_9 = 79.0; extern double U2_BUY_RCI_14 = 70.0; extern double U2_BUY_RCI2_14 = 79.0; extern double U2_BUY_RCI_26 = -75.0; extern double U2_BUY_RCI_52 = -69.0; extern double U2_SELL_RCI_9 = -70.0; extern double U2_SELL_RCI2_9 = -79.0; extern double U2_SELL_RCI_14 = -70.0; extern double U2_SELL_RCI2_14 = -79.0; extern double U2_SELL_RCI_26 = 75.0; extern double U2_SELL_RCI_52 = 69.0; extern color U_BUY_DISP_COLOR = Blue; extern color U_SELL_DISP_COLOR = Blue; extern color U2_BUY_DISP_COLOR = Green; extern color U2_SELL_DISP_COLOR = Green; extern bool ALERT_DISP = FALSE; double gd_312 = 75.0; double gd_320 = 79.0; double gd_328 = -69.0; double gd_336 = -75.0; double gd_344 = -75.0; double gd_352 = -79.0; double gd_360 = 69.0; double gd_368 = 75.0; double gd_376 = -69.0; double gd_384 = 70.0; double gd_392 = -75.0; double gd_400 = 79.0; double gd_408 = 69.0; double gd_416 = -70.0; double gd_424 = 75.0; double gd_432 = -79.0; extern double Buy1_Shift = 0.0; extern double Sell1_Shift = 0.0; extern double Buy2_Shift = 0.0; extern double Sell2_Shift = 0.0; extern bool Debug = FALSE; double Sell_def(double ad_0, double ad_8) { if (ad_0 > 99.9 || ad_0 < 0.0) return (ad_8); return (ad_0); } double Buy_def(double ad_0, double ad_8) { if (ad_0 < -99.9 || ad_0 > 0.0) return (ad_8); return (ad_0); } int Chk_Over(double ad_0, double ad_8) { if (ad_0 > ad_8) return (0); return (1); } int Chk_Under(double ad_0, double ad_8) { if (ad_0 < ad_8) return (0); return (1); } int Chk_Alert(int ai_0, int ai_4) { if (ai_0 != 0 && ai_4 == 1) return (1); return (0); } int init() { SetIndexBuffer(0, g_ibuf_84); SetIndexBuffer(1, g_ibuf_88); SetIndexBuffer(2, g_ibuf_92); SetIndexBuffer(3, g_ibuf_96); SetIndexLabel(0, ""); SetIndexLabel(1, ""); SetIndexLabel(2, ""); SetIndexLabel(3, ""); gia_76[0] = 9; gia_76[1] = 14; gia_76[2] = 26; gia_76[3] = 52; U_BUY_RCI_9 = Sell_def(U_BUY_RCI_9, gd_312); U_BUY_RCI2_9 = Sell_def(U_BUY_RCI2_9, gd_320); U_BUY_RCI_14 = Sell_def(U_BUY_RCI_14, gd_312); U_BUY_RCI2_14 = Sell_def(U_BUY_RCI2_14, gd_320); U_BUY_RCI_26 = Buy_def(U_BUY_RCI_26, gd_336); U_BUY_RCI_52 = Buy_def(U_BUY_RCI_52, gd_328); U_SELL_RCI_9 = Buy_def(U_SELL_RCI_9, gd_344); U_SELL_RCI2_9 = Buy_def(U_SELL_RCI2_9, gd_352); U_SELL_RCI_14 = Buy_def(U_SELL_RCI_14, gd_344); U_SELL_RCI2_14 = Buy_def(U_SELL_RCI2_14, gd_352); U_SELL_RCI_26 = Sell_def(U_SELL_RCI_26, gd_368); U_SELL_RCI_52 = Sell_def(U_SELL_RCI_52, gd_360); U2_BUY_RCI_9 = Sell_def(U2_BUY_RCI_9, gd_384); U2_BUY_RCI2_9 = Sell_def(U2_BUY_RCI2_9, gd_400); U2_BUY_RCI_14 = Sell_def(U2_BUY_RCI_14, gd_384); U2_BUY_RCI2_14 = Sell_def(U2_BUY_RCI2_14, gd_400); U2_BUY_RCI_26 = Buy_def(U2_BUY_RCI_26, gd_392); U2_BUY_RCI_52 = Buy_def(U2_BUY_RCI_52, gd_376); U2_SELL_RCI_9 = Buy_def(U2_SELL_RCI_9, gd_416); U2_SELL_RCI2_9 = Buy_def(U2_SELL_RCI2_9, gd_432); U2_SELL_RCI_14 = Buy_def(U2_SELL_RCI_14, gd_416); U2_SELL_RCI2_14 = Buy_def(U2_SELL_RCI2_14, gd_432); U2_SELL_RCI_26 = Sell_def(U2_SELL_RCI_26, gd_424); U2_SELL_RCI_52 = Sell_def(U2_SELL_RCI_52, gd_408); return (0); } int deinit() { for (int l_count_0 = 0; l_count_0 < gi_80; l_count_0++) ObjectDelete("MAXSystem_MAX_Pattern_RCI" + l_count_0); return (0); } int start() { int l_ind_counted_0 = IndicatorCounted(); int li_4 = Bars - l_ind_counted_0; if (l_ind_counted_0 == 0) li_4 = Bars - 53; if (Debug == TRUE) Print("calculaed_bar:", l_ind_counted_0, "Bars:", Bars); for (int li_8 = li_4 - 1; li_8 > 0; li_8--) { g_ibuf_84[li_8] = EMPTY_VALUE; if (Chk_U_Buy(li_8 + 1) == 1) { ObjectCreate("MAXSystem_MAX_Pattern_RCI" + gi_80, OBJ_TEXT, 0, Time[li_8], High[li_8] + Buy1_Shift); ObjectSetText("MAXSystem_MAX_Pattern_RCI" + gi_80, "M1", 14, "Arial", U_BUY_DISP_COLOR); gi_80++; g_ibuf_84[li_8] = Low[li_8]; if (Chk_Alert(l_ind_counted_0, ALERT_DISP) == 1) Alert("U_Buy_Signal ", Symbol(), " at ", Low[li_8]); if (Debug == TRUE) Print("linecnt_Buy", gi_80); } g_ibuf_88[li_8] = EMPTY_VALUE; if (Chk_U_Sell(li_8 + 1) == 1) { ObjectCreate("MAXSystem_MAX_Pattern_RCI" + gi_80, OBJ_TEXT, 0, Time[li_8], Low[li_8] + Sell1_Shift); ObjectSetText("MAXSystem_MAX_Pattern_RCI" + gi_80, "M1", 14, "Arial", U_SELL_DISP_COLOR); gi_80++; g_ibuf_88[li_8] = High[li_8]; if (Chk_Alert(l_ind_counted_0, ALERT_DISP) == 1) Alert("U_Sell_Signal ", Symbol(), " at ", High[li_8]); if (Debug == TRUE) Print("linecnt_Sell", gi_80); } g_ibuf_92[li_8] = EMPTY_VALUE; if (Chk_U2_Buy(li_8 + 1) == 1) { ObjectCreate("MAXSystem_MAX_Pattern_RCI" + gi_80, OBJ_TEXT, 0, Time[li_8], High[li_8] + Buy2_Shift); ObjectSetText("MAXSystem_MAX_Pattern_RCI" + gi_80, "M2", 14, "Arial", U2_BUY_DISP_COLOR); gi_80++; g_ibuf_84[li_8] = Low[li_8]; if (Chk_Alert(l_ind_counted_0, ALERT_DISP) == 1) Alert("U2_Buy_Signal ", Symbol(), " at ", Low[li_8]); if (Debug == TRUE) Print("linecnt_Buy2", gi_80); } g_ibuf_96[li_8] = EMPTY_VALUE; if (Chk_U2_Sell(li_8 + 1) == 1) { ObjectCreate("MAXSystem_MAX_Pattern_RCI" + gi_80, OBJ_TEXT, 0, Time[li_8], Low[li_8] + Sell2_Shift); ObjectSetText("MAXSystem_MAX_Pattern_RCI" + gi_80, "M2", 14, "Arial", U2_SELL_DISP_COLOR); gi_80++; g_ibuf_88[li_8] = High[li_8]; if (Chk_Alert(l_ind_counted_0, ALERT_DISP) == 1) Alert("U2_Sell_Signal ", Symbol(), " at ", High[li_8]); if (Debug == TRUE) Print("linecnt_Sell2", gi_80); } } return (0); } int Chk_U_Buy(int ai_0) { double lda_4[4]; double lda_8[4]; for (int li_12 = 3; li_12 >= 0; li_12--) { lda_4[li_12] = iCustom(NULL, 0, "RCI", gia_76[li_12], 0, ai_0 - 1); lda_8[li_12] = iCustom(NULL, 0, "RCI", gia_76[li_12], 0, ai_0); if (Debug == TRUE) Print("rci_1", DoubleToStr(lda_4[li_12], 2), "rci_2", DoubleToStr(lda_8[li_12], 2)); } int li_16 = 0; li_16 += Chk_Under(U_BUY_RCI_26, lda_8[2]); li_16 += Chk_Under(U_BUY_RCI_52, lda_8[3]); li_16 += Chk_Under(U_BUY_RCI_26, lda_4[2]); li_16 += Chk_Under(U_BUY_RCI_52, lda_4[3]); if (li_16 < 1) return (0); int li_20 = 0; int li_24 = 0; li_20 += Chk_Over(U_BUY_RCI_9, lda_8[0]); if (li_20 == 1) { li_24 += Chk_Over(U_BUY_RCI2_9, lda_8[0]); if (li_24 == 1) { li_24 += Chk_Under(U_BUY_RCI2_9, lda_4[0]); if (li_24 == 2) return (1); } li_20 += Chk_Under(U_BUY_RCI_9, lda_4[0]); if (li_20 == 2) return (1); } li_20 = 0; li_24 = 0; li_20 += Chk_Over(U_BUY_RCI_14, lda_8[1]); if (li_20 == 1) { li_24 += Chk_Over(U_BUY_RCI2_14, lda_8[1]); if (li_24 == 1) { li_24 += Chk_Under(U_BUY_RCI2_14, lda_4[1]); if (li_24 == 2) return (1); } li_20 += Chk_Under(U_BUY_RCI_14, lda_4[1]); if (li_20 == 2) return (1); } return (0); } int Chk_U_Sell(int ai_0) { double lda_4[4]; double lda_8[4]; for (int li_12 = 3; li_12 >= 0; li_12--) { lda_4[li_12] = iCustom(NULL, 0, "RCI", gia_76[li_12], 0, ai_0 - 1); lda_8[li_12] = iCustom(NULL, 0, "RCI", gia_76[li_12], 0, ai_0); } int li_16 = 0; li_16 += Chk_Over(U_SELL_RCI_26, lda_8[2]); li_16 += Chk_Over(U_SELL_RCI_52, lda_8[3]); li_16 += Chk_Over(U_SELL_RCI_26, lda_4[2]); li_16 += Chk_Over(U_SELL_RCI_52, lda_4[3]); if (li_16 < 1) return (0); int li_20 = 0; int li_24 = 0; li_20 += Chk_Under(U_SELL_RCI_9, lda_8[0]); if (li_20 == 1) { li_24 += Chk_Under(U_SELL_RCI2_9, lda_8[0]); if (li_24 == 1) { li_24 += Chk_Over(U_SELL_RCI2_9, lda_4[0]); if (li_24 == 2) return (1); } li_20 += Chk_Over(U_SELL_RCI_9, lda_4[0]); if (li_20 == 2) return (1); } li_20 = 0; li_24 = 0; li_20 += Chk_Under(U_SELL_RCI_14, lda_8[1]); if (li_20 == 1) { li_24 += Chk_Under(U_SELL_RCI2_14, lda_8[1]); if (li_24 == 1) { li_24 += Chk_Over(U_SELL_RCI2_14, lda_4[1]); if (li_24 == 2) return (1); } li_20 += Chk_Over(U_SELL_RCI_14, lda_4[1]); if (li_20 == 2) return (1); } return (0); } int Chk_U2_Buy(int ai_0) { double lda_4[4]; double lda_8[4]; for (int li_12 = 3; li_12 >= 0; li_12--) { lda_4[li_12] = iCustom(NULL, 0, "RCI", gia_76[li_12], 0, ai_0 - 1); lda_8[li_12] = iCustom(NULL, 0, "RCI", gia_76[li_12], 0, ai_0); if (Debug == TRUE) Print(gia_76[li_12], ":rci_1", DoubleToStr(lda_4[li_12], 2), "rci_2", DoubleToStr(lda_8[li_12], 2)); } int li_16 = 0; int li_20 = 0; li_16 += Chk_Under(U2_BUY_RCI_26, lda_8[2]); li_16 += Chk_Under(U2_BUY_RCI_52, lda_8[3]); li_20 += Chk_Under(U2_BUY_RCI_26, lda_4[2]); li_20 += Chk_Under(U2_BUY_RCI_52, lda_4[3]); if (!(li_16 == 2) || !(li_20 == 2)) return (0); int li_24 = 0; int li_28 = 0; li_24 += Chk_Over(U2_BUY_RCI_9, lda_8[0]); if (li_24 == 1) { li_28 += Chk_Over(U2_BUY_RCI2_9, lda_8[0]); if (li_28 == 1) { li_28 += Chk_Under(U2_BUY_RCI2_9, lda_4[0]); if (li_28 == 2) return (1); } li_24 += Chk_Under(U2_BUY_RCI_9, lda_4[0]); if (li_24 == 2) return (1); } li_24 = 0; li_28 = 0; li_24 += Chk_Over(U2_BUY_RCI_14, lda_8[1]); if (li_24 == 1) { li_28 += Chk_Over(U2_BUY_RCI2_14, lda_8[1]); if (li_28 == 1) { li_28 += Chk_Under(U2_BUY_RCI2_14, lda_4[1]); if (li_28 == 2) return (1); } li_24 += Chk_Under(U2_BUY_RCI_14, lda_4[1]); if (li_24 == 2) return (1); } return (0); } int Chk_U2_Sell(int ai_0) { double lda_4[4]; double lda_8[4]; for (int li_12 = 3; li_12 >= 0; li_12--) { lda_4[li_12] = iCustom(NULL, 0, "RCI", gia_76[li_12], 0, ai_0 - 1); lda_8[li_12] = iCustom(NULL, 0, "RCI", gia_76[li_12], 0, ai_0); } int li_16 = 0; int li_20 = 0; li_16 += Chk_Over(U2_SELL_RCI_26, lda_8[2]); li_16 += Chk_Over(U2_SELL_RCI_52, lda_8[3]); li_20 += Chk_Over(U2_SELL_RCI_26, lda_4[2]); li_20 += Chk_Over(U2_SELL_RCI_52, lda_4[3]); if (!(li_16 == 2) || !(li_20 == 2)) return (0); int li_24 = 0; int li_28 = 0; li_24 += Chk_Under(U2_SELL_RCI_9, lda_8[0]); if (li_24 == 1) { li_28 += Chk_Under(U2_SELL_RCI2_9, lda_8[0]); if (li_28 == 1) { li_28 += Chk_Over(U2_SELL_RCI2_9, lda_4[0]); if (li_28 == 2) return (1); } li_24 += Chk_Over(U2_SELL_RCI_9, lda_4[0]); if (li_24 == 2) return (1); } li_24 = 0; li_28 = 0; li_24 += Chk_Under(U2_SELL_RCI_14, lda_8[1]); if (li_24 == 1) { li_28 += Chk_Under(U2_SELL_RCI2_14, lda_8[1]); if (li_28 == 1) { li_28 += Chk_Over(U2_SELL_RCI2_14, lda_4[1]); if (li_28 == 2) return (1); } li_24 += Chk_Over(U2_SELL_RCI_14, lda_4[1]); if (li_24 == 2) return (1); } return (0); }