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.
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.
Untuk mengurangkan risiko, kita boleh mengurangkan julat stop loss dengan sewajarnya, atau mempertimbangkan menggabungkan penunjuk lain untuk menentukan pembalikan trend.
Strategi ini juga boleh dioptimumkan dalam aspek berikut:
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")