Cómo funciones centenarias pueden actualizar nuestras estrategias comerciales
Introducción
Analizar el estado actual del mercado financiero es la base más importante para negociar con éxito. Permite a los tráders evaluar la situación actual y prever posibles variaciones de los precios y tomar decisiones comerciales con conocimiento de causa. Para este análisis pueden aplicarse diversos métodos y modelos matemáticos.
En este artículo hablaremos de algunas funciones matemáticas nuevas. Bueno, no exactamente nuevas. Eran nuevas hace unos 100 años. Ahora algunas funciones están bien olvidadas, mientras que otras están en uso. Pero, por alguna razón, no en el trading. Intentaremos poner remedio a esta desafortunada carencia.
Funciones de Rademacher
En términos matemáticos, una función es una cierta correspondencia entre los argumentos de una función y sus valores. Pueden tener este aspecto, por ejemplo:
![]()
Pero en el comercio, estas funciones se usan muy poco. Para el análisis técnico, se utilizan sobre todo funciones ventana:
![]()
La esencia de estas funciones es muy simple. Tomamos un número predeterminado de precios. Cada precio se multiplica por un factor calculado de forma muy complicada y confusa. Los valores obtenidos se suman y el resultado es un indicador. Es decir, el indicador supone una función del precio. Y nos enfrentamos a la cuestión principal del trading: dónde encontrar estos coeficientes, pero que sean sencillos y comprensibles.
Los coeficientes indicadores pueden fijarse mediante funciones de Rademacher. La fórmula de esta función es muy simple:
![]()
Donde, p es el orden de la función y sign es la función de signo:

Esta función parece aún más sencilla. Por ejemplo, una función de primer orden se representará mediante dos segmentos.

Si conectamos los extremos de estos segmentos con cero, tendremos el mismo seno, solo que elevado al cuadrado. «Quadratisch. Práctico. Gut». Sin embargo, en esta forma, esta función no resulta adecuada para el comercio. Tenemos que hacerle algunos cambios para conseguir una versión discreta.
Supongamos que hemos decidido crear un indicador basado en las funciones de Rademacher. En primer lugar, fijaremos su periodo N. A continuación, el valor del coeficiente i-ésimo de este indicador puede calcularse mediante la fórmula:

Por ejemplo, este es el aspecto de una función discreta de Rademacher de orden 2 con un periodo 8.

Ahora, podemos empezar a desarrollar un indicador basado en estas funciones. El periodo del indicador deberá ser igual a la potencia de dos:
![]()
Entonces el indicador consistirá en funciones de Rademacher de un orden desde 0 a s. Por ejemplo, para un indicador con un periodo igual a 4, podremos utilizar funciones de orden 0, 1 y 2.
Veamos cómo funciona este indicador. En primer lugar, deberemos calcular los valores de todas las funciones en cada recuento de nuestro futuro indicador.
| p = 0 | 1 | 1 | 1 | 1 |
| p = 1 | 1 | 1 | -1 | -1 |
| p = 2 | 1 | -1 | 1 | -1 |
Ahora, deberemos encontrar el peso de cada característica. Para ello, multiplicaremos los coeficientes de la función por los precios correspondientes y sumaremos los resultados. A continuación, la suma obtenida se dividirá por el periodo del indicador. Así, obtendremos tres pesos para cada función:

El peso de la función de orden 0 es la conocida SMA. Todas los demás pesos pueden representarse como velocidades medias de tendencia lineal con periodos de tendencia cambiante y decreciente.
Conociendo los pesos de las funciones, podemos empezar a calcular los valores de los indicadores. Para ello, deberemos multiplicar las pesos por los valores de las funciones de Rademacher que se correspondan con el recuento de indicadores dado. Para simplificar, al calcular las pesos se introducían los precios y se realizaba la suma fila por fila. Y al calcular el indicador, los pesos se deben suministrar a la entrada, mientras que la suma se realiza por columnas. Obtenemos cuatro valores indicadores:

Es decir, un cambio en un precio provoca un cambio en los valores del indicador en toda su longitud. Por un lado, se podría decir que está dibujando. Pero por otro lado, podemos decir que el indicador cambia su patrón de movimiento de precios según los nuevos datos.
¿Se imagina ya cómo podría quedar un indicador así en un gráfico? Aquí hay varias opciones posibles. Al construir un indicador, no estamos obligados a usar el sistema completo de funciones de Rademacher, sino a limitarnos a algún orden más pequeño. Por ejemplo, un indicador con periodo 16, basado en funciones con orden 0 - 2 tendría este aspecto:

