¿Qué modelo de aprendizaje automático ha demostrado ser más exitoso (o es el más utilizado) en el comercio / finanzas cuantitativas?

La mayoría de las personas que no tienen experiencia práctica en el modelado de datos de realidad siempre tienen expectativas poco realistas sobre el aprendizaje automático.

El aprendizaje automático es un proceso basura en la basura si no tienes idea de qué predecir o qué características pueden ser útiles. Solo será útil si se ajusta a un modelo utilizando características significativas, resultados significativos y esto es el 80 por ciento del trabajo que implicará en la realidad, es decir, la ingeniería de características. En términos comerciales, se trata de las ideas comerciales.

Después de tener ideas comerciales razonables, así como algunas características razonables, considerará el modelo. La elección de su modelo dependerá en gran medida del tamaño de los datos, la relación características / observaciones, el aprendizaje en tiempo real o fuera de línea, y su potencia de cálculo.

En general, el aprendizaje profundo o cualquier conjunto de aprendizaje será lo suficientemente justo como para manejar cualquier tipo de datos. La limitación es que el aprendizaje en tiempo real o los datos de gran tamaño pueden no ser aplicables. Si es el caso, use svm con la función de kernel adecuada con los parámetros apropiados, que se pueden encontrar mediante validación cruzada.

Desde mi experiencia, la parte del modelo, realmente no es la parte más desafiante. Las personas que tienen el enfoque correcto con un buen sentido del mercado generalmente pueden obtener ganancias sin utilizar un modelo muy sofisticado.

Gracias por el A2A.

Las personas han estado utilizando el aprendizaje automático en el comercio durante mucho tiempo. Quizás no grandes redes neuronales profundas. Podrían haber usado hojas de Excel, pero todavía estaban haciendo el mismo flujo de trabajo. Con más eficiencia de mercado y más datos, los modelos han crecido en complejidad.

Las redes neuronales profundas ayudan a comprender la verdad al observar datos sin etiquetar y descubrir qué es normal y qué no. Estas redes pueden observar un montón de ruido no estructurado y separar la señal. Esto es muy relevante para las finanzas y los mercados porque encontrar los patrones y las anomalías en los datos del mercado ha sido el pan de cada día de los comerciantes. Con la llegada del aprendizaje profundo, esto puede convertirse en una cosa del pasado.

La aplicación más importante de estas redes es el aprendizaje de características. Lo que quiero decir con las características aquí son ciertos atributos en los datos, que son indicativos de un evento, y anticiparlos puede ayudar a predecir futuros movimientos de precios. Se ha vuelto cada vez más difícil usar la información disponible para todos nosotros y ganar dinero usándola. Cada vez más personas recurren al uso de fuentes alternativas de información. Por ejemplo, usar un feed de Twitter para ganar el sentimiento del mercado. Ahora es imposible que un modelo de regresión lineal descubra por sí solo qué palabras clave se traducen en qué sentimiento. Pero aquí es donde el aprendizaje profundo puede ayudar porque puede descubrir las características en sí mismas, en este caso podría ser un grupo de palabras.

Las redes neuronales recurrentes también han encontrado un gran favor en la predicción de series de tiempo, lo cual es muy crítico para los modelos cuantitativos utilizados por los comerciantes y los fondos de cobertura.

El modelo de clasificación de aprendizaje automático para mí ha demostrado ser más exitoso. He escrito a continuación un modelo de clasificador de vector de soporte simple en datos S & P500 que generó un retorno del 15% +.

Estrategia

Se proporciona un conjunto de datos de entrenamiento al algoritmo de clasificación de aprendizaje automático, cada uno de los cuales pertenece a una de las categorías. Por ejemplo, las categorías pueden ser comprar o vender una acción. El algoritmo de clasificación crea un modelo basado en los datos de entrenamiento y luego clasifica los datos de prueba en una de las categorías.

Fuente: Estrategia de clasificación de aprendizaje automático en Python

Paso 1: importa las bibliotecas

En este paso, importaremos las bibliotecas necesarias que serán necesarias para crear la estrategia.

