Wordcloud
Strategy: SMAOffsetProtectOpt
Downloaded: 20220115
Stoploss: -0.228
5mSpotv2UnbiasedLink


Not Enough Data to display!

Average Overall
BuysAvgprofTotProfWin%DD%Time
220.512.3663.253.6538.45
SharpeSortinoCalmar
1.541.8523.88
Prof.FactorExpectancyCagr
0.2400
Trades/DayRejected Signals
0.840
Ninja Score: 68
The SMAOffsetProtectOpt strategy is designed to backtest trading decisions based on various indicators. Here's a breakdown of what the strategy does: In the populate_indicators method: Calculates exponential moving averages (EMAs) for different time periods (base_nb_candles_buy and base_nb_candles_sell) and adds them as columns to the input dataframe. Computes the Elder's Force Index (EWO) using the EWO function and adds it as a column to the dataframe.

Calculates the Relative Strength Index (RSI) with a time period of 14 and adds it as a column to the dataframe.

Returns the updated dataframe with the added indicators.

In the populate_buy_trend method: Initializes an empty list called conditions. Computes the lower offset moving average (ma_buy) by multiplying the specified EMA (ma_buy_{self.base_nb_candles_buy.value}) with the low offset value and adds it as a column to the dataframe. Appends a condition to the conditions list: Checks if the closing price is below the ma_buy. Checks if the EWO value is above a certain threshold (ewo_high). Checks if the RSI value is below a certain threshold (rsi_buy). Checks if the trading volume is greater than zero. Appends another condition to the conditions list: Checks if the closing price is below the ma_buy. Checks if the EWO value is below a certain threshold (ewo_low). Checks if the trading volume is greater than zero. If any of the conditions in the conditions list are met, assigns a value of 1 to the "buy" column in the dataframe. Returns the updated dataframe with the "buy" column. In the populate_sell_trend method: Initializes an empty list called conditions. Computes the upper offset moving average (ma_sell) by multiplying the specified EMA (ma_sell_{self.base_nb_candles_sell.value}) with the high offset value and adds it as a column to the dataframe. Appends a condition to the conditions list: Uses the qtpylib.crossed_below function to check if the closing price crossed below the ma_sell. Checks if the trading volume is greater than zero. If the condition in the conditions list is met, assigns a value of 1 to the "sell" column in the dataframe. Returns the updated dataframe with the "sell" column. Overall, this strategy identifies buy signals based on the crossing of the price below a lower offset moving average (ma_buy), along with additional conditions related to EWO, RSI, and volume. It also identifies sell signals based on the crossing of the price below an upper offset moving average (ma_sell) and volume condition.

startup_candle_count : 50
ma_buy_20: -0.010%
ma_sell_24: -0.015%
rsi: 0.539%
stoploss: -0.228
timeframe: 5m
hash(sha256): f9d92819eb650dad660515035af584728dc772d2278e7b865fd1a6aa77cc5809
indicators:
volume EWO ma_buy rsi close
f"ma_buy_val ma_sell f"ma_sell_val

No similar strategies found. (based on used indicators)

last change: 2024-05-03 01:01:49