Sumber daya yang dimuat... Pemuatan...

Dual Timeframe Supertrend dengan Sistem Optimasi RSI

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

img

Gambaran umum

Strategi ini adalah sistem perdagangan timeframe ganda berdasarkan indikator SuperTrend dan RSI. Ini menggabungkan indikator analisis teknis dari jangka waktu 120 menit dan 15 menit, menggunakan SuperTrend untuk menangkap arah tren jangka menengah sambil memanfaatkan RSI untuk mengambil keuntungan. Strategi ini menerapkan ukuran posisi melalui alokasi persentase dan mencakup kondisi take profit berbasis persentase.

Prinsip Strategi

Logika inti dibangun di atas beberapa elemen kunci:

  1. Menggunakan indikator SuperTrend jangka waktu 120 menit sebagai alat penentuan tren utama, dengan periode ATR 14 dan faktor 3,42.
  2. Menghasilkan sinyal perdagangan melalui price crossover dengan garis SuperTrend - upward crosses untuk entri panjang dan downward crosses untuk entri pendek
  3. Menggunakan indikator RSI jangka waktu 15 menit dengan periode 5 sebagai alat tambahan untuk kondisi pasar terbebani/terbebani
  4. Menutup posisi panjang ketika RSI mencapai zona overbought (95) dan posisi pendek di zona oversold (5)
  5. Menentukan tingkat keuntungan 30% yang dihitung relatif terhadap harga masuk rata-rata

Keuntungan Strategi

  1. Kombinasi beberapa kerangka waktu meningkatkan keandalan sinyal dan mengurangi sinyal palsu
  2. Parameter SuperTrend yang dioptimalkan menyeimbangkan sensitivitas tren sambil menghindari perdagangan yang berlebihan
  3. Nilai ekstrim RSI yang ketat (5 dan 95) memastikan posisi ditutup hanya dalam kondisi ekstrim
  4. Ukuran posisi menggunakan persentase tetap dari ekuitas (35%), secara efektif mengendalikan risiko sambil mempertahankan potensi keuntungan
  5. Otomatis menutup posisi terbalik sebelum membuka posisi baru, menghindari eksposur jangka panjang dan jangka pendek secara bersamaan

Risiko Strategi

  1. Pendekatan dua kerangka waktu dapat menyebabkan keterlambatan di pasar yang berbeda, yang membutuhkan manajemen penarikan
  2. Nilai ekstrim RSI yang ketat dapat menyebabkan kesempatan keuntungan yang hilang
  3. Tingkat keuntungan 30% adalah agresif, berpotensi menyebabkan keluar awal di pasar yang tidak stabil
  4. Kurangnya kondisi stop loss dapat mengakibatkan kerugian yang signifikan selama pembalikan tren mendadak
  5. 35% ukuran posisi relatif agresif, menciptakan risiko tinggi selama volatilitas ekstrem

Arahan Optimasi

  1. Merekomendasikan penambahan mekanisme stop loss dinamis, mempertimbangkan stop trailing berbasis ATR
  2. RSI overbought/oversold thresholds dapat disesuaikan menjadi 10 dan 90 untuk kemampuan beradaptasi yang lebih baik
  3. Indikator volume dapat ditambahkan untuk konfirmasi sinyal
  4. Pertimbangkan ukuran posisi dinamis berdasarkan volatilitas pasar menggunakan ATR atau indikator volatilitas
  5. Sarankan menambahkan filter kekuatan tren seperti DMI atau ADX untuk menyaring tren lemah

Ringkasan

Ini adalah strategi yang terstruktur dengan baik mengikuti tren dengan logika yang jelas. Ini menggabungkan indikator teknis jangka waktu yang berbeda untuk menangkap tren sambil menjaga pengendalian risiko. Meskipun ada ruang untuk optimasi, desain keseluruhan selaras dengan prinsip perdagangan kuantitatif. Pedagang harus backtest dan mengoptimalkan parameter sebelum perdagangan langsung dan menyesuaikan ukuran posisi sesuai dengan 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 banyak