이 전략은 두 개의 기하급수적인 이동 평균 (EMA) 을 사용하여 가격 트렌드의 변화를 파악합니다. 단기 EMA가 아래에서 장기 EMA를 넘을 때 구매 신호가 생성됩니다. 단기 EMA가 위에서 장기 EMA를 넘을 때 판매 신호가 생성됩니다. 전략은 또한 일일 손실과 이익을 제어하기 위해 매일 스톱 로스 및 영업 한도를 설정합니다.
EMA 이중 이동 평균 크로스오버 전략은 트렌딩 시장에 적합한 간단하고 이해하기 쉬운 거래 전략이다. 빠르고 느린 이동 평균의 크로스오버를 사용하여 가격 트렌드의 변화를 비교적 잘 파악할 수 있다. 동시에, 일일 스톱 로스 및 테이크 노프트 설정은 위험을 효과적으로 제어할 수 있다. 그러나, 전략은 불안한 시장이나 트렌드 역전 시에는 저성공할 수 있으며, 다른 기술적 지표와 분석 방법을 결합하여 최적화 및 개선되어야 한다.
/*backtest start: 2023-06-01 00:00:00 end: 2024-06-06 00:00:00 period: 1d basePeriod: 1h 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/ // © DD173838 //@version=5 strategy("Moving Average Strategy with Daily Limits", overlay=true) // Moving Average settings shortMaLength = input.int(9, title="Short MA Length") longMaLength = input.int(21, title="Long MA Length") // Calculate MAs shortMa = ta.ema(close, shortMaLength) longMa = ta.ema(close, longMaLength) // Plot MAs plot(shortMa, title="9 EMA", color=color.blue) plot(longMa, title="21 EMA", color=color.red) // Strategy conditions crossUp = ta.crossover(shortMa, longMa) crossDown = ta.crossunder(shortMa, longMa) // Debug plots to check cross conditions plotshape(series=crossUp, title="Cross Up", location=location.belowbar, color=color.green, style=shape.labelup, text="UP") plotshape(series=crossDown, title="Cross Down", location=location.abovebar, color=color.red, style=shape.labeldown, text="DOWN") // Entry at cross signals if (crossUp) strategy.entry("Long", strategy.long) if (crossDown) strategy.entry("Short", strategy.short) // Daily drawdown and profit limits var float startOfDayEquity = na if (na(startOfDayEquity) or ta.change(time('D')) != 0) startOfDayEquity := strategy.equity maxDailyLoss = 50000 * 0.0025 maxDailyProfit = 50000 * 0.02 currentDailyPL = strategy.equity - startOfDayEquity if (currentDailyPL <= -maxDailyLoss) strategy.close_all(comment="Max Daily Loss Reached") if (currentDailyPL >= maxDailyProfit) strategy.close_all(comment="Max Daily Profit Reached")