En la carga de los recursos... Cargando...

Sistema de precios de volatilidad basado en IA Estrategia de negociación de divergencia

El autor:¿ Qué pasa?, Fecha: 2024-12-27 13:51:33
Las etiquetas:VPIndicador de riesgoEl ATR¡Qué bueno!¿Qué es esto?

img

Resumen general

Esta estrategia es un sistema de trading avanzado de seguimiento de tendencias que incorpora tecnología de inteligencia artificial, principalmente integrando indicadores de divergencia VPS (Volatility Price System) y metodología de tendencia WOW. Utiliza VPS para identificar la volatilidad del mercado y la fuerza de la tendencia mientras combina la divergencia RSI para detectar posibles puntos de inversión de precios. La estrategia puede proporcionar señales de entrada precisas para operaciones largas y cortas, mejorando la precisión de la predicción del mercado al aprovechar tanto el impulso de la tendencia como el análisis de divergencia.

Principios de estrategia

La estrategia se basa en tres componentes fundamentales:

  1. Indicador de tendencia WOW para confirmar los cambios de tendencia (de alcista a bajista o viceversa)
  2. Condiciones VPS para verificar la volatilidad y la fuerza de la tendencia
  3. Análisis de la divergencia del índice de variabilidad para identificar los puntos de reversión potenciales

El sistema primero calcula canales de soporte y resistencia dinámicos basados en ATR, combinados con el parámetro de longitud de VPS (por defecto 11) para evaluar las condiciones del mercado. Cuando el precio rompe los niveles de sobrecompra (78) o sobreventa (27), el sistema activa señales comerciales. Además, la estrategia monitorea la divergencia entre el precio y el indicador VPS para confirmar aún más la dirección del comercio.

Ventajas estratégicas

  1. Análisis multidimensional: proporciona una perspectiva de mercado más completa mediante la combinación de seguimiento de tendencias, volatilidad y análisis de divergencia.
  2. Una gran adaptabilidad: utiliza canales ATR dinámicos que se ajustan automáticamente a la volatilidad del mercado.
  3. Gestión integral del riesgo: Mecanismos integrados de obtención de beneficios y de stop-loss con cierre automático de posiciones basados en objetivos de beneficios preestablecidos
  4. Mecanismo de confirmación de señales: requiere que se cumplan simultáneamente múltiples condiciones para los activadores de operaciones, reduciendo las falsas señales
  5. Capacidad de negociación bidireccional: puede captar oportunidades comerciales largas y cortas, aprovechando plenamente la volatilidad del mercado

Riesgos estratégicos

  1. Ruido del mercado: puede generar señales falsas en entornos laterales o de baja volatilidad
  2. Sensibilidad de parámetros: el rendimiento de la estrategia depende en gran medida de la configuración de los parámetros del indicador (por ejemplo, longitud de VPS, niveles de sobrecompra/sobreventa)
  3. Riesgo de deslizamiento: puede sufrir un impacto significativo de deslizamiento en plazos cortos (por ejemplo, 5 minutos)
  4. Retraso de la señal: los múltiples mecanismos de confirmación pueden llevar a un tiempo de entrada relativamente retrasado
  5. Gestión del dinero: el método de asignación de capital fijo puede funcionar de manera diferente en diferentes condiciones de mercado

Direcciones para la optimización de la estrategia

  1. Ajuste dinámico de parámetros: introducir mecanismos de parámetros adaptativos para ajustar dinámicamente la longitud de VPS y los umbrales de sobrecompra/sobreventa en función de las condiciones del mercado
  2. Filtración del entorno de mercado: añadir un módulo de reconocimiento del entorno de mercado para pausar la negociación durante condiciones desfavorables de mercado
  3. Optimización del stop-loss: diseñar mecanismos de stop-loss más flexibles basados en ATR para mejorar la precisión del control de riesgos
  4. Optimización del período de tiempo: ajustar los parámetros de la estrategia y las reglas de negociación para diferentes sesiones de negociación
  5. Optimización de la gestión de capital: introducir una gestión dinámica de posiciones para ajustar el tamaño de las operaciones en función de la volatilidad del mercado y el estado de las ganancias/pérdidas

Resumen de las actividades

Esta es una estrategia comercial integral que integra múltiples indicadores técnicos y métodos analíticos. Al combinar la tecnología de inteligencia artificial con el análisis técnico tradicional, la estrategia puede proporcionar una alta precisión comercial manteniendo la robustez. Las principales ventajas se encuentran en su mecanismo de confirmación de señales de múltiples capas y sistema de gestión de riesgos integral, mientras que las principales áreas de optimización están en el ajuste dinámico de parámetros y el reconocimiento del entorno del mercado. A través de la optimización y mejora continuas, esta estrategia tiene el potencial de mantener un rendimiento estable en diferentes condiciones de mercado.


