Ultitimate_Oscillator

Ultitimate_Oscillator

This tool functions as a specialized visual aid designed to help traders identify the underlying momentum and trend direction of a financial asset. Instead of tracking raw price fluctuations, which can often be "noisy" or erratic, this script smooths out the data to provide a clearer picture of the market's current movement.

How it Works

The logic behind the indicator relies on calculating three different types of "moving averages" simultaneously. A moving average is essentially a way to calculate the average price over a specific period of time. By using three distinct timeframes, the script captures different layers of market activity:

  • Short-Term Perspective: It looks at very recent price action to capture immediate changes.
  • Medium-Term Perspective: It analyzes a slightly broader window to identify emerging trends.
  • Long-Term Perspective: It evaluates a larger historical window to establish the overall direction of the market.

The Calculation Process

The script takes these three different averages and combines them into a single, unified value. Specifically, it adds the results of the short, medium, and long-term averages together and then divides them by three. This creates a balanced "composite" average.

Visual Representation

On your trading chart, this logic manifests as a continuous line in a separate window below the main price graph. Because it uses a Linear Weighted Moving Average (LWMA) approach, the line gives more importance to the most recent price data while still maintaining the stability of the longer historical data.

Key Objectives

  • Noise Reduction: By averaging three different timeframes, the indicator filters out minor price "wiggles" that might mislead a manual trader.
  • Trend Identification: The resulting line helps traders see whether the momentum is trending upward, downward, or remaining neutral.
  • Stability: The script ensures that the visual data remains consistent by establishing a baseline of "zero" values for older data points, ensuring the line begins clearly where it should on your screen.
Indicators Used
Moving average indicator
Miscellaneous
Implements a curve of type %1
11 Views
0 Downloads
0 Favorites
Ultitimate_Oscillator
//+------------------------------------------------------------------+
//|                                       Ultitimate Oscillator.mq4  |
//|                                       Ramdass - Conversion only  |
//+------------------------------------------------------------------+

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Green
//---- input parameters
extern int CountBars=300;
//---- buffers
double WUO[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
//---- indicator line
   IndicatorBuffers(1);
   SetIndexStyle(0, DRAW_LINE);
   SetIndexBuffer(0, WUO);
//----
   if(CountBars >= Bars) 
       CountBars = Bars;
   SetIndexDrawBegin(0, Bars - CountBars + 28 + 1);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Ultitimate Oscillator                                            |
//+------------------------------------------------------------------+
int start()
  {
   int i, counted_bars = IndicatorCounted();
//----
   if(Bars <= 28) 
       return(0);
//---- initial zero
   if(counted_bars < 28)
     {
       for(i = 1;i <= 28; i++) 
           WUO[CountBars-i] = 0.0;
     }
//----
   i = CountBars - 28 - 1;
//----
   while(i >= 0)
     {
       WUO[i] = (iMA(NULL,0,7,0,MODE_LWMA,MODE_CLOSE,i)+
                 iMA(NULL,0,14,0,MODE_LWMA,MODE_CLOSE,i)+
                 iMA(NULL,0,28,0,MODE_LWMA,MODE_CLOSE,i)) / 3;
       i--;
     }
   return(0);
  }
//+------------------------------------------------------------------+

Comments