Automatización de Trading con Workflows de DecisionRules

Desarrolla una estrategia de trading basada en la MMS de 200 días usando DecisionRules y Polygon—sin necesidad de programación

Para aquellos interesados en estrategias de trading automatizadas, ahora es posible construir un sistema basado en la Media Móvil Simple (MMS) de 200 días sin necesidad de conocimientos en programación. Aprovechando el nuevo motor de Workflow de DecisionRules junto con datos financieros en tiempo real de Polygon, puedes crear, automatizar y optimizar tu estrategia de trading sin esfuerzo. Este enfoque permite a los usuarios seguir las tendencias del mercado e implementar estrategias de respuesta a través de una interfaz intuitiva y sin código, mejorando tanto la eficiencia como la accesibilidad. Descubre cómo simplificar estrategias de trading complejas y elevar tu enfoque de inversión con soluciones avanzadas y sin código.

Aquí es donde entra en juego DecisionRules.io como una plataforma sin código que permite diseñar, probar, e implementar estrategias de trading de forma visual utilizando datos de mercado en tiempo real. Al integrarse con APIs como Polygon.io, DecisionRules te permite automatizar el análisis de acciones y la toma de decisiones basada en una lógica financiera sencilla, sin necesidad de saber programar. 

En este artículo, explicaremos como puedes aprovechar DecisionRules.io para construir una estrategia de trading que utilice la media móvil de 200 días para determinar cuando comprar o vender acciones, todo sin necesidad de programación. 

Acerca de Polygon

Polygon.io es una potente plataforma de datos que proporciona información de mercado en tiempo real e histórica, permitiendo a los desarrolladores y empresas acceder a datos completos sobre acciones, forex, y criptomonedas. Conocida por su rapidez, fiabilidad y amplia cobertura de datos, Polygon.io es una herramienta esencial para construir y automatizar aplicaciones financieras. Su API robusta permite a los usuarios obtener datos detallados del mercado, analizar tendencias, y tomar decisiones informadas. Esto la convierte en la opción ideal para integrarse con DecisionRules.io y mejorar estrategias de trading automatizadas.

Resumen del Tutorial

En este tutorial, te guiaremos a través de los pasos requeridos para construir una estrategia de trading que utilice la media móvil de 200 días, para determinar cuando comprar o vender acciones. ¡Sin necesidad de conocimientos de programación!

Paso 1: Crear las cuentas

1.1 Registrate en DecisionRules

DecisionRules te permite crear Workflows y Decision Tables, que pueden ser utilizadas para automatizar diversas lógicas empresariales, incluyendo estrategias de trading. 

  • Dirígete a DecisionRules y crea tu cuenta gratuita
  • Al iniciar sesión, navega a la sección de Workflows donde construiremos la lógica de trading.

1.2 Registrate en Polygon.io

Polygon.io proporciona datos del mercado en tiempo real e históricos, los cuales utilizaremos para obtener los precios de las acciones necesarios para nuestra estrategia.

  • Dirígete a Polygon y crea una cuenta
  • Obtén tu llave API del tablero, que será necesaria para llamar a su API y recuperar datos de las acciones.

Paso 2: Crea un Workflow en blanco en DecisionRules

2.1 Crea un nuevo Workflow

  • Luego de iniciar sesión en DecisionRules.io, en el menú del costado, selecciona Crear, y selecciona la pestaña de Workflow.
  • Selecciona Blank Workflow y nómbralo algo como “Estrategia Trading”.
  • En el flujo de trabajo, añadiremos pasos para obtener datos de los precios de las acciones de Polygon.io, y aplicar la lógica de trading basándonos en la media móvil de 200 días. 

Paso 3. Estructura tu modelo de entrada y salida

Antes de construir el Workflow, es necesario definir el modelo de entrada y salida. Este modelo dara la estructura a los datos que ingreses y obtengas de tu estrategia de trading. 

3.1 Modelo de Entrada

El modelo de entrada define los datos que proporcionarás al workflow. En este caso, debes especificar los siguientes valores:

  • símbolo de cotización (ticker en inglés): El símbolo de cotización (por ejemplo, AAPL, TSLA) que quieras seguir.
  • valor de la media móvil (moving_average_value): El número de días para calcular la media móvil (por ejemplo, 200 para la media móvil de 200 días).
  • tipo de la media móvil (moving_average_type): El tipo de media móvil a utilizar (por ejemplo, media móvil simple, media móvil exponencial).

3.2 Modelo de Salida

El modelo de salida estructurará la decisión tomada por tu estrategia de trading:

  • posición (position): La acción de trading (por ejemplo, Comprar, Vender) basada en la comparación de precios.
  • compensación (offset): La diferencia entre el precio actual de la acción y la media móvil, lo que te permite saber lo lejos que se encuentra la cotización de la media móvil.

Paso 4. Diseño del Workflow 

Para implementar la estrategia en DecisionRules.io utilizando Polygon.io, necesitarás algunos nodos específicos para estructurar la lógica y las interacciones de la API. Aquí tienes un desglose de los nodos necesarios:

4.1. Nodo de variable global (globalVariable)

Este nodo almacenará tu clave API y cualquier variable adicional (como el símbolo de cotización, etc.) necesaria a lo largo del flujo de trabajo.

  • Propósito: Guardar las credenciales API y valores reutilizables.
  • Variables:
    • api_key: Tu clave API de Polygon.io.

