//+------------------------------------------------------------------+
//|                                   Cycle_GJH4                     |
//|                                                                  |
//|      Made by Simba with Sergey Iljukhin's DFG                    |
//+------------------------------------------------------------------+
#property copyright "Copyleft"
#property link      "www.forex-tsd.com"

// --- Parameters: P1=40, D1=30, A1=1
// --- P2=89, D2=56, A2=1, Ripple=0.01, Delay=0
// --- Order [Auto]=101, Calculate method=2

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red
#define FilterOrder 101

//---- buffers
double FilterBuffer[];

//+------------------------------------------------------------------+
//| Digital filter indicator initialization function                 |
//+------------------------------------------------------------------+
int init()
{
//---- indicator line
SetIndexStyle(0,DRAW_LINE,EMPTY,3);
SetIndexBuffer(0,FilterBuffer);
SetIndexDrawBegin(0,101);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Digital filter main function                                     |
//+------------------------------------------------------------------+
int start()
{
int i,counted_bars=IndicatorCounted();
double response;
//----
if(Bars<=101) return(0);
//----
i=Bars-101-1;
if(counted_bars>=101) i=Bars-counted_bars-1;
while(i>=0)
{
response=
 20.30176462753054880*Close[i]
 +19.89517503255600770*Close[i+1]
 +19.09101103080196890*Close[i+2]
 +17.90711953485438460*Close[i+3]
 +16.36963803048180570*Close[i+4]
 +14.51265052594307650*Close[i+5]
 +12.37698774465265930*Close[i+6]
 +10.00935345287616760*Close[i+7]
 +7.46141708838192219*Close[i+8]
 +4.78848889436422631*Close[i+9]
 +2.048047808219*Close[i+10]
 -0.701507283322*Close[i+11]
 -3.40208530299827006*Close[i+12]
 -5.99741003891303670*Close[i+13]
 -8.43445506875376161*Close[i+14]
 -10.66417836091287260*Close[i+15]
 -12.64286312464568600*Close[i+16]
 -14.33322032070694800*Close[i+17]
 -15.70481631634793550*Close[i+18]
 -16.73501249662616530*Close[i+19]
 -17.40900634023730830*Close[i+20]
 -17.72030972186459510*Close[i+21]
 -17.67044624476172740*Close[i+22]
 -17.26905193931774460*Close[i+23]
 -16.53340609896157790*Close[i+24]
 -15.48764916710436700*Close[i+25]
 -14.16215614765486210*Close[i+26]
 -12.59288125256666820*Close[i+27]
 -10.82026662617382940*Close[i+28]
 -8.88795048740255211*Close[i+29]
 -6.84180357772046222*Close[i+30]
 -4.72909983326097905*Close[i+31]
 -2.596864930251*Close[i+32]
 -0.490902149756*Close[i+33]
 +1.544667468747*Close[i+34]
 +3.46932190284909492*Close[i+35]
 +5.24617696071075290*Close[i+36]
 +6.84333549693778664*Close[i+37]
 +8.23399222479030257*Close[i+38]
 +9.39714063445486758*Close[i+39]
 +10.31764768985001450*Close[i+40]
 +10.98646697025617410*Close[i+41]
 +11.40081174277368170*Close[i+42]
 +11.56383892802017500*Close[i+43]
 +11.48407419877762510*Close[i+44]
 +11.17510785713783150*Close[i+45]
 +10.65535682270992270*Close[i+46]
 +9.94723379746933922*Close[i+47]
 +9.07588430189692552*Close[i+48]
 +8.06909104557127499*Close[i+49]
 +6.95679451976188812*Close[i+50]
 +5.76878347085071752*Close[i+51]
 +4.53592781775697773*Close[i+52]
 +3.28777916161014705*Close[i+53]
 +2.052872663665*Close[i+54]
 +0.857511000871*Close[i+55]
 -0.2744275247557*Close[i+56]
 -1.322008888862*Close[i+57]
 -2.267551911958*Close[i+58]
 -3.096796209009*Close[i+59]
 -3.79924836880220695*Close[i+60]
 -4.36842124701495838*Close[i+61]
 -4.80146803409200462*Close[i+62]
 -5.09857596264640911*Close[i+63]
 -5.26301331855863186*Close[i+64]
 -5.30180183955435513*Close[i+65]
 -5.22447821271621660*Close[i+66]
 -5.04107502298629662*Close[i+67]
 -4.76591843809617988*Close[i+68]
 -4.41239823219124006*Close[i+69]
 -3.99594809199802370*Close[i+70]
 -3.53179731825870924*Close[i+71]
 -3.035286310261*Close[i+72]
 -2.521148703919*Close[i+73]
 -2.003256834925*Close[i+74]
 -1.494415762982*Close[i+75]
 -1.006091940898*Close[i+76]
 -0.548283182796*Close[i+77]
 -0.1293603243533*Close[i+78]
 +0.2444124870260*Close[i+79]
 +0.569199569345*Close[i+80]
 +0.842876377613*Close[i+81]
 +1.063062976919*Close[i+82]
 +1.227949139989*Close[i+83]
 +1.344922347274*Close[i+84]
 +1.412050251308*Close[i+85]
 +1.436049354018*Close[i+86]
 +1.421047832495*Close[i+87]
 +1.372722782937*Close[i+88]
 +1.296909792286*Close[i+89]
 +1.199679276096*Close[i+90]
 +1.087145521959*Close[i+91]
 +0.965292120700*Close[i+92]
 +0.840007141299*Close[i+93]
 +0.717118380939*Close[i+94]
 +0.602450650068*Close[i+95]
 +0.502177424801*Close[i+96]
 +0.423365578698*Close[i+97]
 +0.374787991996*Close[i+98]
 +0.368295243182*Close[i+99]
 -0.812878177182*Close[i+100];
FilterBuffer[i]=response;

i--;
}
return(0);
}