Time Series Forecast (TSF) - doesn´t move in the security window (real time)

 

Dear community,


Does anyone know why the following TSF doesn´t move in EURUSD M1 automatically? Unfortunately it shows only the most recent values after new, manual compilation:


//+------------------------------------------------------------------+
//| Time Series Forecast.mq4 |
//| Copyright © 2006, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
//---- input parameters
extern int TSFPeriod = 20;
//---- buffers
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
/*int deinit()
{
//----

//----
return(0);
}
*/
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
//----
double ka,kb,sx,sy,sxy,sx2,ival;
int cnt;

int i,limit;

limit=Bars-TSFPeriod-counted_bars;
//---- main loop
for(i=limit; i>=0; i--)

{
sy=0;
sx=0;
sxy=0;
sx2=0;
for (cnt=1; cnt<= TSFPeriod; cnt++)
{
sy+=Close[i+cnt-1];
sx+=cnt;
sx2+=cnt*cnt;
sxy+=Close[i+cnt-1]*cnt;
}
kb=(TSFPeriod*sxy-sx*sy)/(TSFPeriod*sx2-sx*sx);
ka=(sy-kb*sx)/TSFPeriod;
ival=ka+kb;
ExtMapBuffer1[i] = ival;
}

//----
return(0);
}
//+------------------------------------------------------------------+
/*
extern int ndot=21;


bool is_First=true;

SetLoopCount(0);

// Check for additional bars loading or total reloadng.
If Bars<prevbars or Bars-prevbars>1 Then is_First=True;
prevbars=Bars;
//--------------------------------------------------------

// Pre-Loop setup
// loopbegin prevents counting of previously plotted bars excluding current Bars
if is_First Then Begin
LoopBegin=bars-ndot-2;
is_First=False;
End;
//--------------------------------------------------------

loopBegin++; // Plot the current bar also
// loop from first bar to current bar (with shift=0)
For shift=loopBegin Downto 0 Begin
sy=0;
sx=0;
sxy=0;
sx2=0;
For cnt=1 To ndot Begin
sy+=close[shift+cnt-1];
sx+=cnt;
sx2+=cnt*cnt;
sxy+=close[shift+cnt-1]*cnt;
End;
kb=(ndot*sxy-sx*sy)/(ndot*sx2-sx*sx);
ka=(sy-kb*sx)/ndot;
ival=ka+kb;
SetIndexValue(shift, ival);
loopBegin--; // Prevent repeating previously plotted bars on next tick
End
*/

 

Got the answer from another threat:


"Change this line :

PHP Code:
limit=Bars-TSFPeriod-counted_bars;
to this
PHP Code:
limit=Bars-counted_bars;
that should do the trick"