Automatización de Trading con Flujos de Trabajo de DecisionRules
Para aquellos interesados en estrategias de trading automatizadas, construir un sistema de Media Móvil Simple (SMA) de 200 días ahora se puede hacer sin necesidad de experiencia en programación. Aprovechando el nuevo motor de Flujos de Trabajo de DecisionRules junto con datos financieros en tiempo real de Polygon, puedes crear, automatizar y optimizar tu estrategia de trading sin problemas. Este enfoque empodera a los usuarios para rastrear tendencias del mercado e implementar estrategias reactivas 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 innovadoras y sin código.
Aquí es donde DecisionRules.io entra como una plataforma sin código que te permite diseñar, probar e implementar visualmente estrategias de trading utilizando datos de mercado en tiempo real. Al integrarse con APIs como Polygon.io, DecisionRules.io te permite automatizar el análisis de acciones y la toma de decisiones basadas en lógica financiera simple, sin necesidad de saber programar.
En esta publicación, te guiaremos a través de cómo puedes aprovechar DecisionRules.io para construir una estrategia de trading que utilice la media móvil de 200 días para determinar cuándo comprar o vender acciones, todo sin necesidad de programar.
Acerca de Polygon
Polygon.io es una poderosa plataforma de datos que proporciona datos de mercado en tiempo real e históricos, permitiendo a desarrolladores y empresas acceder a información completa sobre acciones, divisas y criptomonedas. Conocido por su velocidad, fiabilidad y amplia cobertura de datos, Polygon.io es una herramienta esencial para construir y automatizar aplicaciones financieras. Su robusta API permite a los usuarios obtener datos de mercado detallados, analizar tendencias y tomar decisiones informadas, lo que lo convierte en una opción ideal para integrarse con DecisionRules.io y mejorar las estrategias de trading automatizadas.
Resumen del Tutorial
En esta guía, te llevaremos a través de los pasos necesarios para construir una estrategia de trading que utilice la media móvil de 200 días para determinar cuándo comprar o vender acciones, todo sin necesidad de programar.
Paso 1: Configurar Cuentas
1.1 Regístrate en DecisionRules
DecisionRules te permite crear flujos de trabajo y tablas de decisiones que pueden ser utilizadas para automatizar diversas lógicas empresariales, incluyendo estrategias de trading.
- Ve a DecisionRules y regístrate para obtener una cuenta gratuita.
- Una vez que hayas iniciado sesión, navega a la sección de Flujos de Trabajo donde construiremos nuestra lógica de trading.
1.2 Regístrate en Polygon.io
Polygon.io proporciona datos de mercado en tiempo real e históricos, que utilizaremos para obtener precios de acciones para nuestra estrategia.
- Ve a Polygon y crea una cuenta.
- Obtén tu Clave API desde el panel de control, que será necesaria para llamar a su API y recuperar datos de acciones.
Paso 2: Crear un Flujo de Trabajo en Blanco en DecisionRules
2.1 Crear un Nuevo Flujo de Trabajo
- Después de iniciar sesión en DecisionRules.io, en el menú lateral haz clic en Crear, ve a la pestaña de Flujo de Trabajo.
- Selecciona Flujo de Trabajo en Blanco y nómbralo algo como "Estrategia de Trading."
- En el flujo de trabajo, añadiremos pasos para obtener datos de precios de acciones de Polygon.io y aplicar la lógica de trading basada en la media móvil de 200 días.
Paso 3. Configurar modelo de entrada y salida
Antes de construir el flujo de trabajo, necesitarás definir los modelos de entrada y salida. Estos modelos estructurarán los datos que alimentas y obtienes de tu estrategia de trading.

