Momentum Oscillator dengan Strategi Dagangan RSI


Tarikh penciptaan: 2023-09-18 14:07:51 Akhirnya diubah suai: 2023-09-18 14:07:51
Salin: 0 Bilangan klik: 812
1
fokus pada
1617
Pengikut

[[Simplified]

Gambaran keseluruhan

Strategi ini digunakan untuk meramalkan pergerakan harga dan titik masuk terbaik dengan menggunakan Burin dan RSI yang agak kuat. Logik strategi ini sangat mudah, kita menumpukan perhatian kepada harga penutupan apabila ia menyentuh Burin, atau ia terus jatuh. Untuk memastikan pergerakan harga, kita menggunakan RSI kedua untuk mengkaji lebih lanjut trend harga.

Kita perlu menetapkan stop loss untuk mengelakkan kerugian yang besar jika nilai RSI berada dalam zon oversold terlalu lama.

Kawasan penangguhan yang terbaik adalah apabila harga kembali melonjak ke Bollinger Bands / Bollinger Bands atau RSI mencapai zona overbought, yang pertama berlaku.

Pendaftaran Berbilang:

RSI < 30 dan harga penutupan < Brin down

Bermula dari:

RSI > 70

Prinsip Strategi

Strategi ini mulakan dengan mengira RSI untuk menentukan sama ada anda telah membeli atau menjual lebih banyak dengan menetapkan batas atas dan bawah. Kemudian, anda akan mengira lintasan tengah, lintasan atas, dan lintasan bawah di Burin. Apabila harga penutupan menyentuh lintasan bawah Burin dan RSI berada di bawah 30, anda akan melakukan kenaikan harga. Apabila RSI berada di atas 70, anda akan melakukan posisi kosong.

Apabila memasuki mata wang berganda, tetapkan titik henti.(1 + nisbah tetap), titik hentian ditetapkan sebagai harga kemasukan(1- nisbah tetap)

Dengan cara ini, kita boleh membeli ketika RSI rendah berhampiran Brin dan menjual ketika RSI tinggi. Kita boleh mengambil keuntungan dari perdagangan terbalik. Kita juga boleh menetapkan stop loss untuk mengawal risiko.

Analisis kelebihan

  • Menggunakan Brin untuk menentukan titik-titik perubahan harga dengan lebih tepat
  • Penunjuk RSI menapis penembusan palsu untuk memastikan kebolehpercayaan masuk
  • Tetapkan Stop Loss untuk mengawal risiko perdagangan tunggal
  • Data pengesanan mencukupi, parameter disesuaikan, keuntungan stabil

Analisis risiko

  • Brinband tidak dapat meramalkan titik-titik perubahan harga dengan tepat, dan terdapat kadar kegagalan tertentu.
  • RSI juga mempunyai kemungkinan untuk memberi isyarat palsu
  • Tidak boleh memegang saham di luar titik henti kerugian, meningkatkan risiko

Risiko boleh dikurangkan dengan menyesuaikan parameter Brin, memilih kombinasi dengan penunjuk lain, dan meluaskan julat berhenti yang sesuai.

Arah pengoptimuman

  • Penapisan masuk boleh dipertimbangkan dalam kombinasi dengan penunjuk lain seperti KD, MACD
  • Dinamika penyesuaian Stop Loss Stop Stop Ratio
  • Optimumkan parameter Brin
  • Uji kekuatan parameter pelbagai jenis perdagangan

ringkaskan

Strategi ini mempunyai keseimbangan risiko dan keuntungan yang baik secara keseluruhan, dan prestasi yang baik. Kesan yang lebih baik dapat ditingkatkan dengan penyesuaian parameter dan pengoptimuman penunjuk.

||

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]

Kod 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)