Jupyter Notebook ile nasıl spot işlem yapabilirim?

Yayımlama Zamanı: 29 Eyl 2023Güncelleme Zamanı: 24 Nis 2024Okuma Süresi: 8 dk133

Jupyter Notebook’taki python-okx kitaplığında bulunan işlevleri çağırarak nasıl basit spot işlemler yapabileceğinizi öğrenin.

1. Jupyter Notebook’ta Python kod parçacıklarını nasıl çalıştırabilirim?

CT-web-spottrading-howtoapi-1

Jupyter Notebook, Python geliştirme ve veri analizi süreçlerine yönelik olarak sunulan, inanılmaz derecede güçlü ve kullanımı kolay bir araçtır. Jupyter Notebook sunucularını Windows, Mac OS veya Linux üzerinde çalıştırabilirsiniz. Bu eğitimde, Jupyter Notebook’un nasıl ayarlanıp çalıştırılacağına dair oldukça kapsamlı bir rehber sunulmaktadır.

2. Python-okx paketini nasıl yükleyebilirim?

Bir Jupyter Notebook’u çalıştırmaya başladığınızda, Notebook’ta veya bir terminal penceresinde (ya da Windows’taki komut istemi aracılığıyla) pip install python-okx komutunu çalıştırarak python-okx paketini yükleyebilirsiniz:

CT-web-spottrading-howtoapi-2

3. API anahtarlarını nasıl oluşturabilirim?

1. OKX’te oturum açtıktan sonra test amaçlı API anahtarları oluşturmak için Al-Sat > Demo İşlemler bölümüne gidin

CT-web-trade-demo trading

Demo İşlemler sayfasını açın.

2. API anahtarları oluşturmak için Hesap > API seçeneklerine gidin

CT-web-profile-API

API anahtarları oluşturmak için API’yi açın.

3. Sahip olduğunuz farklı ana/alt hesaplar için API anahtarları oluşturun

CT-web-API-create

API Anahtarı Oluştur’u seçin.

4. API anahtarı ile al-sat yapmak için İzinler bölümünde Al-Sat’ı seçin

CT-web-API-trade

İzinler bölümünde Al-Sat’ı seçin.

5. API anahtarınıza, gizli anahtarınıza ve parolanıza artık erişebilirsiniz. Bu bilgileri güvenli bir yerde sakladığınızdan emin olun!

6. Notebook’taki API ayrıntılarınızı daha sonra kullanmak üzere kaydetmek için python değişkenlerini örneklendirin

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

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

4. OKX modüllerini nasıl içe aktarabilirim?

Python-okx paketinde, REST API modüllerimizi temel alan birkaç modül bulunmaktadır. OKX modüllerinin nasıl içe aktarılacağını öğrenmek için bu kılavuzumuzu okuyun.

  • Trade

  • BlockTrading

  • Funding

  • Account

  • Convert

  • Earning

  • SubAccount

  • MarketData

  • PublicData

  • TradingData

  • Status

  • NDBroker

  • FDBroker

Trade modülünü içe aktarmak için aşağıdaki komutu çalıştırabilirsiniz:

1 import okx.Trade as Trade

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

Artık python-okx’te bulunan kapsamlı özellikleri kullanmaya hazırsınız!

5. Piyasa verilerine nasıl erişebilirim?

Piyasa verilerimize nasıl erişebileceğiniz hakkında buradan daha fazla bilgi edinin ve aşağıdaki kodu inceleyin.

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. Kullanılabilir işlem çiftlerini nasıl okuyabilirim?

Kullanılabilir işlem çiftlerimizi nasıl okuyabileceğiniz hakkında buradan daha fazla bilgi edinin ve aşağıdaki kodu inceleyin.

```
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. Hesap bakiyemi nasıl okuyabilirim?

Hesap bakiyenizi nasıl okuyabileceğiniz hakkında daha fazla bilgi için lütfen buradan ilgili kılavuzumuza göz atın.

Not: "cash" tdMode ile spot işlem yapmak isterseniz genel olarak her ccy için details kısmındaki cashBal, frozenBal parametrelerini ve ayrıca totalEq parametresini kontrol etmeniz gerekir.

```
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. Dört farklı hesap moduna nasıl erişebilirim?

Birleştirilmiş hesap sistemimizde dört hesap modu bulunmaktadır:

  • Basit hesap

  • Tekli kripto marjini hesabı

  • Çoklu kripto marjini hesabı

  • Portföy marjini hesabı

Farklı hesap modları arasındaki farkları anlamak ve web kullanıcı arayüzünden hesap modunu nasıl ayarlayacağınızı öğrenmek için lütfen buradan ilgili kılavuzumuzu inceleyin. Marjin modunda veya al-sat modunda tdMode parametresi, pozisyonunuza nasıl marjin uygulanacağını belirler. Her yeni emir verdiğinizde bu marjini ayarlamanız gerekir. Basit veya tekli kripto marjini hesap modunda spot işlem yapmak için lütfen tdMode="cash" değerini ayarlayın. Çoklu kripto marjini veya portföy marjini hesap modunda spot işlem yapmak için ise lütfen tdMode ="cross" değerini ayarlayın. Aşağıda, mevcut hesabınızın yapılandırıldığı modu nasıl öğreneceğinize dair kısa bir açıklama bulabilirsiniz.

