이 전략은 와이코프 방법론에 기초하고 있으며, 상대 강도 지수 (RSI) 와 볼륨 이동 평균 (Volume MA) 를 결합하여 시장의 축적 및 유통 단계를 식별하여 구매 및 판매 신호를 생성합니다. 또한 전략은 최대 유출 한계치를 설정하여 위험을 제어하기 위해 동적 인 유출 중지 손실 메커니즘을 사용합니다.
RSI 동적 인하 스톱-손실 전략은 리스크를 제어하기 위해 동적 인하 스톱-손실 메커니즘을 사용하는 동시에 RSI 및 볼륨 지표를 결합하여 시장의 축적 및 분배 단계를 식별합니다. 전략은 시장 추세와 리스크 관리 모두를 고려하여 어느 정도 실용화됩니다. 그러나 전략의 성능은 지표 매개 변수와 시장 특성에 따라 선택되며 안정성과 수익성을 향상시키기 위해 지속적인 최적화와 조정이 필요합니다.
/*backtest start: 2024-05-07 00:00:00 end: 2024-06-06 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Wyckoff Methodology Strategy with Max Drawdown", overlay=true) // Define input parameters length = input(14, title="RSI Length") overbought = input(70, title="RSI Overbought Level") oversold = input(30, title="RSI Oversold Level") volume_length = input(20, title="Volume MA Length") initial_capital = input(10000, title="Initial Capital") max_drawdown = input(500, title="Max Drawdown") // Calculate RSI rsi = ta.rsi(close, length) // Calculate Volume Moving Average vol_ma = ta.sma(volume, volume_length) // Identify Accumulation Phase accumulation = ta.crossover(rsi, oversold) and volume > vol_ma // Identify Distribution Phase distribution = ta.crossunder(rsi, overbought) and volume > vol_ma // Plot RSI hline(overbought, "Overbought", color=color.red) hline(oversold, "Oversold", color=color.green) plot(rsi, title="RSI", color=color.blue) // Plot Volume and Volume Moving Average plot(volume, title="Volume", color=color.orange, style=plot.style_histogram) plot(vol_ma, title="Volume MA", color=color.purple) // Variables to track drawdown var float max_equity = initial_capital var float drawdown = 0.0 // Update max equity and drawdown current_equity = strategy.equity if (current_equity > max_equity) max_equity := current_equity drawdown := max_equity - current_equity // Generate Buy and Sell Signals if (accumulation and drawdown < max_drawdown) strategy.entry("Buy", strategy.long) if (distribution and drawdown < max_drawdown) strategy.entry("Sell", strategy.short) // Plot Buy and Sell signals on chart plotshape(series=accumulation, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal", text="BUY") plotshape(series=distribution, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal", text="SELL") // Close positions if drawdown exceeds max drawdown if (drawdown >= max_drawdown) strategy.close_all("Max Drawdown Exceeded") // Set strategy exit conditions strategy.close("Buy", when=distribution or drawdown >= max_drawdown) strategy.close("Sell", when=accumulation or drawdown >= max_drawdown) // Display drawdown on chart plot(drawdown, title="Drawdown", color=color.red, linewidth=2, style=plot.style_stepline)