6.3. Camadas da API
Camada 0 API
O propósito da API L0 é a conectividade com bolsas, fornecedores de dados e sistemas de negociação que ainda não são suportados.
Conectar-se via L0 abre toda a funcionalidade do Bookmap que é suportada para adaptadores integrados. Normalmente, o desenvolvimento de um novo adaptador tem duas etapas: conectividade de dados e conectividade de negociação. A implementação de funcionalidades de negociação não é obrigatória e pode ser implementada mesmo que parcialmente, por exemplo, visualização da evolução das ordens do trader, mas sem a capacidade de enviá-las ou modificá-las a partir do gráfico do Bookmap.
Existem duas soluções distintas baseadas na API L0: Solução Quant (paga) e Solução Connect (gratuita).
Camada 1 API
A API L1 permite:
- Acesso rápido a dados em tempo real e dados históricos recentes (armazenados na estrutura de dados do Bookmap) em um formato uniforme, independentemente da conexão específica
- Implementação de estratégias de negociação automatizadas
- Registro e/ou exportação de dados de mercado e ordens em qualquer formato desejado
Existem 3 estratégias de demonstração integradas, Chase, Escape e Execute, que usam a API L1. Os usuários podem ativá-las via o botão de estratégias. Seu principal propósito é a demonstração dos módulos customizados da API L1 e oferecer seu código-fonte como referência para o desenvolvimento de outros módulos customizados. Portanto, é recomendado não ativar essas estratégias de demonstração com uma conta de negociação real.
Nota: A API L1 dá acesso aos chamados dados de Não-Exibição, ou seja, a capacidade de acessá-los não apenas na forma visual.
Os módulos da API L1 podem ser anexados ou injetados. Ambos os métodos recebem dados completos de mercado e atualizações sobre o status das ordens do usuário quando eles chegam de fora (ou seja, via API L0), mesmo se as ordens foram iniciadas fora do Bookmap.
Método de Injeção
No método de injeção, tanto os dados de mercado quanto as ordens do usuário passam pelo módulo customizado. Isso dá ao módulo customizado controle total sobre o fluxo de dados, incluindo a capacidade de modificá-los. Mas também coloca nele a responsabilidade de encaminhar os dados adiante em ambos os sentidos. Aqui estão exemplos de casos de uso:
- Módulo de risco que pode substituir as ações do usuário no gráfico
- Exibir no gráfico milhares de unidades em vez de unidades, dividindo o tamanho por 1000.
Método de Anexo
No método de anexo, o módulo customizado não pode modificar os dados recebidos pelo gráfico e não pode modificar as ações de negociação do usuário no gráfico. Em vez disso, ele escuta as atualizações dos dados de mercado e as ações do usuário no gráfico. Embora ele não possa bloquear ou modificar as ações do trader no gráfico antes de saírem do Bookmap, ainda assim receberá atualizações de status das ações do usuário quando elas retornarem da bolsa ou do OMS (por exemplo, da Rithmic) e, portanto, poderá gerar suas próprias ações automáticas em resposta aos dados de mercado ou ações do usuário. Aqui estão exemplos de casos de uso:
- Gravar dados de mercado em um formato customizado ou exportar em tempo real, por exemplo, para o Excel
- Estratégia de negociação automática baseada em dados
- Alertas personalizados para dados específicos de mercado ou condições de negociação
Desenvolvendo Indicadores
Como parte da API de nível 1 do Bookmap, os usuários podem desenvolver indicadores que são exibidos sobre o mapa de calor ou no painel de indicadores abaixo dele.
Nota:
- Indicadores são apenas uma parte de uma estratégia. Qualquer estratégia pode registrar qualquer número de indicadores.
- Indicadores podem ser exibidos no gráfico principal ou no painel inferior. Um indicador pode opcionalmente ser exibido como um widget também, como mostrado no exemplo abaixo.
Insira captura de tela
Uma estratégia que usa widgets é necessária para implementar a interface OnlineCalculatable, que contém dois métodos importantes:
-
calculateValuesInRange este será chamado quando o seu indicador precisar de dados para uma faixa de tempo específica. Normalmente isso acontece quando o usuário move o mapa de calor. Este método não precisa necessariamente ser muito rápido. Se precisar fazer cálculos complexos, você poderá fornecer valores um por um, e o usuário verá a parte calculada do gráfico. Neste método, você geralmente solicitará dados agregados de um armazenamento e os processará.
-
createOnlineValueCalculator este é destinado a calcular valores de indicador em tempo real. Você terá que fornecer um calculador que reagirá a atualizações incrementais, recomputando o último valor conforme necessário.