Estrategia de ruptura de la media móvil múltiple

El autor:¿ Qué pasa?, Fecha: 2023-11-22 13:41:38
Las etiquetas:

img

Resumen general

Esta estrategia genera señales comerciales basadas en el avance y la devolución de llamadas de varias líneas de media móvil.

Estrategia lógica

El código utiliza 4 líneas de promedio móvil con diferentes períodos - 21 días, 50 días, 100 días y 200 días. Ingresa posiciones largas cuando el precio rompe estas líneas MA y entra en posiciones cortas cuando el precio cae por debajo de estas líneas MA. Además, los niveles de stop loss y take profit se establecen en la estrategia.

La idea central de esta estrategia es juzgar la tendencia utilizando promedios móviles. Cuando el precio rompe las líneas MA ascendentes, indica una tendencia ascendente, por lo que debe ir largo. Cuando el precio cae por debajo de las líneas MA descendentes, indica una tendencia descendente, por lo que debe ir corto. El uso de múltiples líneas MA con diferentes períodos puede juzgar la tendencia con más precisión y también verificar las señales comerciales a través de la consistencia de la tendencia.

Análisis de ventajas

Las principales ventajas de esta estrategia son las siguientes:

  1. El uso de múltiples MAs puede filtrar eficazmente las señales falsas
  2. La configuración de stop loss y take profit puede limitar las pérdidas individuales
  3. Sencillo de implementar

Análisis de riesgos

Los principales riesgos de esta estrategia son:

  1. Las estrategias de MA son propensas a la desalineación, por lo que se pierden los puntos de inversión de precios
  2. Las señales falsas pueden causar pérdidas.
  3. Las opciones incorrectas de stop loss y take profit pueden amplificar las pérdidas.

Estos riesgos pueden reducirse ajustando los parámetros de MA y optimizando el stop loss y el take profit.

Optimización

Esta estrategia puede optimizarse en los siguientes aspectos:

  1. Prueba más combinaciones de MA para encontrar parámetros óptimos
  2. Añadir otros indicadores para evitar errores
  3. Optimizar el stop loss y el take profit para una mejor relación riesgo-recompensa
  4. Ajustar los parámetros a las diferentes condiciones del mercado para hacer más sólida la estrategia

Resumen de las actividades

En general, esta es una tendencia típica después de la estrategia. Las ventajas son lógica clara y fácil de entender e implementar. La desventaja es propensa a señales falsas. La estrategia se puede mejorar ajustando los parámetros y agregando otros indicadores. Es adecuada para la tenencia a mediano y largo plazo y también se puede usar como un componente de estrategias comerciales a corto plazo.


/*backtest
start: 2022-11-15 00:00:00
end: 2023-11-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("DolarBasar by AlperDursun", shorttitle="DOLARBASAR", overlay=true)

// Input for Moving Averages
ma21 = ta.sma(close, 21)
ma50 = ta.sma(close, 50)
ma100 = ta.sma(close, 100)
ma200 = ta.sma(close, 200)

// Calculate the lowest point of the previous candle for stop loss
lowestLow = ta.lowest(low, 2)

// Calculate the highest point of the previous candle for stop loss
highestHigh = ta.highest(high, 2)

// Calculate take profit levels
takeProfitLong = lowestLow - 3 * (lowestLow - highestHigh)
takeProfitShort = highestHigh + 3 * (lowestLow - highestHigh)

// Entry Conditions
longCondition = ta.crossover(close, ma21) or ta.crossover(close, ma50) or ta.crossover(close, ma100) or ta.crossover(close, ma200)
shortCondition = ta.crossunder(close, ma21) or ta.crossunder(close, ma50) or ta.crossunder(close, ma100) or ta.crossunder(close, ma200)

// Stop Loss Levels
stopLossLong = lowestLow * 0.995
stopLossShort = highestHigh * 1.005

// Exit Conditions
longExitCondition = low < stopLossLong or high > takeProfitLong
shortExitCondition = high > stopLossShort or low < takeProfitShort

if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)

if (longExitCondition)
    strategy.exit("Long Exit", from_entry="Long", stop=stopLossLong, limit=takeProfitLong)

if (shortExitCondition)
    strategy.exit("Short Exit", from_entry="Short", stop=stopLossShort, limit=takeProfitShort)


Más.