¿Cómo se calcula el Kama?

Parámetros de cálculo del Kama y limitaciones de los datos.

Respuesta directa

El Kama se calcula generalmente como una media móvil variable y autoajustable. En la formulación más común, cada nuevo valor del Kama utiliza (1) el valor anterior del Kama, (2) un factor de suavizado que cambia con el tiempo y (3) el precio actual. Ese factor de suavizado depende de cuán “eficientemente” se ha movido el precio en una ventana de retroceso reciente, a menudo medida como la relación entre el cambio neto del precio y el cambio absoluto total.

Debido a que existen diferentes nombres y variantes en la práctica, la forma más segura de verificar lo que estás utilizando es comprobar la definición exacta en la configuración del indicador que tengas (por ejemplo, la longitud de retroceso y las constantes de suavizado). El cálculo a continuación muestra una estructura estable y ampliamente utilizada; si el Kama de tu plataforma utiliza nombres de parámetros diferentes o una fórmula de eficiencia ligeramente distinta, los pasos mecánicos son similares, pero las constantes pueden diferir.

Mecanismo y definición

Una forma práctica de describir la mecánica es como un proceso de suavizado recursivo.

  1. Elegir la serie de precios de entrada El Kama se calcula a partir de una serie temporal de precios. El “precio” puede definirse de diferentes maneras (por ejemplo, precio de cierre, precio típico u otra serie derivada). Tu elección de entrada debe coincidir con la implementación que deseas reproducir.

Sea P[t] el precio seleccionado en el momento t.

  1. Establecer una ventana de retroceso y límites de suavizado Un Kama típico utiliza:
  • Longitud de retroceso: N (cuántos períodos se utilizan para juzgar la eficiencia)
  • Configuración de suavizado rápido: generalmente representada por un período o constante “rápido” pequeño
  • Configuración de suavizado lento: generalmente representada por un período o constante “lento” más grande

En muchas implementaciones, los límites de suavizado se convierten en dos constantes:

  • SC_fast y SC_slow derivadas de los períodos rápido y lento

La asignación exacta depende de la implementación. Un enfoque común utiliza constantes de estilo de suavizado exponencial de la forma:

  • SC_fast = 2 / (fastPeriod + 1)
  • SC_slow = 2 / (slowPeriod + 1)
  1. Calcular un ratio de eficiencia en los últimos N períodos En la ventana de retroceso, se comparan dos cantidades:
  • Cambio neto: |P[t] − P[t−N]|
  • Suma de movimientos absolutos: sum_{i=0..N−1} |P[t−i] − P[t−i−1]|

Luego se calcula un ratio de eficiencia ER como:

  • ER = netChange / sumAbsMoves

Este ER está diseñado para ser más alto cuando el precio se mueve fuertemente desde su inicio hasta su final en relación con la cantidad de movimiento “de ida y vuelta” dentro de la ventana. Cuando el ER está cerca de 0, el precio ha sido lateral; cuando el ER está más cerca de 1, el precio se ha movido de manera más directa.

Un detalle que las implementaciones manejan explícitamente: si sumAbsMoves es cero (por ejemplo, si el precio no cambia en toda la ventana), el ER puede establecerse en 0 o manejarse para evitar la división por cero. Debes replicar la misma regla utilizada en tu fuente.

  1. Convertir el ER en una constante de suavizado dinámica Luego se calcula una constante de suavizado variable SC[t] utilizando el ER y los límites de suavizado. Una estructura común es:
  • SC[t] = (ER × (SC_fast − SC_slow) + SC_slow)^2

El exponente (a menudo 2) es parte de la formulación comúnmente utilizada; si tu implementación usa un exponente diferente, debes usar el mismo.

  1. Actualizar el Kama recursivamente Finalmente, el Kama se actualiza como:
  • Kama[t] = Kama[t−1] + SC[t] × (P[t] − Kama[t−1])

