Dual Time Cycle Super Trend dan Sistem Pengoptimuman Strategi RSI

RSI ATR
Tarikh penciptaan: 2024-11-25 17:27:21 Akhirnya diubah suai: 2024-11-25 17:27:21
Salin: 0 Bilangan klik: 464
1
fokus pada
1617
Pengikut

Dual Time Cycle Super Trend dan Sistem Pengoptimuman Strategi RSI

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan dua kitaran masa berdasarkan petunjuk SuperTrend dan petunjuk RSI. Ia menggabungkan dua kitaran masa 120 minit dan 15 minit dengan petunjuk analisis teknikal, menangkap arah trend pertengahan dengan petunjuk SuperTrend, dan menghasilkan keuntungan dengan petunjuk RSI.

Prinsip Strategi

Logik utama strategi ini adalah berdasarkan kepada beberapa elemen utama:

  1. Menggunakan indikator SuperTrend pada kitaran 120 minit sebagai alat utama untuk menentukan trend, yang berdasarkan pada kitaran ATR 14, dengan faktor 3.42
  2. Isyarat perdagangan ditentukan oleh persilangan harga dengan garis SuperTrend, penembusan ke atas menghasilkan isyarat plura, penembusan ke bawah menghasilkan isyarat kosong
  3. Indeks RSI menggunakan kitaran 15 minit sebagai alat bantu, kitaran RSI ditetapkan sebagai 5, untuk menilai pasaran terlalu panas atau terlalu sejuk
  4. Pecahkan kedudukan teratas apabila RSI mencapai kawasan overbought ((95)), pecahkan kedudukan kosong apabila mencapai kawasan oversold ((5)
  5. Tetapkan 30% peratusan titik tolak, berbanding dengan harga purata pembukaan

Kelebihan Strategik

  1. Kombinasi kitaran masa ganda meningkatkan kebolehpercayaan isyarat dan mengurangkan kesan isyarat palsu
  2. Parameter SuperTrend dioptimumkan dengan sederhana untuk memastikan kepekaan terhadap trend dan mengelakkan perdagangan yang kerap disebabkan oleh kepekaan yang berlebihan
  3. RSI mempunyai tetapan yang sangat ketat untuk 5 dan 95, yang memastikan hanya berlaku dalam keadaan yang melampau dan mengelakkan penarikan awal.
  4. Pengurusan wang menggunakan peratusan tetap nilai bersih akaun ((35%)), mengawal risiko dengan berkesan sambil menjamin ruang pendapatan
  5. Secara automatik melonggarkan pegangan terbalik sebelum membuka kedudukan baru, mengelakkan risiko memegang kedudukan kosong pada masa yang sama

Risiko Strategik

  1. Strategi dua kitaran masa mungkin mempunyai kesan lag dalam pasaran yang bergolak, perlu berhati-hati untuk mengawal penarikan balik
  2. Penetapan yang terlalu ketat terhadap RSI boleh menyebabkan kehilangan peluang untuk memperoleh keuntungan.
  3. 30% mempunyai tetapan stop-loss yang lebih agresif, yang mungkin berakhir dengan keuntungan awal dalam pasaran yang lebih bergolak
  4. Strategi tidak menetapkan keadaan berhenti kehilangan dan mungkin menanggung kerugian yang lebih besar jika trend tiba-tiba berbalik
  5. 35% kedudukan yang dipasangkan agak agresif, lebih berisiko dalam keadaan pasaran yang bergolak

Arah pengoptimuman strategi

  1. Mencadangkan penambahan mekanisme hentian kerugian dinamik, dan boleh mempertimbangkan hentian kerugian mengikut ATR
  2. RSI overbought and oversold boleh dikurangkan dengan baik, disarankan untuk disesuaikan dengan 10 dan 90, meningkatkan fleksibiliti strategi
  3. Tanda-tanda kuantiti pertukaran boleh ditambah sebagai pengesahan tambahan untuk meningkatkan kebolehpercayaan isyarat
  4. Pertimbangkan untuk menyesuaikan kadar kedudukan secara dinamik mengikut turun naik pasaran, menggunakan ATR atau indikator kadar turun naik
  5. Mencadangkan penapis kekuatan trend, seperti penunjuk DMI atau ADX, untuk menapis trend lemah

ringkaskan

Ini adalah strategi pengesanan trend yang lengkap dan logik yang jelas. Dengan menggabungkan petunjuk teknikal dari pelbagai tempoh masa, anda dapat mengawal risiko sambil memahami trend. Walaupun terdapat ruang untuk pengoptimuman, konsep reka bentuk keseluruhan sesuai dengan prinsip asas perdagangan kuantitatif.

Kod sumber strategi
/*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)