
この戦略は,Wyckoff方法論に基づいて,相対的に強い指数 ((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)