Sumber dimuat naik... memuat...

Dual Timeframe Supertrend dengan Sistem Pengoptimuman RSI

Penulis:ChaoZhang, Tarikh: 2024-11-25 17:27:21
Tag:RSIATR

img

Ringkasan

Strategi ini adalah sistem perdagangan jangka masa ganda berdasarkan penunjuk SuperTrend dan RSI. Ia menggabungkan penunjuk analisis teknikal dari jangka masa 120 minit dan 15 minit, menggunakan SuperTrend untuk menangkap arah trend jangka menengah sambil menggunakan RSI untuk mengambil keuntungan. Strategi ini melaksanakan ukuran kedudukan melalui peruntukan peratusan dan termasuk syarat mengambil keuntungan berasaskan peratusan.

Prinsip Strategi

Logik teras dibina di atas beberapa elemen utama:

  1. Menggunakan 120 minit jangka masa SuperTrend penunjuk sebagai alat penentuan trend utama, dengan tempoh ATR 14 dan faktor 3.42
  2. Menghasilkan isyarat dagangan melalui persilangan harga dengan garis SuperTrend - persilangan ke atas untuk entri panjang dan persilangan ke bawah untuk entri pendek
  3. Menggunakan penunjuk RSI jangka masa 15 minit dengan tempoh 5 sebagai alat tambahan untuk keadaan pasaran yang terlalu banyak dibeli / terlalu banyak dijual
  4. Menutup kedudukan panjang apabila RSI mencapai zon overbought (95) dan kedudukan pendek di zon oversold (5)
  5. Menetapkan tahap keuntungan 30% yang dikira berbanding dengan harga purata kemasukan

Kelebihan Strategi

  1. Gabungan pelbagai jangka masa meningkatkan kebolehpercayaan isyarat dan mengurangkan isyarat palsu
  2. Parameter SuperTrend yang dioptimumkan menyeimbangkan kepekaan trend sambil mengelakkan perdagangan berlebihan
  3. Nilai ekstrim RSI yang ketat (5 dan 95) memastikan kedudukan ditutup hanya dalam keadaan ekstrim
  4. Ukuran kedudukan menggunakan peratusan tetap ekuiti (35%), mengawal risiko dengan berkesan sambil mengekalkan potensi keuntungan
  5. Secara automatik menutup kedudukan terbalik sebelum membuka yang baru, mengelakkan pendedahan lama dan pendek secara serentak

Risiko Strategi

  1. Pendekatan jangka masa berganda boleh menyebabkan kelewatan dalam pasaran yang berbeza, yang memerlukan pengurusan pengambilan
  2. Nilai RSI yang ketat boleh menyebabkan peluang keuntungan yang hilang
  3. Tahap keuntungan 30% adalah agresif, berpotensi membawa kepada keluar awal di pasaran yang tidak menentu
  4. Kekurangan keadaan stop-loss boleh menyebabkan kerugian yang ketara semasa pembalikan trend tiba-tiba
  5. Pengukuran kedudukan 35% agak agresif, mewujudkan risiko yang tinggi semasa turun naik yang melampau

Arahan pengoptimuman

  1. Mencadangkan penambahan mekanisme stop-loss dinamik, mempertimbangkan stop trailing berasaskan ATR
  2. Sempadan overbought/oversold RSI boleh diselaraskan kepada 10 dan 90 untuk kebolehsesuaian yang lebih baik
  3. Penunjuk jumlah boleh ditambah untuk pengesahan isyarat
  4. Mempertimbangkan saiz kedudukan dinamik berdasarkan turun naik pasaran menggunakan ATR atau penunjuk turun naik
  5. Cadangkan menambah penapis kekuatan trend seperti DMI atau ADX untuk menapis trend lemah

Ringkasan

Ini adalah strategi trend yang terstruktur dengan logik yang jelas. Ia menggabungkan indikator teknikal jangka masa yang berbeza untuk menangkap trend sambil mengekalkan kawalan risiko. Walaupun terdapat ruang untuk pengoptimuman, reka bentuk keseluruhan sejajar dengan prinsip perdagangan kuantitatif. Pedagang harus menguji dan mengoptimumkan parameter sebelum perdagangan langsung dan menyesuaikan saiz kedudukan mengikut toleransi risiko mereka.


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

// This Pine Scriptâ„¢ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © felipemiransan

//@version=5
strategy("Supertrend Strategy", overlay=true)

// Function for Supertrend
supertrend(_factor, _atrPeriod) =>
    [out, _] = ta.supertrend(_factor, _atrPeriod)
    out

// Supertrend Settings
factor = input.float(3.42, title="Supertrend Factor")
atrPeriod = input.int(14, title="ATR Period")
tf2 = input.timeframe("120", title="Supertrend Timeframe")

// RSI Settings
rsi_tf = input.timeframe("15", title="RSI Timeframe")
rsiLength = input.int(5, title="RSI Length")
rsiUpper = input.int(95, title="RSI Upper Limit")  
rsiLower = input.int(5, title="RSI Lower Limit")   

// RSI Timeframe
rsi_tf_value = request.security(syminfo.tickerid, rsi_tf, ta.rsi(close, rsiLength), lookahead=barmerge.lookahead_off, gaps=barmerge.gaps_off)

// Supertrend Timeframe
supertrend_tf2 = request.security(syminfo.tickerid, tf2, supertrend(factor, atrPeriod), lookahead=barmerge.lookahead_off, gaps=barmerge.gaps_off)

// Take Profit Settings (Percentage in relation to the average price)
takeProfitPercent = input.float(30, title="Take Profit", step=0.1) / 100

// Entry conditions based on price crossover with Supertrend Timeframe
longCondition = ta.crossover(close, supertrend_tf2) and barstate.isconfirmed
shortCondition = ta.crossunder(close, supertrend_tf2) and barstate.isconfirmed

// Execution of reversal orders with closing of previous position
if (longCondition)
    // Close a short position before opening a long position
    if (strategy.position_size < 0)
        strategy.close("Short", comment="Close Short for Long Entry")
    strategy.entry("Long", strategy.long)

if (shortCondition)
    // Close long position before opening short position
    if (strategy.position_size > 0)
        strategy.close("Long", comment="Close Long for Short Entry")
    strategy.entry("Short", strategy.short)

// Calculate take profit levels relative to the average entry price
if (strategy.position_size > 0)
    takeProfitLong = strategy.position_avg_price * (1 + takeProfitPercent)
    strategy.exit("Take Profit Long", "Long", limit=takeProfitLong)

if (strategy.position_size > 0 and (rsi_tf_value >= rsiUpper))
    strategy.close("Long", comment="RSI Take Profit Long")

if (strategy.position_size < 0)
    takeProfitShort = strategy.position_avg_price * (1 - takeProfitPercent)
    strategy.exit("Take Profit Short", "Short", limit=takeProfitShort)

if (strategy.position_size < 0 and (rsi_tf_value <= rsiLower))
    strategy.close("Short", comment="RSI Take Profit Short")

// Plot Supertrend timeframe with commit check to avoid repainting
plot(barstate.isconfirmed ? supertrend_tf2 : na, color=color.blue, title="Supertrend Timeframe (120 min)", linewidth=1)

// Plot RSI for visualization
plot(rsi_tf_value, "RSI", color=color.purple)
hline(rsiUpper, "RSI Upper", color=color.red)
hline(rsiLower, "RSI Lower", color=color.green)




Berkaitan

Lebih lanjut