# Bibliotecas de clasificación de aprendizaje automático
desde sklearn.svm import SVC
desde sklearn.metrics import goleador
de sklearn.metrics import precision_score

# Para manipulación de datos
importar pandas como pd
importar numpy como np

# Para trazar
importar matplotlib.pyplot como plt
importar seaborn

# Para buscar datos
de pandas_datareader importar datos como pdr

Paso 2: recuperar datos

Descargaremos los datos de S & P500 de google finance mediante pandas_datareader.

Después de eso, eliminaremos los valores faltantes de los datos y trazaremos la serie de precios de cierre de S & P500.

Df = pdr.get_data_google (‘SPY’, start = “2012-01-01”, end = “2017-10-01”)
Df = Df.dropna ()
Df.Close.plot (figsize = (10,5))
plt.ylabel (“Precio S & P500”)
plt.show ()

Paso 3: determinar la variable objetivo

La variable objetivo es la variable que predecirá el algoritmo de clasificación de aprendizaje automático. En este ejemplo, la variable objetivo es si el precio de S & P500 se cerrará o cerrará el próximo día de negociación.

Primero determinaremos la señal de negociación real utilizando la siguiente lógica: si el precio de cierre del próximo día de negociación es mayor que el precio de cierre de hoy, compraremos el índice S & P500, de lo contrario venderemos el índice S & P500. Almacenaremos +1 para la señal de compra y -1 para la señal de venta.

y = np.where (Df [‘Cerrar’]. shift (-1)> Df [‘Cerrar’], 1, -1)

Paso 4: creación de variables predictoras

La X es un conjunto de datos que contiene las variables del predictor que se utilizan para predecir la variable objetivo, ‘y’. La X consta de variables como ‘Abrir – Cerrar’ y ‘Alto – Bajo’ . Estos pueden entenderse como indicadores basados ​​en los cuales el algoritmo predecirá el precio de la opción.

Df [‘Abrir-Cerrar’] = Df.Open – Df.Close
Df [‘High-Low’] = Df.High – Df.Low

X = Df [[” Abrir-Cerrar ‘,’ Alto-Bajo ‘]]

En la parte posterior del código, el algoritmo de clasificación de aprendizaje automático utilizará los predictores y la variable objetivo en la fase de entrenamiento para crear el modelo y luego, predecirá la variable objetivo en el conjunto de datos de prueba.

Paso 5: probar y entrenar la división del conjunto de datos

En este paso, dividiremos los datos en el conjunto de datos del tren y el conjunto de datos de prueba.

  1. El primer 80% de los datos se usa para capacitación y los datos restantes para pruebas
  2. X_train e y_train son conjuntos de datos del tren
  3. X_test e y_test son conjuntos de datos de prueba

split_percentage = 0.8
split = int (split_percentage * len (Df))

# Conjunto de datos del tren
X_train = X [: división]
tren_y = y [: división]

# Conjunto de datos de prueba
X_test = X [split:]
y_test = y [split:]

Paso 6: cree el modelo de clasificación de aprendizaje automático utilizando el conjunto de datos del tren

Crearemos el modelo de clasificación de aprendizaje automático basado en el conjunto de datos del tren. Este modelo se utilizará más adelante para predecir la señal comercial en el conjunto de datos de prueba.

cls = SVC (). fit (X_train, y_train)

Paso 7: la precisión del modelo de clasificación

Calcularemos la precisión del modelo de clasificación en el tren y el conjunto de datos de prueba, comparando los valores reales de la señal comercial con los valores predichos de la señal comercial. La función precision_score () se utilizará para calcular la precisión.

Sintaxis: precision_score (target_actual_value, target_predicted_value)

  1. target_actual_value: valores de señal correctos
  2. target_predicted_value: valores de señal pronosticados

precision_train = precision_score (y_train, cls.predict (X_train))

precision_test = precision_score (y_test, cls.predict (X_test))
print (‘\ nPrecisión del tren: {: .2f}%’. format (precision_train * 100))
print (‘Precisión de prueba: {: .2f}%’. format (precision_test * 100))

Una precisión de más del 50% en los datos de prueba sugiere que el modelo de clasificación es efectivo.

