STLM2_002

This script is a custom technical indicator designed for the MetaTrader 4 platform. It functions as a visual tool that helps traders interpret price momentum by calculating and displaying specific mathematical relationships between past prices.

Overview of Functionality

The primary purpose of this script is to generate a histogram (a series of vertical bars) in a separate window below your main trading chart. These bars serve as a visual representation of market direction and strength, categorized into "Up" movements (typically displayed in Lime) and "Down" movements (typically displayed in Red).

How the Logic Works

The script operates based on a sophisticated weighting system rather than simply looking at the most recent price change. Here is the breakdown of its logic:

  • Historical Data Analysis: Instead of looking at just one or two previous candles, the script analyzes a window of historical price data (specifically looking back across 90 price points).
  • Weighted Calculations: The core of the script involves two distinct "value" calculations. It takes each closing price from the past and multiplies it by a specific decimal weight. These weights are pre-defined constants that determine how much importance is given to older prices versus more recent ones.
  • Comparison Engine: The script calculates two primary results based on these weights:
    1. It calculates a value for the current relative timeframe.
    2. It calculates a nearly identical value for the immediate next timeframe (the "offset").
  • Momentum Detection: By subtracting these two weighted values from one another, the script identifies the "delta" or the change in momentum.
    • If the first calculated value is greater than the second, it identifies an upward trend.
    • If the second value is greater, it identifies a downward trend.

Visual Output

The final result is displayed as a histogram:

  • Lime Bars: These appear when the math confirms that the price momentum is shifting in an upward direction.
  • Red Bars: These appear when the math indicates that the price momentum is shifting in a downward direction.

Essentially, this tool "smooths" out market noise by using a complex mathematical formula to determine if the current underlying trend is pushing higher or lower compared to very recent history.

Miscellaneous
Implements a curve of type %1
16 Views
0 Downloads
0 Favorites
STLM2_002
//+------------------------------------------------------------------+
//| STLM_hist.mq4 
//| Ramdass - Conversion only
//+------------------------------------------------------------------+

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red

extern int TimeFrame=0;
extern int CountBars=300;
//---- buffers
double Up[];
double Down[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
//---- indicator line
   IndicatorBuffers(2);
   SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2);
   SetIndexBuffer(0,Up);
   SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,2);
   SetIndexBuffer(1,Down);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| STLM                                                             |
