[i]GordagoElder

Download script
Author: Ron T
[i]GordagoElder

This technical indicator is designed to provide visual signals on a trading chart by analyzing multiple mathematical layers of market data simultaneously. Instead of relying on a single metric, it evaluates the relationship between momentum, price action, and overbought/oversold conditions to identify potential entry points.

How the Logic Works

The script scans historical and real-time price data to look for specific "confluences"—moments where different technical indicators agree on a market move. It focuses on four primary logic streams:

1. Momentum Shift (MACD Analysis) The tool monitors the Moving Average Convergence Divergence (MACD) indicator. It specifically looks for instances where the momentum is shifting direction while still in a specific zone (e.g., recovering from a negative state or retreating from a positive one). These signals suggest that the primary trend may be losing steam or beginning to reverse.

2. Overbought and Oversold Zones (Stochastic Oscillator) The indicator uses the Stochastic Oscillator to determine if a price has moved too far in one direction.

  • It flags potential "oversold" conditions when the price reaches a lower threshold, suggesting it may be due for a bounce upward.
  • It flags potential "overbought" conditions when the price reaches an upper threshold, suggesting it may be due for a pullback downward.

3. Trend Velocity (Stochastic Comparison) Beyond just looking at extreme levels, the script compares the current momentum value against its previous value. By identifying whether the momentum is increasing or decreasing relative to the previous candle, the tool can confirm if a move has actual "strength" behind it or if it is beginning to stall.

4. Price Breakout Confirmation (Price Action) The logic incorporates raw price data by comparing current closing prices against previous highs and lows. This serves as a "confirmation" layer; the indicator looks for instances where the price breaks out of its immediate range, providing evidence that the market is moving with enough force to support the signals generated by the other indicators.

Visual Representation

When these specific mathematical conditions are met, the script places visual markers (dots) on your chart:

  • Buy Signals: These appear below the price candles when the logic detects a combination of oversold conditions, upward momentum shifts, and positive price breakouts.
  • Sell Signals: These appear above the price candles when the logic detects overbought conditions, downward momentum shifts, and negative price breakdowns.

By combining these four different perspectives—Momentum, Exhaustion, Velocity, and Breakouts—the indicator aims to filter out "noise" and highlight high-probability areas for traders.

Price Data Components
Miscellaneous
Implements a curve of type %1
11 Views
0 Downloads
0 Favorites
[i]GordagoElder
/*-----------------------------+
|			       |
| Shared by www.Aptrafx.com    |
|			       |
+------------------------------*/

//+------------------------------------------------------------------+
//| 5 Min RSI 12-period qual INDICATOR                               |
//+------------------------------------------------------------------+
#property copyright "Ron T"
#property link      "http://www.lightpatch.com"

#property indicator_chart_window
#property indicator_buffers 5

#property indicator_color1 Red
#property indicator_color2 White
#property indicator_color3 Aqua
#property indicator_color4 LightGreen
#property indicator_color5 DodgerBlue


//---- buffers
double Buffer0[];
double Buffer1[];
double Buffer2[];
double Buffer3[];
double Buffer4[];



//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//|------------------------------------------------------------------|

int init()
  {

   // 233 up arrow
   // 234 down arrow
   // 159 big dot
   // 158 little dot
   // 168 open square
   // 120 box with X
   
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexBuffer(0, Buffer0);
   SetIndexArrow(0,159);

   SetIndexStyle(1,DRAW_ARROW);
   SetIndexBuffer(1, Buffer1);
   SetIndexArrow(1,159);

   SetIndexStyle(2,DRAW_ARROW);
   SetIndexBuffer(2, Buffer2);
   SetIndexArrow(2,159);

   SetIndexStyle(3,DRAW_ARROW);
   SetIndexBuffer(3, Buffer3);
   SetIndexArrow(3,159);

   SetIndexStyle(4,DRAW_ARROW);
   SetIndexBuffer(4, Buffer4);
   SetIndexArrow(4,159);

   return(0);
  }


//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   int i;
   
   for( i=0; i<Bars; i++ ) Buffer0[i]=0;
   for( i=0; i<Bars; i++ ) Buffer1[i]=0;
   for( i=0; i<Bars; i++ ) Buffer2[i]=0;
   for( i=0; i<Bars; i++ ) Buffer3[i]=0;
   for( i=0; i<Bars; i++ ) Buffer4[i]=0;

   return(0);
  }


