Estrategia de negociación de cruce de medias móviles ponderadas y medias móviles adaptativas


Fecha de creación: 2024-01-23 14:13:55 Última modificación: 2024-01-23 14:13:55
Copiar: 0 Número de Visitas: 583
1
Seguir
1617
Seguidores

Estrategia de negociación de cruce de medias móviles ponderadas y medias móviles adaptativas

Descripción general

Esta estrategia se basa en la aplicación de señales de negociación basadas en las medias móviles adaptativas (AIOMA) y las medias móviles ponderadas (WMA). Se genera una señal de compra y venta a través de la intersección de AIOMA y WMA.

Nombre de la estrategia

AIOMA-WMA estrategia de adaptación cruzada

Principio de estrategia

La estrategia incluye principalmente las siguientes partes:

  1. Cálculo del índice AIOMA

    • Especifica el parámetro de longitud para calcular una serie de promedios móviles exponenciales (EMA)
    • Conectar estos EMA de forma suave para formar una secuencia suave
    • El AIOMA final es el EMA del último deslizamiento
  2. Cálculo del índice WMA

    • Especificar el valor de longitud para calcular el WMA
  3. Generación de señales de comercio

    • WMA genera una señal de compra cuando se carga AIOMA
    • WMA genera una señal de venta cuando baja AIOMA
  4. Lógica de transacciones

    • Cuando compras una señal, entras en una posición de más de un lado.
    • Cuando se vende una señal, se entra en una posición en blanco
    • Cierre de posición en la dirección correspondiente cuando se da la señal de posición baja

Ventajas estratégicas

  1. El uso de dos tipos diferentes de medias móviles puede mejorar la precisión de las señales de negociación
  2. AIOMA reduce las señales falsas mediante el suavizado de múltiples índices
  3. El WMA, como indicador principal, es más sensible a los cambios en los precios y puede capturar las tendencias con anticipación
  4. Una lógica de transacción simple, fácil de entender y de implementar

Riesgo estratégico

  1. Las múltiples suavizaciones de la EMA podrían provocar un retraso excesivo
  2. Los WMA son susceptibles a las fluctuaciones de precios a corto plazo y generan señales erróneas
  3. La falta de consideración de la lógica de stop loss puede provocar grandes pérdidas

Se puede reducir el riesgo mediante la optimización adecuada de los parámetros, el establecimiento de puntos de parada o la combinación de filtros de otros indicadores.

Dirección de optimización de la estrategia

  1. Prueba combinaciones de parámetros de diferentes longitudes para encontrar el mejor parámetro
  2. El bloqueo se activa al mismo tiempo que la señal de compra/venta.
  3. Indicadores de volatilidad del mercado en combinación con filtración de falsas señales
  4. Aumentar las estrategias de gestión de posiciones

Resumir

Esta estrategia integra las ventajas de los dos indicadores AIOMA y WMA para generar señales de negociación mediante el cruce. Se puede mejorar la calidad de la señal en comparación con una sola media móvil. Se puede perfeccionar aún más mediante optimización de parámetros, estrategias de stop loss y filtración de volatilidad, entre otros, para convertirse en un sistema de negociación estable y confiable.

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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SDTA

//@version=5
strategy("AIOMA-WMA Strategy", overlay=true)

// Parametreler
aioma_length = input(14, "AIOMA Length")
wma_length = input(21, "WMA Length")

// AIOMA hesaplama
length1 = aioma_length
ema1 = ta.ema(close, length1)
length2 = aioma_length
ema2 = ta.ema(ema1, length2)
length3 = aioma_length
ema3 = ta.ema(ema2, length3)
length4 = aioma_length
ema4 = ta.ema(ema3, length4)
aioma = ta.ema(ema4, aioma_length)

// WMA hesaplama
wma = ta.wma(close, wma_length)

// Kesişim kontrolü
cross_up = ta.crossover(wma, aioma)
cross_down = ta.crossunder(wma, aioma)

// İşlem fonksiyonu
enterTrade(dir, price, signalText, color) =>
    if dir
        strategy.entry("Enter", strategy.long)
        label.new(x = bar_index, y = price, text = signalText, color = color, textcolor = color, style = label.style_label_up, size = size.small, tooltip = "Entry Signal")
    else if not dir
        strategy.entry("Exit", strategy.short)
        label.new(x = bar_index, y = price, text = signalText, color = color, textcolor = color, style = label.style_label_down, size = size.small, tooltip = "Exit Signal")

// Long pozisyon girişi
if cross_up
    enterTrade(true, low, "Buy Signal", color.green)

// Short pozisyon girişi
if cross_down
    enterTrade(false, high, "Sell Signal", color.red)

// Pozisyon kapatma
if cross_up and strategy.position_size > 0
    strategy.close("Enter")
if cross_down and strategy.position_size < 0
    strategy.close("Exit")

// Grafiğe plot
plot(aioma, color=color.blue, linewidth=2, title="AIOMA")
plot(wma, color=color.red, linewidth=2, title="WMA")