| 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 -1.382 Tracking Error 0.114 Treynor Ratio 0 Total Fees $0.00 |
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(2014, 7, 20) # Set Start Date
self.SetCash(100000) # Set Strategy Cash
# list of symbols we want to trade
#self.symbolList = ["BTCUSD","ETHUSD","LTCUSD","BCHUSD"]
self.symbolList = ["BTCUSD","ETHUSD","LTCUSD","BCHUSD", "XRPUSD","BCHUSD","XLMUSD","EOSUSD", "REPUSD","XTZUSD","ETCUSD","ZRXUSD"]
# dictionary to hold rolling window for each symbol
self.daily = {}
self.window = {}
self.cryptoSymbols = []
for name in self.symbolList:
cryptoSymbol = self.AddCrypto(name, Resolution.Hour, Market.GDAX).Symbol
self.cryptoSymbols.append(cryptoSymbol)
dailyConsolidator = TradeBarConsolidator(timedelta(days=1))
dailyConsolidator.DataConsolidated += self.DailyConsolidator
self.SubscriptionManager.AddConsolidator(cryptoSymbol, dailyConsolidator)
self.daily[cryptoSymbol] = RollingWindow[TradeBar](2)
self.window[cryptoSymbol] = RollingWindow[TradeBar](2)
def DailyConsolidator(self, sender, bar):
self.daily[bar.Symbol].Add(bar)
# Accessing requested data
def OnData(self, data):
for symbol in self.cryptoSymbols:
if not data.ContainsKey(symbol):
return
self.window[symbol].Add(data.Bars[symbol])
# Access bar properties from the `window`
if not self.window[symbol].IsReady:
continue
latest_bar = self.window[symbol][0]
close_of_latest_bar = latest_bar.Close
self.Log(f"Latest `window` close for {symbol}: {close_of_latest_bar}")
# Acessing previous bar properties from the daily bar
previous_daily_bar = self.daily[symbol][1]
close_of_previous_daily_bar = previous_daily_bar.Close
self.Log(f"Previous `daily` close for {symbol}: {close_of_previous_daily_bar}")