Strategi Breakout Berdasarkan Saluran Camarilla

Penulis:ChaoZhang, Tanggal: 2023-10-24 16:18:30
Tag:

img

Gambaran umum

Strategi ini terutama menggunakan saluran Camarilla dan rata-rata bergerak untuk mengidentifikasi titik-titik breakout di pasar, dan dengan demikian menerapkan trend berikut.

Logika Strategi

  1. Menghitung level support dan resistance menggunakan saluran Camarilla, termasuk H4, L4 dll.

  2. Mengidentifikasi apakah harga menembus garis saluran ini. Misalnya, menutup di atas H4 dan membuka di bawah H4 menunjukkan sinyal pecah.

  3. Tambahkan filter rata-rata bergerak untuk konfirmasi lebih lanjut.

  4. Masukkan posisi panjang dengan stop loss dan ambil keuntungan, seperti titik stop loss tetap, dan trailing stop loss.

  5. Logika yang sama berlaku untuk posisi pendek.

Dengan stop loss, strategi ini dapat mengendarai tren secara efektif.

Keuntungan

Keuntungan dari strategi ini:

  1. Saluran Camarilla secara akurat menemukan dukungan dan resistensi potensial.

  2. Filter rata-rata bergerak membantu memvalidasi sinyal breakout yang sebenarnya.

  3. Trailing stop loss mengambil keuntungan sambil menghindari reversal stop.

  4. Sinyal-sinyalnya jelas dan mudah untuk ditindaklanjuti.

  5. Tidak ada penyesuaian yang sering diperlukan untuk perdagangan otomatis.

Risiko dan Solusi

Ada beberapa risiko yang harus diketahui:

  1. Saluran Camarilla tidak dapat mengidentifikasi titik balik secara efektif.

    • Solusi: Tambahkan osilator untuk mendeteksi pembalikan tren.
  2. Pengaturan titik stop loss yang tidak tepat dapat menyebabkan keluar prematur atau peningkatan kerugian.

    • Solusi: Optimalkan dan uji tingkat stop loss yang berbeda.
  3. Sinyal yang keluar bisa menjadi sinyal palsu.

    • Solusi: Tambahkan lebih banyak filter untuk konfirmasi, atau meringankan kriteria keluar.
  4. Banyak kebocoran palsu dapat terjadi di berbagai pasar.

    • Solusi: Hindari perdagangan dalam jangka waktu yang bervariasi, atau meringankan kriteria.

Saran-saran Peningkatan

Strategi ini dapat ditingkatkan lagi dari aspek berikut:

  1. Tambahkan lebih banyak indikator sebagai filter untuk meningkatkan akurasi penyebaran, seperti KDJ, MACD dll.

  2. Mengoptimalkan exit, seperti stop loss trailing dinamis, mengintegrasikan ATR dll.

  3. Mengoptimalkan parameter untuk produk yang berbeda untuk meningkatkan ketahanan.

  4. Tambahkan filter tren jangka waktu yang lebih tinggi untuk menghindari perdagangan kontra-tren.

  5. Fokus pada volume tinggi untuk konfirmasi.

  6. Mengembangkan optimasi parameter otomatis untuk penyesuaian dinamis.

  7. Mengembangkan strategi arbitrage multi produk.

Kesimpulan

Strategi ini memiliki logika yang jelas dan sederhana dengan kepraktisan yang kuat. Ini mengidentifikasi dukungan dan resistensi potensial menggunakan Camarilla dan mengkonfirmasi arah breakout dengan moving average. Metode keluar juga masuk akal. Ada juga potensi besar untuk peningkatan, seperti menambahkan lebih banyak indikator, ekspansi multi-produk dll. Secara keseluruhan ini adalah strategi yang menjanjikan dengan potensi yang baik.


