이 전략은 하이켄 아시 지표에 기반한 암호화폐 트렌드를 따르는 전략이다. 하이켄 아시와 다른 기간과 다양한 조건을 결합한 두 개의 기하급수적인 이동 평균 (EMA) 을 사용하여 거래 신호를 생성한다. 이 전략의 목표는 중장기 가격 추세를 파악하고 트렌드 반전이 발생했을 때 적시에 접근하는 것이다.
이 전략은 50 및 100 기간 EMA를 사용합니다. 한편, 시장 소음을 필터 할 수있는 특수 촛불인 하이켄 아시 촛불을 계산합니다. 이 전략은 하이켄 아시 촛불의 오픈, 클로즈, 고 및 저 가격을 사용하여 더 정확한 거래 신호를 생성하기 위해 100 기간 EMA에 적용합니다.
특히, 100주기 하이켄 아시의 오픈 가격은 클로즈 가격보다 높고, 이전 촛불의 오픈 가격은 클로즈 가격보다 낮을 때, 그것은 긴 신호입니다. 반대로, 100주기 하이켄 아시의 오픈 가격은 클로즈 가격보다 낮고, 이전 촛불의 오픈 가격은 클로즈 가격보다 높을 때, 그것은 짧은 신호입니다.
이 전략은 이중 EMA 시스템과 하이켄 아시 지표를 결합하여 중장기 트렌드가 형성될 때 적시에 기회를 포착하는 것을 목표로 한다. 이 전략은 하이켄 아시를 사용하여 단기 시장 소음을 필터링하여 거래 신호가 더 신뢰할 수 있도록 한다.
위험을 완화하기 위해, 우리는 적절하게 중지 손실 범위를 줄일 수 있습니다. 또는 추세 반전을 결정하기 위해 다른 지표를 결합하는 것을 고려할 수 있습니다. 시장이 범위에 묶인 기간에 들어갈 때, 우리는 또한 전략을 일시 중단하고 새로운 추세가 나타날 때까지 기다릴 수 있습니다.
이 전략은 다음 측면에서도 최적화 될 수 있습니다.
하이켄 아시 (Heiken Ashi) 를 기반으로 한 암호화폐 트렌드 다음 전략은 트렌드 판단, 엔트리 타이밍, 스톱 로스 제어 등과 같은 측면을 포괄적으로 고려하여 암호화폐와 같은 매우 변동성 있는 자산에 매우 적응력을 갖추고 있습니다. 하이켄 아시를 사용하여 소음을 필터링하고 강력한 리스크 제어 방법을 채택함으로써 전략은 중장기 가격 트렌드에 의해 제공되는 거래 기회를 효과적으로 포착 할 수 있습니다. 매개 변수, 지표 선택 및 리스크 제어 방법을 더 이상 최적화 할 수 있다면 전략의 성능에는 여전히 개선의 여지가 있습니다.
/*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")