This strategy identifies market bottom by calculating fast RSI indicator and K-line entity filter to determine oversold status. When fast RSI drops below 10 and K-line entity expands, it considers reversal signal appears for entering long position. This allows detecting market bottom effectively.
The strategy is mainly based on two indicators:
Fast RSI Indicator. By calculating the rise and fall percentage of recent 2 days, it quickly judges the overbought and oversold of the market. When fast RSI is below 10, the market is considered oversold.
K-line Entity Filter. By calculating the ratio between K-line entity volume and MA, when the entity volume is greater than 1.5 times MA volume, it is considered as bottom signal.
Firstly, fast RSI below 10 indicates oversold market. Secondly, K-line entity expands to satisfy the condition that entity volume is greater than 1.5 times MA volume. When both conditions are met, it sends out long signal and considers market reaches bottom reversal, which filters out many false signals.
The strategy has the following advantages:
There are also some risks in this strategy:
Some solutions for the risks:
Some directions for enhancing the strategy:
This strategy effectively identifies market bottom by fast RSI for oversold and K-line entity filter. The logic is simple for easy implementing and good for catching reversal chance. But certain risks exist and further optimization is needed to improve stability and live performance. Overall speaking, bottom reversal trading strategies designed based on this logic deserve further research.
/*backtest start: 2024-01-29 00:00:00 end: 2024-02-05 00:00:00 period: 15m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("MarketBottom", shorttitle = "MarketBottom", overlay = true) //Fast RSI src = close fastup = rma(max(change(src), 0), 2) fastdown = rma(-min(change(src), 0), 2) fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown)) //Body Filter body = abs(close - open) abody = sma(body, 10) mac = sma(close, 10) len = abs(close - mac) sma = sma(len, 100) max = max(open, close) min = min(open, close) up = close < open and len > sma * 2 and min < min[1] and fastrsi < 10 and body > abody * 1.5 plotarrow(up == 1 ? 1 : na, colorup = blue, colordown = blue) sell = sma(close, 5) exit = high > sell and close > open and body > abody plot(sell) if up strategy.entry("Long", strategy.long) if exit strategy.close_all()