Predicción de mercado basada en indicadores macroeconómicos - página 56

 
Vladimir:

3: Rendimiento de los valores de diferentes vencimientos más uno más

Tasa anual equivalente (TAE) de compra y mantenimiento, desde 1974: TAE = 7,35%.

Estrategia de compra y venta con indicadores económicos: TAE = 13,18%.

Esta estrategia dio una señal de venta en diciembre de 2019. Hasta ahora no se ha dado ninguna señal de compra. Al parecer, el mercado bajará.

Comprar y mantener.

Sería interesante ver una prueba de avance de dicho modelo, pero no es posible aquí.

Ahora mismo, por lo que tengo entendido, todo el mundo está esperando las elecciones.

 
Vladimir:

3: Rendimiento de los valores de diferentes vencimientos más uno más

Tasa anual equivalente (TAE) de compra y mantenimiento, desde 1974: TAE = 7,35%.

Estrategia de compra y venta con indicadores económicos: TAE = 13,18%.

Esta estrategia dio una señal de venta en diciembre de 2019. Hasta ahora no se ha dado ninguna señal de compra. Al parecer, el mercado bajará.

¿Estamos hablando de un instrumento específico o de un indicador general?

 
Vladimir :

Entonces, la tarea es predecir el índice S&P 500 en función de los indicadores económicos disponibles.

Paso 1: Encuentra los indicadores. Los indicadores están disponibles públicamente aquí: http://research.stlouisfed.org/fred2/ Hay 240.000 de ellos. El más importante es el crecimiento del PIB. Este indicador se calcula trimestralmente. De ahí nuestro paso - 3 meses. Todos los indicadores para un período más corto se recalculan para un período de 3 meses, el resto (anual) se descarta. También descartamos indicadores para todos los países excepto Estados Unidos e indicadores que no tienen un historial profundo (al menos 15 años). Entonces, con un trabajo minucioso, filtramos un montón de indicadores y obtenemos alrededor de 10 mil indicadores. Formulamos una tarea más específica de predecir el índice S&P 500 uno o dos trimestres adelante, teniendo disponibles 10 mil indicadores económicos con un período trimestral. Hago todo en MatLab, aunque es posible en R.

Paso 2: Convertir todos los datos a formato estacionario por diferenciación y normalización. Hay muchos métodos aquí. Lo principal es que los datos originales se pueden restaurar a partir de los datos convertidos. Sin estacionariedad, ningún modelo funcionará. La serie S&P 500 antes y después de la conversión se muestra a continuación.

Paso 3: Elige un modelo. Tal vez una red neuronal. Se puede hacer una regresión lineal multivariable . Puede hacer una regresión polinomial de múltiples variables. Después de probar modelos lineales y no lineales, llegamos a la conclusión de que los datos tienen tanto ruido que no tiene sentido ingresar a un modelo no lineal. El gráfico y(x), donde y = S&P 500 yx = uno de 10 mil indicadores, es una nube casi circular. Así, formulamos la tarea aún más específicamente: predecir el índice S&P 500 con uno o dos trimestres de anticipación, teniendo 10 mil indicadores económicos con un período trimestral, usando regresión lineal multivariable.

Paso 4: Seleccionamos los indicadores económicos más importantes de 10 mil (reducir la dimensión del problema). Este es el paso más importante y difícil. Digamos que tomamos la historia del S&P 500 hasta 30 años (120 trimestres). Para representar el S&P 500 como una combinación lineal de indicadores económicos de varios tipos, basta con tener 120 indicadores para describir con precisión el S&P 500 durante estos 30 años. Además, los indicadores pueden ser absolutamente cualquiera para crear un modelo tan preciso de 120 indicadores y 120 valores S&P 500. Por lo tanto, debe reducir la cantidad de entradas por debajo de la cantidad de valores de función descritos. Por ejemplo, estamos buscando los 10-20 indicadores de entrada más importantes. Tales tareas de describir datos con una pequeña cantidad de entradas seleccionadas de una gran cantidad de bases candidatas (diccionario) se denominan codificación dispersa.

