Skip to main content

Foxbit

Status de teste Coverage Status
Versão Version
Compatibilidade Version

Cliente python para API websocket da foxbit.

Instalação

PIP

Para instalar via pip, execute no terminal:

$> pip install foxbit

GIT

Para instalar via git, execute no terminal:

$> git clone https://gitlab.com/qlrddev/foxbit.git

Testar

Para testar o código-fonte, instale o pacote tox e execute:

$> tox

Uso

O exemplo apresentado aqui é feito no console. Mas também funciona em um script ou em um notebook.

Existem exemplos na pasta examples/ que podem auxiliar.

Configuração do ambiente virtual

Para experimentar, sem comprometer o seu sistema, é recomendado usar a abordagem git de instalação e configurar um ambiente virtual.

Para configuração do ambiente virtual, é necessária a instalção do pacote virtualenv. Para isso, execute:

$> pip install virtualenv
$> virtualenv <meu_nome_de_ambiente_virtual>
$> source ./<meu_nome_de_ambiente_virtual>/bin/activate
$> pip install -e .

Adentre no console do python:

$> python
Python 3.10.1 (main, Xxx XXXX, XX:XX:XX) [GCC X.Y.Z] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

Importe classes e métodos:

O módulo foxbit é consituído, basicamente, de classes-cliente e de classes-mensagens.

Dentre as classes-cliente, podemos importar a classe base:

>>> from foxbit.client import Client

Ou uma classe-cliente de endpoints públicos (que não requerem autenticação):

>>> from foxbit.client import PublicClient

A classe-mensagem é a classe que cria mensagens na forma definida pela API da foxbit:

>>> from foxbit.frame import MessageFrame

Defina funções de callback:

on_open

Função que é executada assim que a conexão com os servidores da Foxbit são estabelecidos.

Requer 1 argumento, ws, que é o próprio cliente websocket.

>>> def on_open(ws):
...   """Assim que a conexão for aberta, envie uma requisição"""
...   print("Connected")
...   public_client.getInstruments(
...     OMSId=1,
...     InstrumentId=1
...   )
>>>

Note que a instância public_client ainda será definida posteriormente

on_close

Função que é executada assim que a conexão com os servidores da Foxbit são fechados. Requer três argumento:

  • ws, que é o próprio cliente websocket;
  • status que é o estado durante o fechamento;
  • msg que é uma mensagem do servidor;
>>> def on_close(ws, status, msg):
...   """Assim que a conexão for fechada, crie uma mensagem"""
...   print("Disconnected with status {}: {}".format(status, msg))
>>>

on_message

Função que é executada assim que uma mensagem é recebida. Requer dois argumentos, ws, que é o próprio cliente websocket, e msg, que é a mensagem recebida. Note que aqui podemos fechar a conexão através do método close.

>>> def on_message(ws, msg):
...   """"Assim que a mensagem for recebida, 
...   transforme-a em um `dict`, imprima e feche a conexão"""
...   parsed = MessageFrame.fromJSON(msg)
...   print(parsed)
...   public_client.close()
>>>

on_error

função que é executada assim que algum erro é estabelecido. Requer dois argumentos, ws, que é o proóprio cliente websocket, e err, que é o proório erro.

>>> def on_error(ws, err):
...   print(err)
>>>

Defina uma instância de cliente

>>> public_client = PublicClient(
...  on_open=on_open,
...  on_close=on_close,
...  on_message=on_message,
...  on_error=on_error
...)
>>>

Execute a função run_forever

>>> public_client.run_forever()

Classes e métodos

  • Classe foxbit.client.Client: subclasse derivada de websocket.WebsocketApp; não possue métodos próprios.

    • Classe foxbit.client.PublicClient: subclasse derivada de foxbit.client.Client; possue métodos próprios:

      • getInstrument
      • getInstruments
      • getProducts
      • getL2Snapshot
      • getTickerHistory
      • subscribeTicker
      • unsubscribeTicker
      • subscribeLevel1
      • unsubscribeLevel1
      • subscribeLevel2
      • unsubscribeLevel2
      • onSubscription
  • Classe foxbit.frame.MessageFrame: classe de utilidade para criar mensagens em formato definido:

    • toJSON: tranforma as propriedades da classe em uma str JSON;
    • fromJSON tranforma uma str JSON em uma instância de MessageFrame.

Release files for foxbit 0.0.12

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for foxbit 0.0.12
File Interpreter ABI Platform
foxbit-0.0.12-py3-none-any.whl Python 3 none any Details

Release files / foxbit-0.0.12-py3-none-any.whl

Download URL foxbit-0.0.12-py3-none-any.whl
Size 12.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3a9a84bc57d01c825401ddb51a416945a535200632205bec0f1620a16ce561da
BLAKE2b-256 checksum
How to use checksums
778df4a4764f278d4ecbc47f917401eededa608e10644226e4e46870eb498ad2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.2

Release history Release notifications | RSS feed

This release

0.0.12 This release

1 release file

0.0.11

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page