FTLM_KG_hist
Download scriptThis script functions as a specialized technical analysis tool designed to filter market noise and identify underlying price trends. Instead of using standard moving averages, it employs a sophisticated mathematical "digital filter" approach to analyze price action.
Core Logic Overview
The script operates by performing a complex weighted calculation across a specific window of historical price data (controlled by the CountBars setting). Rather than treating every price point equally, it assigns a unique mathematical weight—either positive or negative—to each historical closing price within a 62-bar sequence.
How the Calculation Works
To generate its visual signals, the script performs two distinct operations simultaneously:
- Dual Weighted Analysis: The logic calculates two different weighted sums (referred to in the code as
value1throughvalue4). These calculations use highly specific decimal coefficients to determine a "filtered" value for the current price movement and the immediate preceding movement. - Comparative Difference: By subtracting these weighted values from one another, the script derives two primary data points:
- FTLM: Represents the filtered momentum of the current period.
- FTLM1: Represents the filtered momentum of the previous period.
Visual Output and Interpretation
The final result is displayed in a separate window as a histogram. The logic compares the current momentum against the previous momentum to determine the visual output:
- Green Histogram (Up): This appears when the current filtered momentum is higher than the previous filtered momentum. It suggests that the "filtered" price trend is strengthening or moving upward.
- Red Histogram (Down): This appears when the current filtered momentum is lower than the previous filtered momentum. It indicates that the "filtered" price trend is weakening or moving downward.
Summary for the User
Essentially, this tool acts as a sophisticated "trend smoother." By using a precise digital filter, it attempts to strip away minor price fluctuations (market noise) to reveal whether the broader momentum of the market is currently tilting toward the upside or the downside. It provides a cleaner visual representation of trend changes compared to standard indicators that might react too quickly to volatile price spikes.
//+------------------------------------------------------------------+
//| FTLM_KG_hist.mq4
//| Digital filter from Kenny-Goodman
//| Ramdass - Conversion only
//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Green
#property indicator_color2 Red
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);
SetIndexBuffer(0,Up);
SetIndexStyle(1,DRAW_HISTOGRAM);
SetIndexBuffer(1,Down);
//----
return(0);
}
//+------------------------------------------------------------------+
//| FTLM |
//+------------------------------------------------------------------+
int start()
{
SetIndexDrawBegin(0,Bars-CountBars+62);
SetIndexDrawBegin(1,Bars-CountBars+62);
int i,i2,counted_bars=IndicatorCounted();
double FTLM,FTLM1,value1,value2,value3,value4;
//----
if(Bars<=62) return(0);
//---- initial zero
if(counted_bars<62)
{
for(i=1;i<=0;i++) Up[Bars-i]=0.0;
for(i=1;i<=0;i++) Down[Bars-i]=0.0;
}
//----
i=CountBars-62-1;
// if(counted_bars>=62) i=Bars-counted_bars-1;
while(i>=0)
{
value1 =
0.216679747671846*Close[i+0]
+0.211269420463811*Close[i+1]
+0.195544884029715*Close[i+2]
+0.170965415406708*Close[i+3]
+0.139777024336523*Close[i+4]
+0.10475520757496*Close[i+5]
+0.0688963726406815*Close[i+6]
+0.0350907878482374*Close[i+7]
+0.00582303578389499*Close[i+8]
-0.0170687325113629*Close[i+9]
-0.0325430291353946*Close[i+10]
-0.0404061862801786*Close[i+11]
-0.0412576874250575*Close[i+12]
-0.0363489006817302*Close[i+13]
-0.0273726712811041*Close[i+14]
-0.0162239477577438*Close[i+15]
-0.00474919988104162*Close[i+16]
+0.00546044031567738*Close[i+17]
+0.0132340752866597*Close[i+18]
+0.0179048641241163*Close[i+19]
+0.0193288196450583*Close[i+20]
+0.0178203001317383*Close[i+21]
+0.0140521142662672*Close[i+22]
+0.00890900942687798*Close[i+23]
+0.00332796683926323*Close[i+24]
-0.00183047425117888*Close[i+25]
-0.00590003260461143*Close[i+26]
-0.008470924607332*Close[i+27]
-0.00941376204563632*Close[i+28]
-0.00885433738048246*Close[i+29]
-0.00711869639879854*Close[i+30]
-0.00465317542176635*Close[i+31]
-0.00194019707183346*Close[i+32]
+0.000579603884990088*Close[i+33]
+0.00256707017356023*Close[i+34]
+0.00381977207432852*Close[i+35]
+0.00428068634338846*Close[i+36]
+0.00402313632832263*Close[i+37]
+0.0032179506176373*Close[i+38]
+0.00209012998360153*Close[i+39]
+0.000874173133673174*Close[i+40]
-0.000224786383933042*Close[i+41]
-0.0010587336898008*Close[i+42]
-0.00155052433232022*Close[i+43]
-0.00169306769372935*Close[i+44]
-0.00153786701404679*Close[i+45]
-0.00117483219738423*Close[i+46]
-0.000710127079707358*Close[i+47]
-0.000243983404727185*Close[i+48]
+0.000144391315936508*Close[i+49]
+0.000408472741254023*Close[i+50]
+0.000535354473765889*Close[i+51]
+0.000542366420043941*Close[i+52]
+0.000469190409143627*Close[i+53]
+0.000367676722499057*Close[i+54]
-0.000413583883278278*Close[i+55];
value2=
0.0364298167208155*Close[i+0]
+0.0553906231378775*Close[i+1]
+0.0739088457518267*Close[i+2]
+0.0904000966980787*Close[i+3]
+0.103396797434432*Close[i+4]
+0.111711342284296*Close[i+5]
+0.114572120305459*Close[i+6]
+0.111711342284296*Close[i+7]
+0.103396797434432*Close[i+8]
+0.0904000966980787*Close[i+9]
+0.0739088457518267*Close[i+10]
+0.0553906231378775*Close[i+11]
+0.0364298167208155*Close[i+12]
+0.0185546919366474*Close[i+13]
+0.00307900283041587*Close[i+14]
-0.00902530529856102*Close[i+15]
-0.0172075327263682*Close[i+16]
-0.0213652751829327*Close[i+17]
-0.0218155170382955*Close[i+18]
-0.0192199347960543*Close[i+19]
-0.0144736414953281*Close[i+20]
-0.00857861481888381*Close[i+21]
-0.00251119869748709*Close[i+22]
+0.00288727595213947*Close[i+23]
+0.00699768244225111*Close[i+24]
+0.00946742032203178*Close[i+25]
+0.0102203545718079*Close[i+26]
+0.0094227060558747*Close[i+27]
+0.00743023076018664*Close[i+28]
+0.00471074990083792*Close[i+29]
+0.00175970399253971*Close[i+30]
-0.000967886100918518*Close[i+31]
-0.00311971586013391*Close[i+32]
-0.00447910708609257*Close[i+33]
-0.00497764414629577*Close[i+34]
-0.00468184137410999*Close[i+35]
-0.00376409954776387*Close[i+36]
-0.00246042456645472*Close[i+37]
-0.00102590341145799*Close[i+38]
+0.000306472786469948*Close[i+39]
+0.00135737038610145*Close[i+40]
+0.00201975214731277*Close[i+41]
+0.00226346631835387*Close[i+42]
+0.00212728353418576*Close[i+43]
+0.0017015315425756*Close[i+44]
+0.00110518230941413*Close[i+45]
+0.000462229952338165*Close[i+46]
-0.000118858605382952*Close[i+47]
-0.000559818649332224*Close[i+48]
-0.000819859088114563*Close[i+49]
-0.000895230669111811*Close[i+50]
-0.00081316637313982*Close[i+51]
-0.000621207183890965*Close[i+52]
-0.000375488554341561*Close[i+53]
-0.000129009269667756*Close[i+54]
+0.0000763487100123232*Close[i+55]
+0.000215985058849768*Close[i+56]
+0.000283075358142209*Close[i+57]
+0.000286783012231603*Close[i+58]
+0.000248090283379797*Close[i+59]
+0.000194413654881473*Close[i+60]
-0.000218687638971784*Close[i+61];
value3=
0.216679747671846*Close[i+0+1]
+0.211269420463811*Close[i+1+1]
+0.195544884029715*Close[i+2+1]
+0.170965415406708*Close[i+3+1]
+0.139777024336523*Close[i+4+1]
+0.10475520757496*Close[i+5+1]
+0.0688963726406815*Close[i+6+1]
+0.0350907878482374*Close[i+7+1]
+0.00582303578389499*Close[i+8+1]
-0.0170687325113629*Close[i+9+1]
-0.0325430291353946*Close[i+10+1]
-0.0404061862801786*Close[i+11+1]
-0.0412576874250575*Close[i+12+1]
-0.0363489006817302*Close[i+13+1]
-0.0273726712811041*Close[i+14+1]
-0.0162239477577438*Close[i+15+1]
-0.00474919988104162*Close[i+16+1]
+0.00546044031567738*Close[i+17+1]
+0.0132340752866597*Close[i+18+1]
+0.0179048641241163*Close[i+19+1]
+0.0193288196450583*Close[i+20+1]
+0.0178203001317383*Close[i+21+1]
+0.0140521142662672*Close[i+22+1]
+0.00890900942687798*Close[i+23+1]
+0.00332796683926323*Close[i+24+1]
-0.00183047425117888*Close[i+25+1]
-0.00590003260461143*Close[i+26+1]
-0.008470924607332*Close[i+27+1]
-0.00941376204563632*Close[i+28+1]
-0.00885433738048246*Close[i+29+1]
-0.00711869639879854*Close[i+30+1]
-0.00465317542176635*Close[i+31+1]
-0.00194019707183346*Close[i+32+1]
+0.000579603884990088*Close[i+33+1]
+0.00256707017356023*Close[i+34+1]
+0.00381977207432852*Close[i+35+1]
+0.00428068634338846*Close[i+36+1]
+0.00402313632832263*Close[i+37+1]
+0.0032179506176373*Close[i+38+1]
+0.00209012998360153*Close[i+39+1]
+0.000874173133673174*Close[i+40+1]
-0.000224786383933042*Close[i+41+1]
-0.0010587336898008*Close[i+42+1]
-0.00155052433232022*Close[i+43+1]
-0.00169306769372935*Close[i+44+1]
-0.00153786701404679*Close[i+45+1]
-0.00117483219738423*Close[i+46+1]
-0.000710127079707358*Close[i+47+1]
-0.000243983404727185*Close[i+48+1]
+0.000144391315936508*Close[i+49+1]
+0.000408472741254023*Close[i+50+1]
+0.000535354473765889*Close[i+51+1]
+0.000542366420043941*Close[i+52+1]
+0.000469190409143627*Close[i+53+1]
+0.000367676722499057*Close[i+54+1]
-0.000413583883278278*Close[i+55+1];
value4=
0.0364298167208155*Close[i+0+1]
+0.0553906231378775*Close[i+1+1]
+0.0739088457518267*Close[i+2+1]
+0.0904000966980787*Close[i+3+1]
+0.103396797434432*Close[i+4+1]
+0.111711342284296*Close[i+5+1]
+0.114572120305459*Close[i+6+1]
+0.111711342284296*Close[i+7+1]
+0.103396797434432*Close[i+8+1]
+0.0904000966980787*Close[i+9+1]
+0.0739088457518267*Close[i+10+1]
+0.0553906231378775*Close[i+11+1]
+0.0364298167208155*Close[i+12+1]
+0.0185546919366474*Close[i+13+1]
+0.00307900283041587*Close[i+14+1]
-0.00902530529856102*Close[i+15+1]
-0.0172075327263682*Close[i+16+1]
-0.0213652751829327*Close[i+17+1]
-0.0218155170382955*Close[i+18+1]
-0.0192199347960543*Close[i+19+1]
-0.0144736414953281*Close[i+20+1]
-0.00857861481888381*Close[i+21+1]
-0.00251119869748709*Close[i+22+1]
+0.00288727595213947*Close[i+23+1]
+0.00699768244225111*Close[i+24+1]
+0.00946742032203178*Close[i+25+1]
+0.0102203545718079*Close[i+26+1]
+0.0094227060558747*Close[i+27+1]
+0.00743023076018664*Close[i+28+1]
+0.00471074990083792*Close[i+29+1]
+0.00175970399253971*Close[i+30+1]
-0.000967886100918518*Close[i+31+1]
-0.00311971586013391*Close[i+32+1]
-0.00447910708609257*Close[i+33+1]
-0.00497764414629577*Close[i+34+1]
-0.00468184137410999*Close[i+35+1]
-0.00376409954776387*Close[i+36+1]
-0.00246042456645472*Close[i+37+1]
-0.00102590341145799*Close[i+38+1]
+0.000306472786469948*Close[i+39+1]
+0.00135737038610145*Close[i+40+1]
+0.00201975214731277*Close[i+41+1]
+0.00226346631835387*Close[i+42+1]
+0.00212728353418576*Close[i+43+1]
+0.0017015315425756*Close[i+44+1]
+0.00110518230941413*Close[i+45+1]
+0.000462229952338165*Close[i+46+1]
-0.000118858605382952*Close[i+47+1]
-0.000559818649332224*Close[i+48+1]
-0.000819859088114563*Close[i+49+1]
-0.000895230669111811*Close[i+50+1]
-0.00081316637313982*Close[i+51+1]
-0.000621207183890965*Close[i+52+1]
-0.000375488554341561*Close[i+53+1]
-0.000129009269667756*Close[i+54+1]
+0.0000763487100123232*Close[i+55+1]
+0.000215985058849768*Close[i+56+1]
+0.000283075358142209*Close[i+57+1]
+0.000286783012231603*Close[i+58+1]
+0.000248090283379797*Close[i+59+1]
+0.000194413654881473*Close[i+60+1]
-0.000218687638971784*Close[i+61+1];
FTLM=value1-value2;
FTLM1=value3-value4;
if (FTLM>FTLM1) {Up[i]=FTLM;Down[i]=0.0;} else {Down[i]=FTLM;Up[i]=0.0;}
i--;
}
return(0);
}
//+------------------------------------------------------------------+
Comments