#property copyright "Copyright © 2009 Russ Horn" #property link "http://www.forexrebellion.com" extern int x_distance = 5; extern int y_distance = 15; extern string note1 = "Corner = 0 top-left; 1 top-right"; extern int corner = 1; int g_fontsize_96 = 8; string gs_arial_100 = "Arial"; extern color base_color = Black; extern color bullish_color = Blue; extern color bearish_color = Red; extern bool PopUpAlert = TRUE; extern bool SoundAlert = TRUE; extern bool EMailAlert = TRUE; double g_price_132; double g_price_140; double gd_148; double g_time_156; string gs_unused_164 = ""; string gs_unused_172 = ""; double gd_180; int gi_188 = 0; int init() { ObjectDelete("title0"); ObjectDelete("title1"); ObjectDelete("title2"); ObjectDelete("title3"); ObjectDelete("title4"); ObjectDelete("entry1"); ObjectDelete("entry2"); ObjectDelete("entry3"); ObjectDelete("entry4"); ObjectDelete("entryrule1"); ObjectDelete("entryrule2"); ObjectDelete("entryrule3"); ObjectDelete("entryrule4"); ObjectDelete("entryresult1"); ObjectDelete("entryresult2"); ObjectDelete("entryresult3"); ObjectDelete("entryresult4"); ObjectDelete("entrysummary1"); ObjectDelete("entrysummary2"); return (0); } int deinit() { ObjectDelete("title0"); ObjectDelete("title1"); ObjectDelete("title2"); ObjectDelete("title3"); ObjectDelete("title4"); ObjectDelete("entry1"); ObjectDelete("entry2"); ObjectDelete("entry3"); ObjectDelete("entry4"); ObjectDelete("entryrule1"); ObjectDelete("entryrule2"); ObjectDelete("entryrule3"); ObjectDelete("entryrule4"); ObjectDelete("entryresult1"); ObjectDelete("entryresult2"); ObjectDelete("entryresult3"); ObjectDelete("entryresult4"); ObjectDelete("entrysummary1"); ObjectDelete("entrysummary2"); return (0); } int start() { int li_0; int li_4; int li_8; int li_12; int li_16; int li_20; int li_24; int li_28; double l_close_36; double l_ima_44; double l_ima_52; double l_ima_60; double l_icustom_68; double l_icustom_76; double l_close_84; double l_ima_92; double l_ima_100; double l_ima_108; double l_icustom_116; double l_icustom_124; int li_132; int li_136; ObjectDelete("title0"); ObjectCreate("title0", OBJ_LABEL, 0, 0, 0); ObjectSetText("title0", "§§§§§§§§§§§§§§§§§§§§§§§§§§", g_fontsize_96, "Wingdings", base_color); ObjectSet("title0", OBJPROP_CORNER, corner); ObjectSet("title0", OBJPROP_XDISTANCE, x_distance); ObjectSet("title0", OBJPROP_YDISTANCE, y_distance); ObjectDelete("title1"); ObjectCreate("title1", OBJ_LABEL, 0, 0, 0); ObjectSetText("title1", " FOREX REBELLION T.A. ", g_fontsize_96, gs_arial_100, base_color); ObjectSet("title1", OBJPROP_CORNER, corner); ObjectSet("title1", OBJPROP_XDISTANCE, x_distance); ObjectSet("title1", OBJPROP_YDISTANCE, y_distance + 8); ObjectDelete("title2"); ObjectCreate("title2", OBJ_LABEL, 0, 0, 0); ObjectSetText("title2", "§§§§§§§§§§§§§§§§§§§§§§§§§§", g_fontsize_96, "Wingdings", base_color); ObjectSet("title2", OBJPROP_CORNER, corner); ObjectSet("title2", OBJPROP_XDISTANCE, x_distance); ObjectSet("title2", OBJPROP_YDISTANCE, y_distance + 18); for (int li_32 = WindowBarsPerChart(); li_32 >= 0; li_32--) { l_close_36 = Close[li_32 + 1]; l_ima_44 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, li_32 + 6); l_ima_52 = iMA(NULL, 0, 4, 0, MODE_EMA, PRICE_CLOSE, li_32 + 1); l_ima_60 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, li_32 + 1); l_icustom_68 = iCustom(NULL, 0, "QQE ADV", 0, li_32 + 1); l_icustom_76 = iCustom(NULL, 0, "QQE ADV", 1, li_32 + 1); l_close_84 = Close[li_32 + 2]; l_ima_92 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, li_32 + 7); l_ima_100 = iMA(NULL, 0, 4, 0, MODE_EMA, PRICE_CLOSE, li_32 + 2); l_ima_108 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, li_32 + 2); l_icustom_116 = iCustom(NULL, 0, "QQE ADV", 0, li_32 + 2); l_icustom_124 = iCustom(NULL, 0, "QQE ADV", 1, li_32 + 2); ObjectCreate("entry1", OBJ_LABEL, 0, 0, 0); ObjectSetText("entry1", " ENTRY RULE 1: ", g_fontsize_96, gs_arial_100, base_color); ObjectSet("entry1", OBJPROP_CORNER, corner); ObjectSet("entry1", OBJPROP_XDISTANCE, x_distance); ObjectSet("entry1", OBJPROP_YDISTANCE, y_distance + 28); if (l_close_36 < l_ima_44) { ObjectCreate("entryresult1", OBJ_LABEL, 0, 0, 0); ObjectSetText("entryresult1", " the price trend is BEARISH ", g_fontsize_96, gs_arial_100, bearish_color); ObjectSet("entryresult1", OBJPROP_CORNER, corner); ObjectSet("entryresult1", OBJPROP_XDISTANCE, x_distance); ObjectSet("entryresult1", OBJPROP_YDISTANCE, y_distance + 40); li_0 = -1; } else { ObjectCreate("entryresult1", OBJ_LABEL, 0, 0, 0); ObjectSetText("entryresult1", " the price trend is BULLISH ", g_fontsize_96, gs_arial_100, bullish_color); ObjectSet("entryresult1", OBJPROP_CORNER, corner); ObjectSet("entryresult1", OBJPROP_XDISTANCE, x_distance); ObjectSet("entryresult1", OBJPROP_YDISTANCE, y_distance + 40); li_0 = 1; } if (l_close_84 < l_ima_92) li_16 = -1; else li_16 = 1; ObjectCreate("entry2", OBJ_LABEL, 0, 0, 0); ObjectSetText("entry2", " ENTRY RULE 2: ", g_fontsize_96, gs_arial_100, base_color); ObjectSet("entry2", OBJPROP_CORNER, corner); ObjectSet("entry2", OBJPROP_XDISTANCE, x_distance); ObjectSet("entry2", OBJPROP_YDISTANCE, y_distance + 52); if (l_ima_52 < l_ima_60) { ObjectCreate("entryresult2", OBJ_LABEL, 0, 0, 0); ObjectSetText("entryresult2", " EMAs cross is BEARISH ", g_fontsize_96, gs_arial_100, bearish_color); ObjectSet("entryresult2", OBJPROP_CORNER, corner); ObjectSet("entryresult2", OBJPROP_XDISTANCE, x_distance); ObjectSet("entryresult2", OBJPROP_YDISTANCE, y_distance + 64); li_4 = -1; } else { ObjectCreate("entryresult2", OBJ_LABEL, 0, 0, 0); ObjectSetText("entryresult2", " EMAs cross is BULLISH ", g_fontsize_96, gs_arial_100, bullish_color); ObjectSet("entryresult2", OBJPROP_CORNER, corner); ObjectSet("entryresult2", OBJPROP_XDISTANCE, x_distance); ObjectSet("entryresult2", OBJPROP_YDISTANCE, y_distance + 64); li_4 = 1; } if (l_ima_100 < l_ima_108) li_20 = -1; else li_20 = 1; ObjectCreate("entry3", OBJ_LABEL, 0, 0, 0); ObjectSetText("entry3", " ENTRY RULE 3: ", g_fontsize_96, gs_arial_100, base_color); ObjectSet("entry3", OBJPROP_CORNER, corner); ObjectSet("entry3", OBJPROP_XDISTANCE, x_distance); ObjectSet("entry3", OBJPROP_YDISTANCE, y_distance + 76); if (l_icustom_68 < l_icustom_76) { ObjectCreate("entryresult3", OBJ_LABEL, 0, 0, 0); ObjectSetText("entryresult3", " QQE cross is BEARISH ", g_fontsize_96, gs_arial_100, bearish_color); ObjectSet("entryresult3", OBJPROP_CORNER, corner); ObjectSet("entryresult3", OBJPROP_XDISTANCE, x_distance); ObjectSet("entryresult3", OBJPROP_YDISTANCE, y_distance + 88); li_8 = -1; } else { ObjectCreate("entryresult3", OBJ_LABEL, 0, 0, 0); ObjectSetText("entryresult3", " QQE cross is BULLISH ", g_fontsize_96, gs_arial_100, bullish_color); ObjectSet("entryresult3", OBJPROP_CORNER, corner); ObjectSet("entryresult3", OBJPROP_XDISTANCE, x_distance); ObjectSet("entryresult3", OBJPROP_YDISTANCE, y_distance + 88); li_8 = 1; } if (l_icustom_116 < l_icustom_124) li_24 = -1; else li_24 = 1; ObjectCreate("entry4", OBJ_LABEL, 0, 0, 0); ObjectSetText("entry4", " ENTRY RULE 4: ", g_fontsize_96, gs_arial_100, base_color); ObjectSet("entry4", OBJPROP_CORNER, corner); ObjectSet("entry4", OBJPROP_XDISTANCE, x_distance); ObjectSet("entry4", OBJPROP_YDISTANCE, y_distance + 100); if (l_icustom_68 < 50.0) { ObjectCreate("entryresult4", OBJ_LABEL, 0, 0, 0); ObjectSetText("entryresult4", " QQE is BEARISH ", g_fontsize_96, gs_arial_100, bearish_color); ObjectSet("entryresult4", OBJPROP_CORNER, corner); ObjectSet("entryresult4", OBJPROP_XDISTANCE, x_distance); ObjectSet("entryresult4", OBJPROP_YDISTANCE, y_distance + 112); li_12 = -1; } else { ObjectCreate("entryresult4", OBJ_LABEL, 0, 0, 0); ObjectSetText("entryresult4", " QQE is BULLISH ", g_fontsize_96, gs_arial_100, bullish_color); ObjectSet("entryresult4", OBJPROP_CORNER, corner); ObjectSet("entryresult4", OBJPROP_XDISTANCE, x_distance); ObjectSet("entryresult4", OBJPROP_YDISTANCE, y_distance + 112); li_12 = 1; } if (l_icustom_116 < 50.0) li_28 = -1; else li_28 = 1; ObjectCreate("title3", OBJ_LABEL, 0, 0, 0); ObjectSetText("title3", "§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§", g_fontsize_96, "Wingdings", base_color); ObjectSet("title3", OBJPROP_CORNER, corner); ObjectSet("title3", OBJPROP_XDISTANCE, x_distance); ObjectSet("title3", OBJPROP_YDISTANCE, y_distance + 124); li_132 = li_0 + li_4 + li_8 + li_12; li_136 = li_16 + li_20 + li_24 + li_28; if (li_132 == 4 && li_136 != 4 && gi_188 != 1) { g_price_140 = High[li_32 + 1] + (Ask - Bid); g_time_156 = Time[li_32 + 1]; ObjectCreate("entrysummary1", OBJ_LABEL, 0, 0, 0); ObjectSetText("entrysummary1", " LONG signal bar at " + TimeToStr(Time[li_32 + 1], TIME_DATE|TIME_MINUTES) + " ", g_fontsize_96, gs_arial_100, bullish_color); ObjectSet("entrysummary1", OBJPROP_CORNER, corner); ObjectSet("entrysummary1", OBJPROP_XDISTANCE, x_distance); ObjectSet("entrysummary1", OBJPROP_YDISTANCE, y_distance + 134); ObjectCreate("entrysummary2", OBJ_LABEL, 0, 0, 0); ObjectSetText("entrysummary2", " Suggested ENTRY LEVEL @ " + DoubleToStr(g_price_140, Digits) + " ", g_fontsize_96, gs_arial_100, bullish_color); ObjectSet("entrysummary2", OBJPROP_CORNER, corner); ObjectSet("entrysummary2", OBJPROP_XDISTANCE, x_distance); ObjectSet("entrysummary2", OBJPROP_YDISTANCE, y_distance + 146); if (gd_180 != Time[li_32] && gi_188 != 1 && li_32 == 0) { if (PopUpAlert) { Alert("FOREX REBELLION: " + Symbol() + " " + Period() + " minutes. LONG signal bar at " + TimeToStr(gd_148, TIME_DATE|TIME_MINUTES) + ". Suggested entry level @ " + DoubleToStr(g_price_140, Digits)); } if (EMailAlert) { SendMail("Forex Rebellion ALERT", "FOREX REBELLION: " + Symbol() + " " + Period() + " minutes. LONG signal bar at " + TimeToStr(gd_148, TIME_DATE|TIME_MINUTES) + ". Suggested entry level @ " + DoubleToStr(g_price_140, Digits)); } if (SoundAlert) PlaySound("alert.wav"); gd_180 = Time[li_32]; } gi_188 = 1; } if (li_132 == -4 && li_136 != -4 && gi_188 != -1) { g_price_132 = Low[li_32 + 1] - (Ask - Bid); gd_148 = Time[li_32 + 1]; ObjectCreate("entrysummary1", OBJ_LABEL, 0, 0, 0); ObjectSetText("entrysummary1", " SHORT signal bar at " + TimeToStr(Time[li_32 + 1], TIME_DATE|TIME_MINUTES) + " ", g_fontsize_96, gs_arial_100, bearish_color); ObjectSet("entrysummary1", OBJPROP_CORNER, corner); ObjectSet("entrysummary1", OBJPROP_XDISTANCE, x_distance); ObjectSet("entrysummary1", OBJPROP_YDISTANCE, y_distance + 134); ObjectCreate("entrysummary2", OBJ_LABEL, 0, 0, 0); ObjectSetText("entrysummary2", " Suggested ENTRY LEVEL @ " + DoubleToStr(g_price_132, Digits) + " ", g_fontsize_96, gs_arial_100, bearish_color); ObjectSet("entrysummary2", OBJPROP_CORNER, corner); ObjectSet("entrysummary2", OBJPROP_XDISTANCE, x_distance); ObjectSet("entrysummary2", OBJPROP_YDISTANCE, y_distance + 146); if (gd_180 != Time[li_32] && gi_188 != -1 && li_32 == 0) { if (PopUpAlert) { Alert("FOREX REBELLION: " + Symbol() + " " + Period() + " minutes. SHORT signal bar at " + TimeToStr(gd_148, TIME_DATE|TIME_MINUTES) + ". Suggested entry level @ " + DoubleToStr(g_price_132, Digits)); } if (EMailAlert) { SendMail("Forex Rebellion ALERT", "FOREX REBELLION: " + Symbol() + " " + Period() + " minutes. SHORT signal bar at " + TimeToStr(gd_148, TIME_DATE|TIME_MINUTES) + ". Suggested entry level @ " + DoubleToStr(g_price_132, Digits)); } if (SoundAlert) PlaySound("alert.wav"); gd_180 = Time[li_32]; } gi_188 = -1; } if (gi_188 == 1) { ObjectDelete("BuySignal"); ObjectCreate("BuySignal", OBJ_VLINE, 0, g_time_156, 0); ObjectSet("BuySignal", OBJPROP_STYLE, STYLE_DOT); ObjectSet("BuySignal", OBJPROP_COLOR, bullish_color); ObjectDelete("SellSignal_line"); ObjectDelete("BuySignal_line"); ObjectCreate("BuySignal_line", OBJ_TREND, 0, g_time_156, g_price_140, Time[li_32], g_price_140); ObjectSet("BuySignal_line", OBJPROP_COLOR, bullish_color); ObjectSet("BuySignal_line", OBJPROP_STYLE, STYLE_DASH); ObjectSet("BuySignal_line", OBJPROP_WIDTH, 1); ObjectSet("BuySignal_line", OBJPROP_RAY, TRUE); } if (gi_188 == -1) { ObjectDelete("SellSignal"); ObjectCreate("SellSignal", OBJ_VLINE, 0, gd_148, 0); ObjectSet("SellSignal", OBJPROP_STYLE, STYLE_DOT); ObjectSet("SellSignal", OBJPROP_COLOR, bearish_color); ObjectDelete("BuySignal_line"); ObjectDelete("SellSignal_line"); ObjectCreate("SellSignal_line", OBJ_TREND, 0, gd_148, g_price_132, Time[li_32], g_price_132); ObjectSet("SellSignal_line", OBJPROP_COLOR, bearish_color); ObjectSet("SellSignal_line", OBJPROP_STYLE, STYLE_DASH); ObjectSet("SellSignal_line", OBJPROP_WIDTH, 1); ObjectSet("SellSignal_line", OBJPROP_RAY, TRUE); } ObjectCreate("title4", OBJ_LABEL, 0, 0, 0); ObjectSetText("title4", "§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§", g_fontsize_96, "Wingdings", base_color); ObjectSet("title4", OBJPROP_CORNER, corner); ObjectSet("title4", OBJPROP_XDISTANCE, x_distance); ObjectSet("title4", OBJPROP_YDISTANCE, y_distance + 158); } if (li_132 == 4 && li_136 != 4 && gi_188 != 1) { } if (li_132 == -4 && li_136 != -4) { } return (0); }