Como faço trading spot com o Jupyter Notebook?

Publicado em 29 de set. de 2023Atualizado em 24 de abr. de 2024Leitura de 8 minuto133

Saiba como fazer o trading spot chamando as funções na python-okx no Jupyter Notebook.

1. Como posso executar snippets de código Python no Jupyter Notebook?

CT-web-spottrading-howtoapi-1

O Jupyter Notebook é uma ferramenta incrivelmente avançada e fácil de usar para desenvolvimento e análise de dados em Python. Você pode rodar um servidor do Jupyter Notebook no Windows, Mac OS ou Linux. Este tutorial fornece um guia completo sobre como colocar o Jupyter Notebook em funcionamento.

2. Como instalo o pacote python-okx?

Depois de começar a executar o Jupyter Notebook, você pode instalar o pacote python-okx executando o comando pip install python-okx no notebook ou em um terminal (ou via prompt de comando no Windows):

CT-web-spottrading-howtoapi-2

3. Como crio chaves de API?

1. Depois de entrar na OKX, acesse Negociar> Trading simulado para criar chaves de API para fins de teste

CT-web-trade-demo trading

Abra a página de Trading simulado

2. Acesse Conta -> API para criar chaves de API

CT-web-profile-API

Acesse API para criar chaves de API

3. Crie chaves de API para as diferentes contas principais/subcontas que você possuir

CT-web-API-create

Selecione Criar chave de API

4. Selecione Negociar nas Permissões para negociar utilizando a chave de API

CT-web-API-trade

Selecione Negociar nas Permissões

5. Agora você tem acesso à sua chave de API (API key), à sua chave secreta (secret key) e à sua frase secreta (passphrase). Mantenha-as em um local seguro!

6. Instancie as variáveis python para salvar as informações de sua API no notebook para uso posterior

1 api_key = "xxxxx"
2 secret_key = "xxxxx"
3 passphrase = "xxxxxx"

```
api_key = "xxxxx"
secret_key = "xxxxx"
passphrase = "xxxxxx"```

4. Como importo os módulos da OKX?

No python-okx, vários módulos são baseados nos nossos módulos do API REST. Leia nosso guia para saber como importar os módulos da OKX.

  • Trade

  • BlockTrading

  • Funding

  • Account

  • Conversão

  • Earning

  • SubAccount

  • MarketData

  • PublicData

  • TradingData

  • Status

  • NDBroker

  • FDBroker

Para importar o módulo Trade , execute:

1 import okx.Trade as Trade

```
import okx.Trade as Trade
```

Agora você está pronto para usar os inúmeros recursos disponíveis no python-okx!

5. Como acesso nossos dados de mercado?

Saiba mais sobre como acessar 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)

```
import okx.MarketData as MarketData
flag = "1" # live trading: 0, demo trading: 1
marketDataAPI = MarketData.MarketAPI(flag=flag) result = marketDataAPI.get_tickers(instType="SPOT"
)
print(result)
```

6. Como leio os pares de trading disponíveis?

Saiba mais sobre como ler nossos pares de trading disponíveis e consulte o código abaixo.

```
import okx.PublicData as PublicData

flag = "1" # live trading: 0, demo trading: 1

PublicDataAPI = PublicData.PublicAPI(flag=flag)

result = PublicDataAPI.get_instruments(
instType="SPOT"
)
print(result)
```

7. Como leio o saldo da minha conta?

Para mais informações sobre como ler o saldo da sua conta, leia nosso guia dedicado.

Observação: Para trading spot em "cash" tdMode, você precisa verificar principalmente os parâmetros cashBal, frozenBal para cada ccy em detailse o parâmetro totalEq .

```
import okx.Account as Account
flag = "1" # live trading: 0, demo trading: 1

accountAPI = Account.AccountAPI(api_key, secret_key, passphrase, False, flag)

result = accountAPI.get_account_balance()
print(result)
```

8. Como acesso os quatro diferentes modos de conta?

Em nosso sistema de conta unificada, há quatro modos de conta:

  • Conta simples

  • Conta de margem de moeda única

  • Conta de margem multimoedas

  • Conta de margem de portfólio

Para entender a diferença entre os vários modos de conta e como configurar o modo de conta por meio da interface do usuário na web, leia nosso guia dedicado. No modo de margem ou no modo de negociação, o parâmetro tdMode determina como será a margem de sua posição, o que você precisa definir sempre que criar uma nova ordem. Para trading spot no modo de conta simples ou conta de margem de moeda única, defina o parâmetro tdMode='cash'.Para trading spot no modo de conta de margem multimoedas ou de margem de portfólio, defina o parâmetro tdMode = 'cross'. Você encontrará abaixo uma explicação rápida de como descobrir em que modo sua conta atual está configurada.

9. Como descubro em que modo minha conta atual está configurada?

Para mais informações sobre como descobrir em que modo sua conta corrente está configurada, leia nosso guia dedicado e insira o parâmetro acctLv.

