La estrategia de prueba de retroceso de la transformación de Fisher calcula la transformación de Fisher de los precios para identificar los puntos de inversión de precios y generar señales comerciales en consecuencia. La estrategia procesa los precios utilizando la fórmula de transformación de Fisher para eliminar las características no gaussianas de las distribuciones de precios, lo que resulta en un indicador estandarizado con una distribución gaussiana aproximada. La estrategia determina las reversiones de precios basadas en los puntos de inflexión de la curva de transformación de Fisher y produce señales largas y cortas.
El núcleo de esta estrategia es procesar los precios utilizando la fórmula de la transformación de Fisher para eliminar las características no gaussianas de las distribuciones de precios naturales.
y = 0,5 * ln (((1 + x) / (((1-x))
Aquí x es el precio procesado, obtenido primero encontrando los precios más altos y más bajos en los períodos de longitud más recientes utilizando las funciones más altas y más bajas, y luego normalizando como sigue:
x = (precio - mínimo) / ((máximo - mínimo) - 0,5
Los precios procesados de esta manera se aproximan a una distribución gaussiana. x se sustituye a continuación en la fórmula de transformación de Fisher para obtener la curva de transformación de Fisher.
Cuando la curva de transformación de Fisher pasa de positiva a negativa, se genera una señal de venta. Cuando pasa de negativa a positiva, se genera una señal de compra.
La transformación de Fisher elimina las características no gaussianas de los precios, lo que resulta en precios más bien comportados y estandarizados y menos señales falsas
Captura los puntos de reversión de los precios, evitando perseguir los picos y bajos
Ajuste flexible de los parámetros para la sensibilidad de reversión de ajuste
Direccionalidad personalizable, adaptable a diversos entornos de mercado
Lógica sencilla fácil de entender e implementar
La configuración incorrecta de los parámetros puede perder las curvas o generar señales falsas
El deslizamiento en el comercio en vivo puede impedir la ejecución perfecta de la señal
Difícil de identificar los giros cuando los precios son volátiles
Difícil de aplicar en operaciones en vivo con necesidad de confirmar las reversiones
Soluciones:
Optimiza los parámetros ajustando la longitud
Relajar adecuadamente los criterios de entrada para garantizar los llenados
Filtrar señales falsas que combinen otros indicadores
Seguir estrictamente las reglas y gestionar los riesgos
Optimiza el parámetro Length para encontrar la mejor combinación
Añadir filtros para evitar señales falsas, por ejemplo, medias móviles, indicadores de volatilidad, etc.
Incorporar el stop loss a la pérdida de control por operación
Añadir un mecanismo de reingreso para rastrear las tendencias continuas
La estrategia Fisher Transform backtest identifica puntos de inversión de precios eliminando características de precios no gaussianas. Es una estrategia de reversión media fácil de implementar. Sus ventajas se encuentran en parámetros flexibles para capturar vueltas, mientras que su principal debilidad es la dificultad de la implementación en vivo con la necesidad de reglas de entrada estrictas.
/*backtest start: 2023-11-26 00:00:00 end: 2023-12-03 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version = 2 //////////////////////////////////////////////////////////// // Copyright by HPotter v2.0 22/12/2016 // Market prices do not have a Gaussian probability density function // as many traders think. Their probability curve is not bell-shaped. // But trader can create a nearly Gaussian PDF for prices by normalizing // them or creating a normalized indicator such as the relative strength // index and applying the Fisher transform. Such a transformed output // creates the peak swings as relatively rare events. // Fisher transform formula is: y = 0.5 * ln ((1+x)/(1-x)) // The sharp turning points of these peak swings clearly and unambiguously // identify price reversals in a timely manner. // // For signal used zero. // You can change long to short in the Input Settings // Please, use it only for learning or paper trading. Do not for real trading. //////////////////////////////////////////////////////////// strategy(title="Fisher Transform Indicator by Ehlers Backtest", shorttitle="Fisher Transform Indicator by Ehlers") Length = input(10, minval=1) reverse = input(false, title="Trade reverse") hline(0, color=blue) xHL2 = hl2 xMaxH = highest(xHL2, Length) xMinL = lowest(xHL2,Length) nValue1 = 0.33 * 2 * ((xHL2 - xMinL) / (xMaxH - xMinL) - 0.5) + 0.67 * nz(nValue1[1]) nValue2 = iff(nValue1 > .99, .999, iff(nValue1 < -.99, -.999, nValue1)) nFish = 0.5 * log((1 + nValue2) / (1 - nValue2)) + 0.5 * nz(nFish[1]) pos = iff(nFish > 0, 1, iff(nFish < 0, -1, nz(pos[1], 0))) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) barcolor(possig == -1 ? red: possig == 1 ? green : blue ) plot(nFish, color=green, title="Fisher") plot(nz(nFish[1]), color=red, title="Trigger")