| 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 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 |
from datetime import timedelta
class RsiAlert(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2019,1,10) #Set Start Date
self.SetEndDate(2019,2,1) #Set End Date
self.SetCash(100000) #Set Strategy Cash
self.AddCrypto("BTCUSD", Resolution.Minute, Market.GDAX)
#10-period RSI indicators
self.rsi5 = RelativeStrengthIndex(10, MovingAverageType.Simple)
self.rsi15 = RelativeStrengthIndex(10, MovingAverageType.Simple)
#Consolidators
FiveMinuteConsolidator = TradeBarConsolidator(timedelta(minutes=5))
FifteenMinuteConsolidator = TradeBarConsolidator(timedelta(minutes=15))
self.SubscriptionManager.AddConsolidator("BTCUSD", FiveMinuteConsolidator)
self.SubscriptionManager.AddConsolidator("BTCUSD", FifteenMinuteConsolidator)
self.RegisterIndicator("BTCUSD", self.rsi5, FiveMinuteConsolidator)
self.RegisterIndicator("BTCUSD", self.rsi15, FifteenMinuteConsolidator)
def OnData(self, data):
if self.rsi5.IsReady:
rsi5_value = self.rsi5.Current.Value
if rsi5_value > 70:
self.Notify.Sms("+1999999999", str(data.Time) + "BTCUSD 5 min RSI high: " + str(rsi5_value))
if rsi5_value < 30:
self.Notify.Sms("+1999999999", str(data.Time) + "BTCUSD 5 min RSI low: " + str(rsi5_value))
if self.rsi15.IsReady:
rsi15_value = self.rsi15.Current.Value
if rsi15_value > 70:
self.Notify.Sms("+1999999999", str(data.Time) + "BTCUSD 15 min RSI high: " + str(rsi15_value))
if rsi15_value < 30:
self.Notify.Sms("+1999999999", str(data.Time) + "BTCUSD 15 min RSI low: " + str(rsi15_value))