```
import okx.Account as Account

flag = "1" # live trading: 0, demo trading: 1

accountAPI = Account.AccountAPI(api_key, secret_key, passphrase, False, flag) result = accountAPI.get_account_config()
print(result)

if result['code'] == "0":
acctLv = result["data"][0]["acctLv"]
if acctLv == "1":
print("Simple mode")
elif acctLv == "2":
print("Single-currency margin mode")
elif acctLv == "3":
print("Multi-currency margin mode")
elif acctLv == "4":
print("Portfolio margin mode")
```

10. Como envio ordens spot no modo de conta simples ou de margem de moeda única?

10.1 Como faço para criar uma ordem limitada?

Para mais informações sobre como enviar uma ordem limitada em um modo de conta simples ou de margem de moeda única, leia nosso guia dedicado.

Comprando 0,01 BTC ao preço de 19.000 USDT.

```
# ordem limitada
result = tradeAPI.place_order(
instId="BTC-USDT",
tdMode="cash",
side="buy",
ordType="limit",
px="19000",
sz="0.01"
)
print(result)

if result["code"] == "0":
print("Successful order request,order_id = ",result["data"][0]["ordId"])
else:
print("Unsuccessful order request,error_code = ",result["data"][0]["sCode"], ", Error_message = ", result["data"][0]["sMsg"])
```

10.2 Como faço para criar uma ordem a mercado?

Para mais informações sobre como criar uma ordem a mercado no modo de conta simples ou de margem de moeda única, leia nosso guia dedicado.

Veja um exemplo de compra de BTC no valor de 100 USD ao preço atual de mercado.

```
# ordem a mercado
result = tradeAPI.place_order(
instId="BTC-USDT",
tdMode="cash",
side="buy",
ordType="market",
sz="100",
)
print(result)
```

10.3 Como faço para usar o parâmetro de moeda de destino tgtCcy durante o trading spot?

No trading spot, 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 padrão, tgtCcy = quote_ccy para ordens de compra, o que significa que o sz que você especificou está em termos da moeda de cotação. Por outro lado, o valor padrão de tgtCcy para ordens de venda é base_ccy, o que significa que o sz que você especificou está em termos da moeda base.

No exemplo abaixo, você está prestes a criar uma ordem a mercado para comprar BTC no valor de 100 USD.

```
# ordem a mercado
result = tradeAPI.place_order(
instId="BTC-USDT",
tdMode="cash",
side="buy",
ordType="market",
sz="100",
tgtCcy="quote_ccy" # isso determina a unidade do parâmetro sz.
)
print(result)
```

10.4 Como faço para usar o parâmetro de ID de ordem de cliente clOrdId?

Ao criar uma ordem, você pode especificar seu próprio ID de ordem de cliente especificando o parâmetro clOrdId, que pode ser usado posteriormente como um identificador no lugar de ordId ao chamar um endpoint de cancelamento, alteração ou recuperação de ordem.

```
# ordem a mercado
result = tradeAPI.place_order(
instId="BTC-USDT",
tdMode="cash",
side="buy",
ordType="market",
sz="100",
clOrdId="003" # você pode definir seu próprio ID de ordem de cliente
)
print(result)
```

11. Como obtenho detalhes sobre uma determinada ordem?

Para mais informações sobre como obter detalhes sobre uma determinada ordem, leia nosso guia dedicado.

Usando o ordId

```
result = tradeAPI.get_order(instId="BTC-USDT", ordId="497819823594909696")
print(result)
```

Usando o clOrdId

```
result = tradeAPI.get_order(instId="BTC-USDT", clOrdId="002")
print(result)
```

12. Como cancelo uma ordem?

Para mais informações sobre como cancelar uma ordem, leia nosso guia dedicado.

Você também pode usar o clOrdId em vez do ordId.

```
result = tradeAPI.cancel_order(instId="BTC-USDT", ordId = "489093931993509888")
print(result)
```

13. Como altero uma ordem?

Para mais informações sobre como alterar uma ordem, leia nosso guia dedicado.

Você também pode usar o clOrdId em vez do ordId.

```
result = tradeAPI.amend_order(
instId="BTC-USDT",
ordId="489103565508685824",
newSz="0.012"
)
print(result)
```

14. Como acesso a lista de ordens abertas?

Para mais informações sobre como acessar a lista de ordens em aberto, leia nosso guia dedicado.

```
result = tradeAPI.get_order_list()
print(result)
```

15. Como acesso o histórico de ordens?

15.1 Para os últimos 7 dias

Para mais informações sobre como acessar o histórico de ordens nos últimos 7 dias, leia nosso guia dedicado.

```
result = tradeAPI.get_orders_history(
instType="SPOT"
)
print(result)
```

15.2 Para os últimos 3 meses

Para mais informações sobre como acessar o histórico de ordens nos últimos 3 meses, leia nosso guia dedicado.

```
result = tradeAPI.get_orders_history_archive(
instType="SPOT"
)
print(result)
```

16. Como vou além com a API da OKX com o Jupyter Notebook?

Para mais exemplos, baixe o Jupyter Notebook completo aqui. Caso tenha alguma dúvida sobre nossas APIs, você pode apresentá-la no canal do Telegram de suporte à API da OKX.