Harami Strategi Harga Penutupan

Penulis:ChaoZhang, Tanggal: 2023-11-28 16:50:34
Tag:

img

Gambaran umum

Strategi Harami Closing Price adalah strategi perdagangan kuantitatif yang didasarkan pada pola candlestick.

Logika Strategi

Logika inti adalah: Ketika lilin saat ini adalah lilin merah dan yang sebelumnya adalah lilin hijau, dan harga terendah lilin saat ini lebih tinggi dari harga terendah lilin sebelumnya, harga tertinggi lilin saat ini lebih rendah dari harga tertinggi lilin sebelumnya, pola Harami terbentuk. Ini berarti momentum tren naik kehilangan kekuatan dan merupakan sinyal untuk menjual. Sebaliknya, pola Harami dengan dua lilin terbalik merupakan sinyal beli.

Rata-rata tubuh lilin digunakan sebagai garis stop loss.

Analisis Keuntungan

Keuntungan utama dari strategi Harami adalah:

  1. Penghakiman sederhana dan masuk akal berdasarkan pola candlestick, mudah dimengerti dan diterapkan.
  2. Dapat mengidentifikasi breakout dengan volume perdagangan yang relatif kecil. Ketika kisaran naik menyempit ke bawah untuk membentuk pola Harami, momentum bullish kehilangan kekuatan dan itu titik jual yang baik.
  3. Ada mekanisme stop loss yang jelas untuk mengendalikan risiko.

Analisis Risiko

Ada juga beberapa risiko untuk strategi ini:

  1. Frekuensi pemantauan rendah, mungkin kehilangan titik masuk dan keluar terbaik.
  2. Lilin bullish/bearish palsu dapat menghasilkan sinyal yang salah.
  3. Penghakiman hanya didasarkan pada pola candlestick tanpa mempertimbangkan indikator teknis dan fundamental lainnya, yang menyebabkan beberapa kebutaan.

Untuk mengurangi risiko ini, menggabungkan volume perdagangan, rata-rata bergerak dan indikator teknis lainnya dianjurkan, untuk membuat penilaian yang lebih komprehensif tentang tren pasar.

Arahan Optimasi

Strategi Harga Penutupan Harami juga dapat ditingkatkan dari aspek berikut:

  1. Menambahkan pemeriksaan kondisi volume perdagangan. lonjakan volume perdagangan sering berarti pembalikan tren.
  2. Penyesuaian kriteria stop loss secara dinamis berdasarkan volatilitas pasar dan preferensi risiko.
  3. Analisis multi-frame waktu. Mengidentifikasi titik penjualan di dekat level support kunci pada jangka waktu yang lebih tinggi ketika pola Harami terbentuk.
  4. Menggabungkan indikator teknis lainnya seperti moving average untuk menentukan tren pasar secara keseluruhan, atau indikator utama untuk memprediksi titik masuk dan keluar.

Ringkasan

Strategi Harami Closing Price mudah dipahami dan diimplementasikan untuk menghasilkan sinyal beli dan jual tertentu berdasarkan pola candlestick. Tetapi juga memiliki beberapa keterbatasan seperti menghasilkan sinyal palsu dan blindness. Masalah ini juga menunjukkan arah untuk optimasi lebih lanjut, dengan menerapkan penilaian yang lebih komprehensif dengan volume perdagangan, beberapa kerangka waktu, dan indikator teknis lainnya. Ini dapat sangat meningkatkan efektivitas strategi.


/*backtest
start: 2023-11-20 00:00:00
end: 2023-11-27 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy(title = "Noro's Harami Strategy v1.0", shorttitle = "Harami str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")

fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Body
body = abs(close - open)
abody = sma(body, 10)

//MinMax Bars
min = min(close, open)
max = max(close, open)
bar = close > open ? 1 : close < open ? -1 : 0

//Signals
up = bar == 1 and bar[1] == -1 and min > min[1] and max < max[1]
dn = bar == -1 and bar[1] == 1 and min > min[1] and max < max[1]
exit = ((strategy.position_size > 0 and bar == 1) or (strategy.position_size < 0 and bar == -1)) and body > abody / 2

//Trading
if up
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()

Lebih banyak