avatar of 发明者量化-小小梦 发明者量化-小小梦
Seguir Mensajes Privados
4
Seguir
1271
Seguidores

Sistema de comercio de media móvil adaptable de moneda digital y análisis del algoritmo KAMA, basado en el software de comercio cuantitativo del inventor

Creado el: 2019-07-06 16:21:15, Actualizado el: 2023-10-24 21:42:44
comments   1
hits   5792

[TOC]

Sistema de comercio de media móvil adaptable de moneda digital y análisis del algoritmo KAMA, basado en el software de comercio cuantitativo del inventor

Introducción al KAMA de media móvil adaptativa

Como sugiere su nombre, la media móvil adaptativa (KAMA) pertenece a la categoría de media móvil, pero a diferencia de la media móvil tradicional, es muy “inteligente”. Sabemos que las medias móviles ordinarias tienen muchas deficiencias. Por ejemplo, la media móvil de corto plazo está cerca de la tendencia de precios y es muy sensible, pero es fácil generar señales falsas; la media móvil de largo plazo es muy precisa al juzgar tendencias, pero a menudo el mercado tarda un tiempo en reaccionar.

La “inteligencia” de KAMA radica en su capacidad de ajustar de forma autónoma su sensibilidad en función de las condiciones actuales del mercado, es decir, la volatilidad. Su manifestación es: en un mercado volátil, los cambios en KAMA se desaceleran significativamente; cuando aparece una tendencia, reacciona rápidamente. En el trading real, su ventaja es que puede reducir los costos de transacción causados ​​por el “desorden diario” y le permite subir a bordo a tiempo cuando el mercado despega.

KAMA en el gráfico

Sistema de comercio de media móvil adaptable de moneda digital y análisis del algoritmo KAMA, basado en el software de comercio cuantitativo del inventor

Método de cálculo de KAMA

  • Dirección (DIR) = Precio de cierre - Precio de cierre hace n días
  • Volatilidad (VIR) = suma(abs(precio de cierre - precio de cierre del día de negociación anterior), n)
  • Eficiencia (ER) = Dirección / Volatilidad
  • Rápido = 2 / (n1 + 1)
  • Lento = 2 / (n2 + 1)
  • Suavidad (CS) = Eficiencia * (Rápido - Lento) + Lento
  • Coeficiente (CQ) = Suavizado * Suavizado
  • KAMA = Promedio ponderado exponencial (promedio móvil dinámico (precio de cierre, coeficiente), 2)

Entre ellos, n, n1 y n2 son todos parámetros de período. De forma predeterminada, n son 10 períodos, n1 son 2 períodos de corto plazo y n2 son 30 períodos de largo plazo. Este es también un conjunto de parámetros reconocidos por Perry Kaufman, el autor de KAMA. n se utiliza para la eficiencia del cálculo de la dirección y la volatilidad, n1 y n2 son los períodos de la media móvil rápida y la media móvil lenta. En teoría, cuanto mayor sea la Parámetro n1, más suave será el KAMA.

El método de cálculo de KAMA es: primero calcular la dirección (DIR) y la volatilidad (VIR), y luego calcular la eficiencia en función de la relación entre ambas. La eficiencia (ER) es una medida del grado de cambio de precio y se calcula simplemente: dirección / volatilidad. El resultado del cálculo está entre 0 y 1. Cuando el valor ER está más cerca de 0, indica que el mercado se encuentra en un estado volátil. Cuando el valor ER está más cerca de 1, indica que el mercado se encuentra en un estado de tendencia.

Una vez calculada la eficiencia (ER), la constante de suavizado (CS) se puede derivar combinando el promedio móvil rápido y el promedio móvil lento: eficiencia * (rápido - lento) + lento. CS representa la velocidad del movimiento de la tendencia. Según la fórmula de cálculo de CS, podemos encontrar que el cambio de CS es siempre proporcional al cambio de ER.

Luego se calcula el coeficiente (CQ) en función de la potencia de suavizado, con el objetivo de hacer que los parámetros del ciclo lento desempeñen un papel más importante en el cálculo, lo que también es un enfoque más conservador. La suavización final de KAMA está determinada por el coeficiente (CQ). En el cálculo de KAMA, el coeficiente (CQ) determina los parámetros del período de suavización de las dos últimas medias móviles, a saber: media ponderada exponencial (media móvil dinámica (precio de cierre, coeficiente), 2).

Cómo utilizar KAMA

Aunque el método de cálculo de KAMA es muy complicado, su uso es similar al de los promedios móviles ordinarios. En aplicaciones prácticas, no solo puede determinar tendencias del mercado, sino que también se puede utilizar para puntos de compra y venta precisos. Debido a que es muy “inteligente”, se puede utilizar en muchas estrategias comerciales e incluso vale la pena probarlo en monedas digitales.

  • Cuando el precio sea mayor que KAMA y KAMA apunte hacia arriba, abra una posición larga.
  • Cuando el precio es menor que KAMA y KAMA se mueve hacia abajo, se abre una posición corta.
  • Cuando el precio es menor que KAMA, o KAMA se mueve hacia abajo, se cierran las posiciones largas.
  • Cuando el precio es mayor que KAMA, o KAMA se mueve hacia arriba, la posición corta se cierra.