Esto te permite gestionar estos valores de forma centralizada sin tener que codificarlos en varios lugares.

4.2. API REST Nodo 1: Obtener precio real (get_last_price)

Este nodo de API REST llamará a la API de Polygon para obtener el precio actual o del día anterior de la acción.

  • Metodo: GET
  • URL: https://api.polygon.io/v2/aggs/ticker/{input.ticker}/prev?adjusted=true&apiKey={globalVariable.api_key}
  • Variables:
    • Valor {input.ticker} de nuestro modelo de entrada.
    • Valor {globalVariable.api_key} con el valor almacenado en el nodo de la variable global.

Respuesta esperada: La API devolverá un objeto JSON con el precio de cierre de la acción.

Más información en la documentación de Polygon: https://polygon.io/docs/stocks/get_v1_indicators_sma__stockticker

4.3. Nodo 2 de API REST: Obtener media móvil de 200 días (get_moving_averages)

Este nodo obtendrá los datos históricos de precios de 200 días para calcular la media móvil simple de 200 días.

  • Metodo: GET
  • URL: https://api.polygon.io/v1/indicators/{input.moving_average_type}/{input.ticker}?timespan=day&adjusted=true&window={input.moving_average_value}&series_type=close&order=desc&limit=1&apiKey={globalVariable.api_key}
  • Variables:
    • {input.ticker} es el valor del modelo de entrada.
    • {globalVariable.api_key} se extrae dinámicamente de la variable global.
    • {input.moving_average_type} es el valor del modelo de entrada.
    • {input.moving_average_value} es el valor del modelo de entrada.

Respuesta esperada: Un objeto JSON con los precios de cierre históricos de los últimos 200 días.

Más información en la documentación de Polygon: https://polygon.io/docs/stocks/get_v2_aggs_ticker__stocksticker__prev

4.4. Nodo Assign: Extraer datos necesarios

Este nodo se encarga de analizar y extraer los valores necesarios de las respuestas de ambos nodos de la API REST.

  • Propósito:
    • De la primera llamada a la API, extraer el last_closed_price (último precio de cierre).
    • De la segunda llamada a la API, extraer el moving_average_value (valor de la media móvil).
    • A partir de ambos precios contamos el offset (desfase). A qué distancia está el valor de la media móvil.

En el Nodo Assign, puedes utilizar directamente las funciones de DecisionRules para extraer y manipular los datos de respuesta de la API de forma eficiente. He aquí cómo implementar la extracción y el cálculo:

  1. Extraer last_closed_price utilizando la función PICK:
    • Expresión: last_closed_price <- PICK({get_last_price.data.results}, "[0].c")
    • Extrae el precio de cierre (c) del primer resultado de la matriz devuelta por la API get_last_price.
  2. Extraer el 200_day_moving_average (media móvil de 200 días) de la respuesta de la API de medias móviles:
    • Expresión: 200_day_moving_average <- PICK({get_moving_averages.data}, "results.values[0].value")
    • Recoge el valor de la media móvil de la matriz de resultados en la respuesta de la API get_moving_averages.
  3. Calcular el offset (desfase) y redondearlo a dos decimales:
    • Expresión: output.offset <- ROUND(({last_closed_price} - {200_day_moving_average})/{200_day_moving_average}, 2)
    • This calculates the offset as the percentage difference between the last_closed_price and 200_day_moving_average and rounds it to two decimal places. Calcula el desfase como la diferencia porcentual entre el last_closed_price (último precio de cierre) y 200_day_moving_average (media móvil de 200 días) y lo redondea a dos decimales.

4.5. Nodo Switch: Comparación de Precios (Nodo de Decisiones)

Este nodo decidirá si el precio actual está por encima o por debajo de la media móvil de 200 días.

  • Lógica de Switch:
    • Condición 1: Si last_closed_price > 200_day_moving_average, activar una señal de Compra.
    • Condición 2: Si last_closed_price < 200_day_moving_average, activar una señal de Venta.

4.6. Conectar Nodos Assign para cada resultado del Nodo Switch

Después de que el nodo Switch decida si el precio de la acción está por encima o por debajo de la media móvil de 200 días, tendrás que asignar resultados específicos para cada decisión. Aquí es donde entran en juego los nodos Assign, que asignarán la posición de negociación (Comprar/Vender) al modelo de salida.

Resultado final

Revisemos el resultado final del workflow. Utilizando la media móvil de 200 días, el sistema evalúa el precio actual de la acción y ha determinado que una orden alcista es el mejor curso de acción, dado que el último precio de cierre está un 16% por encima del valor de la media móvil. Este resultado refleja la toma de decisiones automatizada que puede lograrse mediante el workflow sin código. Puedes descargar la regla completa aquí.

Conclusión

Este tutorial muestra cómo crear una estrategia de trading totalmente funcional sin escribir una sola línea de código. DecisionRules.io proporciona una interfaz visual fácil de usar donde la lógica se maneja a través de nodos, y la integración con APIs externas (como Polygon.io) te permite automatizar decisiones de trading de acciones basadas en datos históricos y en tiempo real. Este diseño del workflow te ayuda a construir, probar y ajustar estrategias de trading de forma rápida y eficiente, incluso si no estás familiarizado con la programación. Este ejemplo muestra un uso sencillo del workflow, pero puedes ampliarlo para crear estrategias mucho más complejas según tus necesidades.

Más Artículos