Blog Renovado, Mismo Mensaje. En este artículo explicamos en español cómo consumir la API de Infoway para obtener kline usando C++ y libcurl, cómo interpretar la respuesta y buenas prácticas para producción, además de presentar breves recomendaciones sobre WebSocket y rendimiento.
Endpoint y parámetros principales: el endpoint por lotes es https://data.infoway.io/common/batch_kline/{klineType}/{klineNum}/{codes} donde klineType define el tipo de K y klineNum el número de K solicitadas. El parámetro codes acepta varios símbolos separados por comas. Ejemplo de petición para obtener 2 velas de 1 minuto para XAUUSD y XAGUSD: https://data.infoway.io/common/batch_kline/1/2/XAUUSD%2CXAGUSD. El servicio acepta hasta 500 K por código en una sola llamada.
Significado de klineType habitual: 1 significa 1 minuto, 2 significa 5 minutos, 3 es 15 minutos, 4 es 30 minutos, 5 es 1 hora, 6 es 2 horas, 7 es 4 horas, 8 1 día, 9 1 semana, 10 1 mes, 11 1 año, 12 otro intervalo personalizado.
Uso básico con libcurl en C++: inicializar curl_global_init, crear un handle con curl_easy_init, configurar CURLOPT_URL con la URL del endpoint, añadir cabeceras HTTP con curl_slist_append incluyendo apiKey en una cabecera apiKey, establecer una función callback para recopilar la respuesta en una string y ejecutar curl_easy_perform. Comprobar el código HTTP con curl_easy_getinfo y liberar recursos con curl_slist_free_all, curl_easy_cleanup y finalmente curl_global_cleanup.
Consejos de robustez y rendimiento: activar Keepalive con CURLOPT_TCP_KEEPALIVE y CURLOPT_KEEPALIVE_TIME para mantener conexiones TCP abiertas; en escenarios de alta concurrencia considerar la interfaz multi de libcurl con curl_multi_perform; usar curl_share_init y CURLSHOPT_SHARE para compartir cache DNS entre handles; inicializar libcurl de forma segura en entornos multihilo usando call_once o un mecanismo equivalente para ejecutar curl_global_init solo una vez.
Manejo de límites y reintentos: vigilar respuestas HTTP 429 y aplicar backoff exponencial antes de reintentar. Para reconexiones WebSocket usar estrategia de reintento con incremento exponencial hasta un máximo, y enviar pings periódicos para evitar cierres por inactividad.
Formato de la respuesta y campos relevantes: la respuesta contiene por cada símbolo un campo s con el símbolo y respList con las velas. Cada vela incluye t como timestamp, h alto, o apertura, l bajo, c cierre, v volumen, vw precio medio ponderado, pc cambio porcentual y pca cambio absoluto. El timestamp puede venir en milisegundos; para convertirlo a tiempo humano en C++ se puede dividir entre 1000 y usar chrono y std::localtime para formatear.
Construcción de una vela cuando no hay datos: si no llega una vela nueva y necesita construirse una vela incompleta, se puede inicializar o, h, l, c igual al cierre de la vela anterior y poner v igual a 0 para indicar volumen nulo.
Cálculo de VWAP y métricas de actividad: si la API devuelve v y vm donde vm representa el volumen monetario agregado, el VWAP se aproxima como vm dividido entre v. Para detectar anomalías en volumen se puede calcular un z score simple con media y desviación estándar: z = (v - avg_volume) / stddev_volume.
WebSocket: Infoway ofrece además un endpoint WebSocket para kline que puede ser más eficiente para datos en tiempo real, por ejemplo wss://data.infoway.io/ws/kline/1/XAUUSD. Implementar lógica de reconexión, pings y manejo de mensajes duplicados o parciales para garantizar continuidad.
Buenas prácticas extra: en clientes multihilo evitar llamar a curl_global_cleanup hasta que todos los hilos hayan terminado; liberar recursos compartidos correctamente; registrar traceId que devuelve la API para facilitar soporte y debugging.
Sobre Q2BSTUDIO y servicios relacionados: en Q2BSTUDIO somos una empresa de desarrollo de software especializada en aplicaciones a medida y software a medida, con experiencia en inteligencia artificial y ciberseguridad. Ofrecemos soluciones de IA para empresas y agentes IA que integran procesos y datos, además de servicios cloud aws y azure y servicios inteligencia de negocio y power bi para convertir datos en decisiones.
Si necesita crear una aplicación a medida o modernizar un sistema legacy, podemos ayudar con el diseño y la implementación. Conozca nuestros servicios de desarrollo de aplicaciones y software a medida y descubra cómo aplicamos inteligencia artificial en proyectos reales en servicios de inteligencia artificial.
Palabras clave que describen nuestro enfoque: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi. Para consultas técnicas sobre integración con mercados en tiempo real o despliegues a escala, contacte a Q2BSTUDIO y trabajemos en una solución segura y eficiente.