Pruebas retrospectivas de estrategias comerciales con retención a largo plazo de Amazon Kinesis Data Streams y Amazon SageMaker

Nodo de origen: 1883045

La información en tiempo real es fundamental cuando se trata de crear estrategias comerciales. Cualquier retraso en la comprensión de los datos puede costar mucho dinero a los comerciantes. A menudo, debe observar las tendencias históricas del mercado para predecir el patrón comercial futuro y hacer la oferta correcta. Cuantos más datos históricos analice, mejor predicción comercial obtendrá. El seguimiento de datos de transmisión puede ser complicado, ya que requiere mecanismos sofisticados de almacenamiento y análisis.

Secuencias de datos de Amazon Kinesis permite a nuestro cliente almacenar datos de transmisión por hasta un año. Amazon Kinesis Data Streams Retención a largo plazo (LTR) de transmisión de datos permite usar la misma plataforma para datos en tiempo real y más antiguos retenidos en Amazon Kinesis Data Streams. Por ejemplo, se pueden entrenar algoritmos de aprendizaje automático para comercio financiero, personalización de marketing y modelos de recomendación sin mover los datos a un almacén de datos diferente o escribir una nueva aplicación. Los clientes también pueden cumplir con ciertas regulaciones de retención de datos, incluso bajo HIPAA y FedRAMP, mediante la retención a largo plazo. Esto simplifica la arquitectura de ingestión de datos para nuestro caso de uso comercial que discutiremos en esta publicación.

En el post Creación de estrategias comerciales algorítmicas con Amazon SageMaker, demostramos cómo hacer una prueba retrospectiva de las estrategias comerciales con Amazon SageMaker con datos históricos de precios de acciones almacenados en Servicio de almacenamiento simple de Amazon (Amazon S3). En esta publicación, ampliamos esta solución para la transmisión de datos y describimos cómo usar Kinesis amazónica.

Además, queremos utilizar Ajuste automático de Amazon SageMaker para encontrar la configuración óptima para una estrategia de cruce de promedio móvil. En esta estrategia, se calculan dos promedios móviles para un período de tiempo lento y rápido, y se ejecuta una operación cuando ocurre un cruce. Si la media móvil rápida cruza por encima de la media móvil lenta, la estrategia coloca una operación larga; de lo contrario, la estrategia se queda corta. Encontramos la duración óptima del período para estos promedios móviles mediante la ejecución de múltiples pruebas retrospectivas con diferentes longitudes en un conjunto de datos históricos.

Finalmente, ejecutamos la configuración óptima para esta estrategia de cruce de promedio móvil en un conjunto de datos de prueba diferente y analizamos los resultados de rendimiento. Si el rendimiento medido en pérdidas y ganancias (P&L) es positivo para el período de prueba, podemos considerar esta estrategia comercial para una prueba a futuro.

Para mostrarle lo fácil y rápido que es comenzar a usar AWS, proporcionamos una implementación con un solo clic para una solución extensible de backtesting comercial que utiliza la retención a largo plazo de Kinesis para la transmisión de datos.

Resumen de la solución

Usamos Kinesis Data Streams para almacenar transmisión en tiempo real, así como datos históricos del mercado. Usamos cuadernos de Jupyter como nuestra interfaz central para explorar y probar nuevas estrategias comerciales. SageMaker le permite configurar cuadernos Jupyter e integrarlos con Compromiso de código de AWS para almacenar diferentes versiones de estrategias y compartirlas con otros miembros del equipo.

Usamos Amazon S3 para almacenar artefactos de modelos y resultados de backtesting.

Para nuestras estrategias comerciales, creamos contenedores Docker que contienen las bibliotecas necesarias para realizar pruebas retrospectivas y la estrategia en sí. Estos contenedores siguen la estructura de contenedores de SageMaker Docker para poder ejecutarlos dentro de SageMaker. Para obtener más información sobre la estructura de los contenedores de SageMaker, consulte Uso de los kits de herramientas de formación e inferencia de SageMaker.

