이 전략은 단순 이동 평균 (SMA) 의 기울기를 기반으로 상승 추세를 식별하고 특정 조건이 충족되면 긴 포지션을 진입합니다. 이는 스톱-러스 가격을 동적으로 조정함으로써 이익을 보호하기 위해 선택적 인 트레일링 스톱-러스 메커니즘을 통합합니다. 또한 전략은 과도하게 높은 가격으로 포지션을 진입하는 것을 방지하기 위해 스톱-러스 이벤트 후 재 진입 조건을 설정합니다. 이러한 기능으로 전략은 상승 추세를 효과적으로 파악하고 위험을 관리하며 규율적인 거래를 보장합니다.
이 전략은 SMA 트렌드 추적, 트래일링 스톱 로스 및 규율된 재입구 메커니즘을 활용하여 리스크를 관리하는 동시에 상승 트렌드를 포착합니다. 매개 변수 설정을 최적화하고 리스크 관리를 강화하고, 긴 단위 거래를 지원하고, 멀티 타임프레임 확인을 통합함으로써 전략의 적응력과 견고성을 더욱 향상시킬 수 있습니다.
/*backtest start: 2023-05-28 00:00:00 end: 2024-06-02 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("MA Incline Strategy with Optional Trailing Stop-Loss", overlay=true, calc_on_every_tick=true) // Input parameters windowSize = input.int(20, title="Window Size") maLength = input.int(150, title="Moving Average Length") minSlope = input.float(0.1, title="Minimum Slope") useTrailingStop = input.bool(true, title="Use Trailing Stop-Loss") trailingStopPercentage = input.float(2.8, title="Trailing Stop Percentage (%)") / 100 // Calculate the moving average ma = ta.sma(close, maLength) // Calculate the slope of the moving average over the window size previousMa = ta.sma(close[windowSize], maLength) slopeMa = (ma - previousMa) / windowSize // Check conditions isAboveMinSlope = slopeMa > minSlope isAboveMa = close > ma // Buy condition buyCondition = isAboveMinSlope and isAboveMa // Execute strategy if (buyCondition and strategy.opentrades == 0) strategy.entry("Long", strategy.long) // Trailing stop-loss (optional) if (strategy.opentrades == 1 and useTrailingStop and isAboveMa) // Calculate the trailing stop price trailPrice = close * (1 - trailingStopPercentage) // Use the built-in strategy.exit function with the trailing stop strategy.exit("Trail Stop", "Long", stop=trailPrice) // Exit condition sellCondition = ta.crossover(ma, close) if (sellCondition and strategy.opentrades == 1) strategy.close("Long")