Heikin-Ashi Meratakan Strategi Beli dan Jual

Penulis:ChaoZhang, Tanggal: 2023-10-07 15:01:06
Tag:

Gambaran umum

Strategi ini didasarkan pada satu indikator - Smoothed Heikin-Ashi, untuk menerapkan tren sederhana setelah operasi beli dan jual.

Logika Strategi

Strategi ini menghitung rata-rata pergerakan harga buka, tinggi, rendah dan dekat untuk membangun Smoothed Heikin-Ashi.

Kondisi beli: Bar saat ini ditutup > bar sebelumnya ditutup, bar sebelumnya ditutup > 2 bar lalu ditutup, 3 bar terakhir bullish.

Kondisi jual: Bar saat ini ditutup < bar sebelumnya ditutup, bar sebelumnya ditutup < 2 bar lalu ditutup, 3 bar terakhir menurun.

Kedua kondisi pembelian dan penjualan mengharuskan sinyal terbaru menjadi 0 atau sinyal berlawanan, untuk menghindari perdagangan arah yang sama berturut-turut.

Analisis Keuntungan

  • Logika sederhana dengan indikator tunggal
  • Menggunakan tren Heikin-Ashi mengikuti kemampuan
  • Hindari kehilangan tren atau perdagangan sebaliknya melalui pola candlestick
  • Mengurangi perdagangan yang tidak perlu dengan menyaring sinyal duplikat

Analisis Risiko

  • Heikin-Ashi memiliki efek keterlambatan, mungkin melewatkan titik balik tren
  • Hanya mempertimbangkan 3 bar terakhir, kurangnya penilaian tren jangka panjang
  • Tidak ada set stop loss, risiko peningkatan kerugian
  • mengabaikan kondisi pasar secara keseluruhan, rentan terhadap risiko sistematis

Peningkatan dapat dilakukan dengan menggabungkan indikator lain untuk tren jangka panjang, mengoptimalkan strategi stop loss, memperhatikan pasar secara keseluruhan dll.

Arahan Optimasi

  • Tambahkan indikator lain untuk menentukan tren jangka panjang
  • Optimalkan stop loss seperti trailing stop atau stop loss berdasarkan persentase
  • Pertimbangkan indeks pasar secara keseluruhan untuk menghindari perdagangan di pasar yang terikat rentang
  • Mengoptimalkan parameter seperti periode rata-rata bergerak
  • Menambahkan indikator volume untuk memastikan dukungan volume perdagangan

Ringkasan

Strategi ini memanfaatkan kemampuan Heikin-Ashi's trend following dan menggabungkan pola lilin untuk menentukan waktu masuk, sambil mengontrol frekuensi perdagangan melalui penyaringan sinyal duplikat. Logika sederhana dan mudah diterapkan.


/*backtest
start: 2022-09-30 00:00:00
end: 2023-10-06 00:00:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Masoud Abdoli
//Heikin Ashi Smoothed Buy & Sell Strategy Rev.4
//Date: 01-Oct-2021
//@version=4

strategy(title="Abdoli's Heikin Ashi Smoothed Buy & Sell Strategy Rev.4", shorttitle="Heikin-Ashi Smoothed Rev.4", overlay=true,
 initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

MaPeriod = input (title="Moving Average Period?", type=input.integer, defval=65, minval=5, maxval=100, step=5)

maOpen  = ema(open , MaPeriod)
maHigh  = ema(high , MaPeriod)
maLow   = ema(low  , MaPeriod)
maClose = ema(close, MaPeriod)

haClose = (maOpen+maHigh+maLow+maClose)/4
haOpen = 0.0
haOpen:= na(haOpen[1]) ? (maOpen[1]+maClose[1])/2 : (haOpen[1]+haClose[1])/2
haHigh = max(maHigh, max(haClose, haOpen))
haLow  = min(maLow , max(haClose, haOpen))

plotcandle(haOpen, haHigh, haLow, haClose, title="heikin-Ashi smoothed", color=haOpen>haClose ? color.orange : color.blue)

B0 = haClose    - haOpen
B1 = haClose[1] - haOpen[1]
B2 = haClose[2] - haOpen[2]
BuyCondition = B0 > 0.0 and B1 > 0.0 and B2 > 0.0 and haClose > haClose[1] and haClose[1] > haClose[2]
SellCondition= B0 < 0.0 and B1 < 0.0 and B2 < 0.0 and haClose < haClose[1] and haClose[1] < haClose[2]

last_signal = 0
Buy_final  = BuyCondition  and (nz(last_signal[1]) == 0 or nz(last_signal[1]) ==-1)
Sell_final = SellCondition and (nz(last_signal[1]) == 0 or nz(last_signal[1]) == 1)
last_signal := Buy_final ? 1 : Sell_final ? -1 : last_signal[1]

plotshape(Buy_final , style=shape.labelup  , location=location.belowbar, color=color.blue, title="Buy label" , text="BUY" , textcolor=color.white)
plotshape(Sell_final, style=shape.labeldown, location=location.abovebar, color=color.red , title="Sell label", text="SELL", textcolor=color.white)

strategy.entry("Buy", strategy.long, when=Buy_final)
strategy.close("Buy", when=Sell_final)

Lebih banyak