Hay muchos métodos para seleccionar entradas de predictor. Los probé todos. Aquí están los dos principales:

  1. Clasificamos los 10.000 datos por su poder predictivo S&P 500. El poder predictivo se puede medir por coeficiente de correlación o información mutua.
  2. Revisamos los 10 mil indicadores en la parte inferior y elegimos el que dio el modelo lineal y_mod = a + b*x1 que describe el S&P 500 con el error más pequeño. Luego seleccionamos la segunda entrada nuevamente enumerando los 10 mil -1 indicadores restantes para que describa el resto y - y_mod = c + d*x2 con el menor error. Etc. Este método se llama regresión por pasos o búsqueda de correspondencia.

Aquí están los 10 indicadores principales con el coeficiente de correlación más alto con el S&P 500:

ID de serie Retraso corr. Información mutua
'PPICRM' 2 0.315 0.102
'CWUR0000SEHE' 2 0.283 0.122
'CES1021000001' uno 0.263 0.095
'B115RC1Q027SBEA' 2 0.262 0.102
'CES1000000034' uno 0.261 0.105
'A371RD3Q086SBEA' 2 0.260 0.085
'B115RC1Q027SBEA' uno 0.256 0.102
'CUUR0000SAF111' uno 0.252 0.117
'CUUR0000SEHE' 2 0.251 0.098
'USMINE' uno 0.250 0.102

Aquí están los 10 indicadores principales con la mayor información mutua con el S&P 500:

ID de serie Retraso corr. Información mutua
'CPILEGSL' 3 0.061 0.136
'B701RC1Q027SBEA' 3 0.038 0.136
'CUSR0000SAS' 3 0.043 0.134
'GDPPOT' 3 0.003 0.134
'NGDPPOT' 5 0.102 0.134
'OTHSEC' 4 0.168 0.133
'LNU01300060' 3 0.046 0.132
'LRAC25TTUSM156N' 3 0.046 0.132
'LRAC25TTUSQ156N' 3 0.046 0.131
'CUSR0000SAS' uno 0.130 0.131

El retraso es el retraso de la serie de entrada con respecto a la serie simulada del S&P 500. Como se puede ver en estas tablas, los diferentes métodos para elegir las entradas más importantes dan como resultado diferentes conjuntos de entradas. Dado que mi objetivo final es minimizar el error del modelo, elegí el segundo método de selección de entrada, es decir enumeración de todas las entradas y selección de la entrada que dio el menor error.

Paso 5: Elija un método para calcular el error y los coeficientes del modelo. El método más simple es el método COEX, razón por la cual la regresión lineal que usa este método es tan popular. El problema con el método RMS es que es sensible a valores atípicos, es decir estos valores atípicos afectan significativamente los coeficientes del modelo. Para reducir esta sensibilidad, se puede utilizar la suma de valores de error absolutos en lugar de la suma de errores al cuadrado, lo que lleva al método de mínimos módulos (LSM) o regresión robusta. Este método no tiene una solución analítica para los coeficientes del modelo a diferencia de la regresión lineal. Por lo general, los módulos se reemplazan por funciones de aproximación suaves/diferenciables y la solución se lleva a cabo mediante métodos numéricos y lleva mucho tiempo. Probé ambos métodos (regresión ajustada y MHM) y no noté mucha ventaja de MHM. En lugar de MHM, tomé un desvío. En el segundo paso de obtener datos estacionarios al diferenciarlos, agregué una operación de normalización no lineal. Es decir, la serie original x[1], x[2], ... x[i-1], x[i] ... primero se convierte en una serie de diferencias x[2]-x[1] . .. x [i]-x[i-1] ... y luego cada diferencia se normaliza reemplazándola con sign(x[i]-x[i-1])*abs(x[i]-x[ i-1] )^u, donde 0 < u < 1. Para u=1, obtenemos el método COSE clásico con su sensibilidad a los valores atípicos. En u=0, todos los valores de la serie de entrada se reemplazan por valores binarios +/-1 casi sin valores atípicos. Para u=0.5, obtenemos algo cercano a MNM. El valor óptimo de u se encuentra entre 0,5 y 1.

Cabe señalar que uno de los métodos populares para convertir datos a una forma estacionaria es reemplazar los valores de la serie con la diferencia en los logaritmos de estos valores, es decir log(x[i]) - log(x[i-1]) o log(x[i]/x[i-1]). La elección de tal transformación es peligrosa en mi caso, ya que el diccionario de 10 mil entradas tiene muchas filas con cero y valores negativos. El logaritmo también tiene el beneficio de reducir la sensibilidad del método RMS a los valores atípicos.Esencialmente, mi función de transformación sign(x)*|x|^u tiene el mismo propósito que log(x), pero sin los problemas asociados con cero y valores negativos.

