//+------------------------------------------------------------------+ //| KAS721G Indicator v0.1 | //| Copyright © 2008, Erik Dahlstrand | //| http://www.dahlstrand.eu/ | //| | //| Indicator based on "KAS721G" by caireono | //| http://forums.babypips.com/free-forex-trading-systems/ | //| 11793-kas721g-trading-system.html | //+------------------------------------------------------------------+ #property copyright "Copyright © 2008, Erik Dahlstrand" #property link "http://www.dahlstrand.eu/" #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Blue #property indicator_color2 Red //---- buffers double validEntryLongBuffer[]; double validEntryShortBuffer[]; //---- input parameters extern int entryArrowDisplacement = 6; int init() { SetIndexArrow(0, SYMBOL_ARROWUP); SetIndexBuffer(0, validEntryLongBuffer); SetIndexEmptyValue(0, 0.0); SetIndexLabel(0, "Go long"); SetIndexStyle(0, DRAW_ARROW, EMPTY, 3, Blue); SetIndexArrow(1, SYMBOL_ARROWDOWN); SetIndexBuffer(1, validEntryShortBuffer); SetIndexEmptyValue(1, 0.0); SetIndexLabel(1, "Go short"); SetIndexStyle(1, DRAW_ARROW, EMPTY, 3, Red); Comment("KAS721G Indicator"); IndicatorShortName("KAS721G Indicator"); return(0); } int deinit() { return(0); } int start() { int countedBars = IndicatorCounted(); int limit; bool isMaCrossUp, isMaCrossDown; double currentOpenPrice; //---- indicators double currentMA7, previousMA7; // Simple Moving Average (7) double currentMA21, previousMA21; // Simple Moving Average (21) double currentGHLA, previousGHLA; // Gann HiLo Activator if(countedBars < 0) return(-1); if(countedBars > 0) countedBars--; limit = Bars - countedBars; for(int i = 0; i < limit; i++) { currentMA7 = iMA(NULL, 0 , 7, 0, MODE_SMA, PRICE_CLOSE, i); previousMA7 = iMA(NULL, 0 , 7, 0, MODE_SMA, PRICE_CLOSE, i + 1); currentMA21 = iMA(NULL, 0 , 21, 0, MODE_SMA, PRICE_CLOSE, i); previousMA21 = iMA(NULL, 0 , 21, 0, MODE_SMA, PRICE_CLOSE, i + 1); currentGHLA = iCustom(NULL, 0, "Gann HiLo Activator", 2, i); previousGHLA = iCustom(NULL, 0, "Gann HiLo Activator", 2, i + 1); currentOpenPrice = Open[i]; isMaCrossUp = IsMaCrossUp(currentMA7, currentMA21, previousMA7, previousMA21); isMaCrossDown = IsMaCrossDown(currentMA7, currentMA21, previousMA7, previousMA21); if(isMaCrossUp && (currentGHLA > previousGHLA) && (currentGHLA < currentOpenPrice)) // I.e. upp trend { validEntryLongBuffer[i] = Low[i] - entryArrowDisplacement * Point; if (i == 0) // Only notify on current bar NotifyOnce("KAS721G indicator: GO LONG", ""); } else if(isMaCrossDown && (currentGHLA < previousGHLA) && (currentGHLA > currentOpenPrice)) // I.e. down trend { validEntryShortBuffer[i] = High[i] + entryArrowDisplacement * Point; if (i == 0) // Only notify on current bar NotifyOnce("KAS721G indicator: GO SHORT", ""); } } return(0); } void NotifyOnce(string subject, string message) { static bool notified; if (IsNewBar()) notified = false; if (!notified) { SendMail(subject, message); PlaySound("email.wav"); Print(subject); notified = true; } } bool IsMaCrossDown(double currentMA7, double currentMA21, double previousMA7, double previousMA21) { if ((currentMA7 < currentMA21) && (previousMA7 > previousMA21)) return (true); return (false); } bool IsMaCrossUp(double currentMA7, double currentMA21, double previousMA7, double previousMA21) { if ((currentMA7 > currentMA21) && (previousMA7 < previousMA21)) return (true); return (false); } bool IsNewBar() { static datetime previousDateTime; datetime currentDateTime = Time[0]; if(previousDateTime != currentDateTime) { previousDateTime = currentDateTime; return (true); } else { return (false); } }
Sample
Analysis
Market Information Used:
Series array that contains open prices of each bar
Series array that contains the lowest prices of each bar
Series array that contains the highest prices of each bar
Series array that contains open time of each bar
Indicator Curves created:
Implements a curve of type DRAW_ARROW
Indicators Used:
Moving average indicator
Custom Indicators Used:
Gann HiLo Activator
Order Management characteristics:
Other Features:
It sends emails
It plays sound alerts