El siguiente diagrama ilustra esta arquitectura.

Ejecutamos el paso de preparación de datos desde un cuaderno SageMaker. Esto copia los datos históricos del mercado en el depósito S3.

Utilizamos Servicio de migración de datos de AWS (AWS DMS) para cargar los datos de mercado en el flujo de datos. Él

El cuaderno de SageMaker se conecta con Kinesis Data Streams y ejecuta el algoritmo de estrategia comercial a través de un trabajo de entrenamiento de SageMaker. El algoritmo utiliza parte de los datos para el entrenamiento para encontrar la configuración de estrategia óptima.

Finalmente, ejecutamos la estrategia comercial utilizando la configuración previamente determinada en un conjunto de datos de prueba.

Requisitos previos

Antes de comenzar, configuramos nuestros recursos. En esta publicación, usamos el us-east-2 Región como ejemplo.

  1. Implemente los recursos de AWS utilizando el proporcionado Formación en la nube de AWS plantilla.
  2. Nombre de pila, ingrese un nombre para su pila.
  3. Proporcione un nombre de depósito S3 existente para almacenar los datos de mercado históricos.

Los datos se cargan en Kinesis Data Streams desde este depósito S3. Su depósito debe estar en la misma región donde está configurada su pila.

  1. Acepte todos los valores predeterminados y elija Siguiente.
  2. Reconozca que AWS CloudFormation podría crear Gestión de identidades y accesos de AWS (IAM) recursos con nombres personalizados.
  3. Elige Crear pila.

Esto crea todos los recursos necesarios.

Carga de datos a Kinesis Data Streams

Para realizar la carga de datos, complete los siguientes pasos:

  1. En la consola de SageMaker, en Notebook en el panel de navegación, elija Instancias de cuaderno.
  2. Ubique la instancia del cuaderno AlgorithmicTradingInstance-*.
  3. Elige Jupyter abierto para esta instancia
  4. Visite la algorithmic-trading->4_Kinesis carpeta y elegir Estrategia_Kinesis_EMA_HPO.pynb.

Ahora ejecuta el paso de preparación de datos en el cuaderno.

  1. Cargue el conjunto de datos.

Especifique el depósito existente donde se almacenan los datos de prueba. Asegúrese de que el depósito de prueba esté en la misma región en la que configuró la pila.

  1. Ejecute todos los pasos en el cuaderno hasta que Paso 2 Preparación de datos.
  2. En la consola de AWS DMS, elija Tareas de migración de base de datos.
  3. Seleccione la tarea de AWS DMS dmsreplicationtask-*.
  4. En Acciones menú, seleccione Reiniciar/Reanudar.

Esto inicia la carga de datos desde el depósito S3 al flujo de datos.

Espere hasta que la tarea de replicación muestre el estado Load complete.

  1. Continúe con los pasos en el cuaderno Jupyter.

Leer datos de la retención a largo plazo de Kinesis

Leemos datos diarios de apertura, máximo, mínimo, precio de cierre y volumen de la retención a largo plazo de la corriente con el AWS SDK para Python (Boto3).

Aunque no usamos despliegue mejorado (EFO) en esta publicación, puede ser recomendable hacerlo si una aplicación existente ya está leyendo de la secuencia. De esa manera, esta aplicación de backtesting no interfiere con la aplicación existente.

Puede visualizar sus datos, como se muestra en la siguiente captura de pantalla.

Defina su estrategia comercial

En este paso, definimos nuestra estrategia comercial cruzada de promedio móvil.

Crear una imagen de Docker

Creamos nuestro trabajo de backtesting como una imagen de Docker y lo empujamos a ECR de Amazon.

Optimización de hiperparámetros con SageMaker sobre datos de entrenamiento

Para la estrategia comercial cruzada de promedio móvil, queremos encontrar el período rápido óptimo y el período lento de esta estrategia, y proporcionamos un rango de días para buscar.

