Tren Cryptocurrency Mengikuti Strategi Berdasarkan Heiken Ashi

Penulis:ChaoZhang, Tanggal: 2024-01-19 17:40:52
Tag:

img

Gambaran umum

Strategi ini adalah strategi tren cryptocurrency berdasarkan indikator Heiken Ashi. Strategi ini menggunakan dua rata-rata bergerak eksponensial (EMA) dengan periode yang berbeda dikombinasikan dengan Heiken Ashi dan berbagai kondisi untuk menghasilkan sinyal perdagangan.

Logika Strategi

Strategi ini menggunakan EMA 50 dan 100 periode. Sementara itu, ia menghitung lilin Heiken Ashi, yang merupakan lilin khusus yang dapat menyaring kebisingan pasar. Strategi ini menggunakan harga terbuka, dekat, tinggi dan rendah lilin Heiken Ashi dan menerapkannya ke EMA 100 periode untuk menghasilkan sinyal perdagangan yang lebih akurat.

Secara khusus, ketika harga buka Heiken Ashi 100 periode berada di atas harga penutupan, dan harga buka lilin sebelumnya berada di bawah harga penutupan, itu adalah sinyal panjang. Sebaliknya, ketika harga buka Heiken Ashi 100 periode berada di bawah harga penutupan, dan harga buka lilin sebelumnya berada di atas harga penutupan, itu adalah sinyal pendek.

Strategi ini menggabungkan sistem EMA ganda dan indikator Heiken Ashi, yang bertujuan untuk menangkap peluang tepat waktu ketika tren jangka menengah hingga jangka panjang terbentuk.

Keuntungan

  • Menggunakan Heiken Ashi dapat secara efektif menyaring kebisingan dan membuat sinyal perdagangan lebih jelas
  • EMA ganda dikombinasikan dengan Heiken Ashi dapat mengidentifikasi tren jangka menengah hingga jangka panjang yang relatif kuat.
  • Penghakiman beberapa kondisi membantu menghindari kehilangan kesempatan yang baik
  • Strategi ini sangat cocok untuk pasar cryptocurrency yang sangat volatile
  • Hal ini dapat dikonfigurasi sebagai strategi hanya panjang untuk mengurangi risiko perdagangan

Risiko

  • Mungkin ada kerugian besar karena stop loss terlalu longgar
  • Strategi dapat menghasilkan perdagangan yang lebih tidak efektif di pasar yang terikat rentang
  • Masih ada beberapa tingkat keterlambatan di Heiken Ashi, tidak dapat sepenuhnya menghindari risiko
  • Ini tidak dapat menentukan titik pembalikan tren, menghadapi risiko peningkatan kerugian

Untuk mengurangi risiko, kita dapat secara tepat mengurangi rentang stop loss, atau mempertimbangkan untuk menggabungkan indikator lain untuk menentukan pembalikan tren.

Arahan Optimasi

Strategi ini juga dapat dioptimalkan dalam aspek berikut:

  • Mengoptimalkan parameter EMA untuk menemukan kombinasi parameter terbaik
  • Cobalah indikator lain untuk menggantikan Heiken Ashi, seperti KDJ, MACD dll.
  • Tambahkan harga pecah sebagai konfirmasi masuk
  • Menggabungkan indikator volatilitas untuk menentukan pembalikan tren
  • Menggunakan metode pembelajaran mesin untuk mengoptimalkan parameter secara dinamis

Kesimpulan

Strategi mengikuti tren cryptocurrency berdasarkan Heiken Ashi telah secara komprehensif mempertimbangkan aspek-aspek seperti penilaian tren, waktu masuk, kontrol stop loss, dll., Yang membuatnya sangat adaptif terhadap aset yang sangat fluktuatif seperti cryptocurrency. Dengan menggunakan Heiken Ashi untuk menyaring kebisingan dan mengadopsi metode pengendalian risiko yang kuat, strategi dapat secara efektif merebut peluang perdagangan yang dibawa oleh tren harga jangka menengah hingga panjang. Masih ada banyak ruang untuk perbaikan dalam kinerja strategi jika kita dapat lebih mengoptimalkan parameter, pemilihan indikator dan metode pengendalian risiko.


/*backtest
start: 2023-01-12 00:00:00
end: 2024-01-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//@SoftKill21
strategy(title="CRYPTO HA Strategy", shorttitle="CRYPTO HA Strategy", overlay=true , default_qty_type =strategy.percent_of_equity, default_qty_value =100, commission_type= strategy.commission.percent,commission_value =0.1 )


ma1_len = input(50)
ma2_len = input(100)

fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2020, title = "From Year", minval = 1970)
 //monday and session 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2020, title = "To Year", minval = 1970)

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true


//First Moving Average data
o = ema(open, ma1_len)
c = ema(close, ma1_len)
h = ema(high, ma1_len)
l = ema(low, ma1_len)

// === HA calculator ===
ha_t = heikinashi(syminfo.tickerid)
ha_o = security(ha_t, timeframe.period, o)
ha_c = security(ha_t, timeframe.period, c)
ha_h = security(ha_t, timeframe.period, h)
ha_l = security(ha_t, timeframe.period, l)

//Second Moving Average data

o2 = ema(ha_o, ma2_len)
c2 = ema(ha_c, ma2_len)
h2 = ema(ha_h, ma2_len)
l2 = ema(ha_l, ma2_len)

// === Color def ===
ha_col = o2 > c2 ? color.white : color.lime

sell = o2 > c2 and o2[1] < c2[1] and time_cond
buy = o2 < c2 and o2[1] > c2[1] and time_cond
plotshape(buy, color=color.green, text= "Buy", location= location.belowbar,style= shape.labelup, textcolor=color.white, size = size.tiny, title="Buy Alert",editable=false, transp=60)
plotshape(sell, color=color.red, text= "Sell", location= location.abovebar,style= shape.labeldown, textcolor=color.white, size = size.tiny, title="Sell Alert", editable=false, transp=60)

trendColor = buy ? color.red : sell ? color.green : na
plot( buy ? close: sell  ? close : na , color=trendColor, style=plot.style_line, linewidth=4, editable=false)



onlylong=input(true)
original=input(false)

if(onlylong)
    strategy.entry("long",1,when=buy)
    strategy.close("long",when=sell)
if(original)
    strategy.entry("long",1,when=buy)
    strategy.entry("short",0,when=sell)

sl = input(0.075)
strategy.exit("closelong", "long" , loss = close * sl / syminfo.mintick, alert_message = "sl point")
strategy.exit("closeshort", "short" , loss = close * sl / syminfo.mintick, alert_message = "sl point")




Lebih banyak