Construyendo una estrategia comercial basada en KAMA

Paso 1: Calcular KAMA ¡Aviso! En la esquina superior izquierda, seleccione el lenguaje de programación:My语言. Ya existe un KAMA listo para usar en la biblioteca talib, pero solo tiene un parámetro externo (n) período, y n1 y n2 tienen valores predeterminados de 2 y 30. Las estrategias de este artículo son solo de referencia. Los amigos con buenas habilidades prácticas también pueden escribir las suyas. Luego, el lenguaje My también se puede mezclar directamente con el lenguaje JavaScript. Preste atención al siguiente código:

%%  // My语言内JavaScript的标准格式
scope.KAMA = function() {
    var r = _C(exchange.GetRecords);  // 获取K线数组
    if (r.length > 140) {  // 过滤K线长度
        var kama = talib.KAMA(r, 140);  // 调用talib库计算KAMA
        return kama[kama.length - 2];  // 返回KAMA的具体数值
    }
    return;
}
%%  // My语言内JavaScript的标准格式

Paso 2: Calcular las condiciones comerciales y realizar un pedido

%%
scope.KAMA = function() {
    var r = _C(exchange.GetRecords);
    if (r.length > 140) {
        var kama = talib.KAMA(r, 140);
        return kama[kama.length - 2];
    }
    return;
}
%%

K^^KAMA;  // 把KAMA打印到图表上
A:CLOSE;  // 把收盘价打印到图表上

K > REF(K, 1) && CLOSE > K,BK;  // 开多
K < REF(K, 1) && CLOSE < K,SK;  // 开空
K < REF(K, 1) || CLOSE < K,SP;  // 平多
K > REF(K, 1) || CLOSE > K,BP;  // 平空

Paso 3: Establezca el método de filtrado de señales de estrategia

%%
scope.KAMA = function() {
    var r = _C(exchange.GetRecords);
    if (r.length > 140) {
        var kama = talib.KAMA(r, 140);
        return kama[kama.length - 2];
    }
    return;
}
%%

K^^KAMA;
A:CLOSE;

K > REF(K, 1) && CLOSE > K,BK;
K < REF(K, 1) && CLOSE < K,SK;
K < REF(K, 1) || CLOSE < K,SP;
K > REF(K, 1) || CLOSE > K,BP;

AUTOFILTER;  // 启用一开一平信号过滤机制

Backtesting de estrategia

Para acercarnos más al entorno de trading real, utilizamos un deslizamiento de 2 saltos para las posiciones de apertura y cierre para realizar pruebas de estrés durante el backtesting. El entorno de prueba es el siguiente:

  • Intercambio: BitMEX
  • Tipo de mercado: XBTUSD
  • Instrumento de negociación: XBTUSD
  • Hora: 1 de julio de 2017 ~ 1 de julio de 2019
  • Ciclo de la línea K: diario
  • Deslizamiento: 2 saltos para posiciones de apertura y cierre

Entorno de prueba Sistema de comercio de media móvil adaptable de moneda digital y análisis del algoritmo KAMA, basado en el software de comercio cuantitativo del inventor Detalles de ingresos Sistema de comercio de media móvil adaptable de moneda digital y análisis del algoritmo KAMA, basado en el software de comercio cuantitativo del inventor Curva de financiación Sistema de comercio de media móvil adaptable de moneda digital y análisis del algoritmo KAMA, basado en el software de comercio cuantitativo del inventor

A juzgar por los resultados de las pruebas retrospectivas anteriores, esta sencilla estrategia de KAMA realmente estuvo a la altura de las expectativas. Incluso en el mercado súper bajista de las monedas digitales en 2018, la curva de capital no mostró un gran retroceso y el mercado se encontraba en un período volátil a largo plazo. Abrir y cerrar posiciones de ida y vuelta provocará pérdidas innecesarias. Al mismo tiempo, también tuvo un buen desempeño en el mercado alcista en 2019.

Código fuente de la estrategia

Haga clic para copiar el código fuente completo de la estrategia, basado en mi idioma, adecuado para futuros de materias primas y monedas digitales

Resumir

Una estrategia excelente que se pueda poner en práctica debe haber sido refinada y perfeccionada una y otra vez. Las estrategias de este artículo aún tienen mucho margen de optimización y mejora, como la adición de ciertas condiciones de filtrado, la toma de ganancias activa y el stop loss. condiciones de pérdida, etc. Como un tipo de media móvil, KAMA hereda las ventajas y desventajas de las medias móviles ordinarias y las mejora al mismo tiempo. En un mercado impredecible, incluso si se fija un “mejor parámetro”, es difícil adaptarse a las condiciones futuras del mercado. Por lo tanto, este método de seguir la tendencia y cambiar con las condiciones del mercado puede ser una mejor opción.