이 전략은 여러 가지 기하급수적인 이동 평균 (EMA) 을 기반으로하는 트렌드 추적 시스템이다. 단기 및 장기 EMA 그룹의 평균을 계산하여 시장 트렌드를 식별하고 크로스오버에서 거래 신호를 생성합니다. 전략은 리스크를 제어하고 수익을 확보하기 위해 수익을 취하고 손실을 멈추는 메커니즘을 통합합니다.
이 전략은 6개의 단기 EMA (3, 5, 8, 10, 12, 15 기간) 와 6개의 장기 EMA (30, 35, 40, 45, 50, 60 기간) 를 사용한다. 이 EMA를 개별적으로 평균화함으로써 단기 및 장기 트렌드 지표를 원활하게 만듭니다. 단기 평균이 장기 평균을 넘을 때 긴 포지션은 시작되며 단기 평균이 그 아래를 넘을 때 짧은 포지션은 취득된다. 각 거래는 10%의 영업률과 5%의 스톱 로스 수준으로 관리된다.
이것은 여러 EMA의 조합을 통해 비교적 신뢰할 수 있는 거래 신호를 제공하는 잘 구성된 트렌드 추적 전략입니다. 일부 내재된 지연 위험을 지니고 있지만 적절한 수익 및 스톱 로스 설정 및 제안된 최적화 방향으로 전반적인 성능을 더욱 향상시킬 수 있습니다. 이 전략은 명확한 트렌드를 보이는 시장에 특히 적합합니다.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-10 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Pavan Guppy Strategy", shorttitle="Pavan Avg", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10) // Short-term EMAs shortEMA1 = ta.ema(close, 3) shortEMA2 = ta.ema(close, 5) shortEMA3 = ta.ema(close, 8) shortEMA4 = ta.ema(close, 10) shortEMA5 = ta.ema(close, 12) shortEMA6 = ta.ema(close, 15) // Long-term EMAs longEMA1 = ta.ema(close, 30) longEMA2 = ta.ema(close, 35) longEMA3 = ta.ema(close, 40) longEMA4 = ta.ema(close, 45) longEMA5 = ta.ema(close, 50) longEMA6 = ta.ema(close, 60) // Average short-term EMAs shortAvg = (shortEMA1 + shortEMA2 + shortEMA3 + shortEMA4 + shortEMA5 + shortEMA6) / 6.0 // Average long-term EMAs longAvg = (longEMA1 + longEMA2 + longEMA3 + longEMA4 + longEMA5 + longEMA6) / 6.0 // Plot averaged EMAs plot(shortAvg, color=color.green, linewidth=2, title="Averaged Short-term EMAs") plot(longAvg, color=color.red, linewidth=2, title="Averaged Long-term EMAs") // Define the target and stop loss percentages takeProfitPerc = 10 stopLossPerc = 5 // Generate buy signal when shortAvg crosses above longAvg if ta.crossover(shortAvg, longAvg) strategy.entry("Buy", strategy.long) // Generate sell signal when shortAvg crosses below longAvg if ta.crossunder(shortAvg, longAvg) strategy.entry("Sell", strategy.short) // Calculate take profit and stop loss prices for long trades longTakeProfit = close * (1 + (takeProfitPerc / 100.0)) longStopLoss = close * (1 - (stopLossPerc / 100.0)) // Set take profit and stop loss for long positions strategy.exit("Take Profit/Stop Loss", from_entry="Buy", limit=longTakeProfit, stop=longStopLoss) // Calculate take profit and stop loss prices for short trades shortTakeProfit = close * (1 - takeProfitPerc / 100.0) shortStopLoss = close * (1 + stopLossPerc / 100.0) // Set take profit and stop loss for short positions strategy.exit("Take Profit/Stop Loss", from_entry="Sell", limit=shortTakeProfit, stop=shortStopLoss)