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
0
Tracking Error
0
Treynor Ratio
0
Total Fees
$0.00
Estimated Strategy Capacity
$0
Lowest Capacity Asset
RESOLUTION = Resolution.Hour
# RESOLUTION = Resolution.Daily

import pandas as pd
from io import StringIO
from tickers_file import Tiks

from QuantConnect import Resolution
from QuantConnect.Algorithm import QCAlgorithm
from clr import AddReference
import os
AddReference("System")
AddReference("QuantConnect.Algorithm")
AddReference("QuantConnect.Indicators")
AddReference("QuantConnect.Common")

from System import *
from QuantConnect import *
from QuantConnect.Algorithm import *
from QuantConnect.Indicators import *
from QuantConnect.Data.Custom import *
from QuantConnect.Python import *
from datetime import datetime, timedelta
from QuantConnect.Data import SubscriptionDataSource

class CryptoVoFd(QCAlgorithm):
    
    def Initialize(self):
        self.SetStartDate(2021, 1, 1)
        self.SetEndDate(2022, 4, 1)
        self.SetCash(20000)
        self.tickers = Tiks.tickers
        self.SetBrokerageModel(BrokerageName.Bitfinex, AccountType.Cash)
        self.cryptos = []
        for ticker in self.tickers:
            if ticker[-3] == "USD" or ticker[-4] == "USDT":
                # self.cryptos.append(CryptoData(self.AddCrypto(ticker, RESOLUTION, Market.Bitfinex).Symbol, self))
                self.AddCrypto(ticker, RESOLUTION)
                self.crypto.append(ticker) # shortlist of fitting ones
        self.prevRebalanceTime = datetime.min
        self.SetBenchmark('BTCUSD')
        self.Log('=======INIT=========')
        self.avgVol = {} # use instead of rolling window
        self.count = 0
        self.done = []
        self.toSell = []

    def OnData(self, data):
        
        self.SetHoldings("BTCUSDT",1.0)
        self.count += 1
                    
        self.Log('===========================')
        self.Log(str(self.Portfolio.CashBook))
        self.prevRebalanceTime = self.Time
