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

Gestión dinámica de posiciones Estrategia de negociación diaria

El autor:¿ Qué pasa?, Fecha: 2024-05-28 11:21:52
Las etiquetas:

img

Resumen general

Esta estrategia emplea un enfoque de negociación diaria consistente, centrándose en capturar objetivos de ganancias pequeñas mientras se mantiene una gestión de riesgos estricta. La estrategia ha sido probada desde el año 2021, demostrando un rendimiento robusto con una tasa de ganancia del 100%. La idea principal de la estrategia es abrir nuevas posiciones largas o cortas al comienzo de cada día de negociación en función de las condiciones del mercado del día anterior. Los parámetros clave incluyen un objetivo de ganancia del 0.3% y un stop loss del 0.2%, con un capital inicial de $ 1000 y una comisión del 0.1% por operación.

Principios de estrategia

El principio básico de esta estrategia es abrir nuevas posiciones largas o cortas al comienzo de cada día de negociación en función de las tendencias del mercado del día de negociación anterior. Específicamente, si no había posiciones el día anterior, la estrategia abrirá una posición larga al comienzo del nuevo día. Si ya hay una posición larga, la estrategia verifica si se ha alcanzado el objetivo de ganancia del 0,3% y cierra la posición si lo ha hecho. Para las posiciones cortas, la estrategia verifica si se ha alcanzado el 0,2% de stop loss, y si es así, cierra la posición corta y al mismo tiempo abre una nueva posición larga para reemplazarla. Esto garantiza que la estrategia siempre mantenga la exposición al mercado.

Ventajas estratégicas

Esta estrategia de negociación diaria tiene varias ventajas notables:

  1. Tasa de ganancia del 100%: a lo largo de 36 operaciones cerradas, la estrategia logró una tasa de ganancia del 100%, destacando su rendimiento constante.
  2. Gestión dinámica de las posiciones: en caso de una posición corta con stop-loss, se abre inmediatamente una nueva posición larga para reemplazarla, garantizando una exposición continua al mercado.
  3. Gestión estricta del riesgo: la estrategia establece un objetivo de ganancia del 0,3% y un stop loss del 0,2%, controlando efectivamente el riesgo.
  4. Participación regular en el mercado: la estrategia abre posiciones al comienzo de cada día, garantizando una participación regular en el mercado.
  5. Resultados de pruebas de retroceso sólidos: Las pruebas de retroceso del año 2021 muestran un rendimiento sólido, con una ganancia neta del 22.2% y una reducción máxima del 13.75%.

Riesgos estratégicos

A pesar del impresionante rendimiento y el control de riesgos demostrados por la estrategia, existen algunos riesgos potenciales a tener en cuenta:

  1. Posibilidad de pérdidas consecutivas: aunque los resultados de las pruebas de retroceso son impresionantes, el rendimiento pasado no garantiza resultados futuros.
  2. Eventos de cisne negro: la estrategia puede ser vulnerable a eventos inesperados y volatilidad extrema del mercado, lo que lleva a pérdidas más allá de las expectativas.
  3. Riesgo de apalancamiento: La estrategia emplea un apalancamiento del 200% en cada operación, lo que amplifica los rendimientos potenciales pero también aumenta el riesgo.

Para mitigar estos riesgos, podría considerarse la diversificación mediante la aplicación de estrategias similares en diferentes mercados y clases de activos.

Direcciones para la optimización de la estrategia

  1. Optimización de parámetros: el objetivo de ganancia, el stop loss y otros parámetros clave podrían perfeccionarse mediante pruebas y optimización adicionales para lograr un rendimiento óptimo en diferentes condiciones de mercado.
  2. Diversificación: la ampliación de la estrategia a otros mercados y clases de activos podría mejorar los rendimientos generales y reducir el riesgo.
  3. Tamaño dinámico de las posiciones: el ajuste dinámico de los tamaños de las posiciones en función de la volatilidad del mercado u otros factores podría optimizar aún más los rendimientos ajustados al riesgo.
  4. Filtros adicionales: La introducción de indicadores técnicos adicionales o indicadores de sentimiento del mercado como filtros podría mejorar la calidad de las señales de negociación.

Conclusión

