Jupyter Notebook ile nasıl spot işlem yapabilirim?
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?
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:
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
2. API anahtarları oluşturmak için Hesap > API seçeneklerine gidin
3. Sahip olduğunuz farklı ana/alt hesaplar için API anahtarları oluşturun
4. API anahtarı ile al-sat yapmak için İ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.