#property copyright "Copyright © 2007, MetaQuotes Software Corp." #property link "http://www.metaquotes.net/" #property indicator_separate_window #property indicator_levelstyle 0 #property indicator_buffers 2 #property indicator_color1 MediumBlue #property indicator_color2 Red double g_period_76 = 500.0; extern double Filter_1 = 4.0; extern int Price_Type = 0; int g_ma_method_96 = MODE_LWMA; extern bool Alert_ON = FALSE; extern bool EmailON = FALSE; string gs_108; string gs_116; string gs_124; double g_ibuf_132[]; double g_ibuf_136[]; int gi_140 = 0; int gi_144 = 0; int init() { string ls_0; SetIndexStyle(0, DRAW_LINE); SetIndexBuffer(0, g_ibuf_132); SetIndexStyle(1, DRAW_LINE); SetIndexBuffer(1, g_ibuf_136); IndicatorShortName(ls_0); SetIndexLabel(0, ls_0); return (0); } int start() { int l_ind_counted_4 = IndicatorCounted(); if (Bars <= g_period_76) return (0); if (l_ind_counted_4 < 1) for (int li_0 = 1; li_0 <= g_period_76; li_0++) g_ibuf_132[Bars - li_0] = 0.0; li_0 = Bars - g_period_76 - 1.0; if (l_ind_counted_4 >= g_period_76) li_0 = Bars - l_ind_counted_4 - 1; while (li_0 >= 0) { g_ibuf_132[li_0] = 100.0 * iMA(NULL, 0, g_period_76, 0, MODE_LWMA, Price_Type, li_0) / iMA(NULL, 0, g_period_76, 0, MODE_LWMA, Price_Type, li_0 + 1) - 100.0; li_0--; } int li_8 = Bars - l_ind_counted_4; for (int li_12 = 0; li_12 < li_8; li_12++) { g_ibuf_132[li_12] = iMAOnArray(g_ibuf_132, Bars, Filter_1, 0, g_ma_method_96, li_12); g_ibuf_136[li_12] = iMAOnArray(g_ibuf_132, Bars, Filter_1, 1, g_ma_method_96, li_12); if (g_ibuf_132[li_12] > g_ibuf_132[li_12 + 1]) gs_108 = "Up"; if (g_ibuf_132[li_12] < g_ibuf_132[li_12 + 1]) gs_108 = "Down"; if (g_ibuf_132[li_12] == g_ibuf_132[li_12 + 1]) gs_108 = "Flat"; if (g_ibuf_136[li_12] > g_ibuf_136[li_12 + 1]) gs_116 = "Up"; if (g_ibuf_136[li_12] < g_ibuf_136[li_12 + 1]) gs_116 = "Down"; if (g_ibuf_136[li_12] == g_ibuf_136[li_12 + 1]) gs_116 = "Flat"; if (g_ibuf_132[li_12] > g_ibuf_136[li_12]) gs_124 = "CROSSED UP"; if (g_ibuf_132[li_12] < g_ibuf_136[li_12]) gs_124 = "CROSSED DOWN"; if (g_ibuf_132[li_12] == g_ibuf_136[li_12]) gs_124 = "NEUTRAL"; if (g_ibuf_132[li_12] < g_ibuf_136[li_12] && g_ibuf_132[li_12 + 1] > g_ibuf_136[li_12 + 1]) { if (li_12 == 0 && gi_144 == FALSE) { gi_144 = TRUE; gi_140 = FALSE; if (Alert_ON) { Alert("SELL signal at Ask=", Ask, "\n Bid=", Bid, "\n Date=", TimeToStr(TimeCurrent(), TIME_DATE), " ", TimeHour(TimeCurrent()), ":", TimeMinute(TimeCurrent()), "\n Symbol=", Symbol(), " Period=", Period()); } if (EmailON) { SendMail("SELL signal alert", "SELL signal at Ask=" + DoubleToStr(Ask, 4) + ", Bid=" + DoubleToStr(Bid, 4) + ", Date=" + TimeToStr(TimeCurrent(), TIME_DATE) + " " + TimeHour(TimeCurrent()) + ":" + TimeMinute(TimeCurrent()) + " Symbol=" + Symbol() + " Period=" + Period()); } } } if (g_ibuf_132[li_12] > g_ibuf_136[li_12] && g_ibuf_132[li_12 + 1] < g_ibuf_136[li_12 + 1]) { if (li_12 == 0 && gi_140 == FALSE) { gi_140 = TRUE; gi_144 = FALSE; if (Alert_ON) { Alert("BUY signal at Ask=", Ask, "\n Bid=", Bid, "\n Time=", TimeToStr(TimeCurrent(), TIME_DATE), " ", TimeHour(TimeCurrent()), ":", TimeMinute(TimeCurrent()), "\n Symbol=", Symbol(), " Period=", Period()); } if (EmailON) { SendMail("BUY signal alert", "BUY signal at Ask=" + DoubleToStr(Ask, 4) + ", Bid=" + DoubleToStr(Bid, 4) + ", Date=" + TimeToStr(TimeCurrent(), TIME_DATE) + " " + TimeHour(TimeCurrent()) + ":" + TimeMinute(TimeCurrent()) + " Symbol=" + Symbol() + " Period=" + Period()); } } } } IndicatorShortName("KG Mom V.1.1a (" + gs_108 + " " + gs_116 + ") " + gs_124 + " "); return (0); }
Sample
Analysis
Market Information Used:
Indicator Curves created:
Implements a curve of type DRAW_LINE
Indicators Used:
Moving average indicator
Custom Indicators Used:
Order Management characteristics:
Other Features:
It issuies visual alerts to the screen
It sends emails