/*backtest
start: 2024-11-26 00:00:00
end: 2024-12-25 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("AI+VPS Vijay Prasad Strategy", overlay=true)

// --- VPS Divergence Strategy Inputs ---
vps_length = input.int(11, title="VPS Length")
vps_overbought = input.int(78, title="VPS Overbought Level")  // Overbought level for VPS
vps_oversold = input.int(27, title="VPS Oversold Level")  // Oversold level for VPS

// Calculate VPS (Relative Strength Index alternative) - here using a custom divergence condition
vps = ta.rsi(close, vps_length)

// Plot VPS on the chart
plot(vps, title="VPS", color=color.blue, linewidth=2)
hline(vps_overbought, "Overbought", color=color.red, linewidth=1)
hline(vps_oversold, "Oversold", color=color.green, linewidth=1)

// Define Buy and Sell Conditions based on Overbought/Oversold VPS
vps_buy_condition = vps < vps_oversold  // Buy signal when VPS is oversold
vps_sell_condition = vps > vps_overbought  // Sell signal when VPS is overbought

// Define Bullish and Bearish Divergence conditions
bullish_divergence = (low[1] < low[2] and vps[1] > vps[2] and low < low[1] and vps > vps[1])
bearish_divergence = (high[1] > high[2] and vps[1] < vps[2] and high > high[1] and vps < vps[1])

// Combine Buy and Sell signals: 
// Buy when VPS is oversold or Bullish Divergence occurs
vps_buy_condition_final = vps_buy_condition or bullish_divergence
// Sell when VPS is overbought or Bearish Divergence occurs
vps_sell_condition_final = vps_sell_condition or bearish_divergence

// Plot Buy and Sell Signals
plotshape(series=vps_buy_condition_final, title="VPS Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, text="BUY")
plotshape(series=vps_sell_condition_final, title="VPS Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, text="SELL")

// VPS Divergence Highlight
bgcolor(bullish_divergence ? color.new(color.green, 90) : na)  // Highlight background for Bullish Divergence
bgcolor(bearish_divergence ? color.new(color.red, 90) : na)  // Highlight background for Bearish Divergence

// Strategy: Buy and Sell with target
if vps_buy_condition_final
    strategy.entry("Buy", strategy.long)

if vps_sell_condition_final
    strategy.entry("Sell", strategy.short)

// Capital settings for the strategy (for backtesting purposes)
capital_per_trade = input.float(1000, title="Capital per Trade (INR)", minval=1)
buy_target_inr = 1500  // Profit target for Buy in INR
sell_target_inr = 1000  // Profit target for Sell in INR

trade_value = close * (capital_per_trade / close)  // Value of one contract at current price

// Profit threshold calculation
buy_profit_target = buy_target_inr / trade_value  // Profit in price movement for Buy
sell_profit_target = sell_target_inr / trade_value  // Profit in price movement for Sell

// Exit based on profit targets
if strategy.position_size > 0
    profit_inr = (close - strategy.position_avg_price) * strategy.position_size
    if profit_inr >= buy_target_inr
        strategy.close("Buy", comment="Profit Target Reached")

if strategy.position_size < 0
    profit_inr = (strategy.position_avg_price - close) * -strategy.position_size
    if profit_inr >= sell_target_inr
        strategy.close("Sell", comment="Profit Target Reached")

// --- WoW Trends + VPS (Vijay Prasad Strategy) Logic ---
Periods = input.int(title="ATR Period", defval=10)
src = input.source(close, title="Source")
Multiplier = input.float(title="ATR Multiplier", step=0.1, defval=1.7)
changeATR = input.bool(title="Change ATR Calculation Method ?", defval=true)
showsignals = input.bool(title="Show Buy/Sell Signals ?", defval=true)

// --- ATR Calculation ---
atr2 = ta.sma(ta.tr, Periods)
atr = changeATR ? ta.atr(Periods) : atr2
up = src - (Multiplier * atr)
up1 = na(up[1]) ? up : up[1]
up := close[1] > up1 ? math.max(up, up1) : up
dn = src + (Multiplier * atr)
dn1 = na(dn[1]) ? dn : dn[1]
dn := close[1] < dn1 ? math.min(dn, dn1) : dn

// --- WoW Trends Logic ---
var trend = 1
trend := na(trend[1]) ? 1 : trend
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend

// --- VPS Logic (Vijay Prasad Strategy) ---
vpsVolatilityCondition = (high - low) > (1.5 * ta.sma(ta.tr, 20))  // VPS condition based on volatility
vpsTrendCondition = trend == 1  // VPS condition to check if trend is up
vpsSignal = vpsVolatilityCondition and vpsTrendCondition  // Combine both VPS conditions

// --- Buy/Sell Signal Logic ---
buySignal = trend == 1 and trend[1] == -1  // Signal to Buy (when trend switches to up)
sellSignal = trend == -1 and trend[1] == 1  // Signal to Sell (when trend switches to down)

// --- Combined Buy/Sell Signal Logic (WoW Trends + VPS) ---
combinedBuySignal = buySignal and vpsSignal
combinedSellSignal = sellSignal and vpsSignal

// --- Plot WoW Trends Lines using plot() ---
plot(trend == 1 ? up : na, title="Up Trend", color=color.green, linewidth=2)
plot(trend == -1 ? dn : na, title="Down Trend", color=color.red, linewidth=2)

// --- Plot VPS Signals ---
plotshape(vpsSignal and showsignals, title="VPS Signal", text="VPS", location=location.abovebar, style=shape.triangledown, size=size.small, color=color.blue, textcolor=color.white)

// --- Plot Combined Buy/Sell Signals ---
plotshape(combinedBuySignal and showsignals, title="Combined Buy Signal", text="BUY", location=location.belowbar, style=shape.labelup, size=size.small, color=color.green, textcolor=color.white)
plotshape(combinedSellSignal and showsignals, title="Combined Sell Signal", text="SELL", location=location.abovebar, style=shape.labeldown, size=size.small, color=color.red, textcolor=color.white)

// --- Strategy Entries ---
if (combinedBuySignal)
    strategy.entry("BUY", strategy.long)

if (combinedSellSignal)
    strategy.entry("SELL", strategy.short)

// --- Highlight Bars for Buy/Sell Signals ---
barcolor(combinedBuySignal ? color.green : na, offset=-1)
barcolor(combinedSellSignal ? color.red : na, offset=-1)


Relacionados

Más.