Got the answer from another threat:
"Change this line :
PHP Code:
limit=Bars-TSFPeriod-counted_bars;
PHP Code:
limit=Bars-counted_bars;

You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
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
*/