Estrategia de apertura con cruce de medias móviles dobles

MA5 SMA
Fecha de creación: 2024-04-30 17:37:53 Última modificación: 2024-04-30 17:37:53
Copiar: 10 Número de Visitas: 592
1
Seguir
1617
Seguidores

Estrategia de apertura con cruce de medias móviles dobles

Descripción general

Se trata de una estrategia de apertura de posición de doble línea media cruzada basada en el promedio móvil de 5 días (MA5). La idea principal de la estrategia es: abrir una posición a cierta distancia por encima o por debajo de MA5 y cerrar cuando el precio de cierre es más alto que el precio de apertura o volver al precio de apertura. La estrategia tiene como objetivo capturar tendencias a corto plazo y controlar el riesgo.

Principio de estrategia

La estrategia utiliza el promedio móvil simple de 5 días (SMA) como indicador principal. Se ejecuta la escena de compra cuando el precio de apertura de la nueva carta es superior a la MA5; se ejecuta la escena de compra cuando el precio de apertura de la nueva carta es inferior a la MA5 y está a más de 0.002 puntos de la MA5; se ejecuta la escena de venta cuando el precio de apertura es superior a la media de la posición abierta o igual a la media de la posición abierta; se ejecuta la escena de venta cuando el precio de apertura es inferior al 0.1% de la media de la posición abierta.

Análisis de las ventajas

  1. La estrategia se basa en tendencias a corto plazo y es capaz de capturar rápidamente los cambios en el mercado.
  2. Se pueden filtrar algunas señales de ruido al establecer un umbral de distancia de MA5.
  3. El riesgo puede ser controlado de manera efectiva mediante la configuración de las condiciones de stop loss.
  4. La lógica de la estrategia es clara, fácil de entender e implementar.

Análisis de riesgos

  1. La estrategia depende de un solo indicador y puede correr el riesgo de que el indicador falle.
  2. Las estrategias de tendencia a corto plazo pueden tener el riesgo de transacciones frecuentes y aumentar los costos de las transacciones.
  3. El porcentaje de pérdidas fijas puede no adaptarse a diferentes condiciones de mercado.

Dirección de optimización

  1. Se puede considerar la introducción de otros indicadores, como RSI, MACD, etc., para mejorar la fiabilidad de la señal.
  2. Se pueden optimizar las condiciones de detención y frenado, como el uso de un stop-loss móvil o un stop-loss dinámico.
  3. Se pueden establecer diferentes parámetros para diferentes entornos de mercado y mejorar la adaptabilidad de las estrategias.

Resumir

La estrategia de apertura de posición de doble equilátero cruzado es una estrategia simple basada en tendencias a corto plazo. A través de la travesía ascendente y descendente de la MA5 y la configuración de la distancia al límite, se pueden capturar oportunidades de tendencia a corto plazo. Al mismo tiempo, el stop loss de proporción fija puede controlar el riesgo.

Código Fuente de la Estrategia
/*backtest
start: 2023-04-24 00:00:00
end: 2024-04-29 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("YBS Strategy 1.1", overlay=true)

// Moving Average Settings
ma5 = ta.sma(close, 5)

// Scenario 1: Buy when a new candle opens above the MA5
buy_condition_scenario1 = open > ma5

// Scenario 2: Buy when a new candle opens below the MA5 and is at a significant distance from the MA5
distance_from_ma5 = open - ma5
buy_condition_scenario2 = open < ma5 and distance_from_ma5 > 0.002 // Define distance in points here

// Sell: Sell at the close of the candle if it's positive above the entry price, or if the price returns to the entry price
sell_condition_scenario1 = close > strategy.position_avg_price or close == strategy.position_avg_price
sell_condition_scenario2 = close <= strategy.position_avg_price * 0.999 // Close if price drops more than 0.1% from entry price

// Execute buy and sell orders
if (buy_condition_scenario1 and not (strategy.opentrades > 0))
    strategy.entry("Buy Scenario 1", strategy.long)

if (buy_condition_scenario2 and not (strategy.opentrades > 0))
    strategy.entry("Buy Scenario 2", strategy.long)

if (sell_condition_scenario1)
    strategy.close("Buy Scenario 1")

if (sell_condition_scenario2)
    strategy.close("Buy Scenario 2")