This custom indicator, titled "Solar Wind," is designed to provide traders with a visual representation of market momentum and trend direction. It processes historical price data to create a dynamic signal that helps distinguish between bullish and bearish movements.
Core Logic and Calculation
The tool operates by analyzing price fluctuations over a specific timeframe (defined by the user-set period). Instead of looking at just the current price, it examines the highest highs and lowest lows within that window to establish a local range.
It calculates a normalized value based on where the current price sits relative to that high-low range. This calculation is then smoothed out using a weighted formula, ensuring that the resulting data isn't overly reactive to "market noise" or sudden, insignificant spikes. This creates a continuous flow of data that represents the underlying strength of the market movement.
Visual Representation and Signals
The indicator translates these calculations into a histogram shown in a separate window:
- Trend Identification: The script evaluates whether the calculated momentum value is positive or negative.
- Color Coding: The visual output reacts to these shifts. When the data indicates an upward trend, the indicator highlights it in one color (Lime). When the data suggests a downward trend, it shifts to another (Red).
- Dynamic Tracking: The logic specifically looks for "crosses"—points where the momentum flips from positive to negative or vice versa. By doing this, the tool provides a clear visual cue of when the market sentiment is shifting, allowing traders to see the transition between different market phases more clearly than they might by looking at price candles alone.
In summary, this script acts as a momentum filter, smoothing out price action to reveal the prevailing trend and highlighting exactly when that trend changes direction.
//+------------------------------------------------------------------+
//| |
//| Copyright © 2000-2007, MetaQuotes Software Corp. |
//| http://www.metaquotes.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, Yura Prokofiev"
#property link "Yura.prokofiev@gmail.com"
//----
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 Black
#property indicator_color2 Lime
#property indicator_color3 Red
//----
extern int period=10;
//----
double ExtBuffer0[];
double ExtBuffer1[];
double ExtBuffer2[];
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int init()
{
SetIndexStyle(0,DRAW_NONE);
SetIndexStyle(1,DRAW_HISTOGRAM);
SetIndexStyle(2,DRAW_HISTOGRAM);
IndicatorDigits(Digits+1);
SetIndexBuffer(0,ExtBuffer0);
SetIndexBuffer(1,ExtBuffer1);
SetIndexBuffer(2,ExtBuffer2);
IndicatorShortName("SOLAR WIND");
SetIndexLabel(1,NULL);
SetIndexLabel(2,NULL);
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
//int period=10;
int limit;
int counted_bars=IndicatorCounted();
double prev,current,old;
double Value=0,Value1=0,Value2=0,Fish=0,Fish1=0,Fish2=0;
double price;
double MinL=0;
double MaxH=0;
//----
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
for(int i=0; i<limit; i++)
{
MaxH=High[Highest(NULL,0,MODE_HIGH,period,i)];
MinL=Low[Lowest(NULL,0,MODE_LOW,period,i)];
price=(High[i]+Low[i])/2;
Value=0.33*2*((price-MinL)/(MaxH-MinL)-0.5) + 0.67*Value1;
Value=MathMin(MathMax(Value,-0.999),0.999);
ExtBuffer0[i]=0.5*MathLog((1+Value)/(1-Value))+0.5*Fish1;
Value1=Value;
Fish1=ExtBuffer0[i];
}
bool up=true;
for(i=limit-2; i>=0; i--)
{
current=ExtBuffer0[i];
prev=ExtBuffer0[i+1];
//----
if (((current<0)&&(prev>0))||(current<0)) up= false;
if (((current>0)&&(prev<0))||(current>0)) up= true;
if(!up)
{
ExtBuffer2[i]=current;
ExtBuffer1[i]=0.0;
}
else
{
ExtBuffer1[i]=current;
ExtBuffer2[i]=0.0;
}
}
return(0);
}
//+------------------------------------------------------------------+
Comments