Olá pessoal,
Há um tempo atrás eu fiz um programa para análise das séries históricas dos
preços de ações na Bovespa. Esses dias eu estava pensando em como
seria caso eu quisesse a série em tempo real. Como não tenho
experiência nenhuma no mercado financeiro, queria saber se vocês podem
ajudar.
Minha concepção atual do problema é a seguinte
1) Abrir uma conta em alguma corretora que me provenha acesso FIX a Bovespa [1].
2) Conectar meu cliente (TCP/IP) com o servidor da corretora.
3) Parsear of pacotes FIX e fazer a analise que quiser.
Pelo menos essa é a impressão que eu tive do funcionamento dos clientes tipo
Metatrader.
Finalmente a parte C++.
==============================
A) O que se recomenda como parser pra FIX? Eu encontrei apenas essas
duas libs [1, 2] e não simpatizei muito já que parecem misturar a
parte de I/O e threads com o parser. Uma delas é inclusive uma API C.
Minha ideia original é de usar um cliente Boost.Asio TCP/IP, SSL com um parser
pra FIX e pronto.
B) A segunda pergunta não pertence necessariamente a essa thread. Eu
uso Asio com frequência no trabalho e estou bem acostumado com o
modelo de programação com callbacks, mas o que outras libs e
linguagens (C#, Java) oferecem como opção ao modelo da Asio?
O C++11 oferece por exemplo std::futures que até hoje pra mim não serviram pra
nada. As corotinas dão uma cara melhor ao código mas ainda não tive a
impressão que vou abandonar o loop de eventos e callbacks como feito na Asio
tão cedo [4].
Se trata inicialmente de um projeto de horas vagas, mas quem sabe eu
encontro um jeito de ficar rico :)
Marcelo
[1]
http://www.bmfbovespa.com.br/pt_br/servicos/negociacao/acesso-direto-ao-mercado-dma/sobre-dma/
[2]
http://www.quickfixengine.org/
[3]
https://github.com/libtrading
[4]
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3896.pdf