Utilizamos las pérdidas y ganancias (P&L) de la estrategia como métrica para encontrar hiperparámetros optimizados.

Puede ver que el trabajo de ajuste recomendó un valor de 7 y 21 días para el período rápido y lento para esta estrategia comercial dado el conjunto de datos de entrenamiento.

Ejecute la estrategia con hiperparámetros óptimos en datos de prueba

Ahora ejecutamos esta estrategia con hiperparámetros óptimos en los datos de prueba.

Cuando se completa el trabajo, los resultados de rendimiento se almacenan en Amazon S3 y puede revisar las métricas de rendimiento en un gráfico y analizar las órdenes de compra y venta para su estrategia.

Conclusión

En esta publicación, describimos cómo usar la función de retención a largo plazo de Kinesis Data Streams para almacenar los datos históricos del precio de las acciones y cómo usar los datos de transmisión para realizar pruebas retrospectivas de una estrategia comercial con SageMaker.

La retención a largo plazo de los datos de transmisión le permite usar la misma plataforma para datos en tiempo real y más antiguos retenidos en Kinesis Data Streams. Esto le permite usar este flujo de datos para casos de uso financiero como backtesting o aprendizaje automático sin mover los datos a un almacén de datos diferente o escribir una nueva aplicación. También puede cumplir con ciertas regulaciones de retención de datos, incluso bajo HIPAA y FedRAMP, utilizando la retención a largo plazo. Para más información, ver Amazon Kinesis Data Streams permite la retención de flujos de datos hasta por un año.

Descargo de responsabilidad de riesgo

Esta publicación es solo para fines educativos y el rendimiento comercial pasado no garantiza el rendimiento futuro.


Acerca de los autores

Sachin Thakkar es un arquitecto de soluciones sénior en Amazon Web Services, que trabaja con un integrador de sistemas global (GSI) líder. Aporta más de 22 años de experiencia como arquitecto de TI y como consultor de tecnología para grandes instituciones. Su área de enfoque está en datos y análisis. Sachin proporciona orientación arquitectónica y apoya al socio de GSI en la creación de soluciones estratégicas de la industria en AWS.

Amogh Gaikwad es desarrollador de soluciones en el equipo de creación de prototipos. Se especializa en aprendizaje automático y análisis y tiene una amplia experiencia en el desarrollo de modelos ML en entornos del mundo real y en la integración de AI/ML y otros servicios de AWS en aplicaciones de producción a gran escala. Antes de unirse a Amazon, trabajó como desarrollador de software, desarrollando aplicaciones empresariales centradas en la planificación de recursos empresariales (ERP) y la gestión de la cadena de suministro (SCM). Amogh recibió su maestría en Ciencias de la Computación con especialización en Big Data Analytics y Machine Learning.

Dhiraj Thakur es un arquitecto de soluciones con Amazon Web Services. Trabaja con los clientes y socios de AWS para brindar orientación sobre la adopción, la migración y la estrategia de la nube empresarial. Es un apasionado de la tecnología y disfruta construyendo y experimentando en Analytics y el espacio AI / ML.

Oliver Steffman es arquitecto de soluciones empresariales en AWS con sede en Nueva York. Aporta más de 18 años de experiencia como arquitecto de TI, gerente de desarrollo de software y consultor de gestión para instituciones financieras internacionales. Durante su tiempo como consultor, aprovechó su amplio conocimiento de Big Data, Machine Learning y tecnologías en la nube para ayudar a sus clientes a poner en marcha su transformación digital. Antes de eso, fue jefe de tecnología comercial municipal en un banco de inversión de primer nivel en Nueva York y comenzó su carrera en su propia empresa emergente en Alemania.

Fuente: https://aws.amazon.com/blogs/big-data/backtest-trading-strategies-with-amazon-kinesis-data-streams-long-term-retention-and-amazon-sagemaker/

Sello de tiempo:

Mas de AWS