Overall Statistics
Total Trades
0
Average Win
0%
Average Loss
0%
Compounding Annual Return
0%
Drawdown
0%
Expectancy
0
Net Profit
0%
Sharpe Ratio
0
Loss Rate
0%
Win Rate
0%
Profit-Loss Ratio
0
Alpha
0
Beta
0
Annual Standard Deviation
0
Annual Variance
0
Information Ratio
0
Tracking Error
0
Treynor Ratio
0
Total Fees
$0.00
import numpy as np
import pandas as pd

class rollingWindowDataFrameExample(QCAlgorithm):

    def Initialize(self):
        self.SetStartDate(2019, 2, 1)
        self.SetCash(5000)
        
        # Define tickers
        self.tickers = ["AAPL","IBM"]
        
        for ticker in self.tickers:
            self.AddEquity(ticker, Resolution.Daily)
        
        # Set rolling window period  
        self.period = 10
        
        # Create empty DataFrame
        self.df = pd.DataFrame(columns = self.tickers)
        
        # Use WarmUp to fill the DataFrame
        self.SetWarmUp(self.period)
        
    def OnData(self,data):
        # Create an empty dictionary
        dict = {}
        
        # Fill the dictionary with prices
        for ticker in self.tickers:
            price = self.Securities[ticker].Price
            dict[ticker] = price
        
        # Append dictionary to DataFrame
        self.df = self.df.append(dict,ignore_index=True)
        
        # Return if DataFrame is not filled
        if self.IsWarmingUp: return
    
        # Retrieve last values in DataFrame and convert to numpy array
        self.Log(str(self.df.tail(self.period).values))