OzFX Daily Signals v1

Download script
Author: Copyright � 2008, DGC
OzFX Daily Signals v1

The OzFX Daily Signals tool is designed to assist traders by identifying potential market trend shifts and entry points using a multi-layered technical analysis approach. It simplifies complex market movements into visual signals, helping users decide when momentum is favoring a specific direction.

Core Analytical Logic

The script evaluates three distinct financial metrics to generate its signals:

1. Momentum and Directional Strength The tool utilizes an Awesome Oscillator (AO) to measure the strength of price movements. It looks for specific "turning points" where the momentum begins to accelerate in a positive or negative direction. For a signal to trigger, the script ensures that the current momentum is moving away from the previous period’s value, confirming that a shift in market energy is actually occurring.

2. Overbought and Oversold Verification To ensure that trades aren't taken at "exhaustion" points, the script incorporates a Stochastic Oscillator. This acts as a secondary filter to confirm the strength of the move:

  • For Bullish Signals: It checks if the market has sufficient upward energy (above a specific threshold).
  • For Bearish Signals: It checks if the market has sufficient downward energy (below a specific threshold).

3. Long-Term Trend Filtering One of the most important features of this script is its respect for the "Big Picture." It uses a 200-period Simple Moving Average (SMA) as a primary filter. This represents the long-term health of the asset:

  • If the current price is trading above this 200-day average, the tool recognizes an overall uptrend.
  • If the price is below that average, it recognizes an overall downtrend.

How the Signals are Generated

The script processes these three layers simultaneously to provide clear visual output:

  • Buy/Sell Indicators: The script identifies "Regular" signals by combining the momentum shift with the Stochastic confirmation. To prevent cluttered charts and repetitive signals, it includes a logic gate that ensures only the first signal in a new direction is displayed, rather than highlighting every single bar of a sustained move.
  • The Trend Filter: While the primary signals show immediate momentum, the 200-period Moving Average acts as a backbone. By observing where the price sits relative to this line, traders can determine if they should be looking primarily for "Buy" opportunities (when price is above) or "Sell" opportunities (when price is below).

Summary for the User

In practical terms, this script doesn't just tell you that the price is moving; it tells you when the momentum is shifting while confirming that the move has enough strength to be meaningful and aligns with the broader market trend. It filters out "noise" by ensuring that signals are distinct and based on a combination of short-term speed and long-term direction.

Indicators Used
Bill Williams Accelerator/Decelerator oscillatorStochastic oscillatorMoving average indicator
Miscellaneous
Implements a curve of type %1
18 Views
0 Downloads
0 Favorites
OzFX Daily Signals v1
//+------------------------------------------------------------------+
//|                                        OzFX Daily Signals v1.mq4 |
//|                                            Copyright © 2008, DGC |
//|                                          http://www.ozfx.com.au/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, DGC"
#property link      "http://www.ozfx.com.au/"

#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 Yellow
#property indicator_width1 2
#property indicator_color2 DodgerBlue
#property indicator_width2 2
#property indicator_color3 Red
#property indicator_width3 2
#property indicator_level1 0
#property indicator_minimum -1.2
#property indicator_maximum 1.2

double OzFX_Regular[];
double OzFX_AdvancedEntry[];
double Filter_200SMA[];

int iLastRegular;
int k;

int init()
{
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexBuffer(0,OzFX_Regular);
   SetIndexStyle(1,DRAW_HISTOGRAM);
   SetIndexBuffer(1,OzFX_AdvancedEntry);
   SetIndexStyle(2,DRAW_LINE);
   SetIndexBuffer(2,Filter_200SMA);
   iLastRegular = 0;
   return(0);
}

int start()
{
   for (k = Bars - 205; k >= 0; k --)
   {
      OzFX_Regular[k] = 0;
      if (iAC(Symbol(), 0, k) > 0 &&
          iAC(Symbol(), 0, k) > iAC(Symbol(), 0, k + 1) &&
          iStochastic(Symbol(), 0, 5, 3, 3, MODE_SMA, 0, MODE_MAIN, k) > 50)
      {
         if (iLastRegular != 1) OzFX_Regular[k] = 1;
         iLastRegular = 1;
      }   
      
      if (iAC(Symbol(), 0, k) < 0 &&
          iAC(Symbol(), 0, k) < iAC(Symbol(), 0, k + 1) &&
          iStochastic(Symbol(), 0, 5, 3, 3, MODE_SMA, 0, MODE_MAIN, k) < 50)
      {
         if (iLastRegular != -1) OzFX_Regular[k] = -1;
         iLastRegular = -1;
      }   
            
      Filter_200SMA[k] = 0;
      if (Close[k] > iMA(Symbol(), 0, 200, 0, MODE_SMA, PRICE_CLOSE, k))
         Filter_200SMA[k] = 1;
      if (Close[k] < iMA(Symbol(), 0, 200, 0, MODE_SMA, PRICE_CLOSE, k))
         Filter_200SMA[k] = -1;
   }
//      double val=iAO(NULL, 0, 2);

   return(0);
}

Comments