Chiến lược này là một chiến lược theo xu hướng tiền điện tử dựa trên chỉ số Heiken Ashi. Nó sử dụng hai trung bình động theo cấp số nhân (EMA) với các khoảng thời gian khác nhau kết hợp với Heiken Ashi và các điều kiện khác nhau để tạo ra tín hiệu giao dịch. Mục tiêu của chiến lược này là xác định xu hướng giá trung và dài hạn và kịp thời khi xu hướng đảo ngược xảy ra.
Chiến lược sử dụng EMA 50 và 100 giai đoạn. Trong khi đó, nó tính toán nến Heiken Ashi, đó là một nến đặc biệt có thể lọc ra tiếng ồn thị trường. Chiến lược sử dụng giá mở, đóng, cao và thấp của nến Heiken Ashi và áp dụng chúng cho EMA 100 giai đoạn để tạo ra các tín hiệu giao dịch chính xác hơn.
Cụ thể, khi giá mở của Heiken Ashi 100 giai đoạn cao hơn giá đóng, và giá mở của nến trước thấp hơn giá đóng, đó là tín hiệu dài. Ngược lại, khi giá mở của Heiken Ashi 100 giai đoạn thấp hơn giá đóng, và giá mở của nến trước cao hơn giá đóng, đó là tín hiệu ngắn.
Chiến lược này kết hợp hệ thống EMA kép và chỉ số Heiken Ashi, nhằm mục đích nắm bắt các cơ hội kịp thời khi các xu hướng trung hạn đến dài hạn hình thành.
Để giảm thiểu rủi ro, chúng ta có thể giảm đúng phạm vi dừng lỗ, hoặc xem xét kết hợp các chỉ số khác để xác định sự đảo ngược xu hướng. Khi thị trường bước vào một giai đoạn giới hạn phạm vi, chúng ta cũng có thể tạm dừng chiến lược và chờ xu hướng mới xuất hiện.
Chiến lược cũng có thể được tối ưu hóa trong các khía cạnh sau:
Chiến lược theo xu hướng tiền điện tử dựa trên Heiken Ashi đã xem xét toàn diện các khía cạnh như phán đoán xu hướng, thời gian nhập cảnh, kiểm soát dừng lỗ vv, làm cho nó rất thích nghi với các tài sản biến động cao như tiền điện tử. Bằng cách sử dụng Heiken Ashi để lọc ra tiếng ồn và áp dụng các phương pháp kiểm soát rủi ro mạnh mẽ, chiến lược có thể nắm bắt hiệu quả các cơ hội giao dịch do xu hướng giá trung và dài hạn mang lại.
/*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")