Esta forma hace que el Kama “se acerque” al precio actual en una cantidad que depende de SC[t]. Un SC más grande significa un ajuste más rápido; un SC más pequeño significa un ajuste más lento.

  1. Inicialización El Kama requiere un valor inicial Kama[0] (o Kama[N−1], dependiendo de la indexación). Muchas implementaciones inicializan el Kama con el precio en el primer punto disponible o con una media móvil simple. Si deseas verificar el cálculo de forma independiente, confirma la regla de inicialización exacta de la definición del indicador que estás probando.

Evidencia o ejemplo (con supuestos explícitos)

A continuación se muestra un pequeño recorrido numérico utilizando supuestos declarados. Esto no son datos de mercado en vivo; muestra la estructura de cálculo que puedes repetir con tu propia serie.

Supuestos para el ejemplo:

  • El precio de entrada P es el precio de cierre.
  • Longitud de retroceso N = 3.
  • fastPeriod = 2, slowPeriod = 30, por lo tanto:
    • SC_fast = 2/(2+1) = 0.666666…
    • SC_slow = 2/(30+1) = 0.064516…
  • El exponente es 2 en SC[t].
  • El valor anterior del Kama es Kama[t−1] = 100.

Supongamos que en el momento t tienes:

  • P[t−2] = 99
  • P[t−1] = 101
  • P[t] = 100

Paso A: netChange

  • netChange = |P[t] − P[t−N]| = |100 − 99| = 1

Paso B: sumAbsMoves Para N = 3, necesitamos |P[t]−P[t−1]| + |P[t−1]−P[t−2]| + |P[t−2]−P[t−3]|. Pero nuestra mini-serie solo muestra dos precios anteriores. Para mantener la demostración consistente, expande la ventana para incluir P[t−3].

Sea P[t−3] = 98. Ahora calcula:

  • |P[t] − P[t−1]| = |100 − 101| = 1
  • |P[t−1] − P[t−2]| = |101 − 99| = 2
  • |P[t−2] − P[t−3]| = |99 − 98| = 1
  • sumAbsMoves = 1 + 2 + 1 = 4

Paso C: ER

  • ER = netChange / sumAbsMoves = 1 / 4 = 0.25

Paso D: constante de suavizado dinámica

  • SC[t] = (ER × (SC_fast − SC_slow) + SC_slow)^2 Primero calcula (SC_fast − SC_slow):
  • 0.666666… − 0.064516… = 0.602150… Luego el término lineal:
  • ER × (SC_fast − SC_slow) + SC_slow = 0.25 × 0.602150… + 0.064516… = 0.150537… + 0.064516… = 0.215053… Eleva al cuadrado:
  • SC[t] ≈ (0.215053…)^2 ≈ 0.0463

Paso E: actualizar el Kama

  • Kama[t] = Kama[t−1] + SC[t] × (P[t] − Kama[t−1]) = 100 + 0.0463 × (100 − 100) = 100

En este ejemplo construido, el precio actual es igual al Kama anterior, por lo que la actualización es cero. Si P[t] fuera diferente de Kama[t−1], verías un ajuste distinto de cero escalado por SC[t].

Por qué esto ilustra la idea: si el ER aumenta (el precio se vuelve más directo en N períodos), SC[t] tiende a moverse hacia SC_fast, haciendo que el Kama responda más rápido. Si el ER disminuye (movimiento más lateral), SC[t] tiende hacia SC_slow, haciendo que el Kama sea más suave.

Limitaciones y riesgos

  1. Desajuste de parámetros El Kama depende de N, la configuración rápida/lenta, el exponente y las reglas de manejo de casos extremos (como la división por cero). Si copias la fórmula pero no la asignación exacta de parámetros de tu indicador, reproducirás valores diferentes.

  2. Definición del precio de entrada Diferentes plataformas definen el “precio” de manera distinta. Si una usa el cierre y otra usa un precio derivado (por ejemplo, el promedio de máximo/mínimo/cierre), toda la serie de salida cambia.

Operar con divisas y CFD implica un riesgo considerable. La información de FoxiForex es educativa y no constituye asesoramiento financiero personal. El contenido patrocinado se identifica claramente.