Overall Statistics |
Total Trades 0 Average Win 0% Average Loss 0% Compounding Annual Return 5.886% Drawdown 3.500% Expectancy 0 Net Profit 5.965% Sharpe Ratio 1.016 Probabilistic Sharpe Ratio 49.977% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0.038 Beta -0.002 Annual Standard Deviation 0.033 Annual Variance 0.001 Information Ratio -4.086 Tracking Error 0.565 Treynor Ratio -19.09 Total Fees $0.00 Estimated Strategy Capacity $0 |
import numpy as np import subprocess class BasicTemplateAlgorithm(QCAlgorithm): def Initialize(self): self.SetStartDate(2020,1, 1) self.SetEndDate(2021,1,3) self.SetCash(10) self.Portfolio.SetCash("EUR", 10, Decimal(1.1)) self.crypto = "BTCEUR" self.SetBrokerageModel(BrokerageName.GDAX, AccountType.Cash) self.AddCrypto(self.crypto, Resolution.Daily) self.mfi = self.MFI(self.crypto, 3, Resolution.Daily) self.SetWarmUp(3) stockPlot = Chart('Close Price Chart') stockPlot2 = Chart('MFI Chart') stockPlot.AddSeries(Series('Close Price', SeriesType.Line, 0)) stockPlot2.AddSeries(Series('MFI', SeriesType.Line, 0)) def OnData(self, data): if not self.mfi.IsReady: return #BUY if self.mfi.Current.Value < 20: if not self.Portfolio.Invested: self.Debug("BUYING") self.SetHoldings(self.crypto, 0.6, True) self.Debug("BOUGHT") #SELL if self.mfi.Current.Value > 80: #self.SetHoldings(self.crypto, 1.0) self.Debug("SELLING") self.Liquidate() self.Debug("SOLD ") self.Plot('Close Price Chart', 'Close Price ' + self.crypto, self.Securities[self.crypto].Close) self.Plot('MFI Chart','MFI ' + self.crypto, self.mfi.Current.Value)