Strategi ini didasarkan pada satu indikator untuk meluruskan garis besar, untuk memungkinkan operasi perdagangan yang mudah. Strategi ini menggunakan indikator garis besar yang halus untuk mengidentifikasi arah tren, dan menggabungkan bentuk garis K sejarah untuk menentukan kapan masuk dan keluar untuk keuntungan.
Strategi ini dibangun dengan menghitung rata-rata bergerak untuk membangun garis lurus. Secara khusus, menghitung rata-rata bergerak dari harga pembukaan, harga tertinggi, harga terendah, dan harga penutupan, kemudian menghitung garis lurus dari garis lurus untuk harga pembukaan, harga tertinggi, harga terendah, dan harga penutupan.
Untuk menentukan kondisi pembelian: harga penutupan K line saat ini lebih besar dari harga penutupan K line sebelumnya, harga penutupan K line sebelumnya lebih besar dari harga penutupan dua K line sebelumnya, hampir tiga K line adalah yang.
Untuk menentukan kondisi penjualan: harga penutupan K line saat ini lebih kecil dari harga penutupan K line sebelumnya, harga penutupan K line sebelumnya lebih kecil dari harga penutupan dua K line sebelumnya, hampir tiga K line adalah negatif.
Kondisi pembelian dan penjualan harus memenuhi sinyal terakhir 0 atau sebaliknya, untuk menghindari transaksi berulang berturut-turut.
Perbaikan dapat dilakukan dengan mengkombinasikan indikator lain untuk menilai tren jangka panjang, mengoptimalkan strategi stop loss, dan memperhatikan lingkungan pasar besar.
Strategi ini menggunakan fitur pelacakan tren dari indikator garis keras, bekerja sama dengan bentuk garis K untuk menentukan waktu masuk, dengan memfilterkan sinyal pengulangan untuk mengontrol frekuensi perdagangan. Logika strategi sederhana dan jelas, mudah untuk diterapkan. Namun, strategi dapat ditingkatkan dengan kombinasi beberapa indikator, mengoptimalkan stop loss, memperhatikan posisi besar, dan lain-lain, sehingga strategi lebih stabil dan andal.
/*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)