
이것은 올리버 발레즈의 거래 방법론에 기반한 삼중평준 트렌드 추적 전략이다. 이 전략은 20주기, 50주기, 200주기 이동 평균의 교차 신호를 사용하여 시장의 추세와 거래 기회를 식별한다. 200주기 평균은 주요 트렌드 필터로 사용되며 20주기, 50주기 평균의 교차는 특정 거래 신호를 생성하는 데 사용됩니다.
이 전략의 핵심 논리는 세 가지 핵심적인 측면을 포함하고 있습니다.
이것은 구조적으로 완전하고 논리적으로 명확한 트렌드 추적 전략이다. 트리플 평행선의 협동적 협동으로 트렌드 식별의 정확성을 보장하고 명확한 거래 신호를 제공합니다. 전략의 위험 관리 메커니즘은 상대적으로 완벽하지만 여전히 최적화 할 여지가 있습니다. 거래자는 실제 사용 전에 충분한 피드백을 수행하고 특정 거래 품종의 특성에 따라 매개 변수 설정을 조정하는 것이 좋습니다.
/*backtest
start: 2024-02-10 00:00:00
end: 2025-02-08 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Oliver Valez Triple MA Strategy", overlay=true, margin_long=100, margin_short=100)
// Inputs
ma20_length = input.int(20, "20-period MA Length", minval=1)
ma50_length = input.int(50, "50-period MA Length", minval=1)
ma200_length = input.int(200, "200-period MA Length", minval=1)
use_ema = input.bool(false, "Use EMA Instead of SMA")
sl_percent = input.float(2.0, "Stop Loss %", minval=0.0)
tp_percent = input.float(4.0, "Take Profit %", minval=0.0)
// Calculate MAs
ma20 = use_ema ? ta.ema(close, ma20_length) : ta.sma(close, ma20_length)
ma50 = use_ema ? ta.ema(close, ma50_length) : ta.sma(close, ma50_length)
ma200 = use_ema ? ta.ema(close, ma200_length) : ta.sma(close, ma200_length)
// Plot MAs
plot(ma20, "MA 20", color=color.new(color.blue, 0), linewidth=2)
plot(ma50, "MA 50", color=color.new(color.orange, 0), linewidth=2)
plot(ma200, "MA 200", color=color.new(color.red, 0), linewidth=2)
// Trend Filter
bullish_trend = close > ma200
bearish_trend = close < ma200
// Entry Conditions
long_condition = ta.crossover(ma20, ma50) and bullish_trend
short_condition = ta.crossunder(ma20, ma50) and bearish_trend
// Exit Conditions
exit_long = ta.crossunder(ma20, ma50)
exit_short = ta.crossover(ma20, ma50)
// Risk Management
stop_loss = strategy.position_avg_price * (1 - sl_percent/100)
take_profit = strategy.position_avg_price * (1 + tp_percent/100)
// Execute Trades
if (long_condition)
strategy.entry("Long", strategy.long)
strategy.exit("XL", "Long", stop=stop_loss, limit=take_profit)
if (short_condition)
strategy.entry("Short", strategy.short)
strategy.exit("XS", "Short", stop=stop_loss, limit=take_profit)
// Close trades on opposite signals
if (exit_long)
strategy.close("Long")
if (exit_short)
strategy.close("Short")
// Plot Signals
plotshape(long_condition, "Buy", shape.labelup, location.belowbar, color=color.green, text="BUY", textcolor=color.white)
plotshape(short_condition, "Sell", shape.labeldown, location.abovebar, color=color.red, text="SELL", textcolor=color.white)
// Background Color for Trend
bgcolor(bullish_trend ? color.new(color.green, 90) : bearish_trend ? color.new(color.red, 90) : na)