Como faço trading à vista com o Jupyter Notebook?
Saiba como pode fazer trading à vista simples com as funções da biblioteca python-okx num Jupyter Notebook.
1. Como posso executar fragmentos de código Python no Jupyter Notebook?
O Jupyter Notebook é uma ferramenta incrivelmente poderosa e fácil de utilizar para a programação e análise de dados em Python. Pode executar um servidor Jupyter Notebook no Windows, MacOS ou Linux. Este tutorial fornece um guia abrangente sobre como colocar o Jupyter Notebook a funcionar.
2. Como posso instalar o pacote python-okx?
Depois de começar a executar o Jupyter Notebook, pode instalar o pacote python-okx ao executar o pip install python-okx
no notebook ou num terminal (ou através de linha de comandos no Windows):
3. Como posso criar chaves API?
Após iniciar sessão na OKX, aceda a Trading > Trading de demonstração para criar chaves API para propósitos de teste
Aceda a Conta > API para criar chaves API
Crie chaves API para as diferentes contas principais/subcontas
Selecione Trading nas Permissões para fazer trading com a chave API
Agora tem acesso à sua chave API, à sua chave secreta e à sua frase de acesso. Mantenha-as num local seguro!
Represente as variáveis python para guardar as informações da sua API no notebook para uso posterior
Python1 api_key = "xxxxx" 2 secret_key = "xxxxx" 3 passphrase = "xxxxxx"
4. Como posso importar os módulos da OKX?
No python-okx, vários módulos são baseados nos nossos módulos do API REST. Leia o nosso guia para saber como importar os módulos da OKX.
Fazer trading
BlockTrading
Funding
Conta
Convert
Earning
SubAccount
MarketData
PublicData
TradingData
Status
NDBroker
FDBroker
Para importar o módulo Trading, pode executar:
1 import okx.Trade as Trade
Agora está pronto para utilizar as funcionalidades abrangentes disponíveis no python-okx!
5. Como posso aceder aos nossos dados de mercado?
Saiba mais sobre como aceder aos nossos dados de mercado e consulte o código abaixo.
1 import okx.MarketData as MarketData
2 flag = "1" # live trading: 0, demo trading: 1
3 marketDataAPI = MarketData.MarketAPI(flag=flag)
4 result = marketDataAPI.get_tickers(instType="SPOT")print(result)
6. Como posso ler os pares de trading disponíveis?
Saiba mais sobre como ler os nossos pares de trading disponíveis e consulte o código abaixo.
1 import okx.PublicData as PublicData
2
3 flag = "1" # live trading: 0, demo trading: 1
4
5 PublicDataAPI = PublicData.PublicAPI(flag=flag)
6
7 result = PublicDataAPI.get_instruments(
8 instType="SPOT"
9 )
10 print(result)
7. Como posso ler o saldo da minha conta?
Para mais informações sobre como ler o saldo da sua conta, leia o nosso guia dedicado.
Nota: Para trading à vista no tdMode
“cash”, deve consultar principalmente os parâmetros cashBal
, frozenBal
para cada ccy
em detalhes
e o parâmetro totalEq
.
1 import okx.Account as Account
2 flag = "1" # live trading: 0, demo trading: 1
3
4 accountAPI = Account.AccountAPI(api_key, secret_key, passphrase, False, flag)
5
6 result = accountAPI.get_account_balance()
7 print(result)
8. Como posso aceder aos quatro diferentes modos de conta?
No nosso sistema de conta unificada, há quatro modos de conta:
Modo à vista
Modo à vista e de futuros
Modo de margem multidivisas
Modo de margem de portefólio
Para entender a diferenças entre os vários modos de conta e como configurar o modo de conta através da interface de utilizador da web, leia o nosso guia dedicado.
No modo de margem ou no modo de trading, o parâmetro tdMode
determina como a sua posição será marginada. Tem de definir isto sempre que colocar uma nova ordem.
Para trading à vista no modo à vista ou no modo à vista e de futuros, defina tdMode
='cash'.
Para trading à vista no modo de margem multidivisas ou no modo de margem de portefólio, defina tdMode
= 'cross'.
Irá encontrar abaixo uma explicação rápida sobre como descobrir em que modo a sua conta atual está configurada.
9. Como posso descobrir em que modo é que a minha conta atual está configurada?
Para mais informações sobre como descobrir em que modo a sua conta atual está configurada, leia o nosso guia dedicado e insira o parâmetro acctLv
.
1 import okx.Account as Account
2
3 flag = "1" # live trading: 0, demo trading: 1
4
5 accountAPI = Account.AccountAPI(api_key, secret_key, passphrase, False, flag)
6 result = accountAPI.get_account_config()
7 print(result)
8
9 if result['code'] == "0":
10 acctLv = result["data"][0]["acctLv"]
11 if acctLv == "1":
12 print("Simple mode")
13 elif acctLv == "2":
14 print("Single-currency margin mode")
15 elif acctLv == "3":
16 print("Multi-currency margin mode")
17 elif acctLv == "4":
18 print("Portfolio margin mode")
10. Como posso efetuar ordens à vista em modo à vista/à vista e de futuros?
10.1 Como é que posso colocar uma ordem com limite?
Para mais informações sobre como colocar uma ordem com limite no modo à vista ou no modo à vista e de futuros, leia o nosso guia dedicado.
Pode comprar 0,01 BTC ao preço de 19.000 USDT.
1 # limit order
2 result = tradeAPI.place_order(
3 instId="BTC-USDT",
4 tdMode="cash",
5 side="buy",
6 ordType="limit",
7 px="19000",
8 sz="0.01"
9 )
10 print(result)
11
12 if result["code"] == "0":
13 print("Successful order request,order_id = ",result["data"][0]["ordId"])
14 else:
15 print("Unsuccessful order request,error_code = ",result["data"][0]["sCode"], ", Error_message = ", result["data"][0]["sMsg"])
10.2 Como é que posso colocar uma ordem de mercado?
Para mais informações sobre como colocar uma ordem de mercado no modo à vista ou no modo à vista e de futuros, leia o nosso guia dedicado.
Eis um exemplo de compra de BTC que vale 100 USD ao preço de mercado atual.
1 # market order
2 result = tradeAPI.place_order(
3 instId="BTC-USDT",
4 tdMode="cash",
5 side="buy",
6 ordType="market",
7 sz="100",
8 )
9 print(result)
10.3 Como é que posso utilizar o parâmetro da moeda alvo tgtCcy ao fazer trading à vista?
No trading à vista, o parâmetro tgtCcy
determina a unidade do parâmetro de tamanho sz
, que pode ser a moeda-base ou a moeda de cotação do par de trading. Por exemplo, no par BTC-USDT, a moeda base é BTC e a moeda de cotação é USDT.
Por predefinição, tgtCcy
= quote_ccy para ordens de compra, o que significa que o sz
especificado é em termos da moeda de cotação. Entretanto, o valor predefinido de tgtCcy
para ordens de venda é base_ccy, o que significa que o sz
que especificou é em termos da moeda-base.
No exemplo abaixo, está prestes a colocar uma ordem de mercado para comprar BTC que vale 100 USD.
1 # market order
2 result = tradeAPI.place_order(
3 instId="BTC-USDT",
4 tdMode="cash",
5 side="buy",
6 ordType="market",
7 sz="100",
8 tgtCcy="quote_ccy" # this determines the unit of the sz parameter.
9 )
10 print(result)
10.4 Como é que posso utilizar o parâmetro de ID de ordem de cliente clOrdId?
Ao colocar uma ordem, pode especificar o ID da ordem do cliente ao especificar o parâmetro clOrdId
, que pode ser usado posteriormente como um identificador no lugar de ordId
em caso de ponto final de cancelamento, alteração ou recuperação de uma ordem.
1 # market order
2 result = tradeAPI.place_order(
3 instId="BTC-USDT",
4 tdMode="cash",
5 side="buy",
6 ordType="market",
7 sz="100",
8 clOrdId="003" # you can define your own client defined order ID
9 )
10 print(result)
11. Como posso obter detalhes sobre uma determinada ordem?
Para mais informações sobre como obter detalhes sobre uma determinada ordem, leia o nosso guia dedicado.
11.1 Usar o ordId
1 result = tradeAPI.get_order(instId="BTC-USDT", ordId="497819823594909696")
2 print(result)
11.2 Usar o clOrdId
1 result = tradeAPI.get_order(instId="BTC-USDT", clOrdId="002")
2 print(result)
12. Como posso cancelar uma ordem?
Para mais informações sobre como cancelar uma ordem, leia o nosso guia dedicado.
Também é possível utilizar o clOrdId
em vez do ordId
.
1 result = tradeAPI.cancel_order(instId="BTC-USDT", ordId = "489093931993509888")
2 print(result)
13. Como posso alterar uma ordem?
Para mais informações sobre como alterar uma ordem, leia o nosso guia dedicado.
Também é possível utilizar o clOrdId
em vez do ordId
.
1 result = tradeAPI.amend_order(
2 instId="BTC-USDT",
3 ordId="489103565508685824",
4 newSz="0.012"
5 )
6 print(result)
14. Como posso aceder à lista de ordens abertas?
Para mais informações sobre como aceder à lista de ordens abertas, leia o nosso guia específico.
1 result = tradeAPI.get_order_list()
2 print(result)
15. Como posso aceder ao histórico de ordens?
15.1 Nos últimos 7 dias
Para mais informações sobre como aceder ao histórico de ordens nos últimos 7 dias, leia o nosso guia dedicado.
1 result = tradeAPI.get_orders_history(
2 instType="SPOT"
3 )
4 print(result)
15.2 Nos últimos 3 meses
Para mais informações sobre como aceder ao histórico de ordens nos últimos 3 meses, leia o nosso guia dedicado.
1 result = tradeAPI.get_orders_history_archive(
2 instType="SPOT"
3 )
4 print(result)
16. Como posso levar a API da OKX a outro nível com o Jupyter Notebook?
Para mais exemplos, descarregue o Jupyter Notebook completo aqui.
Caso tenho dúvidas sobre as nossas APIs, pode juntar-se à nossa comunidade de API e colocar questões na comunidade.