//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+


int start()
  {
   int      pos=Bars-100; // leave room for moving average periods
   int      ctr=0;

   double diMACD0;
   double diMACD1;
   double diStochastic0;
   double diStochastic1;
   double diClose7;
   double diHigh8;
   double diLow17;
         
   double p=Point();
   
   while(pos>=0)
     {

      diMACD0=iMACD(Symbol(),60,13,30,0,PRICE_CLOSE,MODE_MAIN,0);
      diMACD1=iMACD(Symbol(),60,13,30,0,PRICE_CLOSE,MODE_MAIN,1);
      diStochastic0=iStochastic(Symbol(),15,2,0,3,MODE_EMA,PRICE_CLOSE,MODE_MAIN,0);
      diStochastic1=iStochastic(Symbol(),15,2,0,3,MODE_EMA,PRICE_CLOSE,MODE_MAIN,1);
      diClose7=iClose(Symbol(),1,0);
      diHigh8=iHigh(Symbol(),1,1);
      diLow17=iLow(Symbol(),1,1);

//   double diMACD0=iMACD(NULL,60,13,30,0,PRICE_CLOSE,MODE_MAIN,0);
//   double diMACD1=iMACD(NULL,60,13,30,0,PRICE_CLOSE,MODE_MAIN,1);
//   double diMACD2=iMACD(NULL,60,13,30,0,PRICE_CLOSE,MODE_MAIN,1);
//   double diStochastic3=iStochastic(NULL,15,2,0,3,MODE_EMA,PRICE_CLOSE,MODE_MAIN,0);
//   double d4=(36);
//   double diStochastic5=iStochastic(NULL,15,2,0,3,MODE_EMA,PRICE_CLOSE,MODE_MAIN,0);
//   double diStochastic6=iStochastic(NULL,15,2,0,3,MODE_EMA,PRICE_CLOSE,MODE_MAIN,1);
//   double diClose7=iClose(NULL,1,0);
//   double diHigh8=iHigh(NULL,1,1);
//   double diMACD9=iMACD(NULL,60,14,56,0,PRICE_CLOSE,MODE_MAIN,0);
//   double diMACD10=iMACD(NULL,60,14,56,0,PRICE_CLOSE,MODE_MAIN,1);
//   double diMACD11=iMACD(NULL,60,14,56,0,PRICE_CLOSE,MODE_MAIN,1);
//   double diStochastic12=iStochastic(NULL,15,1,0,3,MODE_EMA,PRICE_CLOSE,MODE_MAIN,0);
//   double d13=(66);
//   double diStochastic14=iStochastic(NULL,15,1,0,3,MODE_EMA,PRICE_CLOSE,MODE_MAIN,0);
//   double diStochastic15=iStochastic(NULL,15,1,0,3,MODE_EMA,PRICE_CLOSE,MODE_MAIN,1);
//   double diClose16=iClose(NULL,1,0);
//   double diLow17=iLow(NULL,1,1);

      if (diMACD0>diMACD1 && diMACD1<0)
        {
         Buffer4[pos]=Low[pos]+(5*p);
        }
        
      if (diStochastic0<35)
        {
         Buffer3[pos]=Low[pos]+(10*p);
        }
        
      if (diStochastic0>diStochastic1 )
        {
         Buffer2[pos]=Low[pos]+(15*p);
        }
        
      if (diClose7>diHigh8 )
        {
         Buffer1[pos]=Low[pos]+(20*p);
        }
      
      

      if (diMACD0<diMACD1 && diMACD1>0)
        {
         Buffer4[pos]=High[pos]+(5*p);
        }
        
      if (diStochastic0>66 )
        {
         Buffer3[pos]=High[pos]+(10*p);
        }
        
      if (diStochastic0<diStochastic1 )
        {
         Buffer2[pos]=High[pos]+(15*p);
        }
        
      if (diClose7<diLow17)
        {
         Buffer1[pos]=High[pos]+(20*p);
        }
      
      
 	   pos--;
     }

   return(0);
  }
//+------------------------------------------------------------------+

Comments