RSI dan strategi divergensi menaik RSI yang dihaluskan

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

img

Ringkasan

Strategi ini menggabungkan penunjuk RSI dan penunjuk RSI yang dilancangkan untuk mencari peluang membeli di bahagian bawah harga. Apabila RSI membuat tahap terendah baru sementara harga tidak membuat tahap terendah baru, ia dianggap sebagai isyarat perbezaan menaik. Menambah penilaian trend RSI yang dilancangkan dapat meningkatkan prestasi strategi.

Logika Strategi

  1. Mengira penunjuk RSI dengan 14 tempoh.
  2. Mengira RSI yang dihaluskan dengan menggunakan WMA berganda untuk mencapai kesan penghalusan.
  3. Periksa jika RSI di bawah 30 tahap, status oversold.
  4. Periksa sama ada RSI halus adalah di bawah 35, dengan trend arah yang lebih kuat.
  5. Periksa sama ada titik terendah RSI adalah di bawah 25.
  6. Mengira divergensi bullish RSI, mencari RSI membuat rendah baru manakala harga tidak.
  7. Memerlukan RSI yang halus trend penurunan berlangsung lebih daripada 3 tempoh.
  8. Trigger isyarat beli apabila semua syarat di atas dipenuhi.
  9. Tetapkan syarat stop loss dan mengambil keuntungan.

Strategi ini terutamanya bergantung pada ciri pembalikan RSI, digabungkan dengan penilaian trend RSI yang halus, untuk membeli apabila harga berada di bawah tekanan sementara RSI terlalu dijual.

Analisis Kelebihan

  1. Gabungan dua indikator RSI meningkatkan prestasi strategi.
  2. Gunakan ciri pembalikan RSI, mempunyai kelebihan kebarangkalian.
  3. Penghakiman trend RSI yang halus membantu mengelakkan pembalikan palsu.
  4. Logik stop loss dan mengambil keuntungan boleh mengurangkan risiko.

Analisis Risiko

  1. Kemungkinan kegagalan pembalikan RSI tidak dapat dielakkan sepenuhnya.
  2. RSI yang halus mempunyai kesan kelewatan, mungkin terlepas masa masuk terbaik.
  3. Hentikan kerugian terlalu longgar, risiko peningkatan kerugian.

Boleh mengoptimumkan masa kemasukan dengan menyesuaikan parameter RSI. Memperketat jarak stop loss untuk berhenti lebih cepat. Menggabungkan dengan penunjuk lain untuk menilai risiko trend, mengurangkan kadar pembalikan palsu.

Arahan pengoptimuman

  1. Uji keberkesanan RSI di bawah set parameter yang berbeza.
  2. Meningkatkan pengiraan RSI yang halus untuk kualiti penghalusan yang lebih baik.
  3. Sesuaikan stop loss dan ambil mata keuntungan, cari nisbah risiko-balasan yang optimum.
  4. Tambah penunjuk momentum dan lain-lain untuk mengelakkan keadaan momentum rendah.

Meningkatkan lagi prestasi strategi dengan menyesuaikan parameter dan menggabungkan lebih banyak penunjuk.

Kesimpulan

Strategi ini menggunakan ciri pembalikan RSI secara keseluruhan. Gabungan RSI berganda sepenuhnya memanfaatkan kesan pembalikan sementara juga memperkenalkan ketidakpastian dari perbezaan penunjuk. Ini adalah idea strategi penunjuk biasa. Dapat meningkatkan daya adaptasi penunjuk melalui ujian dan pengoptimuman yang tidak henti-hentinya. Juga menggabungkan lebih banyak penunjuk untuk mengurangkan salah menilai 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 lanjut