この戦略は,リラティブ・ストラント・インデックス (RSI) とボリューム・ムービング・アベア (ボリューム・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)