Estrategias de stop loss y take profit basadas en el precio


Fecha de creación: 2023-11-23 15:36:00 Última modificación: 2023-11-23 15:36:00
Copiar: 0 Número de Visitas: 672
1
Seguir
1617
Seguidores

Estrategias de stop loss y take profit basadas en el precio

Descripción general

La idea central de esta estrategia es utilizar el monto de la parada de pérdidas de entrada para establecer un número razonable de puntos de parada de pérdidas y administrar el riesgo y los beneficios de cada operación.

Principio de estrategia

La estrategia primero establece una señal de entrada aleatoria, que hace más cuando SMA14 pasa por SMA28 y vacía cuando SMA14 pasa por SMA28.

Después de la entrada, la estrategia utiliza la función moneyToSLPoints para calcular el número de puntos de parada correspondiente según el monto de la entrada, y también el número de puntos de parada. De esta manera, se realiza una configuración de parada de pérdida basada en el monto en dólares.

Por ejemplo, si el juego se inicia con 100 manos adicionales, cada punto vale 10 dólares, y el stop loss es de 100 dólares, entonces el punto de stop loss se establece como 100/10/100 = 0,1 puntos.

Finalmente, use estrategia.exit para establecer el punto de salida de la parada de pérdidas. Dibuja gráficamente la línea de parada y la línea de parada como referencia de puesta en marcha.

Análisis de las ventajas

La mayor ventaja de esta estrategia, basada en el precio de la parada de pérdidas, es que la configuración de los parámetros es intuitiva, y se puede ver intuitivamente la relación entre el riesgo y la ganancia, y la selección de los parámetros.

Además, en comparación con los puntos de pérdida, el cierre del dólar permite un mejor control de la brecha de riesgo real. Cuando la volatilidad del mercado aumenta, el cierre del dólar protege mejor los fondos.

Análisis de riesgos

La estrategia de detener el deterioro también tiene ciertos riesgos:

  1. Si el punto de parada es demasiado ancho, es fácil que se bloquee. Si el punto de parada está demasiado lejos, la probabilidad de que la línea corta se invierta es mayor, es fácil que se bloquee y no se pueda detener.

  2. Es difícil obtener ganancias si el punto de parada está demasiado cerca y no se puede alcanzar la operación unilateral normal.

  3. Se requiere una selección razonable de los contratos. Si se elige un contrato con un valor de puntos demasiado grande, por ejemplo, el petróleo, entonces el mismo dólar se detiene, el número de puntos correspondiente será muy pequeño y es fácil de extraer en las fluctuaciones del mercado.

Dirección de optimización

Esta estrategia puede ser optimizada en los siguientes aspectos:

  1. Las señales de entrada se pueden optimizar, por ejemplo, combinando tendencias, volatilidad y estacionalidad para obtener mejores tiempos de entrada.

  2. Se puede elegir el porcentaje de stop loss adecuado según la variedad. Por ejemplo, los productos básicos pueden establecer un stop loss más flexible.

  3. Se puede combinar con la tasa de fluctuación, con una relajación adecuada del stop loss cuando la fluctuación aumenta; con un estiramiento apropiado del stop loss cuando la fluctuación disminuye.

  4. Se pueden elegir diferentes estrategias de stop-loss en función de los diferentes momentos del día de negociación. Por ejemplo, el cierre de pérdidas en los Estados Unidos es más estricto, lo que reduce la probabilidad de ser ajustado.

Resumir

Esta estrategia tiene como parámetros el monto en dólares, lo que hace que la función de parada de pérdidas sea intuitiva. La ventaja de esta estrategia es que la selección de parámetros y el control de fondos son intuitivos, la desventaja es que es fácil de manipular y difícil de obtener ganancias. Podemos mejorar desde el momento de entrada, la optimización de los parámetros de parada de pérdidas y la selección de contratos, para que la estrategia sea más rentable.

Código Fuente de la Estrategia
/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-22 00:00:00
period: 10m
basePeriod: 1m
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

// @description
// 

//@version=4
strategy("Stop loss and Take Profit in $$ example", overlay=true)

// random entry condition

longCondition = crossover(sma(close, 14), sma(close, 28))
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = crossunder(sma(close, 14), sma(close, 28))
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)

moneyToSLPoints(money) =>
    strategy.position_size !=0 ? (money / syminfo.pointvalue / abs(strategy.position_size)) / syminfo.mintick : na

p = moneyToSLPoints(input(200, title = "Take Profit $$"))
l = moneyToSLPoints(input(100, title = "Stop Loss $$"))
strategy.exit("x", profit = p, loss = l)

// debug plots for visualize SL & TP levels
pointsToPrice(pp) =>
    na(pp) ? na : strategy.position_avg_price + pp * sign(strategy.position_size) * syminfo.mintick
    
pp = plot(pointsToPrice(p), style = plot.style_linebr )
lp = plot(pointsToPrice(-l), style = plot.style_linebr )
avg = plot( strategy.position_avg_price, style = plot.style_linebr )
fill(pp, avg, color = color.green)
fill(avg, lp, color = color.red)