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
-8.328
Tracking Error
0.115
Treynor Ratio
0
Total Fees
$0.00
Estimated Strategy Capacity
$0
Lowest Capacity Asset
import numpy as np

class rsi_loop(QCAlgorithm):

    def Initialize(self):
        self.SetStartDate(2021, 10, 10)  #Set Start Date
        self.SetEndDate(2021,10,18)
        self.SetCash(100)
        
        self.invested = 10

        # Set deposits
        #self.Schedule.On(self.DateRules.Every(DayOfWeek.Monday),self.TimeRules.At(12,00),self.OnData)
    
        # Set Brokerage Model 
        #self.SetBrokerageModel(BrokerageName.GDAX, AccountType.Cash)
        self.AddCrypto("BTCUSD", Resolution.Tick)
        
        self.btcusd = self.AddCrypto("BTCUSD", Resolution.Minute)
        
        RSI_period = 14
        self.RSI_ind_BTC = self.RSI(self.btcusd.Symbol,RSI_period,Resolution.Minute) 
        self.SetWarmUp(RSI_period)
        
        
        
        self.allowed_operations = 8
        self.quantity = (self.Portfolio.Cash / self.allowed_operations) 
        self.portions = (self.Portfolio.Cash / self.allowed_operations) / self.Portfolio.Cash
        
        #initializing variables
        self.btc_longoper = True
        
        
        # Create our rolling windows
        #self.tradeBarWindow = RollingWindow[TradeBar](5) # Store the last 5 values 
        #self.rsiWindow = RollingWindow[Decimal](10) # Store the last 10 values

    def OnData(self, data):
        

        if not self.RSI_ind_BTC.IsReady:
            return
        
        if not self.Portfolio.Invested and self.RSI_ind_BTC.Current.Value < 28 and self.btc_longoper == True:
            quantity = self.CalculateOrderQuantity(self.btcusd.Symbol, 0.5)
            self.MarketOrder(self.btcusd.Symbol,quantity)
            #self.SetHoldings(self.btcusd.Symbol,0.5)
            self.Debug("RSI < 30, Buying")
            self.btc_longoper = False
            
        if self.btc_longoper == False and self.RSI_ind_BTC.Current.Value > 70:
            self.Liquidate()
            
        self.Plot("Indicators","RSI", self.RSI_ind_BTC.Current.Value)