trendline

This technical indicator, known as the Trigger Line, is designed to provide traders with a visual representation of price momentum and trend direction by calculating two distinct types of moving averages. Its primary purpose is to filter market noise and highlight specific entry or exit signals based on the relationship between these two lines.

Core Logic and Components

The indicator operates by processing historical price data (specifically closing prices) to generate two main visual outputs:

1. The Weighted Calculation (The Primary Line) Unlike a standard moving average where all recent prices are weighted equally, this script applies a specific mathematical weight to the price data. It calculates a value that gives more significance to certain periods, creating a "weighted" average. This helps the indicator react more dynamically to recent price movements than a traditional simple average would.

2. The Linear Smoothed Moving Average (The Trigger Line) The script then takes the weighted values calculated above and applies a secondary smoothing process. This creates a "Linear Smoothed Moving Average" (LSMA). Think of this as a "trend filter"—it produces a smoother, slower-moving line that represents the underlying momentum of the market.

Visual Behavior and Interpretation

The indicator plots these two lines on your chart to help identify trends:

  • Dynamic Smoothing: By comparing the weighted value against the smoothed trigger line, the script attempts to distinguish between temporary price fluctuations and sustained trend shifts.
  • Color Coding and Visibility: The logic includes a specific "filtering" rule for visual clarity. The script is designed to manage how these lines appear on your chart. Specifically, it evaluates whether the primary weighted value is above or below the smoothed trigger line.
  • Signal Filtering: If the weighted value falls below the smoothed trigger line, the script hides specific components of the plot (setting them to "Empty"). This effectively cleans up the chart, ensuring that you only see relevant data points when certain momentum conditions are met.

Summary for Traders

In practical terms, this tool acts as a trend confirmation system. It uses a multi-step calculation—first weighting the price and then smoothing those weights—to create a "Trigger" mechanism. By observing where the primary line sits in relation to the smoothed line, traders can better identify the strength of a move and stay aligned with the prevailing market direction.

Miscellaneous
Implements a curve of type %1
11 Views
0 Downloads
0 Favorites
trendline
//+------------------------------------------------------------------+
//|                                                     Trigger Line |
//|                             Copyright © 2005 dwt5 and adoleh2000 |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property  copyright "Copyright © 2005 dwt5 and adoleh2000 "
#property  link      "http://www.metaquotes.net/"


//---- indicator settings
#property  indicator_chart_window
#property  indicator_buffers 4            
#property indicator_color1 Red      
#property indicator_color2 Red
#property indicator_color3 Blue
#property indicator_color4 Blue


//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];


int width;


extern int Rperiod = 20;
extern int LSMA_Period = 20;
int Draw4HowLong;
int shift;
int i;
int j;
int loopbegin;
int length;
int lsma_length;


double lengthvar;
double tmp ;
double tmp2 ;
double wt[];
double sum[];
double lsma_sum[];
double lsma_ma[];
double middle[];
int c;


//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- 7 additional buffers are used for counting.
   IndicatorBuffers(7);   
   
//---- drawing settings
   
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,4);
   
   SetIndexBuffer(1,ExtMapBuffer2);
   SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,4);
   
   SetIndexBuffer(2,ExtMapBuffer3);
   SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,4);
   
   SetIndexBuffer(3,ExtMapBuffer4);
   SetIndexStyle(3,DRAW_LINE,STYLE_SOLID,4);
   
   
   
   SetIndexBuffer(4,sum);        
   SetIndexBuffer(5,wt);         
   SetIndexBuffer(6,lsma_ma);
   
//---- initialization done
   return(0);
  }


int start()


  {   Draw4HowLong = Bars-Rperiod - 5;                            //Rperiod = 20
      length = Rperiod;                                           //length now = 20  
      lsma_length = LSMA_Period;
      loopbegin = Draw4HowLong - length - 1;   
      


      for(shift = loopbegin; shift >= 0; shift--)  //  MAIN For Loop
      { 
         sum[1] = 0;                                              
         for(i = length; i >= 1  ; i--)             //LSMA loop
         {
         lengthvar = length + 1;                               //lengthvar = 21  
         lengthvar /= 3;                                       //lengthvar = 7
         tmp = 0;
         tmp = ( i - lengthvar)*Close[length-i+shift];         //tmp = 20 - 7 * close[20-i+shift]
         sum[1]+=tmp;
         }
         wt[shift] = sum[1]*6/(length*(length+1));  
         j = shift;
         lsma_ma[shift] = wt[j+1] + (wt[j]-wt[j+1])* 2/(lsma_length+1);
  
                          
//========== COLOR CODING ===========================================                       
        
        
            ExtMapBuffer1[shift] = wt[shift]; 
            ExtMapBuffer2[shift] = lsma_ma[shift]; 
            ExtMapBuffer3[shift] = wt[shift]; 
            ExtMapBuffer4[shift] = lsma_ma[shift]; 
            
            
            
            if (wt[shift]  < lsma_ma[shift])
            {
                ExtMapBuffer4[shift] = EMPTY_VALUE;
                ExtMapBuffer3[shift] = EMPTY_VALUE;
           }          
        
        }
  }
//+------------------------------------------------------------------+

Comments