Paso 6: Calcule la predicción del modelo sustituyendo los datos de entrada nuevos y calculando la salida del modelo utilizando los mismos coeficientes del modelo que se encontraron mediante regresión lineal en los segmentos de historial anteriores. Aquí es importante tener en cuenta que los valores trimestrales de los indicadores económicos y el S&P 500 vienen casi simultáneamente (con una precisión de 3 meses). Por lo tanto, para predecir el S&P 500 para el próximo trimestre, el modelo debe construirse entre el valor trimestral actual del S&P 500 y las entradas retrasadas al menos 1 trimestre (Lag>=1). Para predecir el S&P 500 con un trimestre de antelación, el modelo debe construirse entre el valor trimestral actual del S&P 500 y las entradas retrasadas al menos 2 trimestres (Lag>=2). Etc. La precisión de las predicciones disminuye significativamente con el aumento de la demora superior a 2.

Paso 7: Comprueba la precisión de las predicciones sobre el historial anterior. La técnica original descrita anteriormente (colocar cada entrada en el historial anterior, elegir la entrada que da el MSE más pequeño y calcular la predicción a partir del valor nuevo de esa entrada) produjo una MSD de predicción que fue incluso peor que las predicciones aleatorias o nulas. Me hice esta pregunta: ¿por qué una entrada que encaja bien en el pasado debería tener una buena capacidad de predicción para el futuro? Tiene sentido seleccionar las entradas del modelo en función de su error de predicción anterior, en lugar de basarse en el error de regresión más pequeño de los datos conocidos.

Al final, mi modelo se puede describir paso a paso así:

  1. Subiendo datos económicos de stlouisfed (alrededor de 10 mil indicadores).
  2. Preobrazeum datos a una forma estacionaria y normalizar.
  3. Elegimos un modelo lineal del índice S&P 500, resuelto analíticamente por el método RMS (regresión lineal).
  4. Elegimos la duración del historial (1960 - Q2 2015) y lo dividimos en un segmento de entrenamiento (1960 - Q4 1999) y un segmento de prueba (Q1 2000 - Q2 2015).
  5. Comenzamos las predicciones desde 1960 + N + 1, donde N*4 es el número inicial de valores trimestrales conocidos del S&P 500.
  6. Sobre los primeros N datos, se construye un modelo lineal y_mod = a + b*x para cada indicador económico, donde y_mod es el modelo S&P 500 yx es uno de los indicadores económicos.
  7. Predecimos N + 1 barra con cada modelo.
  8. Calculamos los errores de predicción de N + 1 barras por cada modelo. Recordamos estos errores.
  9. Aumentamos el número de valores conocidos de S&P 500 en 1, es decir N + 1, y repita los pasos 6-9 hasta llegar al final del segmento de entrenamiento (Q4 1999). En este paso, hemos almacenado errores de predicción desde 1960 + N +1 hasta el cuarto trimestre de 1999 para cada indicador económico.
  10. Comenzamos a probar el modelo en el segundo período de la historia (Q1 2000 - Q2 2015).
  11. Para cada una de las 10 mil entradas, calculamos el error estándar de las predicciones para 1960 - Q4 1999.
  12. De 10 mil entradas, seleccionamos la que tuvo la predicción de RMS más baja para 1960 - Q4 1999.
  13. Construimos un modelo lineal y_mod = a + b*x para cada indicador económico para 1960 - Q4 1999.
  14. Predecimos Q1 2000 por cada modelo.
  15. La predicción de la entrada seleccionada con el RMS más bajo de predicciones para el intervalo de tiempo anterior (1960 - Q4 1999) se elige como nuestra predicción principal del Q1 2000.
  16. Calculamos los errores de predicción de todas las entradas para el primer trimestre de 2000 y los agregamos al RMS de las mismas entradas para el intervalo de tiempo anterior (1960 - cuarto trimestre de 1999).
  17. Pase al segundo trimestre de 2000 y repita los pasos 12 a 17 hasta llegar al final del área de prueba (segundo trimestre de 2015) con un valor desconocido para el S&P 500, que es nuestro principal objetivo de predicción.
  18. Acumulamos errores de predicción para Q1 2000 - Q4 2014 hechos por entradas con la desviación estándar más baja de predicciones en los segmentos anteriores. Este error (err2) es nuestro modelo de error de predicción fuera de muestra.

