¿Cómo se calcula el Transformador de Fisher?

Aprende los pasos de cálculo del Transformador de Fisher, sus entradas y limitaciones.

Qué es el Transformador de Fisher (y por qué la fórmula parece diferente)

El Transformador de Fisher es una transformación matemática diseñada para convertir una serie temporal (a menudo una serie de precios) en una forma que se comporta más como un oscilador sin límites. Se llama “transformador” porque reasigna valores utilizando funciones no lineales, no porque realice predicciones estadísticas.

En la práctica, la idea clave es:

  1. reducir la serie de entrada a un valor acotado utilizando un rango móvil de máximos/mínimos,
  2. aplicar un mapeo no lineal de estilo Fisher (relacionado con una razón logarítmica),
  3. actualizar el valor mapeado de forma recursiva para que el indicador responda suavemente en lugar de “punto por punto”.

Debido a que el mapeo es no lineal y el rango se calcula sobre una ventana, la escala exacta de salida y la sensibilidad dependen en gran medida de la configuración elegida y de los datos que se introducen en el cálculo.

El cálculo principal: fórmula, parámetros y entradas

Un cálculo ampliamente utilizado del Transformador de Fisher sigue esta estructura general. Los detalles exactos de implementación varían según la fuente, pero la mecánica siguiente captura los componentes esenciales.

Parámetros y entradas

Necesitas:

  • Serie de entrada: generalmente un valor de precio derivado (por ejemplo, el precio medio), proporcionado para cada paso temporal.
  • Longitud de la ventana de retroceso (N): el número de barras utilizadas para calcular el mínimo y el máximo móvil.
  • Recursión/iteración: el mapeo de Fisher utiliza una actualización recursiva que hace referencia a valores calculados previamente.

Paso 1: calcular un valor normalizado móvil

Para cada paso temporal t (comenzando solo después de que existan suficientes datos para el retroceso), calcula el mínimo y el máximo móvil de la serie de entrada durante los últimos N pasos:

  • Mínimo(t) = mínimo de la entrada en la ventana
  • Máximo(t) = máximo de la entrada en la ventana

Luego, calcula una posición normalizada en el rango, a menudo de la forma:

  • x(t) = 2 × ((\frac{Entrada(t) - Mínimo(t)}{Máximo(t) - Mínimo(t)})) − 1

Esto mapea la entrada actual a un valor acotado (conceptualmente entre −1 y +1) según su posición dentro de su rango reciente de mínimos/máximos.

Supuesto para ejemplos de cálculo: debes definir qué es “Entrada(t)” y debes usar la misma N y la misma definición de ventana (inclusiva/exclusiva de la barra actual) de manera consistente al reproducir los valores.

Paso 2: aplicar un mapeo no lineal de estilo Fisher

Calcula un valor intermedio que mapee el valor normalizado acotado a un dominio similar al de Fisher utilizando una transformación de razón logarítmica. Un patrón común es:

  • f(t) = 0.5 × ln((\frac{1 + x(t)}{1 - x(t)}))

Para evitar singularidades (división por cero o logaritmo de cero) cuando x(t) se aproxima a ±1, las implementaciones suelen incluir una salvaguarda como limitar x(t) a un intervalo ligeramente más pequeño (por ejemplo, evitando exactamente −1 y +1).

Paso 3: actualización recursiva (suavizado mediante valores previos)

Muchas fórmulas del Transformador de Fisher actualizan el valor mapeado utilizando la salida anterior. Una estructura recursiva típica es:

  • fish(t) = fish(t−1) + f(t)

y a veces se introduce un factor de suavizado adicional o una variable “anterior” intermedia. La forma recursiva exacta determina la capacidad de respuesta del indicador.

Paso 4: redondeo o escalado opcional

Algunas implementaciones reescalan o redondean la serie final para facilitar su lectura. Estas son elecciones de visualización, no el concepto matemático central.