9. Mevcut hesabımın hangi modda yapılandırıldığını nasıl öğrenebilirim?

Mevcut hesabınızın yapılandırıldığı modu öğrenme hakkında daha fazla bilgi için lütfen ilgili kılavuzumuzu okuyun ve acctLv parametresini girin.

```
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. Basit/Tekli kripto marjini modunda nasıl spot emri verebilirim?

10.1 Limit emirlerini nasıl verebilirim?

Basit veya tekli kripto marjini hesap modunda nasıl limit emri verileceği hakkında daha fazla bilgi için lütfen ilgili kılavuzumuzu okuyun.

Örnek olarak aşağıda, 19000 USDT’lik fiyattan 0,01 BTC satın alma işlemi verilmiştir.

```
# limit order
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 Piyasa emirlerini nasıl verebilirim?

Basit veya tekli kripto marjini hesap modunda nasıl piyasa emri verileceği hakkında daha fazla bilgi için lütfen ilgili kılavuzumuzu okuyun.

Örnek olarak aşağıda, mevcut piyasa fiyatından 100 USD değerinde BTC satın alma işlemi verilmiştir.

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

10.3 Spot işlem yaparken hedef para birimi parametresi tgtCcy’yi nasıl kullanabilirim?

Spot işlemlerde tgtCcy parametresi, boyut parametresinin (sz) birimini belirler; birim, işlem çiftinin temel birimi veya teklif birimi olabilir. Örneğin BTC-USDT çiftinde temel birim BTC, teklif birimi ise USDT’dir.

Alış emirleri için varsayılan olarak tgtCcy = quote_ccy olur; dolayısıyla belirttiğiniz sz değeri teklif birimi cinsinden olacaktır. Öte yandan, satış emirleri için varsayılan tgtCcy değeri base_ccy’dir; yani belirttiğiniz sz değeri temel birim cinsinden olacaktır.

Aşağıdaki örnekte, 100 USD değerinde BTC satın almak için bir piyasa emri verme işlemi gösterilmiştir.

```
# market order
result = tradeAPI.place_order(
instId="BTC-USDT",
tdMode="cash",
side="buy",
ordType="market",
sz="100",
tgtCcy="quote_ccy" # bu, sz parametresinin birimini belirler.
)
print(result)
```

10.4 Müşteri emir kimliği parametresi clOrdId’yi nasıl kullanabilirim?

Bir emir verirken clOrdId parametresini belirterek kendi müşteri emir kimliğinizi belirtebilirsiniz; bu kimlik daha sonra bir emir iptali, değişiklik veya alma uç noktası çağırırken ordId yerine bir tanımlayıcı olarak kullanılabilir.

```
# market order
result = tradeAPI.place_order(
instId="BTC-USDT",
tdMode="cash",
side="buy",
ordType="market",
sz="100",
clOrdId="003" # İstemci tanımlı kendi emir kimliğinizi tanımlayabilirsiniz.
)
print(result)
```

11. Belirli bir emirle ilgili ayrıntıları nasıl alabilirim?

Belirli bir emrin ayrıntılarına nasıl erişebileceğiniz hakkında daha fazla bilgi için lütfen ilgili kılavuzumuzu inceleyin.

ordId parametresini kullanma

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

clOrdId parametresini kullanma

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

12. Bir emri nasıl iptal edebilirim?

Emirleri nasıl iptal edebileceğiniz hakkında daha fazla bilgi için lütfen ilgili kılavuzumuzu inceleyin.

Ayrıca ordId yerine clOrdId parametresini de kullanabilirsiniz.

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

13. Bir emri nasıl değiştirebilirim?

Emirleri nasıl değiştirebileceğiniz hakkında daha fazla bilgi için lütfen ilgili kılavuzumuzu inceleyin.

Ayrıca ordId yerine clOrdId parametresini de kullanabilirsiniz.

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

14. Açık emirlerine listesine nasıl erişebilirim?

Açık emirlerin listesine nasıl erişebileceğiniz hakkında daha fazla bilgi için lütfen ilgili kılavuzumuzu inceleyin.

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

15. Emir geçmişine nasıl erişebilirim?

15.1 Son 7 gün için

Son 7 güne ait emir geçmişine nasıl erişebileceğiniz hakkında daha fazla bilgi için lütfen ilgili kılavuzumuzu inceleyin.

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

15.2 Son 3 ay için

Son 3 aya ait emir geçmişine nasıl erişebileceğiniz hakkında daha fazla bilgi için lütfen ilgili kılavuzumuzu inceleyin.

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

16. Jupyter Notebook ile OKX API’yi kullanarak daha ileri düzey işlemleri nasıl yapabilirim?

Daha fazla örnek için Jupyter Notebook’u eksiksiz olarak buradan indirebilirsiniz. API’lerimizle ilgili sorularınızı OKX API desteğine yönelik Telegram kanalında dile getirebilirsiniz.