이 전략은 이동 평균 크로스오버와 동적 ATR 스톱 로스 및 리프트를 기반으로 한 양적 거래 전략이다. 이 전략은 다른 기간을 가진 두 가지 간단한 이동 평균 (SMA) 을 사용하여 트레이딩 신호를 생성하고 평균 진정한 범위 (ATR) 를 사용하여 더 나은 위험 통제를 위해 동적으로 스톱 로스를 설정하고 수익 수준을 취합니다. 또한 전략은 안정성을 향상시키기 위해 다른 거래 세션에 기반한 거래 신호를 필터링합니다.
이 전략의 핵심 원칙은 이동 평균 크로스오버를 사용하여 가격 트렌드의 변화를 포착하는 것입니다. 빠른 이동 평균이 느린 이동 평균을 넘을 때 구매 신호가 생성됩니다. 반대로, 빠른 이동 평균이 느린 이동 평균을 넘을 때 판매 신호가 생성됩니다. 동시에 전략은 ATR을 사용하여 동적으로 스톱 로스를 설정하고 수익 수준을 취합니다. 수익을 취하는 수준은 입시 가격과 ATR의 3배로 설정되며, 스톱 로스 수준은 입시 가격 마이너스 ATR의 1.5배로 설정됩니다. 또한 전략은 유동성이 낮은 기간 동안 거래를 피하기 위해 유럽 거래 세션 중에 거래 신호를 생성합니다.
이 전략은 ATR로 위험을 제어하면서 이동 평균 크로스오버를 사용하여 가격 추세를 포착하는 간단하고 이해하기 쉬운 트렌드 추적 전략입니다. 전략에는 특정 위험이 있지만 매개 변수 최적화, 신호 필터링 및 리스크 관리 향상으로 더 향상 될 수 있습니다. 초보자에게는이 전략이 훌륭한 학습 및 연습 예입니다.
/*backtest start: 2024-04-01 00:00:00 end: 2024-04-30 23:59:59 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Enhanced Moving Average Crossover Strategy", overlay=true) // Input parameters fastLength = input(10, title="Fast MA Length") slowLength = input(50, title="Slow MA Length") atrLength = input(14, title="ATR Length") riskPerTrade = input(1, title="Risk Per Trade (%)") / 100 // Time-based conditions isLondonSession = hour >= 8 and hour <= 15 isAsianSession = hour >= 0 and hour <= 7 isEuropeanSession = hour >= 7 and hour <= 14 // Moving Averages fastMA = ta.sma(close, fastLength) slowMA = ta.sma(close, slowLength) // Average True Range (ATR) for dynamic stop loss and take profit atr = ta.atr(atrLength) // Buy and Sell Conditions buySignal = ta.crossover(fastMA, slowMA) sellSignal = ta.crossunder(fastMA, slowMA) // Dynamic stop loss and take profit stopLoss = close - atr * 1.5 takeProfit = close + atr * 3 // Strategy Logic if (buySignal and isEuropeanSession) strategy.entry("Buy", strategy.long) strategy.exit("Take Profit/Stop Loss", "Buy", limit=takeProfit, stop=stopLoss) if (sellSignal and isEuropeanSession) strategy.entry("Sell", strategy.short) strategy.exit("Take Profit/Stop Loss", "Sell", limit=takeProfit, stop=stopLoss) // Plotting plot(fastMA, color=color.blue, title="Fast MA") plot(slowMA, color=color.red, title="Slow MA") plotshape(series=buySignal, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(series=sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")