Estrategia de compra direccional de baja volatilidad con stop profit y stop loss


Fecha de creación: 2023-12-18 12:00:07 Última modificación: 2023-12-18 12:00:07
Copiar: 1 Número de Visitas: 573
1
Seguir
1621
Seguidores

Estrategia de compra direccional de baja volatilidad con stop profit y stop loss

Descripción general

Esta estrategia se llama estrategia de stop loss de compra orientada a la baja oscilación. Utiliza el cruce de las medias móviles como una señal de compra, combinada con el stop loss para bloquear ganancias, y se aplica a las monedas de baja oscilación.

Principio de estrategia

La estrategia utiliza un promedio móvil de 3 períodos diferentes: 50 períodos, 100 períodos y 200 períodos. Su lógica de compra es: hacer más entradas cuando la línea de 50 períodos atraviesa la línea de 100 períodos y la línea de 100 períodos atraviesa la línea de 200 períodos.

Esta señal indica que el mercado está saliendo de la zona de baja volatilidad y comenzando a entrar en un estado de tendencia. La subida rápida de 50 ciclos representa un aumento repentino de la fuerza interna a corto plazo y comienza a impulsar la línea media larga hacia arriba; La línea de 100 ciclos también comienza a subir, lo que indica que la fuerza intermedia se suma y se estabiliza en la tendencia.

Después de la entrada, la estrategia utiliza el stop loss para bloquear las ganancias. El objetivo del stop loss es el 8% del precio de entrada, y la línea de stop loss es el 4% del precio de entrada. La configuración del stop loss es mayor que el stop loss, lo que favorece la ganancia sobre las pérdidas y garantiza la rentabilidad general de la estrategia.

Análisis de las ventajas

La estrategia tiene las siguientes ventajas:

  1. En la actualidad, los datos de las brechas de las zonas de baja oscilación son muy escasos.
  2. Los promedios móviles son fáciles de calcular y retroceder, y la lógica es simple y clara.
  3. La configuración de stop-loss es razonable y es favorable para obtener ganancias estables.
  4. Los parámetros configurables son flexibles y fáciles de optimizar.

Análisis de riesgos

La estrategia también tiene sus riesgos:

  1. Una señal de ruptura errónea puede causar pérdidas.
  2. El mercado no se detiene cuando cambia de dirección.
  3. La configuración incorrecta de los parámetros de parada y pérdida puede afectar a las ganancias.

Respuesta:

  1. En combinación con otros indicadores, las señales de filtración garantizan la efectividad de la ruptura.
  2. Reducir adecuadamente el período de detención de pérdidas y reducir los daños causados por la reversión.
  3. Prueba diferentes proporciones de pérdida de frenado para encontrar el parámetro óptimo.

Dirección de optimización

La estrategia se puede optimizar en los siguientes aspectos:

  1. Prueba diferentes parámetros de promedio móvil para encontrar la mejor combinación.
  2. Añadir indicadores como el volumen de transacciones para confirmar la ruptura de la tendencia.
  3. Ajuste dinámico de la amplitud de la pérdida de frenado.
  4. Combinar métodos como el aprendizaje automático para predecir la tasa de éxito de las brechas.
  5. Ajuste de parámetros para diferentes condiciones de mercado y monedas.

En resumen, la estrategia tiene una lógica clara de funcionamiento general, se puede aplicar de manera flexible para obtener ganancias de bajo riesgo mediante la configuración del ciclo de la media móvil y el stop loss amplitud. Se puede optimizar posteriormente desde la señal de entrada, el modo de parada, etc., para buscar el mejor efecto con la adaptación de los parámetros.

Código Fuente de la Estrategia
/*backtest
start: 2023-12-10 00:00:00
end: 2023-12-17 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(shorttitle='Low volatility Buy w/ TP & SL (by Coinrule)',title='Low volatility Buy w/ TP & SL', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 10,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2019, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false       // create function "within window of time"

//MA inputs and calculations
movingaverage_fast = sma(close, input(50))
movingaverage_slow = sma(close, input(200))
movingaverage_normal= sma(close, input(100))



//Entry 
strategy.entry(id="long", long = true, when = movingaverage_slow > movingaverage_normal and movingaverage_fast > movingaverage_normal)

//Exit
longStopPrice  = strategy.position_avg_price * (1 - 0.04)
longTakeProfit = strategy.position_avg_price * (1 + 0.08)

strategy.close("long", when = close < longStopPrice or close > longTakeProfit and window())

//PLOT

plot(movingaverage_fast, color=color.orange, linewidth=2)
plot(movingaverage_slow, color=color.purple, linewidth=3)
plot(movingaverage_normal, color=color.blue, linewidth=2)