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 -1.469 Tracking Error 0.505 Treynor Ratio 0 Total Fees $0.00 Estimated Strategy Capacity $0 Lowest Capacity Asset |
# talib Elder Force Index # https://www.quantconnect.com/project/10104990 import numpy as np import talib CRYPTO = 'BTCUSD'; PERIOD = 13; EMA = 13; MA = 13; ATR_MULT = 0.3; class TaLibElderForceIndex(QCAlgorithm): def Initialize(self): self.SetStartDate(2021, 9, 21) self.SetEndDate(2021, 12, 9) self.SetWarmUp(PERIOD + EMA + 2*MA + 2, Resolution.Daily) self.crypto = self.AddCrypto(CRYPTO, Resolution.Daily).Symbol self.SetBenchmark(self.crypto) def OnData(self,data): if self.IsWarmingUp: return closes = self.History([self.crypto], PERIOD + EMA + 2*MA + 2, Resolution.Daily)['close'] highs = self.History([self.crypto], PERIOD + EMA + 2*MA + 2, Resolution.Daily)['high'] lows = self.History([self.crypto], PERIOD + EMA + 2*MA + 2, Resolution.Daily)['low'] volumes = self.History([self.crypto], PERIOD + EMA + 2*MA + 2, Resolution.Daily)['volume'] changes = (talib.ROCP(closes, 1)[-EMA-2*MA-1:] * closes[-EMA-2*MA-1:])[-EMA-2*MA-1:] efi = talib.EMA(changes * volumes[-EMA-2*MA-1:], EMA)[-2*MA-1:] efi_ema = talib.EMA(efi, MA)[-2*MA-1:] atr = talib.ATR(highs, lows, closes, MA)[-MA:] atr_ema = abs(talib.SMA(atr, MA)) vol_sma = talib.SMA(volumes[-MA:], MA) ub = efi_ema[-1] + ATR_MULT*vol_sma[-1]*atr_ema[-1] lb = efi_ema[-1] - ATR_MULT*vol_sma[-1]*atr_ema[-1] self.Plot("EFI", "efi", efi[-1]) self.Plot("EFI", "efi_ema", efi_ema[-1]) self.Plot("EFI", "ub", ub) self.Plot("EFI", "lb", lb) self.Plot("EFI", "zero", 0) self.Plot("ATR", "atr", atr[-1]) self.Plot("ATR", "atr_ema", atr_ema[-1]) self.Plot("Volume", "volume", volumes[-1])