
이 전략은 개량형 平安江氏 K선 ((Heikin-Ashi) 에 기반한 트렌드 추적 시스템이다. 전통적인 平安江氏 K선에 대해 이중 지수 이동 평균 ((EMA) 을 부드럽게 처리함으로써 시장 소음을 효과적으로 줄여주고 더 명확한 트렌드 신호를 제공한다. 전략은 단지 여러 가지 방법을 사용하여 상승 추세에서 지위를 유지하고 하락 추세에서 평소 위치를 전망하여 효율적인 추세 포착을 통해 시장 수익을 얻는다.
전략의 핵심 논리에는 다음과 같은 주요 단계가 포함됩니다.
이 전략은 이중 평형 처리 및 개선형平安江氏K선을 중심으로, 안정적인 트렌드 추적 시스템을 구축한다. 전략 설계는 간결하고 이해하기 쉽고 실행할 수 있으며, 다양한 시장 환경에 적응하기 위해 여러 가지 최적화 방향을 제공한다. 약간의 지연 및 철회 위험이 있지만, 합리적인 자금 관리 및 위험 제어 조치를 통해 전략은 투자자에게 신뢰할 수 있는 트렌드 추적 도구를 제공할 수 있다.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Smoothed Heiken Ashi Strategy Long Only", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
len = input.int(10, title="EMA Length")
len2 = input.int(10, title="Smoothing Length")
start_date = input(defval=timestamp("2020-01-01"), title="Backtest Start Date")
o = ta.ema(open, len)
c = ta.ema(close, len)
h = ta.ema(high, len)
l = ta.ema(low, len)
haclose = (o + h + l + c) / 4
var float haopen = na
haopen := na(haopen[1]) ? (o + c) / 2 : (haopen[1] + haclose[1]) / 2
hahigh = math.max(h, math.max(haopen, haclose))
halow = math.min(l, math.min(haopen, haclose))
o2 = ta.ema(haopen, len2)
c2 = ta.ema(haclose, len2)
h2 = ta.ema(hahigh, len2)
l2 = ta.ema(halow, len2)
col = o2 > c2 ? color.red : color.lime
// Plot candles without visible wicks
plotcandle(o2, o2, c2, c2, title="Heikin Smoothed", color=col, wickcolor=color.new(col, 100))
// Delayed Buy and Sell signals
colorChange = col != col[1]
buySignal = colorChange[1] and col[1] == color.lime
sellSignal = colorChange[1] and col[1] == color.red
plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.lime, style=shape.triangleup, size=size.small)
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
// Strategy entry and exit
if (true)
if (buySignal)
strategy.entry("Long", strategy.long)
if (sellSignal)
strategy.close("Long")
// Add a vertical line at the start date
// if (time == start_date)
// line.new(x1=bar_index, y1=low, x2=bar_index, y2=high, color=color.blue, width=2)
// Alert conditions
alertcondition(colorChange[1], title="Color Change Alert", message="Heiken Ashi Candle Color Changed")
alertcondition(buySignal, title="Buy Signal Alert", message="Buy Signal: Color changed from Red to Green")
alertcondition(sellSignal, title="Sell Signal Alert", message="Sell Signal: Color changed from Green to Red")