Sistem Strategi Kuantitatif Pembalikan Momentum Multi-Frekuensi


Tanggal Pembuatan: 2024-11-29 14:47:54 Akhirnya memodifikasi: 2024-11-29 14:47:54
menyalin: 0 Jumlah klik: 377
1
fokus pada
1617
Pengikut

Sistem Strategi Kuantitatif Pembalikan Momentum Multi-Frekuensi

Ringkasan

Strategi ini adalah sistem perdagangan kuantitatif yang didasarkan pada karakteristik pergerakan pasar yang berkelanjutan untuk menangkap peluang reversal pasar dengan menganalisis frekuensi kenaikan atau penurunan harga secara berturut-turut. Inti dari strategi ini adalah dengan menetapkan titik terendah yang terus naik atau turun, mengambil tindakan reversal ketika titik terendah tercapai, dan membuat keputusan perdagangan dalam kombinasi dengan indikator multi-dimensi seperti waktu memegang posisi dan bentuk garis K. Strategi ini memanfaatkan sepenuhnya sifat reversal pasar, melakukan tindakan reversal ketika harga menunjukkan karakteristik overbought atau oversold.

Prinsip Strategi

Logika inti dari strategi ini mencakup elemen-elemen kunci berikut:

  1. Statistik berturut-turut: sistem akan secara real-time menghitung kenaikan dan penurunan harga berturut-turut dan membandingkannya dengan penurunan yang diprediksi.
  2. Pilihan arah perdagangan: Anda dapat memilih untuk melakukan perdagangan di kedua arah, dengan fokus pada penurunan berturut-turut saat melakukan perdagangan, dan kenaikan berturut-turut saat melakukan perdagangan.
  3. Manajemen siklus kepemilikan: mengatur periode kepemilikan tetap, ekspirasi otomatis, menghindari kepemilikan berlebihan.
  4. Filter bintang silang: memperkenalkan penilaian bintang silang untuk memfilter sinyal palsu selama gejolak pasar.
  5. Kontrol Posisi: Menggunakan posisi tunggal untuk berdagang, tidak melakukan operasi penambahan atau batch.

Keunggulan Strategis

  1. Logika yang jelas: Logika transaksi strategi intuitif, mudah dipahami dan dieksekusi.
  2. Risiko dapat dikontrol: Mengontrol risiko dengan jangka waktu pegangan tetap dan posisi tunggal.
  3. Adaptif: Parameter dapat disesuaikan dengan karakteristik pasar yang berbeda.
  4. Tingkat otomatisasi yang tinggi: seluruh proses dilakukan secara otomatis oleh sistem, mengurangi intervensi manusia.
  5. Analisis multi-dimensi: Menggabungkan beberapa dimensi seperti tren harga, K-line.

Risiko Strategis

  1. Risiko perpanjangan tren: Mungkin terjadi kesalahan penilaian di pasar tren yang kuat.
  2. Sensitivitas parameter: penetapan nilai dan jangka waktu memegang posisi secara langsung mempengaruhi kinerja strategi.
  3. Ketergantungan pada kondisi pasar: Berkinerja baik di pasar yang bergejolak, tetapi mungkin sering mengalami kerugian di pasar sepihak.
  4. Efek slippage: Transaksi frekuensi tinggi dapat dipengaruhi oleh slippage.
  5. Tekanan biaya: Terlalu sering melakukan transaksi menghasilkan biaya transaksi yang lebih tinggi.

Arah optimasi strategi

  1. Memperkenalkan indikator volatilitas: menyesuaikan pengaturan nilai ambang melalui indikator seperti ATR.
  2. Menambahkan filter tren: meningkatkan tingkat kemenangan dengan penilaian tren jangka panjang.
  3. Siklus kepemilikan posisi yang dinamis: menyesuaikan waktu kepemilikan posisi sesuai dengan karakteristik pasar.
  4. Optimalisasi manajemen posisi: memperkenalkan mekanisme manajemen posisi dinamis.
  5. Analisis multi-periode: Menambahkan mekanisme konfirmasi sinyal multi-periode.

Meringkaskan

Strategi ini adalah sistem perdagangan kuantitatif yang didasarkan pada karakteristik pasar yang berbalik dan menangkap peluang pasar yang berbalik dengan menganalisis pergerakan harga yang berkelanjutan. Strategi ini dirancang dengan akal sehat, risiko dapat dikendalikan, tetapi perlu menyesuaikan parameter sesuai dengan lingkungan pasar. Dengan terus-menerus mengoptimalkan dan menyempurnakan, strategi ini diharapkan untuk mendapatkan keuntungan yang stabil dalam perdagangan nyata.

Kode Sumber Strategi
/*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)