POLITICA DE COOKIES

Q2BSTUDIO.COM utiliza cookies técnicas, analíticas, de sesión y de publicidad con la finalidad de prestar un mejor servicio. No obstante, necesitamos su consentimiento explícito para poder utilizarlas. Así mismo puede cambiar la configuración de las cookies u obtener más información aquí .

Blog Renovado, Mismo Mensaje

Consumo de la API de Infoway para kline con C++ y libcurl: interpretación de la respuesta, rendimiento y WebSocket

Publicado el 12/09/2025

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.

Fin del artículo, inicio de la diversión
Construyendo software juntos

Dando vida a tus ideas desde 2008

Diseñamos aplicaciones móviles y de escritorio innovadoras que cumplen con tus requisitos específicos y mejoran la eficiencia operativa.
Más info
Cuéntanos tu visión
Sea cual sea el alcance, podemos convertir tu idea en realidad. Envíanosla y charlemos sobre tu proyecto o una colaboración futura.
Contáctanos
artículos destacados
Live Chat
Enviado correctamente.

Gracias por confiar en Q2BStudio