Author: Copyright 2002, Finware.ru Ltd.
FTLM_001

This script is a custom technical analysis tool designed for the MetaTrader platform. It serves as a visual indicator that helps traders identify market trends and momentum by calculating two distinct mathematical signals based on historical price data.

Core Logic and Functionality

The script operates by analyzing the "Close" prices of a specific window of previous candles (trading bars). Rather than using a simple moving average, it employs a sophisticated weighted calculation for both its primary and secondary signals.

1. The Dual-Signal Mechanism The indicator produces two separate lines on a dedicated sub-window of your chart:

  • FTLM Signal: This is generated by calculating the difference between two complex mathematical models (Value 1 and Value 2). It focuses on a shorter range of historical data to provide more immediate information.
  • STLM Signal: This is generated by calculating the difference between two larger, broader mathematical models (Value 3 and Value 4). These models look much further back into the past (up to 90 bars) to capture long-term trends.

2. Mathematical Weighting Instead of treating every previous price equally, the script assigns a unique "weight" (a specific decimal multiplier) to each individual bar in the sequence.

  • Some prices are added to the calculation, while others are subtracted.
  • The specific positive and negative coefficients are hard-coded into the logic to ensure that the indicator reacts consistently to price fluctuations over time.

3. Data Processing

  • Initialization: The script ensures it has enough historical data (at least 90 bars) before it begins drawing, preventing errors on brand-new charts.
  • Real-time Updates: The logic continuously loops through the price history to update the positions of the two lines as new price data becomes available.

User Experience

For a non-technical user, this means you will see two lines moving in a separate window below your main price chart. By observing how these two lines move in relation to one another—and how they fluctuate against the zero line—you can attempt to identify shifts in market sentiment, trend strength, and potential momentum changes.

Miscellaneous
Implements a curve of type %1
11 Views
0 Downloads
0 Favorites
FTLM_001
//+------------------------------------------------------------------+ 
//| FTLM_STLM.mq4 
//| 
//+------------------------------------------------------------------+ 
#property copyright "Copyright 2002, Finware.ru Ltd." 
#property link "http://www.finware.ru/" 

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


//---- buffers 
double FTLMBuffer[]; 
double STLMBuffer[]; 
double value1; 
double value2; 
double value3; 
double value4; 
//+------------------------------------------------------------------+ 
//| Custom indicator initialization function | 
//+------------------------------------------------------------------+ 
int init() 
{ 
string short_name; 
//---- indicator line 
IndicatorBuffers(2); 
SetIndexStyle(0,DRAW_LINE); 
SetIndexBuffer(0,STLMBuffer); 
SetIndexStyle(1,DRAW_LINE); 
SetIndexBuffer(1,FTLMBuffer); 
SetIndexDrawBegin(0,90); 
SetIndexDrawBegin(1,43); 
//---- 
return(0); 
} 
//+------------------------------------------------------------------+ 
//| FTLM_STLM | 
//+------------------------------------------------------------------+ 
int start() 
{ 
int i,counted_bars=IndicatorCounted(); 
//---- 
if(Bars<=90) return(0); 
//---- initial zero 
if(counted_bars<43) 
{ 
for(i=1;i<=0;i++) FTLMBuffer[Bars-i]=0.0; 
for(i=1;i<=0;i++) STLMBuffer[Bars-i]=0.0; 
} 
//---- 
i=Bars-43-1; 
if(counted_bars>=43) i=Bars-counted_bars-1; 
while(i>=0) 
{ 
value1 = 
0.4360409450*Close[i+0] 
+0.3658689069*Close[i+1] 
+0.2460452079*Close[i+2] 
+0.1104506886*Close[i+3] 
-0.0054034585*Close[i+4] 
-0.0760367731*Close[i+5] 
-0.0933058722*Close[i+6] 
-0.0670110374*Close[i+7] 
-0.0190795053*Close[i+8] 
+0.0259609206*Close[i+9] 
+0.0502044896*Close[i+10] 
+0.0477818607*Close[i+11] 
+0.0249252327*Close[i+12] 
-0.0047706151*Close[i+13] 
-0.0272432537*Close[i+14] 
-0.0338917071*Close[i+15] 
-0.0244141482*Close[i+16] 
-0.0055774838*Close[i+17] 
+0.0128149838*Close[i+18] 
+0.0226522218*Close[i+19] 
+0.0208778257*Close[i+20] 
+0.0100299086*Close[i+21] 
-0.0036771622*Close[i+22] 
-0.0136744850*Close[i+23] 
-0.0160483392*Close[i+24] 
-0.0108597376*Close[i+25] 
-0.0016060704*Close[i+26] 
+0.0069480557*Close[i+27] 
+0.0110573605*Close[i+28] 
+0.0095711419*Close[i+29] 
+0.0040444064*Close[i+30] 
-0.0023824623*Close[i+31] 
-0.0067093714*Close[i+32] 
-0.0072003400*Close[i+33] 
-0.0047717710*Close[i+34] 
+0.0005541115*Close[i+35] 
+0.0007860160*Close[i+36] 
+0.0130129076*Close[i+37] 
+0.0040364019*Close[i+38]; 

value2 = 
-0.0025097319*Close[i+0] 
+0.0513007762*Close[i+1] 
+0.1142800493*Close[i+2] 
+0.1699342860*Close[i+3] 
+0.2025269304*Close[i+4] 
+0.2025269304*Close[i+5] 
+0.1699342860*Close[i+6] 
+0.1142800493*Close[i+7] 
+0.0513007762*Close[i+8] 
-0.0025097319*Close[i+9] 
-0.0353166244*Close[i+10] 
-0.0433375629*Close[i+11] 
-0.0311244617*Close[i+12] 
-0.0088618137*Close[i+13] 
+0.0120580088*Close[i+14] 
+0.0233183633*Close[i+15] 
+0.0221931304*Close[i+16] 
+0.0115769653*Close[i+17] 
-0.0022157966*Close[i+18] 
-0.0126536111*Close[i+19] 
-0.0157416029*Close[i+20] 
-0.0113395830*Close[i+21] 
-0.0025905610*Close[i+22] 
+0.0059521459*Close[i+23] 
+0.0105212252*Close[i+24] 
+0.0096970755*Close[i+25] 
+0.0046585685*Close[i+26] 
-0.0017079230*Close[i+27] 
-0.0063513565*Close[i+28] 
-0.0074539350*Close[i+29] 
-0.0050439973*Close[i+30] 
-0.0007459678*Close[i+31] 
+0.0032271474*Close[i+32] 
+0.0051357867*Close[i+33] 
+0.0044454862*Close[i+34] 
+0.0018784961*Close[i+35] 
-0.0011065767*Close[i+36] 
-0.0031162862*Close[i+37] 
-0.0033443253*Close[i+38] 
-0.0022163335*Close[i+39] 
+0.0002573669*Close[i+40] 
+0.0003650790*Close[i+41] 
+0.0060440751*Close[i+42] 
+0.0018747783*Close[i+43]; 

value3 = 
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]; 

value4 = 
-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]; 

STLMBuffer[i] = value3-value4; 
FTLMBuffer[i] = value1-value2; 

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

Comments