Spyker

The Spyker indicator is a specialized technical analysis tool designed to help traders visualize momentum and price trends by calculating the relationship between opening and closing prices. Rather than looking at raw price action, it simplifies market data into two distinct visual lines that provide insights into the "strength" of a currency or asset's movement.

How the Logic Works

The indicator operates in two primary stages:

1. Calculating the Core Momentum (The Primary Line) The tool first looks at the very latest price activity (the current candle). It calculates the difference between the current closing price and the opening price, using a highly responsive moving average as its foundation. By focusing on this specific gap, the indicator highlights how much "push" or momentum is behind a price move in real-time. Because it uses a very short timeframe for this calculation, it is designed to be highly sensitive to immediate market shifts.

2. Smoothing the Data (The Signal Line) Because raw momentum can be volatile and "noisy," the indicator performs a second step to make the data more readable. It takes the results from the first step and applies a much broader smoothing average to them. This creates a secondary "Signal" line. While the primary line shows you what is happening right now, this signal line acts as a stabilizer, helping to filter out minor market fluctuations so you can see the larger trend more clearly.

How to Interpret the Results

The tool displays two lines in a separate window below your main price chart:

  • The Primary Line: Represents the immediate momentum of the market.
  • The Signal Line: Acts as a baseline or "guide."

By observing the relationship between these two lines, traders can look for moments where the rapid momentum (the first line) deviates significantly from the established trend (the signal line). When these two lines interact or cross, it can suggest potential shifts in market direction, providing a visual cue to help identify whether a trend is gaining strength, losing steam, or preparing for a reversal.

Indicators Used
Moving average indicatorMoving average indicator
Miscellaneous
Implements a curve of type %1
10 Views
0 Downloads
0 Favorites
Spyker
//+------------------------------------------------------------------+
//|                                                       Spyker.mq4 |
//|                                 Copyright © 2006, Jimmy Boucher. |
//|                                    EMail: j_boucher@telkomsa.net |
//+------------------------------------------------------------------+
#property  copyright "Copyright © 2006, Jimmy Boucher."
#property  link      "EMail: j_boucher@telkomsa.net"
//---- indicator settings
#property  indicator_separate_window
#property  indicator_buffers 2
#property  indicator_color1  Silver
#property  indicator_color2  Gold
#property  indicator_width1  1
//---- indicator parameters
extern int JimmyEMA=1;
extern int SignalSMA=375;
//---- indicator buffers
double     MacdBuffer[];
double     SignalBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- drawing settings
   SetIndexStyle(0,DRAW_LINE);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexDrawBegin(1,SignalSMA);
   IndicatorDigits(Digits+1);
//---- indicator buffers mapping
   SetIndexBuffer(0,MacdBuffer);
   SetIndexBuffer(1,SignalBuffer);
//---- name for DataWindow and indicator subwindow label
   IndicatorShortName("Spyker ("+JimmyEMA+","+SignalSMA+")");
   SetIndexLabel(0,"Spyker");
   SetIndexLabel(1,"Signal");
//---- initialization done
   return(0);
  }
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence                           |
//+------------------------------------------------------------------+
int start()
  {
   int limit;
   int counted_bars=IndicatorCounted();
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
//---- macd counted in the 1-st buffer
   for(int i=0; i<limit; i++)
      MacdBuffer[i]=iMA(NULL,0,JimmyEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,JimmyEMA,0,MODE_EMA,PRICE_OPEN,i);
//---- signal line counted in the 2-nd buffer
   for(i=0; i<limit; i++)
      SignalBuffer[i]=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i);
//---- done
   return(0);
  }
//+------------------------------------------------------------------+

Comments