이 전략은 웨이브 트렌드 지표에 기반을 둔 양적 거래 시스템이며, 동적 리스크 관리 메커니즘을 통합합니다. 전략은 가격 변동을 통해 트렌드 강도를 계산하고, 과잉 구매 및 과잉 판매 지역의 신호를 필터하고, 스톱 로스, 취득 및 트레일링 스톱 메커니즘을 포함한 리스크 제어 조치를 적용합니다.
이 전략의 핵심은 HLC3 가격을 사용하여 웨이브 트렌드 지표를 계산하는 데 있다. 먼저 n 1 기간 기하급수적 이동 평균 (EMA) 을 기본 라인으로 계산하고, 그 다음 이 기본 라인에서 가격 오차를 계산하여 0,015 계수로 정상화한다. 이것은 각각 빠른 라인과 느린 라인을 나타내는 wt1 및 wt2 두 개의 파도 라인을 생성한다. 이러한 라인을 기반으로 거래 신호가 생성되며 과소매와 과소매 수준을 넘어서며 다층 리스크 제어 시스템과 결합된다.
이 전략은 웨이브트렌드 지표와 강력한 리스크 관리 시스템을 결합하여 포괄적인 양적 거래 접근 방식을 달성합니다. 이 전략의 핵심 강점은 적응력과 통제 된 리스크 노출에 있습니다. 그러나 거래자는 실제 시장 조건에 따라 매개 변수를 최적화하고 전략을 개선해야합니다. 지속적인 최적화와 정제로 인해이 전략은 실제 거래 환경에서 안정적인 수익을 달성하는 것을 약속합니다.
/*backtest start: 2024-11-12 00:00:00 end: 2024-12-11 08:00:00 period: 3h basePeriod: 3h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="WaveTrend [LazyBear] with Risk Management", shorttitle="WT_LB_RM", overlay=true) // Input Parameters n1 = input.int(10, "Channel Length") n2 = input.int(21, "Average Length") obLevel1 = input.int(60, "Over Bought Level 1") obLevel2 = input.int(53, "Over Bought Level 2") osLevel1 = input.int(-60, "Over Sold Level 1") osLevel2 = input.int(-53, "Over Sold Level 2") // Risk Management Inputs stopLossPercent = input.float(50.0, "Stop Loss (%)", minval=0.1, maxval=100) takeProfitPercent = input.float(5.0, "Take Profit (%)", minval=0.1, maxval=100) trailingStopPercent = input.float(3.0, "Trailing Stop (%)", minval=0.1, maxval=100) trailingStepPercent = input.float(2.0, "Trailing Stop Step (%)", minval=0.1, maxval=100) // WaveTrend Calculation ap = hlc3 esa = ta.ema(ap, n1) d = ta.ema(math.abs(ap - esa), n1) ci = (ap - esa) / (0.015 * d) tci = ta.ema(ci, n2) wt1 = tci wt2 = ta.sma(wt1, 4) // Plotting Original Indicators plot(0, color=color.gray) plot(obLevel1, color=color.red) plot(osLevel1, color=color.green) plot(obLevel2, color=color.red, style=plot.style_line) plot(osLevel2, color=color.green, style=plot.style_line) plot(wt1, color=color.green) plot(wt2, color=color.red, style=plot.style_line) plot(wt1-wt2, color=color.blue, style=plot.style_area, transp=80) // Buy and Sell Signals with Risk Management longCondition = ta.crossover(wt1, osLevel1) or ta.crossover(wt1, osLevel2) shortCondition = ta.crossunder(wt1, obLevel1) or ta.crossunder(wt1, obLevel2) // Strategy Entry with Risk Management if (longCondition) entryPrice = close stopLossPrice = entryPrice * (1 - stopLossPercent/100) takeProfitPrice = entryPrice * (1 + takeProfitPercent/100) strategy.entry("Long", strategy.long) strategy.exit("Long Exit", "Long", stop=stopLossPrice, limit=takeProfitPrice, trail_price=close * (1 + trailingStopPercent/100), trail_offset=close * (trailingStepPercent/100)) if (shortCondition) entryPrice = close stopLossPrice = entryPrice * (1 + stopLossPercent/100) takeProfitPrice = entryPrice * (1 - takeProfitPercent/100) strategy.entry("Short", strategy.short) strategy.exit("Short Exit", "Short", stop=stopLossPrice, limit=takeProfitPrice, trail_price=close * (1 - trailingStopPercent/100), trail_offset=close * (trailingStepPercent/100))