/*backtest
start: 2023-09-23 00:00:00
end: 2023-10-23 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//Created by CristianD
strategy(title="CamarillaStrategyV1", shorttitle="CD_Camarilla_StrategyV1", overlay=true) 
//sd = input(true, title="Show Daily Pivots?")
EMA = ema(close,8)

//Camarilla
pivot = (high + low + close ) / 3.0 
range = high - low
h5 = (high/low) * close 
h4 = close + (high - low) * 1.1 / 2.0
h3 = close + (high - low) * 1.1 / 4.0
h2 = close + (high - low) * 1.1 / 6.0
h1 = close + (high - low) * 1.1 / 12.0
l1 = close - (high - low) * 1.1 / 12.0
l2 = close - (high - low) * 1.1 / 6.0
l3 = close - (high - low) * 1.1 / 4.0
l4 = close - (high - low) * 1.1 / 2.0
h6 = h5 + 1.168 * (h5 - h4) 
l5 = close - (h5 - close)
l6 = close - (h6 - close)

// Daily line breaks
//sopen = request.security(syminfo.tickerid, "D", open [1])
//shigh = request.security(syminfo.tickerid, "D", high [1])
//slow = request.security(syminfo.tickerid, "D", low [1])
//sclose = request.security(syminfo.tickerid, "D", close [1])
//
// Color
//dcolor=sopen != sopen[1] ? na : black
//dcolor1=sopen != sopen[1] ? na : red
//dcolor2=sopen != sopen[1] ? na : green

//Daily Pivots 
dtime_pivot = request.security(syminfo.tickerid, 'D', pivot[1]) 
dtime_h6 = request.security(syminfo.tickerid, 'D', h6[1]) 
dtime_h5 = request.security(syminfo.tickerid, 'D', h5[1]) 
dtime_h4 = request.security(syminfo.tickerid, 'D', h4[1]) 
dtime_h3 = request.security(syminfo.tickerid, 'D', h3[1]) 
dtime_h2 = request.security(syminfo.tickerid, 'D', h2[1]) 
dtime_h1 = request.security(syminfo.tickerid, 'D', h1[1]) 
dtime_l1 = request.security(syminfo.tickerid, 'D', l1[1]) 
dtime_l2 = request.security(syminfo.tickerid, 'D', l2[1]) 
dtime_l3 = request.security(syminfo.tickerid, 'D', l3[1]) 
dtime_l4 = request.security(syminfo.tickerid, 'D', l4[1]) 
dtime_l5 = request.security(syminfo.tickerid, 'D', l5[1]) 
dtime_l6 = request.security(syminfo.tickerid, 'D', l6[1]) 

//offs_daily = 0
//plot(sd and dtime_pivot ? dtime_pivot : na, title="Daily Pivot",color=dcolor, linewidth=2)
//plot(sd and dtime_h6 ? dtime_h6 : na, title="Daily H6", color=dcolor2, linewidth=2)
//plot(sd and dtime_h5 ? dtime_h5 : na, title="Daily H5",color=dcolor2, linewidth=2)
//plot(sd and dtime_h4 ? dtime_h4 : na, title="Daily H4",color=dcolor2, linewidth=2)
//plot(sd and dtime_h3 ? dtime_h3 : na, title="Daily H3",color=dcolor1, linewidth=3)
//plot(sd and dtime_h2 ? dtime_h2 : na, title="Daily H2",color=dcolor2, linewidth=2)
//plot(sd and dtime_h1 ? dtime_h1 : na, title="Daily H1",color=dcolor2, linewidth=2)
//plot(sd and dtime_l1 ? dtime_l1 : na, title="Daily L1",color=dcolor2, linewidth=2)
//plot(sd and dtime_l2 ? dtime_l2 : na, title="Daily L2",color=dcolor2, linewidth=2)
//plot(sd and dtime_l3 ? dtime_l3 : na, title="Daily L3",color=dcolor1, linewidth=3)
//plot(sd and dtime_l4 ? dtime_l4 : na, title="Daily L4",color=dcolor2, linewidth=2)
//plot(sd and dtime_l5 ? dtime_l5 : na, title="Daily L5",color=dcolor2, linewidth=2)
//plot(sd and dtime_l6 ? dtime_l6 : na, title="Daily L6",color=dcolor2, linewidth=2)

longCondition = close >dtime_h4 and open < dtime_h4 and EMA < close
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit ("Exit Long","Long",  trail_points = 140,trail_offset = 1, loss =170) 
    //trail_points = 40, trail_offset = 3, loss =70 and


shortCondition = close <dtime_l4 and open >dtime_l4 and EMA > close
if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit ("Exit Short","Short", trail_points = 110,trail_offset = 1, loss =120)
    


Lebih banyak