Strategi Perdagangan Osilator Momentum dengan RSI


Tanggal Pembuatan: 2023-09-18 14:07:51 Akhirnya memodifikasi: 2023-09-18 14:07:51
menyalin: 0 Jumlah klik: 812
1
fokus pada
1617
Pengikut

[Bahasa Mandarin

Ringkasan

Strategi ini digunakan untuk memprediksi volatilitas harga dan titik masuk yang optimal dengan menggunakan Bollinger Bands dan indikator RSI yang relatif kuat. Logika strategi ini sangat langsung, kami memperhatikan dua situasi yang akan terjadi setelah harga menutup ketika harga menyentuh Bollinger Bands downtrend. Untuk memastikan pergerakan harga, kami menggunakan indikator RSI kedua untuk mempelajari tren harga lebih lanjut.

Kami perlu mengatur stop loss untuk menghindari kerugian besar jika RSI berada di zona oversold terlalu lama.

Zona penghentian yang optimal adalah ketika harga kembali rebound ke Bollinger Bands / above atau ketika RSI mencapai zona overbought, yang mana yang pertama.

Masuknya banyak orang:

RSI < 30 dan harga close < Brin down

Banyak yang pergi:

RSI > 70

Prinsip Strategi

Strategi ini pertama-tama menghitung indikator RSI untuk menentukan apakah ada overbought atau oversold dengan menetapkan batas atas dan bawah. Kemudian menghitung rel tengah, rel atas, dan rel bawah di Bollinger Bands. Bila harga close out menyentuh rel bawah Bollinger dan RSI berada di bawah 30, lakukan overbought; Bila RSI berada di atas 70, lakukan overbought.

Ketika masuk ke multi head, atur stop loss. Stop loss ditetapkan sebagai harga masuk(1 + rasio tetap), titik stop loss ditetapkan sebagai harga masuk(1- Persentase tetap)

Dengan cara ini, kita membeli di saat RSI rendah dan menjual di saat RSI tinggi di dekat Bollinger Bands Downtrend, dan memanfaatkan perdagangan reversal untuk mendapatkan keuntungan. Sementara itu, kita mengatur stop loss untuk mengendalikan risiko.

Analisis Keunggulan

  • Menggunakan Brines untuk menentukan titik balik harga, meningkatkan akurasi
  • RSI memfilter terobosan palsu untuk memastikan keandalan masuk
  • Pengaturan Stop Loss untuk Mengontrol Risiko Perdagangan Tunggal
  • Data pengembalian cukup, parameter disetel ke tempat, menghasilkan keuntungan yang stabil

Analisis risiko

  • Brinstrand tidak dapat memprediksi titik-titik perubahan harga secara akurat, dan ada tingkat kegagalan tertentu.
  • Ada kemungkinan bahwa RSI akan memberikan sinyal palsu.
  • Terlalu dekat dengan titik stop loss, tidak bisa memegang posisi, terlalu jauh meningkatkan risiko

Risiko dapat dikurangi dengan menyesuaikan parameter Brin, memilih kombinasi dengan indikator lain, dan memperluas jangkauan stop loss yang sesuai.

Arah optimasi

  • Penyaringan masuk dapat dipertimbangkan dalam kombinasi dengan indikator lain seperti KD, MACD
  • Rasio Stop Loss Stop Stop Dinamis
  • Optimalkan parameter Brinet
  • Uji kekuatan parameter dari berbagai varietas perdagangan

Meringkaskan

Strategi ini memiliki keseimbangan risiko-penghasilan yang baik secara keseluruhan, dan kinerja yang baik dalam pengembalian. Efisiensi dapat ditingkatkan lebih lanjut melalui penyesuaian parameter dan pengoptimalan indikator.

||

Overview

This strategy combines Bollinger Bands and the Relative Strength Index (RSI) indicator to predict price volatility and determine optimal entry points. The logic is straightforward - we watch for closing prices that touch the Bollinger lower band, after which there are two possible scenarios: either the price bounces back from the lower Bollinger band, or it continues falling. To confirm the price movement, we use a second indicator, RSI, to further investigate the trend. For example, if the price reaches the lower Bollinger band but the RSI value is not in oversold territory, we can conclude the price will continue down. If the RSI value is oversold, we can use this area as our entry point.

A stop loss is necessary to avoid losing too much capital if the RSI lingers too long in oversold territory.

The best take profit area is when the price rebounds back above the Bollinger middle band/upper band or when RSI reaches overbought levels, whichever comes first.

Long entry:

RSI < 30 and close price < Bollinger lower band

Long exit:

RSI > 70

Strategy Logic

The strategy first calculates the RSI indicator and sets upper/lower boundaries to determine overbought/oversold levels. It then calculates the Bollinger middle, upper and lower bands. When the closing price touches the lower band and RSI is below 30, go long. When RSI is above 70, close the position.

Upon entering long, set stop loss and take profit points. The take profit is set at entry price * (1 + fixed percentage), stop loss is set at entry price * (1 - fixed percentage).

This allows us to buy at Bollinger lower band when RSI is low and sell when RSI is high, profiting from the reversal. Stop loss and take profit control risk.

Advantage Analysis

  • Bollinger Bands determine reversal points accurately
  • RSI filters out false breakouts, ensuring reliable entry
  • Stop loss and take profit manage trade risk effectively
  • Extensive backtesting and parameter optimization ensure stable profitability

Risk Analysis

  • Bollinger Bands do not perfectly predict reversals, some failures occur
  • RSI can also give false signals
  • Stop loss too close cannot hold position, too loose increases risk

Risks can be mitigated by adjusting Bollinger parameters, using other indicators, and widening stop loss appropriately.

Optimization Directions

  • Consider combining with other indicators like KD, MACD to filter entries
  • Dynamically adjust stop loss/take profit percentages
  • Optimize Bollinger parameters
  • Test robustness across different products

Conclusion

The overall risk/reward profile of this strategy is balanced and backtest results are good. Further improvements can be made through parameter optimization and indicator enhancements. The reversal trading concept based on Bollinger Bands is simple and reliable, warranting further research and refinement.

[/trans]

Kode Sumber Strategi
/*backtest
start: 2023-09-10 00:00:00
end: 2023-09-17 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//strategy(title="Bollinger Band with RSI", shorttitle="BB&RSI", format=format.price, precision=2, pyramiding=50, initial_capital=10000, calc_on_order_fills=false, calc_on_every_tick=true, default_qty_type=strategy.cash, default_qty_value=1000, currency="USD")
len = input(14, minval=1, title="Length")
src = input(close, "Source", type = input.source)
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
plot(rsi, "RSI", color=#8E1599)
band1 = hline(70, "Upper Band", color=#C0C0C0)
band0 = hline(30, "Lower Band", color=#C0C0C0)
fill(band1, band0, color=#9915FF, transp=90, title="Background")

length_bb = input(20,title="BB Length", minval=1)
mult = input(2.0, minval=0.001, maxval=50, title="BB StdDev")
basis = sma(src, length_bb)
dev = mult * stdev(src, length_bb)
upper = basis + dev
lower = basis - dev
offset = input(0, "BB Offset", type = input.integer, minval = -500, maxval = 500)


Plot_PnL = input(title="Plot Cummulative PnL", type=input.bool, defval=false)
Plot_Pos = input(title="Plot Current Position Size", type=input.bool, defval=false)

long_tp_inp = input(10, title='Long Take Profit %', step=0.1)/100
long_sl_inp = input(25, title='Long Stop Loss %', step=0.1)/100
// Take profit/stop loss
long_take_level = strategy.position_avg_price * (1 + long_tp_inp)
long_stop_level = strategy.position_avg_price * (1 - long_sl_inp)

entry_long = rsi < 30 and src < lower
exit_long = rsi > 70

plotshape(entry_long, style=shape.labelup, color=color.green,  location=location.bottom, text="L", textcolor=color.white, title="LONG_ORDER")
plotshape(exit_long, style=shape.labeldown, color=color.red,  location=location.top, text="S", textcolor=color.white, title="SHORT_ORDER")

strategy.entry("Long",true,when=entry_long)    
strategy.exit("TP/SL","Long", limit=long_take_level, stop=long_stop_level)
strategy.close("Long", when=exit_long, comment="Exit")
plot(Plot_PnL ? strategy.equity-strategy.initial_capital : na, title="PnL", color=color.red)
plot(Plot_Pos ? strategy.position_size : na, title="open_position", color=color.fuchsia)