Strategi kuantitatif perdagangan dua arah berdasarkan pola penyerapan kandil garis-K

OHLC VOL ATR
Tanggal Pembuatan: 2024-12-12 11:27:27 Akhirnya memodifikasi: 2024-12-12 11:27:27
menyalin: 0 Jumlah klik: 364
1
fokus pada
1617
Pengikut

Strategi kuantitatif perdagangan dua arah berdasarkan pola penyerapan kandil garis-K

Ringkasan

Strategi ini adalah sistem perdagangan dua arah yang didasarkan pada bentuk penyerapan grafik K. Strategi ini mengidentifikasi bentuk yang memiliki karakteristik penyerapan di pasar dengan menganalisis hubungan arah, amplitudo, dan volume transaksi dari garis K yang berdekatan, dan melakukan perdagangan dengan arah yang sesuai jika memenuhi syarat. Strategi ini menggunakan metode manajemen dana persentase, dengan logika posisi terbuka yang lengkap.

Prinsip Strategi

Logika inti dari strategi ini didasarkan pada tiga persyaratan utama:

  1. Kebalikan arah garis K yang berdekatan: menilai arah garis K dengan membandingkan harga buka dan harga tutup, meminta dua garis K yang berdekatan untuk menunjukkan pergerakan yang berlawanan.
  2. Analisis hubungan momentum: Menghitung dan membandingkan momentum harga dua garis K (nilai mutlak dari perbedaan antara harga penutupan dan harga pembukaan), dengan asumsi bahwa momentum pada garis K terakhir lebih besar dari yang sebelumnya.
  3. Karakteristik volume transaksi: Meminta volume transaksi pada K-line pertama lebih besar dari pada K-line kedua, sementara volume transaksi pada K-line kedua lebih kecil dari volume transaksi sebelumnya.

Ketika ketiga kondisi ini terpenuhi secara bersamaan, strategi akan menentukan arah perdagangan berdasarkan arah garis K terbaru: jika garis yang lebih banyak, maka lebih banyak, jika garis yang kosong. Strategi menggunakan posisi penuh untuk berdagang, dan melacak kepemilikan posisi melalui variabel status.

Keunggulan Strategis

  1. Analisis multi-dimensi: Analisis tiga dimensi yang menggabungkan bentuk harga, amplitudo dan volume transaksi untuk meningkatkan keandalan sinyal.
  2. Perdagangan dua arah: Dapat menangkap peluang dua arah pasar dan memanfaatkan fluktuasi pasar.
  3. Manajemen risiko yang baik: menggunakan manajemen dana persentase, dan dapat mengatur kondisi stop loss dengan fleksibel.
  4. Dukungan visualisasi: memberikan tampilan grafis dari sinyal perdagangan untuk memudahkan analisis dan optimalisasi.
  5. Manajemen status yang jelas: kontrol yang tepat dari variabel status untuk menghindari pembukaan posisi berulang.

Risiko Strategis

  1. Risiko terobosan palsu: Ada kemungkinan terjadinya bentuk penyerapan palsu di pasar yang bergejolak, yang menyebabkan sinyal yang salah.
  2. Efek slippage: mungkin menghadapi slippage yang lebih besar ketika pasar bergejolak, yang mempengaruhi efek perdagangan aktual.
  3. Manajemen risiko: Metode perdagangan posisi penuh dapat membawa risiko yang lebih besar.
  4. Keterlambatan sinyal: sinyal harus dikonfirmasi setelah ditutup berdasarkan garis K, dan kemungkinan kehilangan waktu masuk yang optimal.

Arah optimasi strategi

  1. Menambahkan filter tren: disarankan untuk menambahkan garis rata-rata atau indikator tren sebagai filter arah untuk meningkatkan kualitas sinyal.
  2. Pengelolaan dana yang optimal: ukuran posisi dapat disesuaikan dengan dinamika fluktuasi pasar.
  3. Perbaikan mekanisme stop loss: disarankan untuk mengatur stop loss dinamis dengan indikator ATR untuk meningkatkan kemampuan pengendalian risiko.
  4. Tambahkan filter waktu: Anda dapat menambahkan filter waktu transaksi untuk menghindari periode yang tidak efisien.
  5. Pengesahan sinyal yang dioptimalkan: Anda dapat menambahkan indikator volume transaksi atau indikator teknis lainnya sebagai konfirmasi tambahan.

Meringkaskan

Strategi ini membangun sistem perdagangan yang lengkap dengan analisis multi-dimensi dari bentuk K-line, amplitudo dan volume transaksi. Meskipun ada risiko tertentu, strategi ini dapat ditingkatkan lebih lanjut dengan stabilitas dan keandalan melalui arah optimasi yang disarankan. Keunggulan inti dari strategi ini adalah metode analisis multi-dimensi dan mekanisme manajemen status yang disempurnakan, cocok untuk digunakan dalam lingkungan pasar yang bergejolak.

Kode Sumber Strategi
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Candle Absorption Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Условия индикатора
// 1. Две соседних свечи должны быть разнонаправленными
condition1 = (close[1] > open[1] and close < open) or (close[1] < open[1] and close > open)

// 2. Дельта по цене открытия/закрытия у первой свечи меньше, чем у следующей
delta1 = math.abs(close[1] - open[1])
delta2 = math.abs(close - open)
condition2 = delta1 < delta2

// 3. Объем первой свечи должен быть больше, а последней меньше
condition3 = volume[1] > volume and volume < volume[2]

// Проверяем выполнение всех условий
all_conditions = condition1 and condition2 and condition3

// Определяем направление для входа
is_bullish = close > open  // Зеленая свеча больше (бычье поглощение)
is_bearish = close < open  // Красная свеча больше (медвежье поглощение)

// Переменные для отслеживания состояния позиции
var float entryPrice = na
var bool isLong = false
var bool isShort = false

// Логика генерации сигналов
buySignal = all_conditions and is_bullish and not isLong
sellSignal = all_conditions and is_bearish and not isShort

// Обработка лонгового входа
if (buySignal)
    isLong := true
    isShort := false
    entryPrice := close
    strategy.entry("Long", strategy.long)

// Обработка шортового входа
if (sellSignal)
    isLong := false
    isShort := true
    entryPrice := close
    strategy.entry("Short", strategy.short)

// Визуализация точек поглощения
// if all_conditions
//     label.new(bar_index, high, "✔", color=is_bullish ? color.green : color.red, textcolor=color.white, style=label.style_circle, size=size.small)

// Логика сброса состояния при закрытии позиции
if (strategy.position_size == 0)
    isLong := false
    isShort := false
    entryPrice := na

// Дополнительно: можно добавить стоп-лосс и тейк-профит (пример ниже)
// strategy.exit("Exit Long", from_entry="Long", stop=low - atr(14), limit=high + atr(14))
// strategy.exit("Exit Short", from_entry="Short", stop=high + atr(14), limit=low - atr(14))