이 전략은 하이킨-아시 촛불과 기하급수적인 이동 평균 (EMA) 크로스오버를 기반으로 한 멀티 타임프레임 트렌드 다음 시스템이다. 하이킨-아시 촛불의 매끄러운 특성을 다른 시간 프레임에 걸쳐 이동 평균의 트렌드 다음 기능과 결합하여 시장 트렌드를 정확하게 캡처하기 위해 MACD를 추가 필터로 사용합니다. 전략은 60 분, 180 분 및 15 분 시간 프레임에 걸쳐 신호를 계산하고 검증하는 계층적 시간 프레임 디자인을 사용합니다.
핵심 논리는 몇 가지 핵심 요소를 포함합니다.
이 전략은 MACD 필터링과 결합한 다중 타임프레임 하이킨-아시 및 EMA 시스템을 사용하여 전체 트렌드 다음 거래 시스템을 구축합니다. 이 설계는 매개 변수 최적화 및 리스크 제어 메커니즘을 통해 다른 시장 환경에 적응할 수있는 신호 신뢰성과 시스템 안정성을 철저히 고려합니다. 이 전략의 핵심 강점은 신호 평형화 및 다중 검증 메커니즘에 있으며 불안정한 시장 위험과 매개 변수 최적화 문제에주의를 기울여야합니다.
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-04 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © tradingbauhaus //@version=5 strategy("Heikin Ashi Candle Time Frame @tradingbauhaus", shorttitle="Heikin Ashi Candle Time Frame @tradingbauhaus", overlay=true) // Inputs res = input.timeframe(title="Heikin Ashi Candle Time Frame", defval="60") hshift = input.int(1, title="Heikin Ashi Candle Time Frame Shift") res1 = input.timeframe(title="Heikin Ashi EMA Time Frame", defval="180") mhshift = input.int(0, title="Heikin Ashi EMA Time Frame Shift") fama = input.int(1, title="Heikin Ashi EMA Period") test = input.int(1, title="Heikin Ashi EMA Shift") sloma = input.int(30, title="Slow EMA Period") slomas = input.int(1, title="Slow EMA Shift") macdf = input.bool(false, title="With MACD filter") res2 = input.timeframe(title="MACD Time Frame", defval="15") macds = input.int(1, title="MACD Shift") // Heikin Ashi calculation var float ha_open = na ha_close = (open + high + low + close) / 4 ha_open := na(ha_open[1]) ? (open + close) / 2 : (ha_open[1] + ha_close[1]) / 2 ha_high = math.max(high, math.max(ha_open, ha_close)) ha_low = math.min(low, math.min(ha_open, ha_close)) // Adjusted Heikin Ashi Close for different timeframes mha_close = request.security(syminfo.tickerid, res1, ha_close[mhshift]) // MACD calculation [macdLine, signalLine, _] = ta.macd(close, 12, 26, 9) macdl = request.security(syminfo.tickerid, res2, macdLine[macds]) macdsl = request.security(syminfo.tickerid, res2, signalLine[macds]) // Moving Averages fma = ta.ema(mha_close[test], fama) sma = ta.ema(ha_close[slomas], sloma) plot(fma, title="Heikin Ashi EMA", color=color.green, linewidth=2) plot(sma, title="Slow EMA", color=color.red, linewidth=2) // Strategy Logic golong = ta.crossover(fma, sma) and (macdl > macdsl or not macdf) goshort = ta.crossunder(fma, sma) and (macdl < macdsl or not macdf) // Plot Shapes for Buy/Sell Signals plotshape(golong, color=color.green, text="Buy", style=shape.triangleup, location=location.belowbar) plotshape(goshort, color=color.red, text="SELL", style=shape.triangledown, location=location.abovebar) // Strategy Orders strategy.entry("Long", strategy.long, when=golong) strategy.close("Long", when=goshort) strategy.entry("Short", strategy.short, when=goshort) strategy.close("Short", when=golong) // Alerts alertcondition(golong, "Heikin Ashi BUY", "") alertcondition(goshort, "Heikin Ashi SELL", "")