En resumen, la elección de un predictor depende de su RMS de predicciones anteriores del S&P 500. No hay que mirar hacia el futuro. El predictor puede cambiar con el tiempo, pero al final del segmento de prueba, básicamente deja de cambiar. Mi modelo seleccionó PPICRM con un retraso de 2 trimestres como la primera entrada para predecir el segundo trimestre de 2015. A continuación se muestra la regresión lineal del S&P 500 con la entrada PPICRM(2) seleccionada para 1960 - cuarto trimestre de 2014. Círculos negros - regresión lineal. Círculos multicolores: datos históricos de 1960 - Q4 2014. El color del círculo indica la hora.


Predicciones estacionarias del S&P 500 (línea roja):

Predicciones del S&P 500 en forma cruda (línea roja):

El gráfico muestra que el modelo predice el crecimiento del S&P 500 en el segundo trimestre de 2015. Agregar una segunda entrada aumenta el error de predicción:

1 err1=0,900298 err2=0,938355 PPICRM (2)

2 err1=0.881910 err2=0.978233 PERMISO1 (4)

donde err1 es el error de regresión. Es obvio que decrece a partir de la adición de una segunda entrada. err2 es el error de predicción de la raíz cuadrada media dividido por el error de predicción aleatorio. Es decir, err2>=1 significa que la predicción de mi modelo no es mejor que las predicciones aleatorias. err2<1 significa que la predicción de mi modelo es mejor que las predicciones aleatorias.

PPICRM = Índice de Precios al Productor: Materiales Crudos para Procesamiento Posterior

PERMISO1 = Nuevas Unidades de Vivienda Privada Autorizadas por Permisos de Construcción - En Estructuras con 1 Unidad

El modelo descrito anteriormente se puede reformular de esta manera. Reunimos a 10 mil economistas y les pedimos que pronostiquen el mercado para el próximo trimestre. Cada economista viene con su propia predicción. Pero en lugar de elegir una predicción basada en la cantidad de libros de texto que han escrito o la cantidad de premios Nobel que han ganado en el pasado, esperamos unos años recopilando sus predicciones. Después de un número significativo de predicciones, vemos qué economista es más preciso y comenzamos a creer sus predicciones hasta que algún otro economista lo supera en precisión.

El análisis es impresionante, pero queda una pregunta: ¿ha pensado alguna vez que predecir 500 (!!!) tasas que se influyen mutuamente a la vez es algo más difícil que 1? Realmente, ¿por qué se eligió el S&P500? Pues lo forman 500 empresas independientes y difíciles de predecir. La lógica elemental sugiere que es deseable probar este enfoque en un emisor, lo que aumentará la confianza en el resultado final en aproximadamente ... 500 veces. :)
 
Реter Konow:
El análisis es impresionante, pero queda una pregunta: ¿se les ocurrió alguna vez que predecir 500 (!!!) que se afectan a la vez es algo más difícil que 1? En realidad, ¿por qué se elige el S&P500? Lo forman 500 empresas independientes y difíciles de predecir. La lógica elemental dicta que este enfoque debe probarse preferentemente con un emisor, lo que aumentará la confianza en el resultado final... por un factor de 500. :)
No es así. Aunque el tema se llama "predicción del mercado basada en indicadores macroeconómicos", los indicadores no tienen ningún significado en este análisis. Sólo variables sustituidas en alguna fórmula después de haber sido matemáticamente despersonalizadas y disociadas de toda conexión semántica y lógica externa con el Mundo. Los números secos, dispuestos en series numéricas abstractas, sirven de modelo para una red neuronal, que predice... no, no el mercado, sino la misma serie numérica.

Desde este punto de vista, no importa cuántos tipos haya en el índice ni cuáles sean las políticas de sus empresas, pero es necesario que todas las variables y valores se sustituyan en la fórmula. Y así es.

Así que todo es correcto, sólo que el tema debería llamarse de otra manera, porque esencialmente, no es análisis fundamental, sino análisis técnico.
 
Реter Konow:
No es así. Aunque el tema se llama "predicción del mercado basada en indicadores macroeconómicos", los indicadores son irrelevantes en este análisis. Sólo variables sustituidas en alguna fórmula después de haber sido matemáticamente despersonalizadas y desidentificadas con todos los vínculos semánticos y lógicos externos al Mundo. Los números secos, dispuestos en series numéricas abstractas, sirven de modelo para una red neuronal, que predice... no, no el mercado, sino la misma serie numérica.

