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

Estrategia de negociación equilibrada con toma de ganancias y stop-loss

El autor:¿ Qué pasa?, fecha: 2024-12-12 14:25:36
Las etiquetas:OCAEl GAP

img

Resumen general

Esta estrategia es un sistema de negociación adaptativo basado en brechas y movimientos de precios, logrando retornos estables a través de puntos de entrada flexibles y configuraciones dinámicas de toma de ganancias / stop-loss.

Principios de estrategia

La estrategia funciona a través de varios mecanismos básicos:

  1. Mecanismo de negociación de brechas: identifica las brechas ascendentes y descendentes, colocando órdenes de parada en los niveles de brecha
  2. Seguimiento de tendencia: determina la dirección de la tendencia basada en la relación entre los precios de apertura y cierre
  3. Piramidado: permite hasta 100 órdenes en la misma dirección
  4. TP/SL dinámico: establece dinámicamente los niveles de toma de ganancias y stop-loss basándose en el precio medio de la posición
  5. Gestión de órdenes de OCA: utiliza grupos de órdenes de OCA para garantizar la exclusividad mutua de las órdenes TP y SL
  6. Límites de negociación intradía: Control del riesgo mediante la fijación de órdenes máximas cumplidas intradía

Ventajas estratégicas

  1. Alta adaptabilidad: la estrategia ajusta automáticamente la dirección de negociación y el tamaño de la posición en función de las condiciones del mercado
  2. En el caso de las entidades de crédito, el importe de las pérdidas de las operaciones de crédito se determinará en función de la situación de las operaciones de crédito.
  3. Alta flexibilidad: Apoya la pirámide para obtener más ganancias en los mercados de tendencia
  4. Alta eficiencia de ejecución: utiliza órdenes de detención para construir posiciones rápidamente a niveles clave de precios
  5. Alta sistematización: las decisiones comerciales totalmente sistemáticas reducen la interferencia emocional

Riesgos estratégicos

  1. Riesgo de deslizamiento: puede sufrir un deslizamiento significativo en mercados de rápido movimiento
  2. Riesgo de sobreventa: las entradas y salidas frecuentes pueden acarrear altos costes de transacción
  3. Riesgo sistemático: puede sufrir mayores pérdidas en mercados altamente volátiles
  4. Riesgo de gestión de capital: la pirámide puede conducir a una utilización excesiva del capital
  5. Riesgo técnico: las interrupciones del programa pueden causar problemas de gestión de pedidos

Direcciones para la optimización de la estrategia

  1. Incorporar indicadores de volatilidad: ajustar dinámicamente los parámetros TP/SL en función de la volatilidad del mercado
  2. Optimizar el mecanismo de pirámide: diseñar normas más detalladas para el tamaño de las posiciones para evitar el uso excesivo de capital
  3. Mejorar el control de riesgos: añadir más indicadores de control de riesgos como los límites máximos de extracción intradiaria
  4. Mejorar la ejecución de órdenes: optimizar el mecanismo de progresión de órdenes para reducir el impacto del deslizamiento
  5. Añadir análisis del sentimiento del mercado: optimizar el momento de entrada mediante la incorporación de volumen y otros indicadores

Resumen de las actividades

Se trata de una estrategia de trading bien diseñada con lógica rigurosa, que garantiza la estabilidad y seguridad de la negociación a través de múltiples mecanismos. Las ventajas principales se encuentran en su capacidad de adaptabilidad y control de riesgos, mientras que se debe prestar atención a los riesgos de la volatilidad del mercado. A través de la optimización y mejora continuas, la estrategia tiene el potencial de mantener un rendimiento estable en diferentes entornos de mercado.


/*backtest
start: 2024-12-04 00:00:00
end: 2024-12-11 00:00:00
period: 10m
basePeriod: 10m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Greedy Strategy - maclaurin", pyramiding = 100, calc_on_order_fills=false, overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
backtestStartDate = input(timestamp("1 Jan 1990"),
     title="Start Date", group="Backtest Time Period",
     tooltip="This start date is in the time zone of the exchange " +
     "where the chart's instrument trades. It doesn't use the time " +
     "zone of the chart or of your computer.")
backtestEndDate = input(timestamp("1 Jan 2023"),
     title="End Date", group="Backtest Time Period",
     tooltip="This end date is in the time zone of the exchange " +
     "where the chart's instrument trades. It doesn't use the time " +
     "zone of the chart or of your computer.")
inTradeWindow = true
tp = input(10)
sl = input(10)
maxidf = input(title="Max Intraday Filled Orders", defval=5)
// strategy.risk.max_intraday_filled_orders(maxidf)
upGap = open > high[1]
dnGap = open < low[1]
dn = strategy.position_size < 0 and open > close
up = strategy.position_size > 0 and open < close
if inTradeWindow and upGap
    strategy.entry("GapUp", strategy.long, stop = high[1])
else
    strategy.cancel("GapUp")
if inTradeWindow and dn
    strategy.entry("Dn", strategy.short, stop = close)
else
    strategy.cancel("Dn")
if inTradeWindow and dnGap
    strategy.entry("GapDn", strategy.short, stop = low[1])
else
    strategy.cancel("GapDn")
if inTradeWindow and up
    strategy.entry("Up", strategy.long, stop = close)
else
    strategy.cancel("Up")
XQty = strategy.position_size < 0 ? -strategy.position_size : strategy.position_size
dir = strategy.position_size < 0 ? -1 : 1
lmP = strategy.position_avg_price + dir*tp*syminfo.mintick
slP = strategy.position_avg_price - dir*sl*syminfo.mintick
float nav = na
revCond = strategy.position_size > 0 ? dnGap : (strategy.position_size < 0 ? upGap : false)
if inTradeWindow and not revCond and XQty > 0
    strategy.order("TP", strategy.position_size < 0 ? strategy.long : strategy.short, XQty, lmP, nav, "TPSL",  "TPSL")
    strategy.order("SL", strategy.position_size < 0 ? strategy.long : strategy.short, XQty, nav, slP, "TPSL", "TPSL")
if XQty == 0 or revCond
    strategy.cancel("TP")
    strategy.cancel("SL")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)


Relacionados

Más.