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 -4.585 Tracking Error 0.094 Treynor Ratio 0 Total Fees $0.00 Estimated Strategy Capacity $0 |
from clr import AddReference AddReference("System") AddReference("QuantConnect.Algorithm") AddReference("QuantConnect.Common") from System import * from QuantConnect import * from QuantConnect.Algorithm import * from QuantConnect.Data.Consolidators import * from datetime import timedelta class TachyonQuantumAutosequencers(QCAlgorithm): def Initialize(self): self.SetStartDate(2020, 7, 20) # Set Start Date self.SetEndDate(2020, 8, 15) self.SetCash(100000) # Set Strategy Cash self.day = 0 # list of symbols we want to trade self.symbolList = ["BTCUSD","ETHUSD","LTCUSD","BCHUSD"] # dictionary to hold rolling window for each symbol self.latest_daily_bar_by_symbol = {} self.cryptoSymbols = [] for name in self.symbolList: cryptoSymbol = self.AddCrypto(name, Resolution.Minute, Market.GDAX).Symbol self.cryptoSymbols.append(cryptoSymbol) dailyConsolidator = TradeBarConsolidator(timedelta(days=1)) dailyConsolidator.DataConsolidated += self.DailyConsolidator self.SubscriptionManager.AddConsolidator(cryptoSymbol, dailyConsolidator) def DailyConsolidator(self, sender, bar): self.latest_daily_bar_by_symbol[bar.Symbol] = bar # Accessing requested data def OnData(self, data): if data.Time.day == self.day: return self.day = data.Time.day max_return = -1 max_symbol = None for symbol in self.cryptoSymbols: if not data.ContainsKey(symbol) or symbol not in self.latest_daily_bar_by_symbol: return # Acessing previous bar properties from the daily bar previous_daily_bar = self.latest_daily_bar_by_symbol[symbol] close_to_open_return = (data[symbol].Open - previous_daily_bar.Close) / previous_daily_bar.Close if close_to_open_return > max_return: max_return = close_to_open_return max_symbol = symbol # The symbol with the largest close-to-open return is now available here: self.Log(f"Max symbol at {self.Time}: {max_symbol}")