//+------------------------------------------------------------------+
int start()
  {
   SetIndexDrawBegin(0,Bars-CountBars+90);
   SetIndexDrawBegin(1,Bars-CountBars+90);
   int i,i2,counted_bars=IndicatorCounted();
   double STLM,STLM1,value1,value2,value3,value4;
//----
   if(Bars<=90) return(0);
//---- initial zero
   if(counted_bars<90)
   {
      for(i=1;i<=0;i++) Up[CountBars-i]=0.0;
      for(i=1;i<=0;i++) Down[CountBars-i]=0.0;
   }
//----
   i=CountBars-90-1;
//   if(counted_bars>=90) i=Bars-counted_bars-1;
   while(i>=0)
     {

value1 =
0.0982862174*Close[i+0]
+0.0975682269*Close[i+1]
+0.0961401078*Close[i+2]
+0.0940230544*Close[i+3]
+0.0912437090*Close[i+4]
+0.0878391006*Close[i+5]
+0.0838544303*Close[i+6]
+0.0793406350*Close[i+7]
+0.0743569346*Close[i+8]
+0.0689666682*Close[i+9]
+0.0632381578*Close[i+10]
+0.0572428925*Close[i+11]
+0.0510534242*Close[i+12]
+0.0447468229*Close[i+13]
+0.0383959950*Close[i+14]
+0.0320735368*Close[i+15]
+0.0258537721*Close[i+16]
+0.0198005183*Close[i+17]
+0.0139807863*Close[i+18]
+0.0084512448*Close[i+19]
+0.0032639979*Close[i+20]
-0.0015350359*Close[i+21]
-0.0059060082*Close[i+22]
-0.0098190256*Close[i+23]
-0.0132507215*Close[i+24]
-0.0161875265*Close[i+25]
-0.0186164872*Close[i+26]
-0.0205446727*Close[i+27]
-0.0219739146*Close[i+28]
-0.0229204861*Close[i+29]
-0.0234080863*Close[i+30]
-0.0234566315*Close[i+31]
-0.0231017777*Close[i+32]
-0.0223796900*Close[i+33]
-0.0213300463*Close[i+34]
-0.0199924534*Close[i+35]
-0.0184126992*Close[i+36]
-0.0166377699*Close[i+37]
-0.0147139428*Close[i+38]
-0.0126796776*Close[i+39]
-0.0105938331*Close[i+40]
-0.0084736770*Close[i+41]
-0.0063841850*Close[i+42]
-0.0043466731*Close[i+43]
-0.0023956944*Close[i+44]
-0.0005535180*Close[i+45]
+0.0011421469*Close[i+46]
+0.0026845693*Close[i+47]
+0.0040471369*Close[i+48]
+0.0052380201*Close[i+49]
+0.0062194591*Close[i+50]
+0.0070340085*Close[i+51]
+0.0076266453*Close[i+52]
+0.0080376628*Close[i+53]
+0.0083037666*Close[i+54]
+0.0083694798*Close[i+55]
+0.0082901022*Close[i+56]
+0.0080741359*Close[i+57]
+0.0077543820*Close[i+58]
+0.0073260526*Close[i+59]
+0.0068163569*Close[i+60]
+0.0062325477*Close[i+61]
+0.0056078229*Close[i+62]
+0.0049516078*Close[i+63]
+0.0161380976*Close[i+64];

value2 =
-0.0074151919*Close[i+0]
-0.0060698985*Close[i+1]
-0.0044979052*Close[i+2]
-0.0027054278*Close[i+3]
-0.0007031702*Close[i+4]
+0.0014951741*Close[i+5]
+0.0038713513*Close[i+6]
+0.0064043271*Close[i+7]
+0.0090702334*Close[i+8]
+0.0118431116*Close[i+9]
+0.0146922652*Close[i+10]
+0.0175884606*Close[i+11]
+0.0204976517*Close[i+12]
+0.0233865835*Close[i+13]
+0.0262218588*Close[i+14]
+0.0289681736*Close[i+15]
+0.0315922931*Close[i+16]
+0.0340614696*Close[i+17]
+0.0363444061*Close[i+18]
+0.0384120882*Close[i+19]
+0.0402373884*Close[i+20]
+0.0417969735*Close[i+21]
+0.0430701377*Close[i+22]
+0.0440399188*Close[i+23]
+0.0446941124*Close[i+24]
+0.0450230100*Close[i+25]
+0.0450230100*Close[i+26]
+0.0446941124*Close[i+27]
+0.0440399188*Close[i+28]
+0.0430701377*Close[i+29]
+0.0417969735*Close[i+30]
+0.0402373884*Close[i+31]
+0.0384120882*Close[i+32]
+0.0363444061*Close[i+33]
+0.0340614696*Close[i+34]
+0.0315922931*Close[i+35]
+0.0289681736*Close[i+36]
+0.0262218588*Close[i+37]
+0.0233865835*Close[i+38]
+0.0204976517*Close[i+39]
+0.0175884606*Close[i+40]
+0.0146922652*Close[i+41]
+0.0118431116*Close[i+42]
+0.0090702334*Close[i+43]
+0.0064043271*Close[i+44]
+0.0038713513*Close[i+45]
+0.0014951741*Close[i+46]
-0.0007031702*Close[i+47]
-0.0027054278*Close[i+48]
-0.0044979052*Close[i+49]
-0.0060698985*Close[i+50]
-0.0074151919*Close[i+51]
-0.0085278517*Close[i+52]
-0.0094111161*Close[i+53]
-0.0100658241*Close[i+54]
-0.0104994302*Close[i+55]
-0.0107227904*Close[i+56]
-0.0107450280*Close[i+57]
-0.0105824763*Close[i+58]
-0.0102517019*Close[i+59]
-0.0097708805*Close[i+60]
-0.0091581551*Close[i+61]
-0.0084345004*Close[i+62]
-0.0076214397*Close[i+63]
-0.0067401718*Close[i+64]
-0.0058083144*Close[i+65]
-0.0048528295*Close[i+66]
-0.0038816271*Close[i+67]
-0.0029244713*Close[i+68]
-0.0019911267*Close[i+69]
-0.0010974211*Close[i+70]
-0.0002535559*Close[i+71]
+0.0005231953*Close[i+72]
+0.0012297491*Close[i+73]
+0.0018539149*Close[i+74]
+0.0023994354*Close[i+75]
+0.0028490136*Close[i+76]
+0.0032221429*Close[i+77]
+0.0034936183*Close[i+78]
+0.0036818974*Close[i+79]
+0.0038037944*Close[i+80]
+0.0038338964*Close[i+81]
+0.0037975350*Close[i+82]
+0.0036986051*Close[i+83]
+0.0035521320*Close[i+84]
+0.0033559226*Close[i+85]
+0.0031224409*Close[i+86]
+0.0028550092*Close[i+87]
+0.0025688349*Close[i+88]
+0.0022682355*Close[i+89]
+0.0073925495*Close[i+90];



value3 =
0.0982862174*Close[i+0+1]
+0.0975682269*Close[i+1+1]
+0.0961401078*Close[i+2+1]
+0.0940230544*Close[i+3+1]
+0.0912437090*Close[i+4+1]
+0.0878391006*Close[i+5+1]
+0.0838544303*Close[i+6+1]
+0.0793406350*Close[i+7+1]
+0.0743569346*Close[i+8+1]
+0.0689666682*Close[i+9+1]
+0.0632381578*Close[i+10+1]
+0.0572428925*Close[i+11+1]
+0.0510534242*Close[i+12+1]
+0.0447468229*Close[i+13+1]
+0.0383959950*Close[i+14+1]
+0.0320735368*Close[i+15+1]
+0.0258537721*Close[i+16+1]
+0.0198005183*Close[i+17+1]
+0.0139807863*Close[i+18+1]
+0.0084512448*Close[i+19+1]
+0.0032639979*Close[i+20+1]
-0.0015350359*Close[i+21+1]
-0.0059060082*Close[i+22+1]
-0.0098190256*Close[i+23+1]
-0.0132507215*Close[i+24+1]
-0.0161875265*Close[i+25+1]
-0.0186164872*Close[i+26+1]
-0.0205446727*Close[i+27+1]
-0.0219739146*Close[i+28+1]
-0.0229204861*Close[i+29+1]
-0.0234080863*Close[i+30+1]
-0.0234566315*Close[i+31+1]
-0.0231017777*Close[i+32+1]
-0.0223796900*Close[i+33+1]
-0.0213300463*Close[i+34+1]
-0.0199924534*Close[i+35+1]
-0.0184126992*Close[i+36+1]
-0.0166377699*Close[i+37+1]
-0.0147139428*Close[i+38+1]
-0.0126796776*Close[i+39+1]
-0.0105938331*Close[i+40+1]
-0.0084736770*Close[i+41+1]
-0.0063841850*Close[i+42+1]
-0.0043466731*Close[i+43+1]
-0.0023956944*Close[i+44+1]
-0.0005535180*Close[i+45+1]
+0.0011421469*Close[i+46+1]
+0.0026845693*Close[i+47+1]
+0.0040471369*Close[i+48+1]
+0.0052380201*Close[i+49+1]
+0.0062194591*Close[i+50+1]
+0.0070340085*Close[i+51+1]
+0.0076266453*Close[i+52+1]
+0.0080376628*Close[i+53+1]
+0.0083037666*Close[i+54+1]
+0.0083694798*Close[i+55+1]
+0.0082901022*Close[i+56+1]
+0.0080741359*Close[i+57+1]
+0.0077543820*Close[i+58+1]
+0.0073260526*Close[i+59+1]
+0.0068163569*Close[i+60+1]
+0.0062325477*Close[i+61+1]
+0.0056078229*Close[i+62+1]
+0.0049516078*Close[i+63+1]
+0.0161380976*Close[i+64+1];

value4 =
-0.0074151919*Close[i+0+1]
-0.0060698985*Close[i+1+1]
-0.0044979052*Close[i+2+1]
-0.0027054278*Close[i+3+1]
-0.0007031702*Close[i+4+1]
+0.0014951741*Close[i+5+1]
+0.0038713513*Close[i+6+1]
+0.0064043271*Close[i+7+1]
+0.0090702334*Close[i+8+1]
+0.0118431116*Close[i+9+1]
+0.0146922652*Close[i+10+1]
+0.0175884606*Close[i+11+1]
+0.0204976517*Close[i+12+1]
+0.0233865835*Close[i+13+1]
+0.0262218588*Close[i+14+1]
+0.0289681736*Close[i+15+1]
+0.0315922931*Close[i+16+1]
+0.0340614696*Close[i+17+1]
+0.0363444061*Close[i+18+1]
+0.0384120882*Close[i+19+1]
+0.0402373884*Close[i+20+1]
+0.0417969735*Close[i+21+1]
+0.0430701377*Close[i+22+1]
+0.0440399188*Close[i+23+1]
+0.0446941124*Close[i+24+1]
+0.0450230100*Close[i+25+1]
+0.0450230100*Close[i+26+1]
+0.0446941124*Close[i+27+1]
+0.0440399188*Close[i+28+1]
+0.0430701377*Close[i+29+1]
+0.0417969735*Close[i+30+1]
+0.0402373884*Close[i+31+1]
+0.0384120882*Close[i+32+1]
+0.0363444061*Close[i+33+1]
+0.0340614696*Close[i+34+1]
+0.0315922931*Close[i+35+1]
+0.0289681736*Close[i+36+1]
+0.0262218588*Close[i+37+1]
+0.0233865835*Close[i+38+1]
+0.0204976517*Close[i+39+1]
+0.0175884606*Close[i+40+1]
+0.0146922652*Close[i+41+1]
+0.0118431116*Close[i+42+1]
+0.0090702334*Close[i+43+1]
+0.0064043271*Close[i+44+1]
+0.0038713513*Close[i+45+1]
+0.0014951741*Close[i+46+1]
-0.0007031702*Close[i+47+1]
-0.0027054278*Close[i+48+1]
-0.0044979052*Close[i+49+1]
-0.0060698985*Close[i+50+1]
-0.0074151919*Close[i+51+1]
-0.0085278517*Close[i+52+1]
-0.0094111161*Close[i+53+1]
-0.0100658241*Close[i+54+1]
-0.0104994302*Close[i+55+1]
-0.0107227904*Close[i+56+1]
-0.0107450280*Close[i+57+1]
-0.0105824763*Close[i+58+1]
-0.0102517019*Close[i+59+1]
-0.0097708805*Close[i+60+1]
-0.0091581551*Close[i+61+1]
-0.0084345004*Close[i+62+1]
-0.0076214397*Close[i+63+1]
-0.0067401718*Close[i+64+1]
-0.0058083144*Close[i+65+1]
-0.0048528295*Close[i+66+1]
-0.0038816271*Close[i+67+1]
-0.0029244713*Close[i+68+1]
-0.0019911267*Close[i+69+1]
-0.0010974211*Close[i+70+1]
-0.0002535559*Close[i+71+1]
+0.0005231953*Close[i+72+1]
+0.0012297491*Close[i+73+1]
+0.0018539149*Close[i+74+1]
+0.0023994354*Close[i+75+1]
+0.0028490136*Close[i+76+1]
+0.0032221429*Close[i+77+1]
+0.0034936183*Close[i+78+1]
+0.0036818974*Close[i+79+1]
+0.0038037944*Close[i+80+1]
+0.0038338964*Close[i+81+1]
+0.0037975350*Close[i+82+1]
+0.0036986051*Close[i+83+1]
+0.0035521320*Close[i+84+1]
+0.0033559226*Close[i+85+1]
+0.0031224409*Close[i+86+1]
+0.0028550092*Close[i+87+1]
+0.0025688349*Close[i+88+1]
+0.0022682355*Close[i+89+1]
+0.0073925495*Close[i+90+1];



STLM=value1-value2;
STLM1=value3-value4;


if (STLM>STLM1) {Up[i]=STLM;Down[i]=0.0;} else {Down[i]=STLM;Up[i]=0.0;}

      i--;
     }
   return(0);
  }
//+------------------------------------------------------------------+

Comments