Strategi perdagangan kuantitatif berdasarkan keseimbangan Ichimoku dan konflik implisit


Tanggal Pembuatan: 2024-02-20 17:12:35 Akhirnya memodifikasi: 2024-02-20 17:12:35
menyalin: 0 Jumlah klik: 606
1
fokus pada
1617
Pengikut

Strategi perdagangan kuantitatif berdasarkan keseimbangan Ichimoku dan konflik implisit

Ringkasan

Strategi ini menggabungkan indikator keseimbangan langsung dan indikator konflik tersirat untuk mencapai strategi perdagangan kuantitatif yang lebih sederhana. Ini menghasilkan sinyal beli ketika garis keseimbangan langsung lebih tinggi dari garis konflik tersirat dan harga penutupan lebih tinggi dari garis keseimbangan langsung; Ini menghasilkan sinyal jual ketika garis keseimbangan langsung lebih rendah dari garis konflik tersirat dan harga penutupan lebih rendah dari garis keseimbangan langsung.

Prinsip Strategi

Indikator keseimbangan pertama terdiri dari tiga garis kurva pre-turn, garis dasar dan garis lag. Pre-turn mewakili harga rata-rata dari periode tertentu baru-baru ini, garis dasar mewakili harga rata-rata dari periode yang lebih lama, dan garis lag biasanya merupakan rata-rata dari pre-turn dan garis dasar.

Indikator implied conflict terdiri dari dua garis kurva, yaitu garis A dan B. Mereka mewakili rata-rata tingkat fluktuasi harga selama periode panjang yang berbeda. Ketika garis A lebih tinggi dari garis B, maka fluktuasi dalam jangka pendek meningkat dan harga naik cukup.

Strategi ini menggunakan garis keseimbangan sekilas untuk menentukan arah tren secara umum, menggunakan garis terdepan konflik tersembunyi untuk menentukan dinamika harga, digabungkan dengan harga penutupan untuk membentuk sinyal perdagangan yang tepat. Beli ketika ada tren naik dan fluktuasi meningkat, jual ketika ada tren turun dan fluktuasi menyusut, sehingga menghasilkan keuntungan.

Keunggulan Strategis

Ini adalah strategi perdagangan kuantitatif yang lebih sederhana, dan memiliki beberapa keuntungan:

  1. Dengan menggunakan kombinasi indikator, analisis tren harga dan dinamika, sinyal perdagangan lebih dapat diandalkan.
  2. Hanya masuk pada titik terobosan yang ditentukan, menghindari terlalu banyak transaksi yang tidak valid.
  3. Perdagangan short line yang cocok untuk aset yang berfluktuasi tinggi dapat menghasilkan lebih banyak keuntungan.
  4. Strategi logisnya sederhana, mudah dipahami dan dimodifikasi.
  5. Dengan mudah dapat memperluas lebih banyak indikator untuk membentuk model multi-faktor.

Analisis risiko

Strategi ini juga memiliki beberapa risiko, yang meliputi:

  1. Risiko mistrade. Anda harus mengatur stop loss untuk mengendalikan kerugian tunggal.
  2. Risiko reversal harga. Harga dapat berbalik setelah indikator mengirimkan sinyal, menyebabkan kerugian. Kondisi memegang posisi dapat relaksasi sesuai untuk mengurangi risiko ini.
  3. Risiko optimasi parameter. Berbagai parameter memiliki pengaruh yang besar terhadap hasil, dan perlu tes kombinasi untuk menemukan parameter optimal.
  4. Risiko over-optimisasi. Berkinerja baik pada data historis, tetapi gagal dalam transaksi nyata. Perlu mengontrol jumlah kombinasi parameter untuk menghindari over-optimisasi.

Optimasi Strategi

Kebijakan ini dapat dioptimalkan dalam beberapa hal:

  1. Uji lebih banyak kombinasi indikator untuk mencari parameter yang lebih baik. KDJ, BOLL, MACD, dll.
  2. Masukkan mekanisme stop loss. Atur stop loss bergerak atau stop loss ganda.
  3. Optimalkan persyaratan penyaringan masuk. Dapat dipertimbangkan untuk memasukkan volume transaksi atau indikator volatilitas, dll.
  4. Optimalkan aturan memegang posisi. Anda dapat mencoba untuk mengurangi waktu stop loss atau meningkatkan stop loss.
  5. Menambahkan komponen pembelajaran mesin. Menggunakan jaringan saraf untuk mencari kombinasi parameter yang lebih baik.

Meringkaskan

Strategi ini secara keseluruhan adalah strategi perdagangan kuantitatif yang sangat sederhana, yang menggabungkan garis keseimbangan pertama dan indikator konflik tersembunyi, untuk menilai tren dan dinamika harga, membentuk sinyal perdagangan. Strategi ini cocok untuk perdagangan garis pendek aset yang sangat fluktuatif, dan dapat memperoleh keuntungan yang baik. Tentu saja, tidak ada strategi yang sempurna, strategi ini juga memiliki ruang optimasi tertentu, dapat ditingkatkan dari aturan masuk, mekanisme stop loss, parameter pilihan, dan sebagainya, sehingga lebih efektif.

Kode Sumber Strategi
/*backtest
start: 2024-01-20 00:00:00
end: 2024-02-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Ichimoku Cloud + ema 50 Strategy", overlay=true)

len = input.int(50, minval=1, title="Length")
src = input(close, title="Source")
out = ta.ema(src, len)

conversionPeriods = input.int(9, minval=1, title="Conversion Line Length")
basePeriods = input.int(26, minval=1, title="Base Line Length")
laggingSpan2Periods = input.int(52, minval=1, title="Leading Span B Length")
displacement = input.int(1, minval=1, title="Lagging Span")

donchian(len) => math.avg(ta.lowest(len), ta.highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = math.avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)

p1 = plot(leadLine1, offset = displacement - 1, color=#A5D6A7,
     title="Leading Span A")
p2 = plot(leadLine2, offset = displacement - 1, color=#EF9A9A,
     title="Leading Span B")
fill(p1, p2, color = leadLine1 > leadLine2 ? color.rgb(67, 160, 71, 90) : color.rgb(244, 67, 54, 90))

plot(out, title="EMA", color=color.white)

// Condition for Buy Signal
buy_signal = close > out and leadLine1 > leadLine2

// Condition for Sell Signal
sell_signal = close < out and leadLine2 > leadLine1

// Strategy entry and exit conditions
if (buy_signal)
    strategy.entry("Buy", strategy.long)
if (sell_signal)
    strategy.entry("Sell", strategy.short)

// Exit long position if candle closes below EMA 50
if (strategy.opentrades > 0)
    if (close < out)
        strategy.close("Buy")

// Exit short position if candle closes above EMA 50
if (strategy.opentrades < 0)
    if (close > out)
        strategy.close("Sell")