STLM2

This script is designed as a custom technical indicator for the MetaTrader 4 platform. Its primary purpose is to analyze historical price data and provide a visual representation of momentum or trend direction through a histogram.

Core Logic Overview

The tool operates by performing complex mathematical calculations on the closing prices of financial assets over a specific historical range. Here is a breakdown of how it achieves this:

1. Data Weighting and Analysis Instead of looking at just the current price, the script examines a large window of previous prices (determined by the CountBars setting). It assigns a unique mathematical "weight" to each of these prices. Some prices are multiplied by positive values, while others are multiplied by negative values. This suggests that the script is looking for specific patterns or relationships between past price points to determine the current market "sentiment."

2. Comparative Calculation The logic processes this data in two distinct phases simultaneously:

  • Current State: It calculates a value based on the most recent set of price points.
  • Previous State: It calculates a value based on the set of price points immediately preceding the current ones.

By comparing these two results, the script identifies whether the "momentum" is increasing, decreasing, or shifting.

3. Visual Output (The Histogram) The final output is displayed in a separate window below your main price chart as a histogram consisting of two colors: Blue and Red.

  • If the current calculated value is higher than the previous one, the indicator triggers a "Positive" result, which is represented visually.
  • If the current calculated value is lower than the previous one, it triggers a "Negative" result, represented by the opposite color.

Summary for the User

In simple terms, this script acts as a sophisticated trend detector. It takes a large amount of historical data, applies a complex set of weights to those prices, and compares the current "strength" against the previous "strength." It then paints a histogram to show you at a glance whether the trend is currently moving in an upward or downward direction based on that mathematical comparison.

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

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

extern int CountBars=900;
//---- 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