Paso 8: predicción

Vamos a predecir la señal (comprar o vender) para el conjunto de datos de prueba, utilizando la función cls.predict (). Luego, calcularemos los retornos de la estrategia en función de la señal predicha por el modelo en el conjunto de datos de prueba. Lo guardamos en la columna ‘Strategy_Return’ y luego, graficamos los retornos acumulativos de la estrategia.

Df [‘Predicted_Signal’] = cls.predict (X)

# Calcular las devoluciones de registro
Df [‘Retorno’] = np.log (Df.Close.shift (-1) / Df.Close) * 100
Df [‘Strategy_Return’] = Df.Return * Df.Predicted_Signal
Df.Strategy_Return.iloc [split:]. Cumsum (). Plot (figsize = (10,5))
plt.ylabel (“Estrategia Devuelve (%)”)
plt.show ()

Como se ve en el gráfico, la estrategia de clasificación de aprendizaje automático genera un retorno de alrededor del 15% en el conjunto de datos de prueba.

Fuente: Estrategia de clasificación de aprendizaje automático en Python

No creo que los métodos de aprendizaje automático sean generalmente útiles en el comercio cuantitativo. (He explicado este punto de vista en mi primer libro Quantitative Trading). La razón es que la mayoría de los métodos de aprendizaje automático tienden a tener demasiados parámetros que deben optimizarse con los datos de la muestra. Pero los datos de series de tiempo financieras son bastante limitados (la alta frecuencia no ayuda mucho debido a la naturaleza altamente correlacionada de dichos datos). Por lo tanto, la cantidad de datos en la muestra no es suficiente para superar el sesgo de indagación de datos, y la mayoría de los modelos de aprendizaje automático fallan fuera de la muestra en las predicciones de series de tiempo financieras. Además, el mercado financiero sufre cambios frecuentes de régimen, por lo que pocos modelos de aprendizaje automático con reglas complicadas pueden sobrevivir a esos cambios sin comprender los patrones más profundos y fundamentales que solo los humanos pueden detectar y utilizar (debido a su conocimiento contextual / externo).

La regresión lineal es el estándar de desfactorización cuando se construye un modelo comercial multivariante. Fácil de interpretar, no se sobreajusta demasiado y permite varios trucos estándar, como observar fácilmente los valores p de sus variables, construir un modelo de factor fundamental, la atribución de rendimiento / riesgo y más.

Los modelos de aprendizaje automático que aumentan el espacio de búsqueda generalmente fallan en el comercio, ya que las señales a menudo son débiles (estadísticas t y valores p bajos). Introducir más pesos en su espacio de búsqueda en comparación con la regresión lineal simple generalmente conduce a un ajuste excesivo.

Los métodos que reducen el número de dimensiones o restringen el espacio de búsqueda pueden ser útiles aunque estén fuera de la muestra, como la regularización L1 o L2 de la regresión lineal.

En una configuración más general de modelos financieros no comerciales, suponiendo que los patrones sean lo suficientemente fuertes, puedo ver modelos más sofisticados / de alta dimensión para trabajar. Aún así, la interpretación es la más fácil para la regresión lineal o polinómica, por lo tanto, muchos los usan como punto de partida.

No es útil: las series de tiempo financieras tienen una relación señal / ruido muy pobre y son de alta dimensión y no lineales con momentos estadísticos no estacionarios a largo plazo

El aprendizaje automático se trata de usar el pasado para predecir el futuro, pero si los dos no están relacionados, entonces es una búsqueda inútil

Además, el aprendizaje automático es paramétrico y el 95% del tiempo termina ajustando curvas en manos mal disciplinadas

Sus únicos usos reales son cosas como el comercio UHFT donde se convierte en un juego entre algoritmos y también cosas como el procesamiento del lenguaje natural para el procesamiento ultra rápido de noticias para alimentar las decisiones comerciales automatizadas

El resto es solo comercialización por parte de una industria que obtiene bajos rendimientos y está desesperada por cambiar las cosas por el éxito de la IA en otros lugares como una decisión de marketing

