Estrategia de negociación cruzada de media móvil adaptativa y media móvil ponderada

El autor:¿ Qué pasa?, Fecha: 2024-01-23 14:13:55
Las etiquetas:

img

Resumen general

Esta estrategia genera señales de negociación basadas en el indicador adaptativo para promedios móviles (AIOMA) y los indicadores de promedio móvil ponderado (WMA).

Nombre de la estrategia

Estrategia de adaptación cruzada AIOMA-WMA

Estrategia lógica

La estrategia incluye los siguientes componentes principales:

  1. Cálculo del indicador AIOMA

    • Calcular una serie de promedios móviles exponenciales (EMA) con una longitud especificada
    • Enlazar estas EMA para crear valores suavizados
    • El AIOMA final es una EMA del último valor suavizado
  2. Cálculo del indicador de la AMM

    • Calcular el WMA con la longitud especificada
  3. Generación de señales

    • Compra señal cuando WMA cruza por encima de AIOMA
    • Vender señal cuando WMA cruza por debajo de AIOMA
  4. La lógica de la negociación

    • Entrar en posición larga con la señal de compra
    • Introducción de una posición corta en la señal de venta
    • Posición cerrada en las señales de cruce inverso

Ventajas

  1. El uso de dos tipos diferentes de medias móviles mejora la precisión de la señal
  2. AIOMA reduce las señales falsas a través de múltiples suavizaciones exponenciales
  3. WMA como indicador principal reacciona más rápido a los cambios de precios para captar las tendencias temprano
  4. Lógica de negociación sencilla, fácil de entender e implementar

Los riesgos

  1. Retraso excesivo debido a múltiples suavizaciones de la EMA
  2. La WMA es propensa a señales erróneas de las fluctuaciones de precios a corto plazo
  3. No hay lógica de stop loss, puede conducir a grandes pérdidas

Puede reducir los riesgos mediante la optimización de parámetros, la adición de stop loss, el filtrado con otros indicadores, etc.

Áreas de mejora

  1. Prueba diferentes combinaciones de parámetros para encontrar valores óptimos
  2. Las órdenes de detención de pérdidas activadas junto con las señales de entrada
  3. Indicadores de volatilidad para filtrar las señales
  4. Incorporar estrategias de dimensionamiento de posiciones

Conclusión

Esta estrategia combina las fortalezas de AIOMA y WMA mediante el uso de cruces para generar señales comerciales. En comparación con los promedios móviles únicos, mejora la calidad de la señal.


/*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")


Más.