Solar_Wind1

Download script
Solar_Wind1

The Solar Wind indicator is a visual trading tool designed to help market participants identify trends and momentum shifts in real-time. Rather than cluttering the main price chart with confusing lines, it operates in a separate window, providing a streamlined view of market "energy" and direction.

How the Logic Works

1. Price Range Analysis The indicator begins by looking at a specific window of recent history (defined by a user-selectable period). It identifies the highest peak and the lowest valley within that timeframe. By calculating where the current price sits relative to this high and low range, the script determines whether the market is leaning toward an upward or downward bias.

2. Momentum Smoothing Instead of reacting impulsively to every minor price tick, the logic uses a smoothing technique. It takes the raw price data and applies a mathematical filter that blends the current momentum with previous values. This ensures that the resulting signal is fluid and stable, reducing "market noise" that often leads to false signals in fast-moving environments.

3. Trend Visualization The script translates these mathematical calculations into two distinct visual elements:

  • Directional Coloring: The indicator uses a histogram format where different colors represent contrasting market directions (typically Lime for upward momentum and Red for downward momentum).
  • Zero-Line Crossover: The "center" of the indicator acts as a neutral zone. When the values move above this line, it signals bullish strength; when they drop below, it signals bearish weakness.

Automated Alerts

To ensure that traders do not have to watch the screen constantly, the script includes an automated notification system. It monitors the transition points where the momentum flips from positive to negative (or vice versa).

When a significant shift in direction is detected—specifically when the indicator crosses the zero-line—the system will automatically:

  • Generate a visual Alert on your screen.
  • Trigger an Audio Notification to grab your attention immediately.

By providing a clear, color-coded representation of market flow combined with instant notifications, the Solar Wind indicator helps traders stay aligned with the prevailing trend while minimizing the need for manual oversight.

Miscellaneous
Implements a curve of type %1It issuies visual alerts to the screenIt plays sound alerts
2 Views
0 Downloads
0 Favorites
Solar_Wind1
/*-----------------------------+
|			       |
| Shared by www.Aptrafx.com    |
|			       |
+------------------------------*/

//+------------------------------------------------------------------+
//|                                                   Solar_Wind.mq4 |
//+------------------------------------------------------------------+

#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;
         }
     }
      static datetime cDT = 0;
   
      if (cDT == 0) { cDT = iTime(NULL,0,0); } // Don't alert when start
   
   
        if (cDT != iTime(NULL,0,0))
        {
            if (
                  ((ExtBuffer0[0] > 0) && (ExtBuffer0[1] <= 0))
                  ||
                  ((ExtBuffer0[0] < 0) && (ExtBuffer0[1] >= 0))
                )
               {
                  Alert(Symbol(),AccountNumber(), "  Solar wind Direction Change");
                  PlaySound("alert.wav");
               }
               cDT = iTime(NULL,0,0);
        }       

   return(0);
  }

Comments