Sumber dimuat naik... memuat...

Strategi Dagangan Trend Osilasi Beradaptasi dengan Bollinger Bands dan Integrasi RSI

Penulis:ChaoZhang, Tarikh: 2024-11-12 11:35:58
Tag:RSIBBMACD

img

Ringkasan

Strategi ini adalah sistem trend-mengikuti yang menggabungkan beberapa penunjuk teknikal, menggunakan Bollinger Bands, RSI, dan MACD untuk menangkap peluang perdagangan semasa goyangan pasaran dan peralihan trend.

Prinsip Strategi

Logik teras dibina pada pengesahan isyarat tiga:

  1. RSI mengenal pasti zon oversold (<45) dan overbought (>55)
  2. Bollinger Bands menentukan kedudukan harga, menghasilkan isyarat apabila harga mendekati atau melanggar band
  3. Pertukaran MACD mengesahkan trend, mencetuskan perdagangan apabila diselaraskan dengan isyarat RSI dan Bollinger Band Strategi ini melaksanakan selang perdagangan minimum (15 tempoh) untuk mengelakkan perdagangan berlebihan dan menggunakan pengurusan kedudukan piramid.

Kelebihan Strategi

  1. Penyelarasan silang pelbagai penunjuk teknikal mengurangkan isyarat palsu
  2. Mekanisme piramid meningkatkan kecekapan modal
  3. Jangkaan perdagangan minimum berkesan mengawal kekerapan perdagangan
  4. Parameter penunjuk yang boleh diselaraskan memberikan kesesuaian yang kuat
  5. Mekanisme penutupan kedudukan automatik mengawal pendedahan risiko

Risiko Strategi

  1. Pelbagai penunjuk boleh menyebabkan kelewatan isyarat
  2. Perdagangan kerap yang berpotensi di pasaran berayun
  3. Kedudukan piramid boleh mengakibatkan kerugian yang lebih besar semasa pembalikan trend
  4. Sempadan RSI tetap mungkin tidak sesuai dengan semua keadaan pasaran

Arahan pengoptimuman

  1. Melaksanakan ambang RSI adaptatif berdasarkan turun naik pasaran
  2. Masukkan penunjuk jumlah untuk pengesahan isyarat
  3. Mengoptimumkan algoritma pengukuran kedudukan piramid
  4. Tambah mekanisme stop-loss yang lebih fleksibel
  5. Pertimbangkan ciri kitaran pasaran untuk pelarasan selang perdagangan dinamik

Ringkasan

Strategi ini mencapai pulangan yang stabil sambil mengawal risiko melalui penyelarasan beberapa penunjuk teknikal. Walaupun terdapat beberapa kelewatan yang melekat, strategi ini menunjukkan kemampuan beradaptasi dan kestabilan yang baik melalui pengoptimuman parameter dan mekanisme pengurusan risiko yang betul. Penambahbaikan masa depan boleh memberi tumpuan kepada pengenalan mekanisme beradaptasi dan pengurusan kedudukan yang dipertingkatkan untuk meningkatkan prestasi strategi.


/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("[ETH] Optimized Trend Strategy", shorttitle="Lorenzo-SuperScalping", overlay=true, pyramiding=3, initial_capital=100000, currency=currency.USD)

// === Input Parameters === //
trade_size = input.float(1.0, title="Trade Size (ETH)")
rsi_length = input.int(14, minval=1, title="RSI Length")
bb_length = input.int(20, minval=1, title="Bollinger Bands Length")
bb_mult = input.float(2.0, title="Bollinger Bands Multiplier")
macd_fast = input.int(12, minval=1, title="MACD Fast Length")
macd_slow = input.int(26, minval=1, title="MACD Slow Length")
macd_signal = input.int(9, minval=1, title="MACD Signal Length")

// === Indicators === //
// RSI
rsi = ta.rsi(close, rsi_length)

// Bollinger Bands
basis = ta.sma(close, bb_length)
dev = ta.stdev(close, bb_length) * bb_mult
upper_band = basis + dev
lower_band = basis - dev
plot(basis, color=color.blue, title="BB Basis")
plot(upper_band, color=color.red, title="BB Upper")
plot(lower_band, color=color.green, title="BB Lower")

// MACD
[macd_line, signal_line, _] = ta.macd(close, macd_fast, macd_slow, macd_signal)
macd_cross_up = ta.crossover(macd_line, signal_line)
macd_cross_down = ta.crossunder(macd_line, signal_line)

// === Signal Control Variables === //
var bool last_signal_buy = na
var int last_trade_bar = na

// === Buy Signal Condition === //
// - RSI below 45
// - Price near or below the lower Bollinger Band
// - MACD crossover
buy_signal = (rsi < 45 and close < lower_band * 1.02 and macd_cross_up)

// === Sell Signal Condition === //
// - RSI above 55
// - Price near or above the upper Bollinger Band
// - MACD crossunder
sell_signal = (rsi > 55 and close > upper_band * 0.98 and macd_cross_down)

// Ensure enough bars between trades
min_bars_between_trades = input.int(15, title="Minimum Bars Between Trades")
time_elapsed = na(last_trade_bar) or (bar_index - last_trade_bar) >= min_bars_between_trades

// === Execute Trades with Conditions === //
can_buy = buy_signal and (na(last_signal_buy) or not last_signal_buy) and time_elapsed
can_sell = sell_signal and (not na(last_signal_buy) and last_signal_buy) and time_elapsed

if (can_buy)
    // Close any existing short position before opening a long
    if strategy.position_size < 0
        strategy.close("Short")

    strategy.entry("Long", strategy.long, qty=trade_size)
    last_signal_buy := true
    last_trade_bar := bar_index

if (can_sell)
    // Close any existing long position and open a short position
    if strategy.position_size > 0
        strategy.close("Long")

    strategy.entry("Short", strategy.short, qty=trade_size)
    last_signal_buy := false
    last_trade_bar := bar_index

// === Plot Buy and Sell Signals === //
plotshape(series=can_buy, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=can_sell, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// === RSI Levels for Visualization === //
hline(45, "RSI Buy Level", color=color.green, linewidth=1, linestyle=hline.style_dotted)
hline(55, "RSI Sell Level", color=color.red, linewidth=1, linestyle=hline.style_dotted)

// Plot the RSI for reference
plot(rsi, title="RSI", color=color.purple)

Berkaitan

Lebih lanjut