Harami Reversal Backtest Strategi Buruh

Penulis:ChaoZhang, Tanggal: 2023-11-23 11:47:10
Tag:

img

Gambaran umum

Strategi Backtest Reversal Harami Bearish mengidentifikasi pola reversal Harami bearish dalam grafik candlestick dan secara otomatis memperdagangkannya.

Logika Strategi

Indikator pengenalan pola inti dari strategi ini adalah: penutupan lilin pertama adalah lilin bullish panjang dan penutupan lilin kedua berada di dalam tubuh lilin pertama, membentuk lilin bearish. Ini menunjukkan pola pembalikan Harami Bearish potensial. Ketika pola ini terbentuk, strategi menjadi pendek.

Logika spesifiknya adalah:

  1. Hitung jika ukuran tubuh lilin pertama ABS ((Close1 - Open1) lebih besar dari ukuran tubuh minimum yang ditetapkan
  2. Periksa apakah lilin pertama bullish Tutup1 > Buka1
  3. Periksa apakah lilin saat ini bearish Buka > Tutup
  4. Periksa apakah candles terbuka saat ini kurang dari atau sama dengan penutupan sebelumnya Open <= Close1
  5. Periksa apakah lilin sebelumnya s terbuka kurang dari atau sama dengan lilin saat ini tutup Open1 <= Close
  6. Periksa apakah tubuh lilin saat ini lebih kecil dari tubuh sebelumnya Buka - Tutup < Tutup1 - Buka1
  7. Jika semua kondisi berlalu, Harami Bearish telah terbentuk dan strategi gagal.

Analisis Keuntungan

Keuntungan dari strategi ini adalah:

  1. Menggunakan sinyal pembalikan penurunan yang kuat dari Harami untuk kemungkinan keuntungan yang lebih tinggi
  2. Hasil data backtest yang luas positif
  3. Logika sederhana yang jelas yang mudah dipahami dan dioptimalkan
  4. Stop loss dan take profit yang dapat disesuaikan untuk pengendalian risiko

Analisis Risiko

Ada juga beberapa risiko:

  1. Pasar mungkin memiliki breakout palsu yang menyebabkan posisi kehilangan.
  2. Volatilitas tinggi dapat memicu stop loss dini.
  3. Data backtest yang tidak cukup mungkin tidak mencerminkan kondisi pasar yang sebenarnya.

Arahan Optimasi

Strategi ini dapat dioptimalkan lebih lanjut di bidang berikut:

  1. Tambahkan Volume, MACD dan filter lainnya untuk meningkatkan kualitas sinyal
  2. Optimalkan strategi stop loss dan take profit, sesuaikan level secara dinamis
  3. Meningkatkan efisiensi memegang posisi, menggabungkan dengan tren dan faktor lain untuk mengurangi perdagangan yang tidak efektif
  4. Uji produk perdagangan yang berbeda untuk menemukan alternatif volatilitas rendah

Kesimpulan

The Bearish Harami Reversal Backtest Strategy memiliki logika yang jelas, mudah dimengerti, hasil backtest yang baik dan risiko yang dapat dikendalikan.


/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-19 23:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 16/01/2019 
//    This is a bearish reversal pattern formed by two candlesticks in which a short 
//    real body is contained within the prior session's long real body. Usually the 
//    second real body is the opposite color of the first real body. The Harami pattern 
//    is the reverse of the Engulfing pattern. 
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title = "Bearish Harami Backtest", overlay = true)
input_takeprofit = input(20, title="Take Profit pip")
input_stoploss = input(10, title="Stop Loss pip")
input_minsizebody = input(3, title="Min. Size Body pip")
barcolor(abs(close- open) >= input_minsizebody ? close[1] > open[1] ? open > close ? open <= close[1] ? open[1] <= close ? open - close < close[1] - open[1] ? yellow :na :na : na : na : na : na)
pos = 0.0
barcolor(nz(pos[1], 0) == -1 ? red: nz(pos[1], 0) == 1 ? green : blue )
posprice = 0.0
posprice := abs( close - open) >= input_minsizebody? close[1] > open[1] ? open > close ? open <= close[1] ? open[1] <= close ? open - close < close[1] - open[1] ? close :nz(posprice[1], 0) :nz(posprice[1], 0) : nz(posprice[1], 0) : nz(posprice[1], 0) : nz(posprice[1], 0): nz(posprice[1], 0)
pos := iff(posprice > 0, -1, 0)
if (pos == 0) 
    strategy.close_all()
if (pos == -1)
    strategy.entry("Short", strategy.short)
posprice := iff(low <= posprice - input_takeprofit and posprice > 0, 0 ,  nz(posprice, 0))
posprice := iff(high >= posprice + input_stoploss and posprice > 0, 0 ,  nz(posprice, 0))


Lebih banyak