El PCA Synthetics es un indicador que te permite seleccionar automáticamente los coeficientes para cada instrumento en un portafolio pseudo-estacionario, el cual tiende a equilibrarse en cero.
Este indicador requiere que tengas la biblioteca AlgLib en la carpeta Include\Math de tu terminal.
Un Poco de Teoría
Cada instrumento tiene su propio movimiento, y cada dirección representa una dimensión separada en un arreglo multidimensional. Al girar la matriz, es decir, multiplicando cada elemento por un número determinado, buscamos un eje que minimice la distancia entre el eje y todos los instrumentos, es decir, la menor varianza total. El número que multiplica cada elemento de la matriz se convierte en el valor del ángulo, que indica cómo debe girarse el instrumento en movimiento para alinearse con los demás. Este valor angular es el coeficiente para cada divisa en el portafolio.
Si el valor del coeficiente es mayor que 0, se compra la divisa; si es menor que 0, se vende. De este modo, es posible mantener la estacionariedad del sintético creado recalculando los coeficientes de vez en cuando. Además, el PCA no solo encuentra el eje con la menor varianza para el portafolio, sino que también identifica varios ejes. La cantidad de instrumentos en el portafolio equivale al número de componentes (vectores). Cada uno de ellos se llama componente principal y determina cuánto afecta al cambio total del movimiento del portafolio.
Posibles Problemas
Si no se dibuja el gráfico, revisa lo que se imprime en la pestaña de Expertos. Puede que haya errores o que la sincronización con otros gráficos esté en progreso. Si no hay mensajes, intenta cambiar a otros marcos de tiempo.
Los valores del vector obtenidos fueron verificados con los calculados previamente en el paquete R, por lo que los valores en sí son correctos. Sin embargo, el signo de un coeficiente específico puede estar equivocado, ya que el PCA no considera los signos. El signo "-" o "+" solo puede determinarse empíricamente, es decir, a través de prueba y error.
El problema número 2 se ha descrito en las imágenes aquí: http://stats.stackexchange.com/questions/34396/im-getting-jumpy-loadings-in-rollapply-pca-in-r-can-i-fix-it
Parámetros
InpFrame = 300; // Ventana flotante para el cálculo de coeficientes, para cada una de InpDepth barras se realizan cálculos de InpFrame
InpDepth = 1000; // El total de barras en la historia, para las cuales se dibuja el gráfico
InpForward = 500; // La barra para detener el recalculo de coeficientes y usar los anteriores, esto es OOS
InpPeriod = 1; // Suavizado para el MA, para que el gráfico se vea menos movido
InpTimePeriod = PERIOD_CURRENT; // Marco de tiempo para los cálculos
InpNormalize = true; // Normalizar los precios antes de mostrarlos, para suavizar las brechas de volatilidad de USDJPY y EURGBP
InpSynthetics = true; // Dibujar el sintético resumido multiplicado por los coeficientes encontrados o cada par individualmente
InpPrices = Logs; // Algoritmo de normalización de pares
InpSymbols = "AUDUSD,USDCHF,USDCAD"; // Pares para el portafolio
InpMagic = "ID" // Nombre personalizado del indicador, para facilitar la colocación de múltiples instancias en un gráfico sin conflictos
La idea fue adoptada de aquí: https://www.mql5.com/en/code/9908



Publicaciones relacionadas
- Niveles Históricos Fuertes: Herramienta Clave para Traders de MetaTrader 5
- DSSBressertSignAlert: Indicador para MetaTrader 5 con Alertas
- Alertas de Señales con el Indicador Iin_MA para MetaTrader 5
- Indicador 3D_Oscillator_HTF_Signal para MetaTrader 5: Tu guía para operar con señales efectivas
- Volatilidad Estocástica: Indicador en Gráficos para MetaTrader 5