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
Probabilistic 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
2.879
Tracking Error
0.118
Treynor Ratio
0
Total Fees
$0.00
Estimated Strategy Capacity
$0
Lowest Capacity Asset
#region imports
from AlgorithmImports import *
#endregion
# Import datetime library
import datetime

class UpgradedGreenRat(QCAlgorithm):

    def Initialize(self):
        
        # Set Start Date
        self.SetStartDate(2022, 1, 1)
        self.SetEndDate(2022, 1, 15)
        
        # Set Strategy Cash
        self.SetCash(100000) 
            
        # Register 
        self.symbol = self.AddEquity("AAPL", Resolution.Minute).Symbol
 
        # Create consolidator object to consolidate minute bars to 4-hour bars
        four_hour_consolidator = TradeBarConsolidator(datetime.timedelta(hours=4))
        four_hour_consolidator.DataConsolidated += self.FourHourReceiver
        self.SubscriptionManager.AddConsolidator(self.symbol, four_hour_consolidator)

        self.four_hour_consolidator2 = TradeBarConsolidator(datetime.timedelta(hours=4))
        self.four_hour_consolidator2.DataConsolidated += self.FourHourReceiver2
        
        # History request hour
        historical_data = self.History(self.symbol, (20 * 1), Resolution.Hour)
        
        # History request minute
        # historical_data = self.History(symbol, (20 * 60), Resolution.Minute)
        
        # Loc
        historical_data = historical_data.loc[self.symbol]
        
        # Loop through history
        for time, row in historical_data.iterrows():
            
            # Create bar
            bar = TradeBar(time - datetime.timedelta(hours=1), self.symbol, row.open, row.high, row.low, row.close, row.volume, datetime.timedelta(hours=1))
            
            # Update consolidator
            self.four_hour_consolidator2.Update(bar)

    def OnData(self, data):
        
        historical_data = self.History(self.symbol, datetime.timedelta(days=1), Resolution.Hour)
        if historical_data.empty:
            return
        historical_data = historical_data.loc[self.symbol]
        for time, row in historical_data.iterrows():
            bar = TradeBar(time - datetime.timedelta(hours=1), self.symbol, row.open, row.high, row.low, row.close, row.volume, datetime.timedelta(hours=1))
            self.four_hour_consolidator2.Update(bar)
    
    def FourHourReceiver(self, sender, bar):
        
        # Print
        self.Debug(f"Sub: {bar.EndTime} {bar.Close}")
    
    def FourHourReceiver2(self, sender, bar):
        
        # Print
        self.Debug(f"History: {bar.EndTime} {bar.Close}")