La principal característica de un indicador basado en las funciones de Rademacher es que no tiende a suavizar el precio. Este considera cualquier variación de precios como un conjunto de varias tendencias lineales y obtiene niveles medios de estas tendencias.
Funciones de Walsh
Cualquier serie temporal puede modelizarse usando polinomios trigonométricos. El movimiento del precio puede ser tan complejo como se quiera, pero unos coeficientes bien elegidos (en presencia de cosenos y senos) garantizan que los valores del polinomio y la serie temporal coincidan exactamente.
Sin embargo, contar cosenos y senos es largo y complicado. Las funciones de Walsh nos ayudarán a simplificar enormemente los cálculos. Normalmente, estas funciones se definen de la siguiente manera. He mirado su definición y me he dado cuenta de por qué no son populares entre los tráders.
En general, la definición clásica de las funciones de Walsh no nos conviene demasiado, pues necesitamos algo sencillo y visual. Por ello, calcularemos la función de orden p de la siguiente manera:

Este enfoque de la definición de las funciones de Walsh nos permite construir un análogo muy discreto de la transformada discreta de Fourier. Las funciones con cosenos se corresponden con las partes reales de esta transformación, mientras que las funciones con senos se corresponden con la parte imaginaria. Las funciones de seno siguen las tendencias y las funciones de coseno los momentos de cambio en las tendencias. Gracias a esta combinación, el indicador suaviza los precios, y cuanto mayor sea el orden de las características, más intenso será el suavizado.

La única restricción consistirá en que el orden de las funciones no puede superar el periodo del indicador. Por ejemplo, hemos decidido utilizar un indicador con un periodo igual a 8. Entonces podemos utilizar funciones de orden 0 - 7.
Rompe el sistema, comercia libremente
Las funciones que hemos revisado con usted ya han demostrado su utilidad. Mire su teléfono móvil: en algún lugar de su interior hay una función Walsh. Pero... en cualquier negocio, siempre existe ese "pero". Si no lo hay, entonces o todo es realmente perfecto (lo cual resulta poco probable) o hay algo que no le están contando. Vamos a romper las reglas, pero no por gamberrismo, sino por el deseo de ampliar nuestros horizontes.
Las funciones de Rademacher están basadas en los senos. El seno es una función impar:
![]()
Nadie sabe realmente lo que significa, pero (ahí está ese "pero" de nuevo) esta rareza se puede usar para mostrar patrones de tendencia del movimiento de los precios. ¿Y si queremos suavizar una serie de precios? Entonces necesitaremos algún tipo de función par. Por ejemplo, el coseno.
Una versión suavizadora de la función de Rademacher de orden p podría darse como sigue:

Un indicador basado en estas características también seguirá las tendencias. Pero estas tendencias se medirán respecto al centro del indicador, es decir, mostrará los momentos de cambio en la dirección de la tendencia.

El sistema de funciones de Walsh es análogo al sistema de polinomios trigonométricos. Bueno, o la transformada de Fourier. Estas funciones se diseñaron originalmente como un simple sustituto de esta transformación. Las funciones de Walsh no son tan precisas, pero su cálculo era muy rápido y con una acción mínima. Para los ordenadores de la época, este hecho resultaba crítico.
Pero (de nuevo, "pero"), existe otra transformación que puede usarse para construir otro sistema. Hablamos de la Transformada de Hartley. Esta transformación se basa en las sumas de senos y cosenos. Y los coeficientes de dicha función pueden calcularse así:

Las funciones pueden ser simétricas, entonces suavizarán los precios. O pueden ser asimétricas, entonces dichas funciones seguirán las tendencias. Un indicador basado en estas funciones tendrá este aspecto:

El siguiente cambio que haremos se refiere al aspecto del indicador. Cualquier función de orden 0 es equivalente a la SMA. Sin embargo, estamos acostumbrados a que la SMA se muestre como una línea en un gráfico. Nosotros haremos lo mismo: en cada barra calcularemos solo el último valor del indicador y lo mostraremos en el gráfico. Entonces veremos la línea acostumbrada.

También podemos construir un oscilador basado en estas funciones. El indicador en sí necesitará cambios muy pequeños. Todos los coeficientes de las funciones de orden 0 deberán igualarse a cero. A continuación, el oscilador resultante mostrará las fluctuaciones del indicador lineal en relación con la SMA.

El cálculo de los dos últimos indicadores usa diferencias, por lo que su desfase será pequeño. Y esto puede repercutir positivamente en el trading.
Estrategias comerciales
Veamos ahora cómo usar estos indicadores en el trading.
En la primera estrategia, utilizaremos la capacidad del indicador para seguir tendencias. Las reglas de la estrategia serán muy sencillas:
- si el precio actual está por debajo del valor más pequeño del indicador y el precio anterior está por encima del actual, entonces abriremos una posición de compra y cerraremos una posición de venta;
- si el precio actual es superior al valor más alto del indicador y el precio anterior es inferior al actual, entonces abriremos una posición de venta y cerraremos una posición de compra.
A pesar de su sencillez, la estrategia parece bastante viable.

