Estrategia de ruptura de tendencia: sombra larga


Fecha de creación: 2023-11-15 16:43:17 Última modificación: 2023-11-15 16:43:17
Copiar: 2 Número de Visitas: 665
1
Seguir
1617
Seguidores

Estrategia de ruptura de tendencia: sombra larga

Esta estrategia determina la dirección de la tendencia actual mediante el cálculo de la proporción de la longitud de la sombra del sol de la línea K. Identifica la tendencia en combinación con el ATR de la amplitud real promedio, abre posiciones invertidas en el punto de ruptura, establece un stop loss y captura la tendencia a corto plazo.

Principio de estrategia

La estrategia se basa en el cálculo de la proporción de la longitud de la sombra del sol de la línea K para determinar la dirección de la tendencia actual. Cuando la longitud de la línea del sol es demasiado larga, se determina una tendencia a la baja, y cuando la longitud de la línea del sol es demasiado larga, se determina una tendencia al alza.

La lógica de la estrategia es la siguiente:

  1. Calcula la longitud de la sombra inferior de la línea K: cerrar-bajo (closing price-low)
  2. Calcula la longitud de la sombra superior de la línea K: high-open ((el precio más alto - el precio de apertura)
  3. Tomar la sombra y la sombra de arriba como la longitud máxima de la sombra
  4. Calcula la longitud de la entidad de la línea K: high-low (el precio más alto - el precio más bajo)
  5. Cálculo de la relación entre la longitud de la sombra y la longitud del cuerpo
  6. Cuando la proporción es mayor que 0.5 y la sombra inferior es mayor que la sombra superior, juzgar como una tendencia a la baja y configurar una entrada múltiple
  7. Cuando la proporción es mayor que 0.5 y la sombra superior es mayor que la inferior, juzgar como una tendencia ascendente y establecer una entrada en blanco
  8. Al entrar en el campo, se debe determinar simultáneamente si la longitud de la entidad de la línea K es mayor que el promedio de la amplitud de onda real ATR de 0.75 veces, para evitar una ruptura no efectiva.
  9. Después de entrar en el mercado, se establece un stop loss, el stop loss es el precio de entrada multiplicado por un factor, el stop loss es el precio de entrada multiplicado por un factor de 2 veces, para lograr una relación de ganancias y pérdidas de 2: 1

La lógica básica de la estrategia es la de abrir posiciones al revés mediante la identificación de brechas de tendencia y la optimización de ganancias después de establecer un stop-loss.

Ventajas estratégicas

  1. El uso de la proporción de sol y sombra para determinar la dirección de la tendencia, alta distinción
  2. Combinación de indicadores ATR para un juicio de ruptura eficaz y evitar señales falsas
  3. Configuración de paradas de pérdidas para el control de riesgos
  4. Lograr una relación de ganancias y pérdidas de 2:1 que cumpla con los estándares de transacciones cuantitativas
  5. Aplicación de operaciones de corto plazo en acciones de alta volatilidad
  6. La lógica de la estrategia es simple, clara y fácil de entender.

Riesgo estratégico

  1. El stop loss puede romperse cuando el precio de las acciones fluctúa fuertemente, lo que genera pérdidas.
  2. El efecto está estrechamente relacionado con la configuración de los parámetros, los cuales necesitan ser optimizados.
  3. El cambio de tendencia puede generar pérdidas
  4. Ampliar simultáneamente los límites de stop y stop-loss aumenta la probabilidad de pérdidas
  5. El fracaso de la brecha puede costar mucho dinero.

Se puede controlar el riesgo mediante la reducción razonable de los pérdidas, la optimización de los parámetros y la reducción oportuna de los pérdidas.

Optimización de la estrategia

Las estrategias se pueden optimizar en los siguientes aspectos:

  1. Optimización de los parámetros de la proporción de sol y sombra para encontrar el valor óptimo
  2. Optimización de los parámetros ATR para determinar la mejor longitud de la línea K
  3. Optimización del factor de parada y pérdida para obtener la mejor relación riesgo-beneficio
  4. Aumentar la administración de posiciones, por ejemplo, incrementar las posiciones
  5. Aumentar el seguimiento de las pérdidas y proteger las ganancias
  6. Combinación de otros indicadores para filtrar señales de entrada
  7. Optimización de los períodos de retrospectiva para probar el efecto en diferentes fases del mercado

Se puede maximizar la eficacia de la estrategia a través de pruebas y optimización multifacetadas.

En general, la estrategia de aprovechar las fluctuaciones de precios a corto plazo a través de la identificación de tendencias y el control del riesgo, es una estrategia de ruptura de la línea corta que tiene un efecto estable.

Código Fuente de la Estrategia
/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
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/
// © ondrej17

//@version=4
strategy("longWickstrategy", overlay=true )
 
// Inputs
st_yr_inp = input(defval=2020, title='Backtest Start Year')
st_mn_inp = input(defval=01, title='Backtest Start Month')
st_dy_inp = input(defval=01, title='Backtest Start Day')
en_yr_inp = input(defval=2025, title='Backtest End Year')
en_mn_inp = input(defval=01, title='Backtest End Month')
en_dy_inp = input(defval=01, title='Backtest End Day')
sltp_inp = input(defval=0.8, title='N - % offset for N*SL and (2N)*TP')/100
 
// Dates
start = timestamp(st_yr_inp, st_mn_inp, st_dy_inp,00,00)
end = timestamp(en_yr_inp, en_mn_inp, en_dy_inp,00,00)
canTrade = time >= start and time <= end
// Indicators Setup


 
// Strategy Calcuations
lowerWick = (open > close) ? close-low : open - low
upperWick = (open > close) ? high-open : high-close
wickLength = max(lowerWick,upperWick)
candleLength = high-low
wickToCandleRatio = wickLength / candleLength
entryFilterCandleLength = candleLength > 0.75*atr(48)


// Entries and Exits
 
longCondition = entryFilterCandleLength and wickToCandleRatio > 0.5 and lowerWick > upperWick and canTrade and strategy.position_size == 0
shortCondition = entryFilterCandleLength and wickToCandleRatio > 0.5 and lowerWick < upperWick and canTrade and strategy.position_size == 0

strategy.entry("pendingLong", strategy.long, limit=low+wickLength/2, when = longCondition)
strategy.entry("pendingShort", strategy.short, limit=high-wickLength/2, when = shortCondition)

longStop = strategy.position_size > 0 ? strategy.position_avg_price*(1-sltp_inp) : na
longTP = strategy.position_size > 0 ? strategy.position_avg_price*(1+2*sltp_inp) : na
shortStop = strategy.position_size < 0 ? strategy.position_avg_price*(1+sltp_inp) : na
shortTP = strategy.position_size < 0 ? strategy.position_avg_price*(1-2*sltp_inp) : na

strategy.exit("longSLTP","pendingLong", stop=longStop, limit = longTP)
strategy.exit("shortSLTP","pendingShort", stop=shortStop, limit = shortTP)  
 

plot(longStop, color=color.red, style=plot.style_linebr, linewidth=2)
plot(shortStop, color=color.red, style=plot.style_linebr, linewidth=2)
plot(longTP, color=color.green, style=plot.style_linebr, linewidth=2)
plot(shortTP, color=color.green, style=plot.style_linebr, linewidth=2)

plotLongCondition = longCondition ? high+abs(open-close) : na
plot(plotLongCondition, style=plot.style_circles, linewidth=4, color=color.green)
plotShortCondition = shortCondition ? high+abs(open-close) : na
plot(plotShortCondition, style=plot.style_circles, linewidth=4, color=color.red)