Estrategia de stop loss y take profit basada en el patrón de estrella Doji


Fecha de creación: 2024-02-02 17:17:38 Última modificación: 2024-02-02 17:17:38
Copiar: 0 Número de Visitas: 698
1
Seguir
1617
Seguidores

Estrategia de stop loss y take profit basada en el patrón de estrella Doji

Descripción general

Esta estrategia se basa en la forma de la estrella de Doji, cuando se produce la forma de la estrella de Doji, se coloca una orden de parada de compra entre el punto más alto de la estrella de Doji y el punto más alto de la línea K anterior, y una orden de parada de venta entre el punto más bajo de la estrella de Doji y el punto más bajo de la línea K anterior. Cuando el precio dispara la orden de parada, se puede optar por salir con un stop loss fijo, o salir con el precio más alto y más bajo de la forma de la estrella de Doji como un stop loss.

Principio de estrategia

Cuando aparece una forma de estrella de Doji, indica que la relación de oferta y demanda actual cambia, las fuerzas de los compradores y los vendedores se equilibran y los precios pueden revertirse. La estrategia es aprovechar la señal de reversión de precios predicha por la forma de estrella de Doji para capturar oportunidades de reversión mediante la colocación de una sola parada.

body=close-open  
range=high-low
abody=abs(body)
ratio=abody/range
data=(abs(open - close) <= (high - low) * Doji)

Si abs{open-close) <= (high-low) y el resultado es*Los parámetros Doji, se consideran como la forma de la estrella Doji, en la que se coloca la barra de parada. La posición de la barra de parada es la siguiente:

longDist= longcandle[1] and range[1]>range? high: max(high,high[1]) 
shortDist= longcandle[1] and range[1]>range? low: min(low,low[1])

Si la entidad de la línea K anterior es más grande, la orden de parada de compra se encuentra entre el punto más alto de la estrella de Doji y el punto más alto de la línea K anterior. Si la entidad de la línea K anterior es más pequeña, la orden de parada de compra es el punto más alto de la estrella de Doji. La orden de parada de venta es la misma.

Las reglas de salida son de dos opciones:

  1. Participación en el torneo con suspensión fija
strategy.exit("exit buy","buy stop",loss=SL, profit=TP, when=Use_SL_TP) 
  1. El precio más bajo de la estrella de Doji como punto de parada
strategy.close("buy stop",when=not Use_SL_TP and close<dojilow)

Análisis de las ventajas

La estrategia tiene las siguientes ventajas:

  1. Es fácil de manejar y fácil de implementar.
  2. La estrategia de Doji Star es aprovechar las señales de cambio de precio para capturar oportunidades de cambio.
  3. Se pueden configurar parámetros de parada de pérdidas para controlar el riesgo.
  4. Se puede filtrar el ruido para un marco de tiempo alto.

Análisis de riesgos

La estrategia también tiene ciertos riesgos:

  1. La forma de la estrella de Doji no siempre trae una reversión de precios, puede haber un stop loss. La solución es establecer una distancia de stop loss razonable y controlar la pérdida individual.
  2. Cuando se ejecuta en un marco de tiempo bajo, la señal de Doji puede ser demasiado ruidosa. La solución es que se ejecute solo en un marco de tiempo alto, como la circunferencia de la línea del sol.
  3. Si no se establece el Stop Loss Stop, existe el riesgo de pérdidas ilimitadas. La solución es usar correctamente la función Stop Loss Stop.

Dirección de optimización

La estrategia puede ser optimizada en las siguientes direcciones:

  1. Optimización de los parámetros de Doji para encontrar la combinación óptima de los diferentes tipos de transacciones.
  2. Prueba diferentes parámetros de parada de pérdida para encontrar la combinación óptima de parámetros.
  3. La distancia de parada basada en el cálculo dinámico de ATR.
  4. En combinación con otros indicadores para determinar el mejor momento de ingreso.

Resumir

La estrategia ha funcionado bien en general, y se puede obtener una buena señal de negociación mediante la captura de oportunidades de reversión de precios de Doji. A la vez, la estrategia es simple de operar, fácil de implementar, adecuada para varias variedades de operaciones, y es una estrategia de negociación cuantitativa práctica.

Código Fuente de la Estrategia
/*backtest
start: 2024-01-02 00:00:00
end: 2024-02-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//This is a simple strategy based on Doji star candlestick
//It places two orders: buy stop at doji star high or previous candle high and sell stop at doji star low or previous candle low.
//This strategy works very well with high time frames like Weekly TF because it eliminates the noise in doji formation.
//

strategy("Doji strategy W", overlay=true, calc_on_every_tick=true, pyramiding=0,default_qty_type=strategy.percent_of_equity,default_qty_value=100,currency=currency.USD)

//INPUTS
//MinDistance=input(100,'Minimum distance in ticks')
Use_SL_TP=input(true,'Use stop loss and take profit?')
TP=input(200,'Take Profit in ticks')
SL=input(200,'Stop Loss in tiks')
Doji = input(0.05, minval=0.01, title="Doji size", step=0.01)

//VARIABILI
body=close-open
range=high-low
abody=abs(body)
ratio=abody/range
longcandle= (ratio>0.6)

//Doji
data=(abs(open - close) <= (high - low) * Doji)
plotchar(data, title="Doji", text='Doji', color=black)
longDist= longcandle[1] and range[1]>range? high: max(high,high[1])
shortDist= longcandle[1] and range[1]>range? low: min(low,low[1])
dojilow=data==1?low:na
dojihigh=data==1?high:na

goStar=data==1?true:false
//////////////////////////////////////////////////////////////////

//STRATEGY

strategy.order("buy stop",true,stop=longDist,  oca_name="Dojy Entry",when=goStar)
strategy.order("sell stop",false,stop=shortDist, oca_name="Dojy Entry",when=goStar)

strategy.exit("exit buy","buy stop",loss=SL, profit=TP, when=Use_SL_TP)
strategy.exit("exit sell","sell stop",loss=SL,profit=TP, when=Use_SL_TP)

strategy.close("buy stop",when=not Use_SL_TP and close<dojilow)
strategy.exit("exit buy","buy stop",profit=TP, when=not Use_SL_TP)
strategy.close("sell stop",when=not Use_SL_TP and close>dojihigh)
strategy.exit("exit sell","sell stop",profit=TP, when=not Use_SL_TP)