RSI dan strategi divergensi bullish RSI yang halus

Penulis:ChaoZhang, Tanggal: 2024-03-01 12:11:58
Tag:

img

Gambaran umum

Strategi ini menggabungkan indikator RSI dan indikator RSI halus untuk menemukan peluang pembelian pada harga terendah. Ketika RSI membuat terendah baru sementara harga tidak membuat terendah baru, itu dianggap sebagai sinyal divergensi bullish. Menambahkan penilaian tren RSI halus dapat meningkatkan kinerja strategi.

Logika Strategi

  1. Menghitung indikator RSI dengan 14 periode.
  2. Menghitung RSI yang dihaluskan dengan menggunakan WMA ganda untuk mencapai efek penghalusan.
  3. Periksa apakah RSI di bawah level 30, status oversold.
  4. Periksa apakah RSI rata di bawah 35, dengan tren arah yang lebih kuat.
  5. Periksa apakah titik terendah RSI di bawah 25.
  6. Hitung RSI divergensi bullish, menemukan RSI membuat rendah baru sementara harga tidak.
  7. Membutuhkan RSI yang halus. Trend penurunan berlangsung lebih dari 3 periode.
  8. Trigger sinyal beli ketika semua kondisi di atas terpenuhi.
  9. Tetapkan kondisi stop loss dan take profit.

Strategi ini terutama mengandalkan karakteristik pembalikan RSI, dikombinasikan dengan penilaian tren RSI yang halus, untuk membeli ketika harga berada di bawah tekanan sementara RSI oversold.

Analisis Keuntungan

  1. Kombinasi indikator RSI ganda meningkatkan kinerja strategi.
  2. Menggunakan fitur pembalikan RSI, memiliki tepi probabilitas.
  3. Penghakiman tren RSI yang halus membantu menghindari pembalikan palsu.
  4. Logika stop loss dan take profit yang lengkap dapat membatasi risiko.

Analisis Risiko

  1. Kemungkinan kegagalan pembalikan RSI tidak dapat dihindari sepenuhnya.
  2. RSI halus memiliki efek keterlambatan, mungkin melewatkan waktu masuk terbaik.
  3. Stop loss diatur terlalu longgar, risiko memperluas kerugian.

Dapat mengoptimalkan waktu masuk dengan menyesuaikan parameter RSI. Memperketat jarak stop loss untuk berhenti lebih cepat. Menggabungkan dengan indikator lain untuk menilai risiko tren, menurunkan tingkat pembalikan palsu.

Arahan Optimasi

  1. Efektivitas pengujian RSI di bawah set parameter yang berbeda.
  2. Meningkatkan perhitungan RSI halus untuk kualitas halus yang lebih baik.
  3. Sesuaikan stop loss dan ambil poin keuntungan, temukan rasio risiko-balasan yang optimal.
  4. Tambahkan indikator momentum dll untuk menghindari situasi momentum rendah.

Meningkatkan kinerja strategi lebih lanjut dengan menyesuaikan parameter dan menggabungkan lebih banyak indikator.

Kesimpulan

Strategi ini memanfaatkan karakteristik pembalikan RSI secara keseluruhan. Kombinasi RSI ganda sepenuhnya memanfaatkan efek pembalikan sementara juga memperkenalkan ketidakpastian dari divergensi indikator. Ini adalah ide strategi indikator yang khas. Dapat meningkatkan adaptivitas indikator melalui pengujian dan pengoptimalan tanpa henti. Juga menggabungkan lebih banyak indikator untuk mengurangi penilaian yang salah dan meningkatkan ketahanan.


/*backtest
start: 2024-01-30 00:00:00
end: 2024-02-29 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © BigBitsIO

//@version=4
strategy(title="RSI and Smoothed RSI Bull Div Strategy [BigBitsIO]", shorttitle="RSI and Smoothed RSI Bull Div Strategy [BigBitsIO]", overlay=true, pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=.1, slippage=0)


TakeProfitPercent = input(3, title="Take Profit %", type=input.float, step=.25)
StopLossPercent = input(1.75, title="Stop Loss %", type=input.float, step=.25)

RSICurve = input(14, title="RSI Lookback Period", type=input.integer, step=1)
BuyBelowTargetPercent = input(0, title="Buy Below Lowest Low In RSI Divergence Lookback Target %", type=input.float, step=.05)
BuyBelowTargetSource = input(close, title="Source of Buy Below Target Price", type=input.source)
SRSICurve = input(10, title="Smoothed RSI Lookback Period", type=input.integer, step=1)
RSICurrentlyBelow = input(30, title="RSI Currently Below", type=input.integer, step=1)
RSIDivergenceLookback = input(25, title="RSI Divergence Lookback Period", type=input.integer, step=1)
RSILowestInDivergenceLookbackCurrentlyBelow  = input(25, title="RSI Lowest In Divergence Lookback Currently Below", type=input.integer, step=1)
RSISellAbove = input(65, title="RSI Sell Above", type=input.integer, step=1)
MinimumSRSIDownTrend = input(3, title="Minimum SRSI Downtrend Length", type=input.integer, step=1)
SRSICurrentlyBelow = input(35, title="Smoothed RSI Currently Below", type=input.integer, step=1)

PlotTarget = input(false, title="Plot Target")


RSI = rsi(close, RSICurve)
SRSI = wma(2*wma(RSI, SRSICurve/2)-wma(RSI, SRSICurve), round(sqrt(SRSICurve))) // Hull moving average

SRSITrendDownLength = 0
if (SRSI < SRSI[1])
    SRSITrendDownLength := SRSITrendDownLength[1] + 1

// Strategy Specific
ProfitTarget = (close * (TakeProfitPercent / 100)) / syminfo.mintick
LossTarget = (close * (StopLossPercent / 100)) / syminfo.mintick
BuyBelowTarget = BuyBelowTargetSource[(lowestbars(RSI, RSIDivergenceLookback)*-1)] - (BuyBelowTargetSource[(lowestbars(RSI, RSIDivergenceLookback)*-1)] * (BuyBelowTargetPercent / 100))

plot(PlotTarget ? BuyBelowTarget : na)



bool IsABuy = RSI < RSICurrentlyBelow and SRSI < SRSICurrentlyBelow and lowest(SRSI, RSIDivergenceLookback) < RSILowestInDivergenceLookbackCurrentlyBelow and BuyBelowTargetSource < BuyBelowTarget and SRSITrendDownLength >= MinimumSRSIDownTrend and RSI > lowest(RSI, RSIDivergenceLookback)
bool IsASell = RSI > RSISellAbove

if IsABuy
    strategy.entry("Positive Trend", true) // buy by market
    strategy.exit("Take Profit or Stop Loss", "Positive Trend", profit = ProfitTarget, loss = LossTarget)
if IsASell
    strategy.close("Positive Trend")


Lebih banyak