Strategi perdagangan kuantitatif berdasarkan grafik awan Ichimoku


Tanggal Pembuatan: 2024-01-12 14:20:43 Akhirnya memodifikasi: 2024-01-12 14:20:43
menyalin: 0 Jumlah klik: 680
1
fokus pada
1617
Pengikut

Strategi perdagangan kuantitatif berdasarkan grafik awan Ichimoku

Ringkasan

Strategi ini dirancang berdasarkan indikator diagram awan Ichimoku untuk sistem perdagangan kuantitatif, terutama untuk aset dengan tren yang baik. Strategi ini menggabungkan fungsi seperti stop loss, stop loss, dan tracking stop loss untuk mencapai keuntungan yang stabil.

Prinsip Strategi

Grafik Ichimoku terdiri dari garis konversi, garis acuan, garis depan 1, garis depan 2, dan grafik awan. Sinyal perdagangan untuk strategi ini berasal dari hubungan harga dengan grafik awan. Secara khusus, sinyal beli dihasilkan ketika harga naik melewati garis depan 1; sinyal jual dihasilkan ketika harga turun melewati garis depan 1. Selain itu, garis depan 2 juga berfungsi sebagai indikator penilaian tambahan.

Strategi ini juga menetapkan stop loss dan stop loss berdasarkan indikator ATR. Indikator ATR dapat secara efektif menangkap tingkat fluktuasi pasar. Stop loss adalah 2 kali lipat dari ATR, dan stop loss adalah 4 kali lipat dari ATR. Ini dapat secara efektif mengendalikan kerugian tunggal dan mengunci sebagian dari keuntungan.

Akhirnya, strategi ini mengadopsi mekanisme tracking stop loss. Secara khusus, untuk melakukan pesanan berlebih, akan menggunakan 2 kali lipat dari ATR sebagai penarikan kembali, menyesuaikan stop loss line secara real time untuk mengunci keuntungan; Untuk melakukan pesanan udara, akan menggunakan 2 kali lipat dari ATR sebagai penarikan kembali, menyesuaikan stop loss line secara real time untuk mengunci keuntungan.

Analisis Keunggulan Strategi

  1. Indikator grafik awan Ichimoku yang efektif untuk menangkap tren
  2. Stop Loss Stop Stop yang dikombinasikan dengan indikator ATR untuk mengendalikan risiko
  3. Menggunakan Stop Loss Tracking, Anda dapat mengunci keuntungan dengan baik
  4. Logika strategi sederhana dan jelas, mudah dipahami dan diverifikasi
  5. Parameterisasi yang dapat disesuaikan dengan pasar yang berbeda

Analisis risiko

  1. Ichimoku Cloud Map sangat sensitif terhadap pengaturan Parameter, pengaturan yang tidak tepat dapat kehilangan peluang perdagangan atau menghasilkan sinyal yang salah
  2. Tracking Stop Loss Jika pengaturan terlalu besar, mungkin stop loss prematur
  3. Saham yang kuat mungkin akan menembus garis stop loss yang diberikan oleh indikator ATR atau mengikuti garis stop loss
  4. Biaya transaksi juga berdampak pada profitabilitas

Solusi untuk menghadapi risiko:

  1. Mengoptimalkan parameter dari gambar awan Ichimoku untuk menemukan pengaturan yang paling sesuai
  2. Evaluasi stop loss yang wajar, tidak terlalu besar dan tidak terlalu kecil
  3. Rentang stop loss yang lebih luas untuk saham yang kuat
  4. Pilih broker dengan biaya rendah

Arah optimasi strategi

  1. Filter sinyal dalam kombinasi dengan indikator teknis lainnya untuk mengurangi kesalahan transaksi
  2. Optimalisasi parameter berdasarkan data historis / retrospektif
  3. Pengaturan parameter varietas yang berbeda dapat dioptimalkan secara terpisah
  4. Anda dapat mempertimbangkan untuk menyesuaikan stop loss secara dinamis.
  5. Teknik karakteristik yang digabungkan dengan algoritma untuk membangun sinyal perdagangan yang lebih andal

Meringkaskan

Strategi ini secara keseluruhan merupakan strategi pelacakan tren yang stabil. Berdasarkan indikator grafik awan Ichimoku untuk menentukan arah tren; Menggunakan indikator ATR untuk mengatur stop loss; Menggunakan pelacakan stop loss untuk mengunci keuntungan. Keunggulan adalah logika yang ringkas dan mudah dipahami; Dapat mengendalikan kerugian tunggal; Dapat secara efektif melacak tren.

Kode Sumber Strategi
/*backtest
start: 2023-01-05 00:00:00
end: 2024-01-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Ichimoku Cloud Strategy with SL, TP, and Trailing Stop", overlay=true)

conversionPeriods = input(9, "Conversion Line Length")
basePeriods = input(26, "Base Line Length")
laggingSpan2Periods = input(52, "Leading Span B Length")
displacement = input(26, "Lagging Span")
atrLength = input(14, title="ATR Length")

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

// Plot the Ichimoku Cloud components
plot(conversionLine, color=color.blue, title="Conversion Line")
plot(baseLine, color=color.red, title="Base Line")
plot(leadLine1, color=color.green, title="Leading Span A")
plot(leadLine2, color=color.orange, title="Leading Span B")
plot(leadLine1 > leadLine2 ? leadLine1 : leadLine2, color=color.green, title="Kumo Cloud Upper Line")
plot(leadLine1 < leadLine2 ? leadLine1 : leadLine2, color=color.red, title="Kumo Cloud Lower Line")

// ATR for stop loss and take profit
atrValue = ta.atr(atrLength)
stopLoss = atrValue * 2
takeProfit = atrValue * 4

// Strategy entry and exit conditions
longCondition = ta.crossover(close, leadLine1) and close > leadLine2
shortCondition = ta.crossunder(close, leadLine1) and close < leadLine2

// Plot buy and sell signals
plotshape(series=longCondition ? leadLine1 : na, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=shortCondition ? leadLine1 : na, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)

// Execute strategy orders with stop loss and take profit
strategy.entry("Buy", strategy.long, when=longCondition)
strategy.close("Buy", when=shortCondition) // Close buy position when sell condition is met
strategy.entry("Sell", strategy.short, when=shortCondition)
strategy.close("Sell", when=longCondition) // Close sell position when buy condition is met

// Trailing stop
strategy.cancel("Trailing Stop")
var float trailingStopPrice = na
if (longCondition)
    trailingStopPrice := math.max(trailingStopPrice, close - atrValue * 2)
    strategy.exit("Trailing Stop", from_entry="Buy", trail_offset=atrValue * 2, trail_price=trailingStopPrice)
else if (shortCondition)
    trailingStopPrice := math.min(trailingStopPrice, close + atrValue * 2)
    strategy.exit("Trailing Stop", from_entry="Sell", trail_offset=atrValue * 2, trail_price=trailingStopPrice)