Sumber daya yang dimuat... Pemuatan...

Sistem Strategi Kuantitatif Pembalikan Momentum Multi-Frekwensi

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

img

Gambaran umum

Strategi ini adalah sistem perdagangan kuantitatif yang didasarkan pada karakteristik pergerakan pasar yang terus menerus, menangkap peluang pembalikan pasar dengan menganalisis frekuensi kenaikan atau penurunan harga berturut-turut. Inti dari strategi ini adalah untuk mengambil tindakan terbalik ketika mencapai ambang batas yang telah ditetapkan untuk pergerakan berturut-turut, menggabungkan beberapa dimensi seperti periode penahan dan pola lilin untuk keputusan perdagangan.

Prinsip Strategi

Logika inti mencakup beberapa elemen kunci:

  1. Penghitungan beruntun: Sistem terus melacak kenaikan dan penurunan harga berturut-turut, membandingkannya dengan ambang batas yang telah ditetapkan sebelumnya.
  2. Pemilihan Arah Perdagangan: Pengguna dapat memilih antara posisi panjang atau pendek, dengan fokus pada seri kehilangan untuk posisi panjang dan seri kemenangan untuk posisi pendek.
  3. Manajemen Periode Holding: Periode Holding tetap ditetapkan dengan penutupan posisi otomatis untuk menghindari over-holding.
  4. Doji Filtering: Menggabungkan analisis lilin Doji untuk menyaring sinyal palsu selama fluktuasi pasar.
  5. Kontrol Posisi: Menggunakan perdagangan posisi tunggal tanpa skala atau pembentukan posisi parsial.

Keuntungan Strategi

  1. Logika yang jelas: Logika perdagangan intuitif dan mudah dipahami dan dieksekusi.
  2. Risiko terkontrol: Risiko dikelola melalui periode kepemilikan tetap dan kontrol posisi tunggal.
  3. Adaptifitas tinggi: Parameter dapat disesuaikan sesuai dengan karakteristik pasar yang berbeda.
  4. Otomatisasi tinggi: sepenuhnya dijalankan oleh sistem, mengurangi intervensi manusia.
  5. Analisis Multidimensional: Menggabungkan tren harga, pola lilin, dan dimensi lainnya.

Risiko Strategi

  1. Risiko kelanjutan tren: Potensi kesalahan penilaian di pasar tren yang kuat.
  2. Sensitivitas Parameter: Kinerja strategi yang dipengaruhi langsung oleh pengaturan ambang dan periode penahan.
  3. Market Environment Dependency: Berkinerja baik di pasar yang berosilasi tetapi seringkali bisa kalah di pasar unidirectional.
  4. Dampak slippage: Perdagangan frekuensi tinggi dapat dipengaruhi oleh slippage.
  5. Tekanan Biaya: Perdagangan yang sering menghasilkan biaya transaksi yang tinggi.

Arah Optimasi Strategi

  1. Menggabungkan Indikator Volatilitas: Sesuaikan ambang batas dengan menggunakan indikator seperti ATR.
  2. Tambahkan Trend Filtering: Tingkatkan tingkat kemenangan dengan memasukkan analisis tren jangka panjang.
  3. Periode Penempatan Dinamis: Sesuaikan waktu penempatan berdasarkan karakteristik pasar.
  4. Optimasi Manajemen Posisi: Memperkenalkan mekanisme manajemen posisi dinamis.
  5. Analisis Multi-Timeframe: Tambahkan mekanisme konfirmasi sinyal multi-periode.

Kesimpulan

Strategi ini adalah sistem perdagangan kuantitatif yang didasarkan pada karakteristik pembalikan pasar, menangkap peluang pembalikan melalui analisis pergerakan harga yang berkelanjutan. Desain strategi masuk akal dengan risiko yang terkendali tetapi membutuhkan penyesuaian parameter sesuai dengan kondisi pasar. Melalui optimalisasi dan perbaikan berkelanjutan, strategi ini memiliki potensi untuk mencapai pengembalian yang stabil dalam perdagangan aktual. Disarankan untuk melakukan backtesting data historis yang menyeluruh dan memverifikasi efektivitas strategi dalam perdagangan demo sebelum implementasi langsung.


/*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 banyak