
La stratégie est un système de trading quantitatif basé sur plusieurs indicateurs techniques, combinant des indices de moyenne mobile (EMA), d’indice de volatilité relative (RVI) et des signaux de trading personnalisés pour la prise de décision de trading. Le système adopte des objectifs de stop-loss et de profit dynamiques, gère le risque via l’indicateur ATR et réalise un cadre de stratégie de trading complet.
La stratégie repose principalement sur trois composantes centrales pour prendre des décisions de transaction:
La stratégie utilise plusieurs indicateurs techniques et outils de gestion des risques pour construire un système de négociation relativement complet. Bien qu’il y ait des limites inhérentes, le système est susceptible d’obtenir de meilleures performances grâce à la direction d’optimisation suggérée. La clé est de surveiller et d’ajuster en permanence dans le monde réel pour s’assurer que la stratégie reste stable dans différents environnements de marché.
/*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)