A python client for foxbit exchange API
Project description
Foxbit
| Status de teste | |
|---|---|
| Versão | |
| Compatibilidade |
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;statusque é o estado durante o fechamento;msgque é 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 dewebsocket.WebsocketApp; não possue métodos próprios.-
Classe
foxbit.client.PublicClient: subclasse derivada defoxbit.client.Client; possue métodos próprios:getInstrumentgetInstrumentsgetProductsgetL2SnapshotgetTickerHistorysubscribeTickerunsubscribeTickersubscribeLevel1unsubscribeLevel1subscribeLevel2unsubscribeLevel2onSubscription
-
-
Classe
foxbit.frame.MessageFrame: classe de utilidade para criar mensagens em formato definido:toJSON: tranforma as propriedades da classe em umastrJSON;fromJSONtranforma umastrJSON em uma instância deMessageFrame.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file foxbit-0.0.12-py3-none-any.whl.
File metadata
- Download URL: foxbit-0.0.12-py3-none-any.whl
- Upload date:
- Size: 12.5 kB
- Tags: Python 3
- Uploaded using 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
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a9a84bc57d01c825401ddb51a416945a535200632205bec0f1620a16ce561da
|
|
| MD5 |
3d21fa942f04a9c4bb10c48203c67425
|
|
| BLAKE2b-256 |
778df4a4764f278d4ecbc47f917401eededa608e10644226e4e46870eb498ad2
|