Type/to search

Estrategias de salida con múltiples porcentajes de toma de ganancias

Common strategy
Created: 2023-12-01 15:22:29
Last modified: 3 years ago
1
Follow
1802
Followers

img

Resumen

Esta estrategia implementa la funcionalidad de establecer múltiples salidas (exit) con porcentajes de take profit. La estrategia primero determina las condiciones de largo y corto para entrar en posiciones largas o cortas. Luego, mediante una función personalizada percentAsPoints, convierte los porcentajes en puntos de precio. El programa establece cuatro salidas con porcentajes de take profit del 1%, 2%, 3% y 4%, además de una salida de stop loss general del 2%. De esta forma se logra el efecto de múltiples take profit porcentuales.

Principio de la estrategia

La estrategia determina las entradas principalmente mediante el cruce de medias móviles SMA. Específicamente, cuando la SMA rápida (14) cruza al alza la SMA lenta (28), se genera una entrada en largo; cuando la SMA rápida (14) cruza a la baja la SMA lenta (28), se genera una entrada en corto.

Ahora, ¿cómo se configuran múltiples salidas con take profit porcentual? Se utiliza una función personalizada percentAsPoints para convertir los porcentajes en puntos de precio. La lógica de la función es:

percentAsPoints(pcnt) => strategy.position_size != 0 ? round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)

Si el tamaño de la posición no es cero, la función multiplica el porcentaje por el precio promedio de la posición y lo divide por el tick mínimo del símbolo, redondeando el resultado para obtener los puntos de precio. Si la posición es cero, devuelve na.

Con esta función, es fácil convertir porcentajes en puntos. Luego, el programa configura cuatro salidas con take profit del 1%, 2%, 3% y 4%:

lossPnt = percentAsPoints(2) strategy.exit("x1", qty_percent = 25, profit = percentAsPoints(1), loss = lossPnt) strategy.exit("x2", qty_percent = 25, profit = percentAsPoints(2), loss = lossPnt) strategy.exit("x3", qty_percent = 25, profit = percentAsPoints(3), loss = lossPnt) strategy.exit("x4", profit = percentAsPoints(4), loss = lossPnt)

Al mismo tiempo, todas las salidas comparten un stop loss general del 2%. Esto logra el efecto de múltiples take profit porcentuales.

Análisis de ventajas

Esta estrategia de múltiples take profit porcentuales ofrece las siguientes ventajas:

  1. Permite tomar ganancias de forma escalonada, evitando perder oportunidades de mayores beneficios. Generalmente, cuanto más tardía es la toma de ganancias, mayor es el margen y también el riesgo; esta estrategia equilibra riesgo y recompensa.

  2. La toma de ganancias parcial permite recuperar el capital inicial y reducir el riesgo. Por ejemplo, al establecer un lote del 25%, cuando la ganancia alcanza el 1%, se puede recuperar 1/4 del capital, y las posiciones restantes operan solo con ganancias.

  3. Previene pérdidas excepcionales con el stop loss del 2%, evitando grandes pérdidas en condiciones extremas del mercado.

  4. La implementación del código es sencilla y clara, fácil de entender, modificar y optimizar. La función personalizada convierte porcentajes en puntos y luego con unas pocas líneas se configuran múltiples take profit.

Análisis de riesgos

Esta estrategia también presenta algunos riesgos:

  1. Los take profit porcentuales pueden generar movimientos laterales, con el precio oscilando alrededor del nivel de take profit. Esto puede provocar activaciones frecuentes de take profit y stop loss, aumentando la frecuencia de operaciones y los costes de comisiones.

  2. La toma de ganancias parcial incrementa el número de operaciones y, por tanto, las comisiones. Si las comisiones son demasiado altas, pueden compensar parte de las ganancias obtenidas.

  3. Un mal ajuste de los niveles de take profit puede afectar la rentabilidad. Si son demasiado conservadores, es difícil obtener rendimientos satisfactorios; si son demasiado agresivos, el riesgo es excesivo.

  4. El uso de porcentajes fijos no considera la volatilidad ni la tendencia del mercado. En mercados laterales deberían reducirse los niveles de take profit, mientras que en tendencias deberían ampliarse.

Direcciones de optimización

Considerando los riesgos anteriores, se puede optimizar la estrategia en los siguientes aspectos:

  1. Optimizar la lógica de take profit para que se ajuste automáticamente según la volatilidad y la tendencia del mercado. Por ejemplo, incorporar take profit basado en ATR: ajustarlo en mercados laterales y ampliarlo en tendencias.

  2. Optimizar la proporción y el tamaño de las tomas de ganancias parciales para lograr la mejor combinación de riesgo-recompensa. Incorporar una función de optimización de parámetros para encontrar los valores óptimos.

  3. Reducir el número de tomas de ganancias para evitar operaciones excesivamente frecuentes. Por ejemplo, establecer un buffer de precio: solo tomar ganancias cuando el precio supere un cierto umbral.

  4. Considerar las comisiones: no tomar ganancias si la ganancia esperada es menor que la comisión, o ajustar los niveles de take profit según las comisiones.

  5. Utilizar take profit por libro de órdenes: priorizar la profundidad y el precio de las órdenes existentes para evitar desplazar los precios de take profit.

Conclusión

Esta estrategia logra el efecto de múltiples take profit porcentuales, estableciendo cuatro salidas con take profit del 1%, 2%, 3% y 4%, lo que permite tomar ganancias de forma escalonada, al mismo tiempo que utiliza un stop loss del 2% para evitar pérdidas excepcionales. Esta estrategia equilibra riesgo y recompensa, evitando perder oportunidades de mayores beneficios. Sin embargo, también presenta ciertos riesgos, como la generación de movimientos laterales y el aumento de la frecuencia de operaciones. Todas estas sugerencias merecen ser consideradas para incorporarlas en la optimización de la estrategia, con el fin de que pueda operar de manera estable en más mercados.

Source
Pine
/*backtest
start: 2023-10-31 00:00:00
end: 2023-11-30 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © adolgov

//@version=4
Comment
All comments (0)
No data
No data
  • 1
Forums
PINE Language
Get the app
iPhone Download
© 2015 - ∞ INVENTOR PTE LTD (SG)