Hi there

I have install LEAN on my local computer and I can backtest trading strategy on lean using Binance data.

The local data dir is like this: “data/crypto/binance/hour” in which each coin's zip file(such as ‘btcusdt_trade.zip’) is saved and would be updated per hour.

My backtest code is as below:

from AlgorithmImports import *


class ConsolidatedIndicators(QCAlgorithm):

    def Initialize(self):
        self.SetTimeZone("UTC")  #
        self.SetStartDate(2021, 3, 1)
        self.SetBrokerageModel(BrokerageName.Binance, AccountType.Margin)
        self.SetAccountCurrency("USDT")
        self.SetCash(100000)
        self.SetBenchmark(Symbol.Create("BTCUSDT", SecurityType.Crypto, Market.Binance))
        self.symbols = ['ADAUSDT', 'ALGOUSDT', 'APEUSDT', 'ATOMUSDT', 'AVAXUSDT', 'BNBUSDT', 'BTCUSDT', 'COSUSDT',
                        'DASHUSDT', 'DOGEUSDT', 'DOTUSDT', 'EGLDUSDT', 'EOSUSDT', 'ETCUSDT', 'ETHUSDT', 'FTMUSDT',
                        'GALAUSDT', 'GMTUSDT', 'GRTUSDT', 'HIGHUSDT', 'IMXUSDT', 'JASMYUSDT', 'LINKUSDT', 'LOKAUSDT',
                        'LRCUSDT', 'LTCUSDT', 'LUNAUSDT', 'MANAUSDT', 'MATICUSDT', 'MBLUSDT', 'NEARUSDT', 'OCEANUSDT',
                        'OGNUSDT', 'RAREUSDT', 'RUNEUSDT', 'SANDUSDT', 'SHIBUSDT', 'SOLUSDT', 'SPELLUSDT', 'TLMUSDT',
                        'TRXUSDT', 'USTUSDT', 'VETUSDT', 'VITEUSDT', 'WAVESUSDT', 'XRPUSDT', 'ZECUSDT']
        for si in [*self.symbols]:
            try:
                self.AddCrypto(si, Resolution.Hour, Market.Binance)  # .SetLeverage(3.3)
            except:
                self.symbols.remove(si)
                self.Debug(f"can't load {si}")

    def OnData(self, data):
        self.Debug(f"data.Bars['BTCUSDT']:{data.Bars['BTCUSDT'].EndTime}")
        # self.SetHoldings('ETHUSDT', 0.1)
        self.MarketOrder('ETHUSDT', 0.1)
        # self.Debug(f"run once")

I have two question:

  1. the latest time of each coin's data is ‘2022-03-22 04:00:00’, but it shows the latest time is ‘2022-03-21 04:00:00’ when backtest. why?
  2. since each coin's data is updated per hour, so I want to use above code to paper trading directly; but when I run this code, it shows ‘Error’. so shall I use these data to paper trade? if ok, how shall I do that?