| Overall Statistics |
|
Total Trades 1 Average Win 0% Average Loss 0% Compounding Annual Return 168.948% Drawdown 2.400% Expectancy 0 Net Profit 8.080% Sharpe Ratio 13.382 Probabilistic Sharpe Ratio 99.707% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0.357 Beta 1.088 Annual Standard Deviation 0.099 Annual Variance 0.01 Information Ratio 8.778 Tracking Error 0.05 Treynor Ratio 1.223 Total Fees $1.39 Estimated Strategy Capacity $46000000.00 Lowest Capacity Asset QQQ RIWIV7K5Z9LX |
from datetime import date
from datetime import datetime
class Example_Plot(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2021, 10, 4)
Today = datetime.now().date()
TodayTime = datetime.now()
self.Debug(f'{TodayTime} UTC_Time')
self.SetEndDate(Today)
#self.SetEndDate(2021, 11, 1)
self.SetCash(100000)
self.SetTimeZone("America/New_York")
#self.SetTimeZone("Europe/Amsterdam")
self.SetWarmUp(10, Resolution.Daily)
self.Data = {}
self.symbols = ["QQQ"]
for ticker in self.symbols:
security = self.AddEquity(ticker, Resolution.Minute)
symbol = security.Symbol
self.Data[symbol] = SymbolData(self, security, symbol)
stockPlot = Chart(ticker)
stockPlot.AddSeries(Series("Price", SeriesType.Line, 0))
self.AddChart(stockPlot)
def OnData(self, data):
if self.IsWarmingUp: return
for symbol in self.Data.keys():
SymbolData = self.Data[symbol]
if (not self.Portfolio[symbol].Invested):
self.SetHoldings(symbol, 1/len(self.symbols))
current_time = datetime.strftime(self.Time,"%H:%M")
if self.Time >= self.StartDate and current_time > "09:30" and current_time <= "09:31":
self.Debug(f'AM Minute {self.Time} {symbol.Value} {SymbolData.closeM.Current.Value}')
if self.Time >= self.StartDate and current_time > "15:59" and current_time <= "16:00":
self.Debug(f'PM Minute {self.Time} {symbol.Value} {SymbolData.closeM.Current.Value}')
def OnEndOfDay(self, symbol):
if self.IsWarmingUp: return
SymbolData = self.Data[symbol]
if self.Time >= self.StartDate:
self.Debug(f'EOD Daily {self.Time} {symbol.Value} {SymbolData.close.Current.Value}')
self.Plot(symbol.Value, "Price", SymbolData.close.Current.Value)
class SymbolData(object):
def __init__(self, algorithm, security, symbol):
self.algorithm = algorithm
self.closeM = algorithm.SMA(symbol, 1, Resolution.Minute)
self.close = algorithm.SMA(symbol, 1, Resolution.Daily)