
이 전략은 다중 기술 지표를 기반으로 한 정량 거래 시스템으로, 지수 이동 평균 (EMA), 상대 변동 지수 (RVI) 및 사용자 정의 거래 신호를 결합하여 거래 결정을 내립니다. 이 시스템은 동적 인 손실 및 수익 목표를 채택하고 ATR 지표를 통해 위험을 관리하여 포괄적인 거래 전략 프레임 워크를 구현합니다.
이 전략은 세 가지 핵심 요소를 기반으로 거래 결정을 내립니다.
이 전략은 여러 가지 기술 지표와 위험 관리 도구를 통합하여 비교적 완전한 거래 시스템을 구축합니다. 일부 고유 한 한계가 있지만, 제안 된 최적화 방향에 따라 시스템이 더 나은 성능을 얻을 수 있습니다. 전략이 다양한 시장 환경에서 안정성을 유지할 수 있도록 실물에서 지속적인 모니터링과 조정을 수행하는 것이 중요합니다.
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Gold Bot with Viamanchu, EMA20/200, and RVI - 3min", overlay=true)
// Parámetros de las EMAs
ema20 = ta.ema(close, 20)
ema200 = ta.ema(close, 200)
// Relative Volatility Index (RVI)
rvi_length = input(14, title="RVI Length")
rvi = ta.rma(close - close[1], rvi_length) / ta.rma(math.abs(close - close[1]), rvi_length)
// Simulación de Viamanchu (aleatoria para demo, se debe reemplazar por señal de Viamanchu real)
var int seed = time
simulated_vi_manchu_signal = math.random() > 0.5 ? 1 : -1 // 1 para compra, -1 para venta (puedes sustituir por la lógica de Viamanchu)
// Gestión de riesgos: Stop Loss y Take Profit usando ATR
atr_length = input(14, title="ATR Length")
atr = ta.atr(atr_length)
atr_multiplier = input.float(1.5, title="ATR Multiplier for Stop Loss/Take Profit")
stop_loss_level = strategy.position_avg_price - (atr * atr_multiplier)
take_profit_level = strategy.position_avg_price + (atr * atr_multiplier)
// Condiciones de entrada
longCondition = ta.crossover(ema20, ema200) and rvi > 0 and simulated_vi_manchu_signal == 1
shortCondition = ta.crossunder(ema20, ema200) and rvi < 0 and simulated_vi_manchu_signal == -1
// Ejecutar compra (long)
if (longCondition)
strategy.entry("Compra", strategy.long, stop=stop_loss_level, limit=take_profit_level)
// Ejecutar venta (short)
if (shortCondition)
strategy.entry("Venta", strategy.short, stop=stop_loss_level, limit=take_profit_level)
// Visualización de las condiciones de entrada en el gráfico
plotshape(series=longCondition, title="Compra señal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, title="Venta señal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Visualización de las EMAs en el gráfico
plot(ema20, color=color.blue, title="EMA 20")
plot(ema200, color=color.red, title="EMA 200")
// Visualización del RVI en el gráfico
plot(rvi, color=color.green, title="RVI")
hline(0, "Nivel 0", color=color.gray)