Sumber dimuat naik... memuat...

Sistem Strategi Kuantitatif Pembalikan Momentum Berbilang Frekuensi

Penulis:ChaoZhang, Tarikh: 2024-11-29 14:47:54
Tag:

img

Ringkasan

Strategi ini adalah sistem perdagangan kuantitatif berdasarkan ciri pergerakan pasaran yang berterusan, menangkap peluang pembalikan pasaran dengan menganalisis kekerapan kenaikan atau kejatuhan harga berturut-turut.

Prinsip Strategi

Logik teras merangkumi beberapa elemen utama:

  1. Pengiraan berturut-turut: Sistem terus mengesan kenaikan dan penurunan harga berturut-turut, membandingkannya dengan ambang yang telah ditetapkan.
  2. Pilihan Arah Dagangan: Pengguna boleh memilih antara kedudukan panjang atau pendek, memberi tumpuan kepada berturut-turut kehilangan untuk kedudukan panjang dan berturut-turut menang untuk kedudukan pendek.
  3. Pengurusan tempoh pegangan: Tempoh pegangan tetap ditetapkan dengan penutupan kedudukan automatik untuk mengelakkan terlalu banyak pegangan.
  4. Penapisan Doji: Menggabungkan analisis lilin Doji untuk menapis isyarat palsu semasa turun naik pasaran.
  5. Kawalan Kedudukan: Menggunakan perdagangan kedudukan tunggal tanpa skala atau pembinaan kedudukan separa.

Kelebihan Strategi

  1. Logik yang jelas: Logik perdagangan adalah intuitif dan mudah difahami dan dilaksanakan.
  2. Risiko Terkawal: Risiko dikendalikan melalui tempoh pegangan tetap dan kawalan kedudukan tunggal.
  3. Kebolehsesuaian yang tinggi: Parameter boleh diselaraskan mengikut ciri pasaran yang berbeza.
  4. Automasi Tinggi: Sistem sepenuhnya dijalankan, mengurangkan campur tangan manusia.
  5. Analisis Multi-dimensi: Menggabungkan trend harga, corak candlestick, dan dimensi lain.

Risiko Strategi

  1. Risiko trend berlanjutan: Potensi salah penilaian dalam pasaran trend yang kuat.
  2. Sensitiviti Parameter: Prestasi strategi yang dipengaruhi secara langsung oleh tetapan ambang dan tempoh penahan.
  3. Kebergantungan persekitaran pasaran: Berprestasi baik di pasaran berayun tetapi sering dapat kehilangan di pasaran unidirectional.
  4. Kesan slippage: Perdagangan frekuensi tinggi mungkin dipengaruhi oleh slippage.
  5. Tekanan Kos: Perdagangan yang kerap menghasilkan kos transaksi yang tinggi.

Arahan Pengoptimuman Strategi

  1. Menggabungkan Penunjuk Volatiliti: Sesuaikan ambang menggunakan penunjuk seperti ATR.
  2. Tambah Penapisan Trend: Tingkatkan kadar kemenangan dengan menggabungkan analisis trend jangka panjang.
  3. Tempoh Penyimpanan Dinamik: Sesuaikan tempoh penyimpanan berdasarkan ciri pasaran.
  4. Pengoptimuman Pengurusan Kedudukan: Memperkenalkan mekanisme pengurusan kedudukan dinamik.
  5. Analisis pelbagai jangka masa: Tambah mekanisme pengesahan isyarat pelbagai tempoh.

Kesimpulan

Strategi ini adalah sistem perdagangan kuantitatif berdasarkan ciri pembalikan pasaran, menangkap peluang pembalikan melalui analisis pergerakan harga yang berterusan. Reka bentuk strategi adalah munasabah dengan risiko terkawal tetapi memerlukan penyesuaian parameter mengikut keadaan pasaran. Melalui pengoptimuman dan penambahbaikan berterusan, strategi ini mempunyai potensi untuk mencapai pulangan yang stabil dalam perdagangan sebenar.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Streak-Based Trading Strategy", overlay=true)

// User Inputs
trade_direction = input.string(title="Trade Direction", defval="Long", options=["Long", "Short"]) // Option to choose Long or Short
streak_threshold = input.int(title="Streak Threshold", defval=8, minval=1) // Input for number of streaks before trade
hold_duration = input.int(title="Hold Duration (in periods)", defval=7, minval=1) // Input for holding the position
doji_threshold = input.float(0.01, title="Doji Threshold (%)", minval=0.001) / 100 // Doji sensitivity

// Calculate win or loss streak
is_doji = math.abs(close - open) / (high - low) < doji_threshold
win = close > close[1] and not is_doji
loss = close < close[1] and not is_doji

// Initialize variables for streak counting
var int win_streak = 0
var int loss_streak = 0
var bool in_position = false
var int hold_counter = 0

// Track streaks (only when not in a position)
if not in_position
    if win
        win_streak += 1
        loss_streak := 0
    else if loss
        loss_streak += 1
        win_streak := 0
    else
        win_streak := 0
        loss_streak := 0

// Logic for closing the position after the holding duration
if in_position
    hold_counter -= 1
    if hold_counter <= 0
        strategy.close_all() // Close all positions
        in_position := false // Reset position flag
        win_streak := 0 // Reset streaks after position is closed
        loss_streak := 0

// Trade condition (only when no position is open and streak is reached)
if not in_position
    if trade_direction == "Long" and loss_streak >= streak_threshold
        strategy.entry("Long", strategy.long) // Open a long position
        in_position := true
        hold_counter := hold_duration // Set holding period

    if trade_direction == "Short" and win_streak >= streak_threshold
        strategy.entry("Short", strategy.short) // Open a short position
        in_position := true
        hold_counter := hold_duration // Set holding period

// Plotting streaks for visualization
plot(win_streak, color=color.green, title="Winning Streak", style=plot.style_histogram, linewidth=2)
plot(loss_streak, color=color.red, title="Losing Streak", style=plot.style_histogram, linewidth=2)

Lebih lanjut