En general, esta estrategia de negociación diaria ofrece un enfoque equilibrado para el comercio intradiario con un fuerte énfasis en la gestión del riesgo y la rentabilidad consistente. Es adecuado para los operadores que buscan una metodología de negociación sistemática y disciplinada. La estrategia ha demostrado resultados impresionantes de backtesting, con una tasa de ganancia del 100% y rendimientos ajustados al riesgo robustos. Sin embargo, es importante reconocer que el rendimiento pasado no garantiza resultados futuros, y la gestión del riesgo y la adaptación a los cambios del mercado son cruciales.


/*backtest
start: 2023-05-22 00:00:00
end: 2024-05-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Daily AUD-JPY Trading", overlay=true, initial_capital=1000, currency="AUD", default_qty_type=strategy.percent_of_equity, default_qty_value=200, commission_type=strategy.commission.percent, commission_value=0.1)

// Input parameters
profit_target = input(0.3, title="Profit Target (%)") / 100
loss_target = input(0.2, title="Loss Target (%)") / 100
start_year = input(2021, title="Start Year")

// Calculate daily open and close
new_day = ta.change(time("D"))

var float entry_price_long = na
var float entry_price_short = na
var bool position_long_open = false
var bool position_short_open = false

// Date check
trade_start = timestamp(start_year, 1, 1, 0, 0)

if new_day and time >= trade_start
    // If there was a previous long position, check for profit target
    if position_long_open
        current_profit_long = (close - entry_price_long) / entry_price_long
        if current_profit_long >= profit_target
            strategy.close("AUD Trade Long", comment="Take Profit Long")
            position_long_open := false
    
    // If there was a previous short position, check for profit target
    if position_short_open
        current_profit_short = (entry_price_short - close) / entry_price_short
        if current_profit_short >= profit_target
            strategy.close("AUD Trade Short", comment="Take Profit Short")
            position_short_open := false

    // Check for daily loss condition for short positions
    if position_short_open
        current_loss_short = (close - entry_price_short) / entry_price_short
        if current_loss_short <= -loss_target
            strategy.close("AUD Trade Short", comment="Stop Loss Short")
            position_short_open := false
            
            // Open a new long position to replace the stopped short position
            strategy.entry("AUD Trade Long Replacement", strategy.long)
            entry_price_long := close
            position_long_open := true

    // Open a new long position at the start of the new day if no long position is open
    if not position_long_open and not position_short_open
        strategy.entry("AUD Trade Long", strategy.long)
        entry_price_long := close
        position_long_open := true

    // Open a new short position at the start of the new day if no short position is open
    if not position_short_open and not position_long_open
        strategy.entry("AUD Trade Short", strategy.short)
        entry_price_short := close
        position_short_open := true

// Check for continuous profit condition for long positions
if position_long_open
    current_profit_long = (close - entry_price_long) / entry_price_long
    if current_profit_long >= profit_target
        strategy.close("AUD Trade Long", comment="Take Profit Long")
        position_long_open := false

// Check for continuous profit condition for short positions
if position_short_open
    current_profit_short = (entry_price_short - close) / entry_price_short
    if current_profit_short >= profit_target
        strategy.close("AUD Trade Short", comment="Take Profit Short")
        position_short_open := false

// Plot the entry prices on the chart
plot(position_long_open ? entry_price_long : na, title="Entry Price Long", color=color.green, linewidth=2)
plot(position_short_open ? entry_price_short : na, title="Entry Price Short", color=color.red, linewidth=2)

// Display current profit/loss percentage for long positions
var label profit_label_long = na
if position_long_open and not na(entry_price_long)
    current_profit_long = (close - entry_price_long) / entry_price_long * 100
    label.delete(profit_label_long)
    profit_label_long := label.new(x=time, y=high, text="Long P/L: " + str.tostring(current_profit_long, format.percent), style=label.style_label_down, color=color.white, textcolor=color.black,xloc=xloc.bar_time)

// Display current profit/loss percentage for short positions
var label profit_label_short = na
if position_short_open and not na(entry_price_short)
    current_profit_short = (entry_price_short - close) / entry_price_short * 100
    label.delete(profit_label_short)
    profit_label_short := label.new(x=time, y=high, text="Short P/L: " + str.tostring(current_profit_short, format.percent), style=label.style_label_down, color=color.white, textcolor=color.black,xloc=xloc.bar_time)

Más.