Desde este punto de vista, da igual cuántos cursos haya en el índice y no importa qué políticas tengan sus empresas, sino que todas las variables y valores deben sustituirse en la fórmula. Y así es.

Así que todo es correcto, sólo que el tema debería llamarse de otra manera, porque en esencia no es análisis fundamental sino técnico.

Resulta que el análisis técnico sobre los datos fundamentales.

Elanálisis fundamental no es tan sencillo.Hay muchos factores que afectan a los precios y que no entran en los indicadores económicos. Son las elecciones, el Brexit, todo tipo de rumores y demás. Pueden influir en el precio más que todos los indicadores económicos.

 
Fuera de tema. <br/ translate="no">
Hace tiempo que me interesan las preguntas que surgen de la lectura de los numerosos "stream of consciousness" de los comerciantes en el foro:

1. ¿Por qué la gente se olvida fácil y rápidamente del objeto de estudio, perdiéndose en las "series numéricas", los coeficientes, etc., y no vuelve nunca al punto de origen, vagando siempre por los parajes de las matemáticas?

2. ¿Qué les motiva? ¿Es realmente sólo dinero?

La primera pregunta aún no tiene respuesta, pero la segunda... ...hay uno:

Todas sus búsquedas de mate.s conducen a un cierto "paraíso" de fantasía de la mesa de fórmulas, donde la existencia es recogida, ordenada y predecible en todos los aspectos. Así es como la gente inteligente imagina el Grial.

El primer post de este hilo no demuestra ni el primer ni el segundo paso en esta oscura dirección...
 
Uladzimir Izerski:

Se obtiene un análisis técnico de los datos fundamentales.

No todo es tan sencillo con elanálisis fundamental.Hay muchos factores que afectan a los precios y que no entran dentro de los indicadores económicos. Son las elecciones, el Brexit, los rumores de todo tipo, etc. Pueden afectar al precio más que todos los indicadores económicos.

Sí, así es.
 

Para Peter: No estoy prediciendo el S&P500 directamente. El objetivo de este trabajo es predecir las recesiones para salir del mercado antes de que se produzcan y mejorar la rentabilidad de la estrategia buy&hold. Aunque el S&P500 contiene acciones de 500 empresas, está impulsado por inversores institucionales que compran y venden el propio índice (o sus opciones), no sus componentes. Un 13% al año no parece mucho, pero sí lo suficiente para los grandes capitales en los que la facturación es importante. Bernie Madoff atrajo a sus clientes prometiéndoles un modesto 10% anual, que no consiguió.

A Uladzimir: Estoy de acuerdo en que las fluctuaciones de los precios dependen de diferentes acontecimientos sociales y políticos, elecciones, brexits, infecciones, etc. Al final todo se reduce a la oferta y la demanda de productos/servicios, el desempleo y otros indicadores de la economía. No me importan las fluctuaciones diarias de los precios del mercado. Incluso una simple estrategia de comprar y mantener gana un 7,4% al año. Me preocupa evitar las posiciones largas durante las recesiones y mejorar la rentabilidad de esta estrategia. Por cierto, otra estrategia es la compra de bienes inmuebles. Pero eso sólo produce un 5% al año, en Estados Unidos.

 
Реter Konow:
No es así. Aunque el tema se llama "predicción del mercado basada en indicadores macroeconómicos", los indicadores son irrelevantes en este análisis. Sólo variables sustituidas en alguna fórmula después de haber sido matemáticamente despersonalizadas y desidentificadas con todos los vínculos semánticos y lógicos externos al Mundo. Los números secos, dispuestos en series numéricas abstractas, sirven de modelo para una red neuronal, que predice... no, no el mercado, sino la misma serie numérica.

Desde este punto de vista, da igual cuántos cursos haya en el índice y no importa qué políticas tengan sus empresas, sino que todas las variables y valores deben sustituirse en la fórmula. Y así es.

Así que todo es correcto, sólo que el tema debería llamarse de otra manera, porque en esencia, no es análisis fundamental, sino análisis técnico.

¿Cuál es la previsión para el S&P500?

 
Vladimir:

Lo siento, ¿pero todo esto por un 5-13% al año? No vale la pena el esfuerzo).

Razón de la queja: