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 nossa plataforma, aceda a Trading > Trading de demonstração para criar chaves API para propósitos de teste - Abra a página de trading de demonstração 
- Aceda ao Perfil e selecione API de trading de demonstração para criar chaves de API - Abra a API para criar chaves API 
- Crie chaves API para as diferentes contas principais/subcontas - Selecione Criar chave API 
- Selecione Trading nas Permissões para fazer trading com a chave API - Selecione Trading em Permissões 
- 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 Python- 1 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 TradeAgora 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.Account as Account
2
3   # API initialization
4   apikey = "YOUR_API_KEY"
5   secretkey = "YOUR_SECRET_KEY"
6   passphrase = "YOUR_PASSPHRASE"
7    
8   flag = "1" # Production trading: 0, Demo trading: 1
9    
10  accountAPI = Account.AccountAPI(apikey, secretkey, passphrase, False, flag)
11
12  result = accountAPI.get_instruments(instType="SPOT")
13  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.