Solar Winds
Download scriptThis technical indicator, titled "Solar Wind," is designed to analyze price action by identifying momentum shifts and trend reversals. Rather than plotting directly on the main price chart, it generates a separate visual dashboard that translates complex market movements into a simplified histogram of bullish and bearish signals.
Core Methodology
The logic operates by first calculating the price range over a specific moving window (the "period"). It identifies the highest highs and lowest lows within that timeframe to establish a boundary. By comparing the current average price against these boundaries, the script determines where the price sits relative to the overall volatility of the recent period.
Data Processing and Smoothing
To ensure the visual output isn't erratic or overly sensitive to minor market "noise," the script applies a mathematical smoothing process. It calculates a weighted value based on the price position, then uses a logarithmic calculation to convert these values into a stabilized momentum figure. This helps in identifying the true underlying strength of a move rather than just reacting to momentary spikes.
Visual Interpretation
The final output is divided into two distinct visual components:
- Bullish Signals (Lime): When the calculated momentum trends upward and remains positive, the indicator reflects this as a lime-colored histogram. This suggests that the buying pressure is dominant within the current timeframe.
- Bearish Signals (Red): Conversely, when the momentum drops below the zero line or shifts into negative territory, the indicator switches to a red histogram. This signifies that selling pressure is prevailing.
Summary for Traders
Essentially, this tool acts as a filter. It takes raw price data, smooths out the fluctuations, and presents you with a clear "up or down" visual guide. By observing the color changes in the histogram, users can more easily identify when the market sentiment is shifting from one direction to another, providing a cleaner perspective on current market trends.
#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,STYLE_SOLID,2);
SetIndexStyle(2,DRAW_HISTOGRAM,STYLE_SOLID,2);
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