3.1 Modelo de Entrada
El modelo de entrada define los datos que proporcionarás para el flujo de trabajo. En este caso, necesitas especificar los siguientes valores:
- ticker: El símbolo de la acción (por ejemplo, AAPL, TSLA) que deseas rastrear.
- 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).
- 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:
- position: La acción de trading (por ejemplo, Comprar, Vender) basada en la comparación de precios.
- offset: La diferencia entre el precio actual de la acción y la media móvil, dándote una idea de cuán lejos está el precio de la media móvil.
Paso 4. Diseño del Flujo de Trabajo
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í hay 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 del ticker, etc.) necesarias a lo largo del flujo de trabajo.
- Propósito: Almacenar credenciales de API y valores reutilizables.
- Variables:
- api_key: Tu clave API de Polygon.io.
Esto te permite gestionar estos valores de manera central sin codificarlos en múltiples lugares.
4.2. Nodo de API REST 1: Obtener Precio Actual (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.
- Método: GET
- URL: https://api.polygon.io/v2/aggs/ticker/{input.ticker}/prev?adjusted=true&apiKey={globalVariable.api_key}
- Variables:
- El valor {input.ticker} se utilizará de nuestro modelo de entrada.
- El valor {globalVaruable.api_key} con el valor almacenado en el nodo de 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 AQUÍ
4.3. Nodo de API REST 2: Obtener Media Móvil de 200 Días (get_moving_averages)
Este nodo obtendrá los datos de precios históricos de 200 días para calcular la media móvil simple de 200 días.
- Método: 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 AQUÍ
4.4. Nodo de Asignación: Extraer Datos Necesarios
Este nodo es responsable de analizar y extraer los valores necesarios de las respuestas de ambos nodos de API REST.
- Propósito:
- De la primera llamada a la API, extraer el last_closed_price.
- De la segunda llamada a la API, extraer el moving_average_value.
- De ambos precios contamos el offset de cuán lejos está el valor de la media móvil.
En el Nodo de Asignación, puedes utilizar directamente las funciones de DecisionRules para extraer y manipular los datos de respuesta de la API de manera eficiente. Aquí te mostramos cómo implementar la extracción y el cálculo:
- Extraer last_closed_price utilizando la función PICK:
- Expresión: last_closed_price <- PICK({get_last_price.data.results}, "[0].c")
- Esto extrae el precio de cierre (c) del primer resultado en el array devuelto por la API get_last_price.
- Extraer 200_day_moving_average 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")
- Esto selecciona el valor de la media móvil del array de resultados en la respuesta de la API get_moving_averages.
- Calcular el offset y redondearlo a dos decimales:
- Expresión: output.offset <- ROUND(({last_closed_price} - {200_day_moving_average})/{200_day_moving_average}, 2)
- Esto calcula el offset como la diferencia porcentual entre el last_closed_price y 200_day_moving_average y lo redondea a dos decimales.
4.5. Nodo de Cambio: Comparación de Precios (Nodo de Decisión)
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 Cambio:
- Condición 1: Si last_closed_price > 200_day_moving_average, activa una señal de Comprar.
- Condición 2: Si last_closed_price < 200_day_moving_average, activa una señal de Vender.
4.6. Conectar Nodos de Asignación para Cada Resultado del Nodo de Cambio
Después de que el nodo de cambio decida si el precio de la acción está por encima o por debajo de la media móvil de 200 días, necesitarás asignar resultados específicos para cada decisión. Aquí es donde entran los nodos de asignación, que mapearán la posición de trading (Comprar/Vender) al modelo de salida.

Salida Final
Revisemos la salida final del flujo de trabajo. Usando 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 de compra es el mejor curso de acción con el último precio de cierre un 16% por encima del valor de la media móvil. Esta salida refleja la toma de decisiones automatizada que se puede lograr a través del flujo de trabajo sin código. Puedes descargar la regla completa aquí:
Conclusión
Este tutorial te muestra cómo crear una estrategia de trading completamente 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 en tiempo real e históricos. Este diseño de flujo de trabajo te ayuda a construir, probar y ajustar estrategias de trading de manera rápida y eficiente, incluso si no estás familiarizado con la programación. Este ejemplo demuestra un uso simple del flujo de trabajo, pero puedes ampliarlo para crear estrategias mucho más complejas según sea necesario.

