Strategi perdagangan Doji Candlestick Reversal

Penulis:ChaoZhang, Tanggal: 2023-09-27
Tag:

Gambaran umum

Strategi ini mengidentifikasi pola lilin doji dan menggabungkan SMA untuk menentukan pembalikan untuk perdagangan. Ini menghasilkan sinyal perdagangan ketika pola doji terbentuk dan harga buka/tutup berada di luar garis SMA. Sinyal bullish dihasilkan pada garis hanging man dan sinyal bearish pada garis shooting star.

Prinsip-prinsip

Prinsip utama dari strategi ini adalah:

  1. Mengidentifikasi pola doji dengan menghitung kisaran harga buka/tutup versus pergerakan harga secara keseluruhan.

  2. Memeriksa apakah penutupan sebelumnya di atas/di bawah arus tinggi/rendah untuk menghindari sinyal palsu.

  3. Menghakimi harga buka/tutup dalam kaitannya dengan garis SMA untuk menghasilkan sinyal pembalikan.

  4. Menghasilkan sinyal panjang/pendek ketika pola doji yang memenuhi syarat diidentifikasi.

Langkah-langkah utama dalam kode adalah:

  1. Perhitungan garis SMA

  2. Mengelilingi lilin untuk mengidentifikasi pola doji

  3. Memeriksa hubungan dekat sebelumnya vs saat ini tinggi/rendah

  4. Konfirmasi sinyal pembalikan berdasarkan hubungan terbuka/tutup dan SMA

  5. Merangkai penanda sinyal dan mengeluarkan sinyal panjang/pendek

Keuntungan

Keuntungan dari strategi ini meliputi:

  1. Pola Doji jelas dan mudah diidentifikasi/diimplementasikan.

  2. Filter SMA membantu mengurangi sinyal palsu.

  3. Sinyal panjang/pendek yang jelas membuat operasi perdagangan mudah.

  4. Perdagangan reversal menangkap tren jangka pendek.

  5. Parameter yang fleksibel dapat disesuaikan dengan kondisi pasar yang berbeda.

  6. Mudah dimengerti dan diimplementasikan, ramah pemula.

Risiko

Beberapa risiko potensial:

  1. Bergantung pada pola tunggal, rentan terhadap kebocoran palsu.

  2. Tidak ada mekanisme stop loss untuk mengendalikan kerugian.

  3. Penyesuaian parameter yang buruk dapat menyebabkan perdagangan berlebihan.

  4. Bergantung pada tren, berkinerja buruk di pasar tren.

  5. Kinerja bergantung pada optimasi parameter.

Solusi:

  1. Tambahkan filter lain untuk mengkonfirmasi sinyal.

  2. Mengimplementasikan stop loss untuk mengelola risiko.

  3. Mengoptimalkan parameter dan membatasi frekuensi perdagangan.

  4. Gunakan terutama selama pasar yang terikat jangkauan.

  5. Pengujian dan optimalisasi backtesting terus menerus.

Bidang Peningkatan

Beberapa cara untuk meningkatkan strategi:

  1. Tambahkan filter volume untuk menghindari kebocoran palsu.

  2. Melaksanakan mekanisme stop loss seperti trailing stop loss.

  3. Mengoptimalkan parameter berdasarkan kondisi pasar seperti tren.

  4. Tambahkan indikator lain untuk mengkonfirmasi sinyal, seperti MACD, KDJ dll.

  5. Tambahkan penentuan tren untuk menghindari perdagangan kontra-tren.

  6. Optimalkan periode review untuk menyeimbangkan frekuensi dan kualitas.

Ringkasan

Strategi ini menggunakan pola doji dengan SMA untuk perdagangan pembalikan yang efisien. Ini memiliki keuntungan seperti aturan sederhana dan perdagangan yang mudah. Tapi juga memiliki risiko dan area untuk perbaikan. Dengan optimasi terus-menerus, ini dapat menjadi sistem perdagangan jangka pendek yang solid.

[/trans]


/*backtest
start: 2022-09-20 00:00:00
end: 2023-09-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Doji Reversal", overlay=true)

smaPeriod = input(title="SMA Period", defval=10, minval=0)
tolerance = input(title="Tolerance", defval=0.1, minval=0)

lookbackEnd = input(title="End", defval=2, minval=0)

avg = sma(close, smaPeriod)
signal_long = bool(false)
signal_short = bool(false)

for i = 1 to lookbackEnd
    is_doji = (abs(close[i] - open[i]) / (high[i] - low[i])) < tolerance
    signal_long := signal_long or ( is_doji and (close[i-1] <= high[i] or i == 1) and close[i-1] > high[i] and high[i] < avg and close > open )
    signal_short := signal_short or ( is_doji and (close[i-1] >= low[i] or i == 1) and close[i-1] < low[i] and low[i] > avg and close < open )

plotshape(signal_long, "LONG", style=shape.triangleup, size=size.normal)
plotshape(signal_short, "SHORT", style=shape.triangledown, size=size.normal)

strategy.entry("LONG", strategy.long, when=signal_long)
strategy.entry("SHORT", strategy.short, when=signal_short)

Lebih banyak