class Tiks:
    tickers = ['1INCHUSD',
    '1INCHUSDT',
    'AAABBB',
    'AAVEUSD',
    'AAVEUSDT',
    'ADABTC',
    'ADAUSD',
    'ADAUSDT',
    'AIXUSD',
    'AIXUSDT',
    'ALBTUSD',
    'ALBTUSDT',
    'ALGOBTC',
    'ALGOUSD',
    'ALGOUSDT',
    'AMPLBTC',
    'AMPLUSD',
    'AMPLUSDT',
    'ANCUSD',
    'ANCUSDT',
    'ANTBTC',
    'ANTETH',
    'ANTUSD',
    'ATOMBTC',
    'ATOMETH',
    'ATOMUSD',
    'ATOMUSDT',
    'AVAXBTC',
    'AVAXUSD',
    'AVAXUSDT',
    'AXSUSD',
    'AXSUSDT',
    'B21USD',
    'B21USDT',
    'BALUSD',
    'BALUSDT',
    'BANDUSD',
    'BANDUSDT',
    'BATUSD',
    'BATUSDT',
    'BCHABCUSD',
    'BCHNUSD',
    'BESTUSD',
    'BFTUSD',
    'BMIUSD',
    'BMIUSDT',
    'BNTUSD',
    'BOBAUSD',
    'BOBAUSDT',
    'BOSONUSD',
    'BOSONUSDT',
    'BSVBTC',
    'BSVUSD',
    'BTCCNHT',
    'BTCEUR',
    'BTCEURT',
    'BTCGBP',
    'BTCJPY',
    'BTCMIM',
    'BTCUSD',
    'BTCUSDT',
    'BTCXAUT',
    'BTCXCHF',
    'BTGBTC',
    'BTGUSD',
    'BTSEUSD',
    'BTTUSD',
    'CCDBTC',
    'CCDUSD',
    'CCDUSDT',
    'CELUSD',
    'CELUSDT',
    'CHEXUSD',
    'CHSBBTC',
    'CHSBUSD',
    'CHSBUSDT',
    'CHZUSD',
    'CHZUSDT',
    'CLOUSD',
    'CNHCNHT',
    'COMPUSD',
    'COMPUSDT',
    'CRVUSD',
    'CRVUSDT',
    'CTKUSD',
    'CTKUSDT',
    'DAIBTC',
    'DAIETH',
    'DAIUSD',
    'DASHBTC',
    'DASHUSD',
    'DATAUSD',
    'DCRUSD',
    'DGBUSD',
    'DOGEBTC',
    'DOGEUSD',
    'DOGEUSDT',
    'DORAUSD',
    'DORAUSDT',
    'DOTBTC',
    'DOTUSD',
    'DOTUSDT',
    'DUSKBTC',
    'DUSKUSD',
    'DVFUSD',
    'EDOUSD',
    'EGLDUSD',
    'EGLDUSDT',
    'ENJUSD',
    'EOSBTC',
    'EOSETH',
    'EOSEUR',
    'EOSGBP',
    'EOSJPY',
    'EOSUSD',
    'EOSUSDT',
    'ESSUSD',
    'ETCBTC',
    'ETCUSD',
    'ETCUSDT',
    'ETH2ETH',
    'ETH2USD',
    'ETH2USDT',
    'ETHBTC',
    'ETHEUR',
    'ETHEURT',
    'ETHGBP',
    'ETHJPY',
    'ETHUSD',
    'ETHUSDT',
    'ETHXAUT',
    'ETPBTC',
    'ETPUSD',
    'EURSUSD',
    'EURTEUR',
    'EURTUSD',
    'EURTUSDT',
    'EURUSDT',
    'EXOUSD',
    'FCLUSD',
    'FCLUSDT',
    'FETUSD',
    'FETUSDT',
    'FILUSD',
    'FILUSDT',
    'FORTHUSD',
    'FORTHUSDT',
    'FTMUSD',
    'FTMUSDT',
    'FTTUSD',
    'FTTUSDT',
    'FUNUSD',
    'GBPEURT',
    'GBPUSDT',
    'GLMUSD',
    'GNOUSD',
    'GOTEUR',
    'GOTUSD',
    'GRTUSD',
    'GRTUSDT',
    'GTXUSD',
    'GTXUSDT',
    'HMTUSD',
    'HMTUSDT',
    'ICEUSD',
    'ICPBTC',
    'ICPUSD',
    'ICPUSDT',
    'IDUSD',
    'IDUSDT',
    'IOTABTC',
    'IOTAETH',
    'IOTAEUR',
    'IOTAGBP',
    'IOTAJPY',
    'IOTAUSD',
    'IQXUSD',
    'IQXUSDT',
    'JASMYUSD',
    'JASMYUSDT',
    'JPYUSDT',
    'JSTBTC',
    'JSTUSD',
    'JSTUSDT',
    'KAIUSD',
    'KAIUSDT',
    'KANUSD',
    'KANUSDT',
    'KNCBTC',
    'KNCUSD',
    'KSMUSD',
    'KSMUSDT',
    'LEOBTC',
    'LEOEOS',
    'LEOETH',
    'LEOUSD',
    'LEOUSDT',
    'LINKUSD',
    'LINKUSDT',
    'LRCUSD',
    'LTCBTC',
    'LTCUSD',
    'LTCUSDT',
    'LUNABTC',
    'LUNAETH',
    'LUNAUSD',
    'LUNAUSDT',
    'LYMUSD',
    'MANABTC',
    'MANAUSD',
    'MATICBTC',
    'MATICUSD',
    'MATICUSDT',
    'MDOGBTC',
    'MDOGUSD',
    'MDOGUSDT',
    'MIMUSD',
    'MIMUSDT',
    'MIRUSD',
    'MIRUSDT',
    'MKRUSD',
    'MKRUSDT',
    'MLNUSD',
    'MOBUSD',
    'MOBUSDT',
    'NEARUSD',
    'NEARUSDT',
    'NEOBTC',
    'NEOETH',
    'NEOEUR',
    'NEOGBP',
    'NEOJPY',
    'NEOUSD',
    'NEOUSDT',
    'NEXOBTC',
    'NEXOUSD',
    'NEXOUSDT',
    'OCEANUSD',
    'OCEANUSDT',
    'ODEUSD',
    'OMGBTC',
    'OMGETH',
    'OMGUSD',
    'OMNIUSD',
    'ORSUSD',
    'OXYUSD',
    'OXYUSDT',
    'PASSUSD',
    'PAXUSD',
    'PAXUSDT',
    'PLANETSUSD',
    'PLANETSUSDT',
    'PLUUSD',
    'PNGUSD',
    'PNGUSDT',
    'PNKETH',
    'PNKUSD',
    'QRDOUSD',
    'QRDOUSDT',
    'QSHUSD',
    'QTFBTC',
    'QTFUSD',
    'QTUMBTC',
    'QTUMUSD',
    'RBTCBTC',
    'RBTCUSD',
    'REEFUSD',
    'REEFUSDT',
    'REP2BTC',
    'REP2USD',
    'REQUSD',
    'ROSEUSD',
    'ROSEUSDT',
    'RRTUSD',
    'SANBTC',
    'SANETH',
    'SANUSD',
    'SGBUSD',
    'SGBUSDT',
    'SHIBUSD',
    'SHIBUSDT',
    'SNTUSD',
    'SNXUSD',
    'SNXUSDT',
    'SOLBTC',
    'SOLUSD',
    'SOLUSDT',
    'SPELLMIM',
    'SPELLUSD',
    'SPELLUSDT',
    'SRMUSD',
    'SRMUSDT',
    'STORJUSD',
    'SUKUUSD',
    'SUKUUSDT',
    'SUNUSD',
    'SUNUSDT',
    'SUSHIUSD',
    'SUSHIUSDT',
    'SXXUSD',
    'SXXUSDT',
    'TERRAUSTUSD',
    'TERRAUSTUSDT',
    'TESTBTCTESTUSD',
    'TESTBTCTESTUSDT',
    'THETAUSD',
    'THETAUSDT',
    'TLOSUSD',
    'TLOSUSDT',
    'TRADEUSD',
    'TRADEUSDT',
    'TRXBTC',
    'TRXETH',
    'TRXEUR',
    'TRXUSD',
    'TRXUSDT',
    'TUSDUSD',
    'TUSDUSDT',
    'UNIUSD',
    'UNIUSDT',
    'UOPUSD',
    'UOPUSDT',
    'UOSBTC',
    'UOSUSD',
    'USDCUSD',
    'USDCUSDT',
    'USDTCNHT',
    'USDTUSD',
    'UTKUSD',
    'VEEUSD',
    'VELOUSD',
    'VELOUSDT',
    'VETBTC',
    'VETUSD',
    'VETUSDT',
    'VSYBTC',
    'VSYUSD',
    'WAVESUSD',
    'WAVESUSDT',
    'WAXUSD',
    'WBTCUSD',
    'WILDUSD',
    'WILDUSDT',
    'WNCGUSD',
    'WNCGUSDT',
    'WOOUSD',
    'WOOUSDT',
    'XAUTBTC',
    'XAUTUSD',
    'XAUTUSDT',
    'XCHFUSD',
    'XDCUSD',
    'XDCUSDT',
    'XLMBTC',
    'XLMETH',
    'XLMUSD',
    'XLMUSDT',
    'XMRBTC',
    'XMRUSD',
    'XMRUSDT',
    'XRAUSD',
    'XRDBTC',
    'XRDUSD',
    'XRPBTC',
    'XRPUSD',
    'XRPUSDT',
    'XSNUSD',
    'XTZBTC',
    'XTZUSD',
    'XTZUSDT',
    'XVGUSD',
    'YFIUSD',
    'YFIUSDT',
    'ZCNUSD',
    'ZECBTC',
    'ZECUSD',
    'ZILBTC',
    'ZILUSD',
    'ZMTUSD',
    'ZMTUSDT',
    'ZRXBTC',
    'ZRXETH',
    'ZRXUSD']