Lo que están haciendo casi todas las grandes casas comerciales es considerablemente menos complejo que la regresión lineal. Piense en la probabilidad y el análisis de la escuela secundaria que no están muy lejos del comercio técnico que ve en los foros

Los LSTM y los conjuntos son populares en estos días. Sin embargo, tiendo a favorecer los métodos híbridos que combinan series de tiempo / modelos de estado con aprendizaje automático (aunque no estoy haciendo mucho comercio en la práctica en este momento).

Como Mark dijo con razón, la regresión lineal es de hecho una de las técnicas de ML más útiles que se pueden utilizar en el comercio.

No quiero parecer que estoy promocionando esto, pero encontré que este curso es útil para implementar ML en mi estrategia comercial. Se basa en la regresión de Liner.

https://quantra.quantinsti.com/c…

Si lo cuenta como aprendizaje automático, probablemente regresión lineal . Se usa en todas partes, incluso en la banca de inversión (harán una regresión lineal en una relación financiera para demostrar su relevancia para valorar un sector, pero esa no es realmente una aplicación de aprendizaje automático). Muchos modelos cuantitativos en Wall Street tienen una regresión lineal o una derivada cercana en el corazón, ya que es simple y fácil de interpretar.

La base de muchos modelos de aprendizaje automático es alguna forma de arbitraje estadístico. El ejemplo clásico de esto es el comercio de pares.

Esencialmente es la apuesta que las correlaciones de precios entre dos pares de acciones (es decir, Coca-Cola y Pepsi) son estables y que cualquier desviación momentánea es temporal y significará revertir (por lo tanto, negociable).

Muchas estrategias más sofisticadas utilizan esto como base y analizan una gama más amplia de productos.

Aquí está el documento original sobre el mismo.
Comercio de pares: cumplimiento de una regla de arbitraje de valor relativo

Hay una buena aplicación del aprendizaje automático para las relaciones no lineales en el modelado financiero. Este trabajo de investigación sobre estrategia sistemática muestra algunos ejemplos:

Aplicación del aprendizaje automático a las estrategias sistemáticas de asignación

Redes neuronales antagónicas, donde la salida de una red neuronal se alimenta a otra red neuronal. Así se le enseñó a jugar a la computadora que ganó contra el campeón mundial de Go.

Los muchachos en el trabajo revisan modelos que toman datos de Reuters QA y los interrogan usando SQL.

Es mucho prueba y error en lugar de usar IA o similar para obtener una respuesta.

Sospecho firmemente que si a alguien se le ocurre una herramienta decente, sería estrictamente propietaria.

More Interesting

Tengo un problema de algoritmo. ¿Como puedó resolver esté problema?

¿Cómo se utilizará el aprendizaje automático en el software empresarial, particularmente en las prácticas ITSM?

¿Qué se necesitaría para construir una máquina virtual que registre continuamente el estado del sistema, desde la CPU hasta la E / S y el almacenamiento?

¿Alguien puede explicarme cómo funciona una computadora en palabras simples?

¿Qué deben saber las personas nuevas en el campo sobre el aprendizaje automático adversario?

¿Qué se ofrecen mutuamente los campos de aprendizaje automático y cibernética?

¿Cuáles son algunos problemas que podría investigar para aprender sobre inmunología computacional?

¿Qué significa cuando un programa se bloquea repentinamente?

¿Asesora a un MS en finanzas de los Estados Unidos después de completar mi curso de contabilidad?

¿Cómo ocurre la segunda violación de contraseña en Yahoo después de la primera? ¿Yahoo pierde su popularidad?

Voy a seguir un CSE en la universidad ahora. Estoy obteniendo un MacBook Pro para Rs 60k (descuento para estudiantes, originalmente 79k), ¿debería hacerlo? ¿Tengo una mejor opción que esta?

Cómo saber rápidamente si una función es convexa

¿Qué sistema operativo utilizan los enrutadores inalámbricos domésticos?

Estoy interesado en CS y quiero seguir investigando en el futuro. ¿DTU / NSIT o los 5 NIT principales serán mejores para mí?

Informática: ¿Por qué la memoria contenida en los registros es tan costosa?