
이 전략은 트렌드 추적과 동력 분석의 두 가지 방법을 결합하여, 간단한 이동 평균 (SMA) 과 이동 평균의 수렴 분산 (MACD) 지표를 사용하여 잠재적인 거래 기회를 식별한다. 전략은 트렌디로 지표 (SMA 기반의 트렌드 지표) 를 통해 전체 시장의 흐름을 결정하며, MACD의 제로 라인 크로스 (zero line cross) 를 사용하여 단기 동력의 변화를 포착한다.
이 전략의 핵심 논리는 다음과 같은 몇 가지 핵심 요소에 기반합니다.
구체적으로, MACD 라인이 0 라인을 아래에서 통과하면 () 상부로 이동하고, 종결 가격이 트렌디로 라인보다 높으면, 다중 신호가 발생한다. 반대로, MACD 라인이 0 라인을 위에서 통과하면 () 하부로 이동하고, 종결 가격이 트렌디로 라인보다 낮으면, 공백 신호가 발생한다. 출입 후, 전략은 ATR 기반의 손실 및 수익 수준을 사용하여 위험을 관리하고 수익을 잠금합니다.
이 전략은 트렌드 추적과 동적 분석을 교묘하게 결합하여 트렌디로와 MACD의 조화 작용을 통해 거래자에게 비교적 포괄적인 시장 분석 프레임워크를 제공합니다. 동적 위험 관리 방법은 전략의 적응성을 강화하여 다양한 시장 환경에서 안정성을 유지할 수 있습니다. 그러나 거래자는이 전략을 사용하는 데 신중해야합니다. 특히 파라미터 최적화 및 위험 제어와 관련하여. 지속적인 모니터링과 최적화를 통해 이 전략은 신뢰할 수있는 거래 도구가 될 가능성이 있으며 특히 트렌드 시장에서 기회를 잡기를 원하는 투자자에게 적합합니다.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-09-24 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("NNFX Trendilo + Zero MACD Strategy", overlay=true)
// --- Inputs ---
atrPeriod = input.int(14, title="ATR Period")
stopLossMultiplier = input.float(1.5, minval=0.0, maxval = 20.0, step = 0.1 ,title="Stop Loss Multiplier")
takeProfitMultiplier = input.float(2.0, minval=0.0 , maxval = 20.0, step = 0.1,title="Take Profit Multiplier")
// --- Trendilo ---
trendiloPeriod = input.int(50, title="Trendilo Period")
trendilo = ta.sma(close, trendiloPeriod)
// --- MACD ---
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
macdZeroCrossUp = ta.crossover(macdLine, 0)
macdZeroCrossDown = ta.crossunder(macdLine, 0)
// --- ATR for Stop Loss and Take Profit ---
atr = ta.atr(atrPeriod)
stopLoss = atr * stopLossMultiplier
takeProfit = atr * takeProfitMultiplier
// --- Trading Logic ---
longCondition = macdZeroCrossUp and close > trendilo
shortCondition = macdZeroCrossDown and close < trendilo
// --- Execute Long Trades ---
if (longCondition)
strategy.entry("Buy", strategy.long)
strategy.exit("Take Profit/Stop Loss", "Buy", limit=close + takeProfit, stop=close - stopLoss)
// --- Execute Short Trades ---
if (shortCondition)
strategy.entry("Sell", strategy.short)
strategy.exit("Take Profit/Stop Loss", "Sell", limit=close - takeProfit, stop=close + stopLoss)
// --- Plot Signals ---
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")
// --- Plot Trendilo ---
plot(trendilo, color=color.blue, linewidth=2)