Un esquema de ejemplo práctico que puedes verificar de forma independiente

Debido a que aquí no se asumen datos de mercado en tiempo real, la forma más fiable de aprender el cálculo es reproducirlo sobre un pequeño conjunto de datos hipotéticos.

Configuración del ejemplo (define primero los supuestos)

  • Elige N = 5.
  • Elige Entrada(t) para cada paso temporal (por ejemplo, una serie de precios medios) que proporciones como valores numéricos.
  • Decide cómo manejar los primeros “N” puntos (comúnmente se comienzan a producir salidas solo después de que la ventana esté completa).
  • Decide cómo limitar x(t) cuando el rango es demasiado pequeño.

Calcula los valores intermedios paso a paso

Para cada paso temporal donde exista la ventana:

  1. Encuentra Mínimo(t) y Máximo(t) de los últimos N valores de entrada.
  2. Calcula x(t) usando (2 × ((Entrada−Mínimo)/(Máximo−Mínimo)) − 1).
  3. Protege x(t) para que no alcance exactamente ±1.
  4. Calcula f(t) = 0.5 × ln((1 + x)/(1 − x)).
  5. Actualiza fish(t) usando la recursión elegida, como fish(t) = fish(t−1) + f(t) (con fish(t−1) inicializado según tu convención elegida).

Cómo comprobar que lo has implementado correctamente

Cuando implementes los mismos pasos con los mismos supuestos, deberías coincidir en:

  • los valores de mínimos/máximos móviles,
  • la secuencia intermedia x(t),
  • el mapeo de Fisher f(t),
  • y la secuencia recursiva fish(t).

Si alguna secuencia intermedia difiere, la salida final también diferirá. Por eso el enfoque de verificación debe centrarse en reproducir los cálculos intermedios, no solo la línea final.

Limitaciones y modos de fallo (qué puede romper el cálculo)

Aunque el Transformador de Fisher es una fórmula definida, su salida calculada puede variar ampliamente dependiendo de cómo implementes los detalles y de cómo se comporten tus datos.

1) Rangos pequeños o planos en la ventana de retroceso

Si Máximo(t) − Mínimo(t) se vuelve muy pequeño, la normalización ((Entrada−Mínimo)/(Máximo−Mínimo)) se vuelve inestable. Esto puede hacer que x(t) salte abruptamente hacia ±1, lo que luego empuja el mapeo logarítmico hacia valores extremos.

Implicación material: debes definir una salvaguarda para rangos cercanos a cero (por ejemplo, omitir la actualización o limitar la razón calculada).

2) Singularidades en la transformación de razón logarítmica

El mapeo (ln((1+x)/(1−x))) no está definido exactamente en x = 1 o x = −1. Los datos reales y el redondeo pueden producir valores extremadamente cercanos a esos límites.

Implicación material: las implementaciones suelen limitar x(t) ligeramente dentro de (−1, +1) para evitar valores infinitos.

3) Inicialización recursiva y convenciones inconsistentes

Debido a que el cálculo a menudo utiliza salidas anteriores, la elección del fish(0) inicial (o del primer valor de fish calculado) afecta a los valores posteriores.

Implicación material: dos implementaciones que usan la misma fórmula pero diferentes convenciones iniciales pueden divergir.

4) La definición de la entrada lo cambia todo

Si “Entrada(t)” es una medida de precio diferente (cierre vs. mediana vs. precio ponderado), los valores de mínimos/máximos móviles cambian, por lo que x(t) y, por tanto, la salida del Transformador de Fisher cambian.

Implicación material: debes tratar la definición de la serie de entrada como parte del cálculo, no como un detalle externo.

5) Problemas de calidad de datos

Barras faltantes, marcas de tiempo irregulares y datos remuestreados pueden alterar las ventanas de mínimos/máximos móviles. Incluso sin ninguna “predicción de mercado”, estos mecanismos de cálculo pueden distorsionar la línea del indicador.

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.