Overall Statistics |
Total Trades 116 Average Win 10.80% Average Loss -1.64% Compounding Annual Return 201.266% Drawdown 44.000% Expectancy 1.885 Net Profit 260.963% Sharpe Ratio 2.018 Loss Rate 62% Win Rate 38% Profit-Loss Ratio 6.60 Alpha 0.894 Beta -0.405 Annual Standard Deviation 0.423 Annual Variance 0.179 Information Ratio 1.731 Tracking Error 0.437 Treynor Ratio -2.107 Total Fees $3618.85 |
from QuantConnect.Indicators import * import decimal as d ### <summary> ### In this example we are looking for price to breakout above the bollinger bands ### and look to buy when we see that. We hold our position until price touches the ### middle band of the bollinger bands. ### class BollingerBreakoutAlgorithm(QCAlgorithm): def Initialize(self): self.SetStartDate(2016, 6, 1) #Set Start Date self.SetEndDate(2017, 7, 1) #Set End Date self.SetCash(10000) #Set Strategy Cash self.SetBrokerageModel(BrokerageName.GDAX) self.AddCrypto("BTCUSD", Resolution.Daily) # create a bollinger band self.Bolband = self.BB("BTCUSD", 20, 2, MovingAverageType.Simple, Resolution.Daily) # set warmup period self.SetWarmUp(20) def OnData(self, data): holdings = self.Portfolio["BTCUSD"].Quantity price = self.Securities["BTCUSD"].Close # buy if price closes above upper bollinger band if holdings <= 0: if price > self.Bolband.LowerBand.Current.Value: self.SetHoldings("BTCUSD", 1.0) # sell if price closes below middle bollinger band if holdings > 0 and price < self.Bolband.MiddleBand.Current.Value: self.Liquidate()