| 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}")