I am coding a strategy to enter positions on a list of stocks entering on a 1 minute timeframe but with rules that also use daily values. The list of stocks changes every day.
How do I calculate a 20 day moving average of turnover SMA(Close * Volume,20) in a daily time frame that I can access in 1 minute time frame for each stock.
I got this far:
else if (State == State.Configure)
{
ClearOutputWindow();
AddDataSeries(Data.BarsPeriodType.Day, 1);
AddDataSeries("AAL", Data.BarsPeriodType.Minute, 1);
AddDataSeries("AAL", Data.BarsPeriodType.Day, 1);
AddDataSeries("AAPL", Data.BarsPeriodType.Minute, 1);
AddDataSeries("AAPL", Data.BarsPeriodType.Day, 1);
AddDataSeries("ADBE", Data.BarsPeriodType.Minute, 1);
AddDataSeries("ADBE", Data.BarsPeriodType.Day, 1);
AddDataSeries("ADI", Data.BarsPeriodType.Minute, 1);
AddDataSeries("ADI", Data.BarsPeriodType.Day, 1);
AddDataSeries("ADP", Data.BarsPeriodType.Minute, 1);
AddDataSeries("ADP", Data.BarsPeriodType.Day, 1);
AddDataSeries("ADSK", Data.BarsPeriodType.Minute, 1);
AddDataSeries("ADSK", Data.BarsPeriodType.Day, 1);
AddDataSeries("AKAM", Data.BarsPeriodType.Minute, 1);
AddDataSeries("AKAM", Data.BarsPeriodType.Day, 1);
}
else if (State == State.DataLoaded)
{
turnover = new Series<double>(this, MaximumBarsLookBack.Infinite);
}
}
protected override void OnBarUpdate()
{
if (BarsInProgress%2 == 0)
{
if (CurrentBar < 2000) return;
}
if (BarsInProgress%2 > 0)
{
if (CurrentBar < 21) return;
}
if(BarsInProgress >= 2 && BarsInProgress%2 == 0)//Only run on 1 minute data series
{
sma5 = SMA(BarsArray[BarsInProgress+1],5)[0];//Yesterdays SMA5 daily
turnover[0] = Closes[BarsInProgress+1][0] * Volumes[BarsInProgress+1][0];//Yesterdays turnover
}
Thanks.
Numbo

Comment