Tren Cryptocurrency Mengikuti Strategi Berdasarkan Heiken Ashi

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

img

Ringkasan

Strategi ini adalah strategi trend cryptocurrency berdasarkan penunjuk Heiken Ashi. Ia menggunakan dua purata bergerak eksponensial (EMA) dengan tempoh yang berbeza digabungkan dengan Heiken Ashi dan pelbagai keadaan untuk menghasilkan isyarat perdagangan. Matlamat strategi ini adalah untuk mengenal pasti trend harga jangka menengah hingga panjang dan masuk tepat pada masanya apabila pembalikan trend berlaku.

Logika Strategi

Strategi ini menggunakan EMA 50 dan 100 tempoh. Sementara itu, ia mengira lilin Heiken Ashi, yang merupakan lilin khas yang boleh menapis bunyi pasaran. Strategi ini menggunakan harga terbuka, dekat, tinggi dan rendah lilin Heiken Ashi dan menerapkannya ke EMA 100 tempoh untuk menjana isyarat perdagangan yang lebih tepat.

Secara khusus, apabila harga bukaan Heiken Ashi 100 tempoh di atas harga penutupan, dan harga bukaan lilin sebelumnya di bawah harga penutupan, ia adalah isyarat panjang. Sebaliknya, apabila harga bukaan Heiken Ashi 100 tempoh di bawah harga penutupan, dan harga bukaan lilin sebelumnya di atas harga penutupan, ia adalah isyarat pendek.

Strategi ini menggabungkan sistem EMA berganda dan penunjuk Heiken Ashi, bertujuan untuk menangkap peluang tepat pada masanya apabila trend jangka menengah hingga panjang terbentuk.

Kelebihan

  • Menggunakan Heiken Ashi boleh menapis bunyi secara berkesan dan membuat isyarat perdagangan lebih jelas
  • EMA berganda digabungkan dengan Heiken Ashi dapat mengenal pasti trend jangka menengah hingga panjang yang agak kuat
  • Penghakiman pelbagai keadaan membantu mengelakkan kehilangan peluang yang baik
  • Strategi ini sangat sesuai untuk pasaran cryptocurrency yang sangat tidak menentu
  • Ia boleh dikonfigurasikan sebagai strategi jangka panjang untuk mengurangkan risiko perdagangan

Risiko

  • Mungkin ada kerugian besar kerana stop loss terlalu longgar
  • Strategi ini boleh menghasilkan perdagangan yang lebih tidak berkesan di pasaran terhad
  • Masih ada beberapa tahap kelewatan dalam Heiken Ashi, tidak dapat sepenuhnya mengelakkan risiko
  • Ia tidak dapat menentukan titik pembalikan trend, menghadapi risiko peningkatan kerugian

Untuk mengurangkan risiko, kita boleh mengurangkan julat stop loss dengan sewajarnya, atau mempertimbangkan menggabungkan penunjuk lain untuk menentukan pembalikan trend.

Arahan pengoptimuman

Strategi ini juga boleh dioptimumkan dalam aspek berikut:

  • Mengoptimumkan parameter EMA untuk mencari kombinasi parameter terbaik
  • Cuba penunjuk lain untuk menggantikan Heiken Ashi, seperti KDJ, MACD dll.
  • Tambah harga pecah sebagai pengesahan kemasukan
  • Menggabungkan penunjuk turun naik untuk menentukan pembalikan trend
  • Gunakan kaedah pembelajaran mesin untuk mengoptimumkan parameter secara dinamik

Kesimpulan

Strategi trend berikut cryptocurrency berdasarkan Heiken Ashi telah mempertimbangkan aspek-aspek seperti penilaian trend, masa masuk, kawalan stop loss dan lain-lain, menjadikannya sangat beradaptasi dengan aset yang sangat tidak menentu seperti mata wang kripto. Dengan menggunakan Heiken Ashi untuk menapis bunyi bising dan mengamalkan kaedah kawalan risiko yang kukuh, strategi ini dapat dengan berkesan merebut peluang perdagangan yang dibawa oleh trend harga jangka menengah hingga panjang. Masih ada banyak ruang untuk peningkatan dalam prestasi strategi jika kita dapat mengoptimumkan parameter, pemilihan penunjuk dan kaedah kawalan 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 lanjut