| Overall Statistics |
|
Total Trades 1 Average Win 0% Average Loss 0% Compounding Annual Return -33.284% Drawdown 68.300% Expectancy 0 Net Profit -45.173% Sharpe Ratio -0.61 Probabilistic Sharpe Ratio 0.688% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0 Beta 0 Annual Standard Deviation 0.334 Annual Variance 0.111 Information Ratio -0.61 Tracking Error 0.334 Treynor Ratio 0 Total Fees $0.00 Estimated Strategy Capacity $0 Lowest Capacity Asset KO.KO 2S |
class MultidimensionalCalibratedChamber(QCAlgorithm):
def Initialize(self):
self.SetStartDate(1973, 9, 11) # Set Start Date
self.SetEndDate(1975, 3, 7)
self.SetCash(100000) # Set Strategy Cash
self.AddEquity('SPY', Resolution.Daily)
self.symbol = self.AddData(KO, 'KO', Resolution.Daily).Symbol
def OnData(self, data):
if data.ContainsKey(self.symbol):
self.Plot('KO', 'Open', data[self.symbol].Open)
self.Plot('KO', 'High', data[self.symbol].High)
self.Plot('KO', 'Low', data[self.symbol].Low)
self.Plot('KO', 'Close', data[self.symbol].Close)
self.Plot('KO', 'Volume', data[self.symbol].Volume)
if not self.Portfolio.Invested:
self.SetHoldings(self.symbol, 1)
class KO(PythonData):
''' Weather based rebalancing'''
def GetSource(self, config, date, isLive):
source = "https://raw.githubusercontent.com/thisisneon/importdata/main/cola_1973_1975.csv"
return SubscriptionDataSource(source, SubscriptionTransportMedium.RemoteFile);
def Reader(self, config, line, date, isLive):
# If first character is not digit, pass
if not (line.strip() and line[0].isdigit()): return None
data = line.split(',')
ko = KO()
ko.Symbol = config.Symbol
ko.Time = datetime.strptime(data[0].split(' ')[0], '%m/%d/%Y')
ko.Value = float(data[4])
ko['Open'] = float(data[1])
ko['High'] = float(data[2])
ko['Low'] = float(data[3])
ko['Close'] = float(data[4])
ko['Volume'] = float(data[6])
return ko