Estrategia de trading diario con gestión dinámica de posiciones


Fecha de creación: 2024-05-28 11:21:52 Última modificación: 2024-05-28 11:21:52
Copiar: 0 Número de Visitas: 674
1
Seguir
1617
Seguidores

Estrategia de trading diario con gestión dinámica de posiciones

Descripción general

La estrategia adopta un método de negociación diaria consistente que se centra en capturar pequeños beneficios objetivo mientras se controla estrictamente el riesgo. La estrategia se ha retrasado desde 2021 y ha mostrado un desempeño sólido, con un porcentaje de ganancias de transacciones del 100%. La idea principal de la estrategia es abrir nuevas posiciones de más o menos cabeza al comienzo de cada día de negociación en función de la situación del mercado del día anterior.

Principio de estrategia

El principio central de la estrategia es basarse en el movimiento del mercado del día de negociación anterior, abriendo nuevas posiciones de más o de menos en la apertura de cada día de negociación. En concreto, si el día anterior no había ninguna posición, la estrategia abriría una posición de más en la apertura del nuevo día. Si ya había una posición de más, la estrategia revisaría si se alcanzaba el objetivo de ganancias del 0.3%, y si se alcanzaba, se cerraría.

Ventajas estratégicas

La estrategia de negociación diaria tiene varias ventajas destacadas:

  1. 100% de éxito: La estrategia alcanzó un 100% de éxito en 36 operaciones liquidadas, lo que pone de manifiesto su rendimiento constante.
  2. Gestión de posiciones dinámica: si una posición de cabeza vacía toca el tope, la estrategia abre inmediatamente una nueva posición de cabeza múltiple para reemplazarla, asegurando una brecha de mercado continua.
  3. Estricta gestión de riesgos: la estrategia establece un objetivo de ganancias del 0.3% y un stop loss del 0.2%, lo que permite un control efectivo del riesgo.
  4. Participación regular en el mercado: la estrategia es abrir posiciones al comienzo de cada día, lo que garantiza la participación regular en el mercado.
  5. Resultados de la revisión sólida: La revisión comenzada en 2021 mostró un desempeño sólido, con un beneficio neto del 22,2% y un retiro máximo del 13,75%.

Riesgo estratégico

A pesar del excelente desempeño y control de riesgos de la estrategia, existen algunos riesgos potenciales:

  1. Posibilidad de pérdidas continuas: aunque los resultados de la revisión son impresionantes, el rendimiento pasado no garantiza los resultados futuros. Las operaciones continuas con pérdidas pueden erosionar los beneficios.
  2. Incidentes de cigüeñas negras: las estrategias pueden ser vulnerables a eventos inesperados y a las fluctuaciones extremas de los mercados, lo que provoca pérdidas superiores a las esperadas.
  3. Riesgo de apalancamiento: la estrategia utiliza un apalancamiento del 200% en cada operación, lo que aumenta el potencial de retorno, pero también aumenta el riesgo.

Para mitigar estos riesgos, se puede considerar aumentar la diversificación, aplicando estrategias similares en diferentes mercados y clases de activos. También es importante monitorear y ajustar los parámetros de la estrategia periódicamente para adaptarse a las condiciones cambiantes del mercado.

Dirección de optimización de la estrategia

  1. Optimización de parámetros: los objetivos de ganancias, pérdidas y otros parámetros clave pueden mejorarse mediante una mayor retroalimentación y optimización para lograr el mejor rendimiento en diferentes condiciones de mercado.
  2. Diversificación: Extensión de la estrategia a otros mercados y categorías de activos puede mejorar el rendimiento general y reducir el riesgo.
  3. Ajuste de posición dinámico: ajuste dinámico del tamaño de la posición en función de la volatilidad del mercado u otros factores, para optimizar aún más el rendimiento después del ajuste de riesgo.
  4. Añadir filtros adicionales: La introducción de indicadores técnicos adicionales o indicadores de sentimiento del mercado como filtros puede mejorar la calidad de las señales de negociación.

Resumir

En general, esta estrategia de negociación diaria ofrece una forma equilibrada de operar en el día, con un enfoque en la gestión de riesgos y la rentabilidad continua. Es adecuada para los operadores que buscan una metodología de negociación sistematizada y rigurosa. La estrategia muestra resultados de retroceso impresionantes, con un 100% de ganancias y un sólido retorno ajustado al riesgo.

Código Fuente de la Estrategia
/*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)