Basándonos en un indicador lineal, podemos construir una estrategia cuyas señales se generen cuando el precio cruce la línea del indicador:
- si el precio actual está por encima de la línea del indicador y el precio anterior estaba por debajo, abriremos una posición de compra y cerraremos una posición de venta;
- si el precio actual está por debajo de la línea del indicador y el precio anterior ha sido superior, abriremos una posición de venta y cerraremos una posición de compra.

Los resultados de las pruebas no resultan impresionantes. Pero siempre podemos utilizar varios indicadores, cada uno con sus propios parámetros. Cada indicador generará sus propias señales y aportará sus pequeños ingresos.
Podemos realizar pequeños cambios en esta estrategia, y en lugar de los valores de los precios, utilizar los valores de otro indicador. La intuición nos sugiere que un indicador debería ser de suavización y el otro de tendencia. El resultado de estos cambios podría ser el siguiente:

También podemos utilizar un oscilador basado en las funciones analizadas para generar señales.
Primero, probaremos la versión sencilla. Por ejemplo, las señales pueden generarse cuando la línea del indicador cruce el cero. Si el oscilador cambia de signo de menos a más, abriremos una posición de compra y cerraremos una posición de venta. Cuando el signo cambie de positivo a negativo, se generará la señal opuesta.
Este enfoque no inspira mucha confianza y su uso en la práctica parece muy cuestionable.

Vamos a introducir cambios en esta estrategia. Las posiciones de compra se abrirán si el oscilador alcanza algún valor mínimo establecido. Se abrirán posiciones de venta si el valor del indicador supera un nivel concreto. Las posiciones se cerrarán cuando el oscilador pase por el cero.
El cambio de las señales de las posiciones de apertura mejora algo los resultados.

Si no estamos satisfecho con los resultados, siempre podemos probar a cambiar los ajustes.

Como podemos ver, el uso de nuevos indicadores en el trading está bastante justificado. Al mismo tiempo, las funciones consideradas en este artículo permiten construir estrategias más complejas. Todas las funciones de orden 1 y superiores son independientes entre sí. Podemos construir un banco de osciladores basado en funciones de diferentes tipos, órdenes y periodos. Usando como base estos indicadores, podemos obtener señales comerciales más precisas.
Conclusión
La aplicación de funciones nuevas/antiguas en el trading abre ciertas oportunidades para analizar los movimientos de los precios y tomar decisiones comerciales. Estas pueden ayudarnos a identificar pautas ocultas en el comportamiento de los precios y predecir cambios futuros. A partir de ellas podemos desarrollar estrategias comerciales eficaces. Además, podemos utilizar las funciones de Rademacher y Walsh para filtrar el ruido y mejorar la calidad de la previsión.
Para escribir este artículo, hemos usado los siguientes programas:
| Nombre | Tipo | Particularidades |
|---|---|---|
| Nueva función | Indicador |
|
| New Function Lin | Indicador | El indicador calcula el último valor conocido del sistema de funciones seleccionado y lo muestra en el gráfico. |
| New Function Osc | Indicador | Oscilador construido sobre funciones de orden 1 y superior. |
| EA New Function | Experto | La desviación del precio actual respecto a los valores mínimo/máximo de la función se usa para generar señales. |
| EA New Function Lin | Experto | Las señales se generan cuando el precio cruza la línea del indicador New Function Lin. |
| EA New Function Lin 2 | Experto | Las señales se generan cuando se cruzan las líneas de los dos indicadores New Function Lin. |
| EA New Function Osc | Experto | Las señales del asesor experto se generan cuando la línea del indicador New Function Osc cruza el cero. |
| EA New Function Osc 2 | Experto | Las señales del asesor experto se generan cuando la línea del indicador New Function Osc cruza los niveles especificados. Los valores de los niveles se establecen en los parámetros de entrada - LvlBuy y LvlSell. |
Traducción del ruso hecha por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/ru/articles/17252
Advertencia: todos los derechos de estos materiales pertenecen a MetaQuotes Ltd. Queda totalmente prohibido el copiado total o parcial.
Este artículo ha sido escrito por un usuario del sitio web y refleja su punto de vista personal. MetaQuotes Ltd. no se responsabiliza de la exactitud de la información ofrecida, ni de las posibles consecuencias del uso de las soluciones, estrategias o recomendaciones descritas.
Redefiniendo los indicadores de MQL5 y MetaTrader 5
Redes neuronales en el trading: Modelos bidimensionales del espacio de enlaces (Final)
Simulación de mercado (Parte 09): Sockets (III)
Simulación de mercado (Parte 08): Sockets (II)
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso