Estrategia Long-Short basada en SMA


Fecha de creación: 2023-11-22 15:42:29 Última modificación: 2023-11-22 15:42:29
Copiar: 2 Número de Visitas: 596
1
Seguir
1617
Seguidores

Estrategia Long-Short basada en SMA

Descripción general

Esta estrategia construye una estrategia simple de varios espacios basado en el índice SMA. Hacer más cuando el precio supera el SMA de 20 ciclos y hacer vacío cuando el precio rompe el SMA de 20 ciclos.

Principio de estrategia

Esta estrategia utiliza el SMA de la más alta y la más baja de 20 períodos como un indicador para determinar el exceso de espacio. Cuando el precio cruza el SMA más alto, se considera que está en una tendencia alcista, y se hace más; cuando el precio rompe el SMA más bajo, se considera que está en una tendencia descendente, y se hace vacío.

En concreto, la estrategia primero calcula el SMA de los 20 períodos de mayor y menor precio, y traza una línea de indicadores. Luego establece la siguiente lógica de negociación:

Entrada múltiple: cuando el precio de cierre alcanza la SMA más alta La salida de varios jefes: el cierre se produce cuando el precio se cierra 0.99 veces más alto que la SMA

Entrada en blanco: cuando el precio de cierre rompe la SMA más baja
Salida en blanco: el precio de cierre está a 1.01 veces la SMA más baja

Así, se construye una estrategia multi-espacio que se ejecuta siguiendo la tendencia.

Análisis de las ventajas

Esta estrategia tiene las siguientes ventajas:

  1. El uso del SMA para determinar la dirección de la tendencia es simple y práctico
    1. Las SMA más altas y más bajas actúan como líneas de resistencia que sostienen el indicador.
    2. diseño de pérdidas razonables para evitar pérdidas masivas
    3. Alta adaptabilidad, con múltiples períodos de tiempo y variedades disponibles

Análisis de riesgos

La estrategia también tiene ciertos riesgos:

  1. Los indicadores SMA están rezagados y pueden haber perdido el punto de inflexión de la tendencia
  2. Prevención de eventos inesperados no relacionados con el mercado
  3. No tiene en cuenta el impacto en el costo de la transacción.

Estos riesgos se pueden controlar y reducir mediante la combinación de otros indicadores, la configuración de parámetros de pérdidas y optimización.

Dirección de optimización

La estrategia también puede ser optimizada en los siguientes aspectos:

  1. Combinado con otros indicadores para juzgar tendencias, como MACD, KDJ, etc.
  2. Mecanismos adicionales de prevención de emergencias, como el manejo de situaciones excepcionales como suspensiones de licencia o precios límite
  3. Optimización de los parámetros del ciclo SMA para encontrar la combinación óptima de parámetros
  4. Considerar los parámetros óptimos para diferentes variedades y diferentes períodos de tiempo
  5. Evaluar el impacto de los costos de transacción y establecer los mejores puntos de parada y pérdidas

Resumir

La idea general de esta estrategia es clara y fácil de implementar, y se puede obtener un buen efecto al juzgar las tendencias de la falta de espacio a través de los indicadores SMA, y establecer un mecanismo de entrada y salida razonable. Hay espacio para una optimización adicional, y si se combina con otros indicadores y técnicas, puede convertirse en una estrategia que vale la pena seguir a largo plazo.

Código Fuente de la Estrategia
/*backtest
start: 2023-11-14 00:00:00
end: 2023-11-21 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/
// © AlanAntony

//@version=4


strategy("ma 20 high-low",overlay=true)

//compute the indicators

smaH = sma(high, 20)
smaL = sma(low, 20)


//plot the indicators
plot(smaH,title="smaHigh", color=color.green, linewidth=2)


plot(smaL,title="smaLow", color=color.red, linewidth=2)


//trading logic
enterlong = crossover(close,smaH) //positive ema crossover
exitlong = crossunder(close,0.99*smaH)  //exiting long


entershort = crossunder(close,smaL) //negative EMA Crossover
exitshort = crossover(close,1.01*smaH) //exiting shorts


notintrade = strategy.position_size<=0
bgcolor(notintrade ? color.red:color.green)

//execution logic

start = timestamp(2015,6,1,0,0)
//end = timestamp(2022,6,1,0,0)

if time >= start
    strategy.entry( "long", strategy.long,1, when = enterlong)
    strategy.entry( "short", strategy.short,1, when = entershort) 
    
    strategy.close("long", when = exitlong)
    strategy.close("short", when = exitshort)

//if time >= end
   // strategy.close_all()