كيف يمكنني إجراء صفقات التداول الفوري باستخدام Jupyter Notebook؟

تم النشر في ‏29 سبتمبر 2023تم التحديث في ‏24 أبريل 20244 دقيقة قراءة‏‎135‏

تعرف على كيفية إجراء صفقات التداول الفوري البسيط عن طريق استدعاء الوظائف الموجودة في مكتبة python-okx على Jupyter Notebook.

1. كيف يمكنني تشغيل مقتطفات كود Python على Jupyter Notebook؟

CT-web-spottrading-howtoapi-1

تُعد Jupyter Notebook أداة قوية وسهلة الاستخدام للغاية لتطوير لغة Python وتحليل البيانات. ويمكنك تشغيل خادم Jupyter Notebook على أنظمة التشغيل Windows أو Mac OS أو Linux. ويوفر هذا الدليل التوجيهي دليلاً شاملاً حول كيفية إعداد Jupyter Notebook وتشغيله.

2. كيف يمكنني تثبيت حزمة python-okx؟

بمجرد البدء في تشغيل Jupyter Notebook، يمكنك تثبيت حزمة python-okx ببساطة عن طريق تشغيل pip install python-okx في دفتر الملاحظات أو في الوحدة الطرفية (أو عبر موجه الأوامر لنظام التشغيل Windows):

CT-web-spottrading-howtoapi-2

3. كيف يمكنني إنشاء مفاتيح API؟

1. بعد تسجيل الدخول إلى OKX، انتقل إلى التداول> التداول التجريبي لإنشاء مفاتيح API لأغراض التجربة.

CT-web-trade-demo trading

صفحة التداول التجريبي

2. اذهب إلى الحساب -> API لإنشاء مفاتيح API.

CT-web-profile-API

افتح API لإنشاء مفاتيح API

3. أنشئ مفاتيح API للحسابات الرئيسية/الفرعية المختلفة التي قد تكون لديك.

CT-web-API-create

قم بإنشاء مفتاح API

4. حدد التداول في الأذونات للتداول باستخدام مفتاح API.

CT-web-API-trade

حدد "التداول" في "الأذونات"

5. يمكنك الآن الوصول إلى مفتاح API والمفتاح السري وعبارة المرور الخاصة بك. احتفظ بها في مكان آمن!

6. قم بإنشاء مثيل لمتغيرات python لحفظ تفاصيل API الخاصة بك في دفتر الملاحظات لاستخدامها لاحقًا.

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

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

```
4. كيف يمكنني استيراد وحدات OKX؟

في python-okx، هناك عدة وحدات تعتمد على وحدات REST API الخاصة بنا. اقرأ دليلنا التوجيهي لمعرفة كيفية استيراد وحدات OKX.

  • تداول

  • تداول الطلبات الضخمة

  • التمويل

  • الحساب

  • تحويل

  • اربح

  • الحساب الفرعي

  • بيانات السوق

  • البيانات العامة

  • بيانات التداول

  • الحالة

  • وسيط NDBroker

  • وسيط FDBroker

لاستيراد وحدة التداول، يمكنك تشغيل أمر:
1 import okx.Trade as Trade

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

أنت الآن جاهز لاستخدام الميزات الشاملة المتوفرة في python-okx!

5. كيف يمكنني الوصول إلى بيانات السوق لدينا؟

اعرف المزيد عن كيفية الوصول إلى بيانات السوق الخاصة بنا والرجوع إلى الكود أدناه.

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. كيف يمكنني قراءة أزواج التداول المتاحة؟

اعرف المزيد حول كيفية قراءة أزواج التداول المتاحة لدينا والرجوع إلى الكود أدناه.

```
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. كيف يمكنني قراءة رصيد حسابي؟

لمزيد من المعلومات حول كيفية قراءة رصيد حسابك، يُرجى قراءة دليلنا المخصص.

ملحوظة: بالنسبة للتداول الفوري ضمن "cash" tdMode، فإنك تحتاج بشكل أساسي إلى التحقق من معلمات cashBal ومعلمات frozenBal لكل ccy ضمن details ومعلمة 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. كيف يمكنني الوصول إلى الأربعة أوضاع المختلفة لحساب التداول؟

في نظام حساب التداول الموحَّد لدينا، هناك أربعة أوضاع لحساب التداول:

  • الحساب البسيط

  • حساب التداول بالهامش من عملة واحدة

  • حساب التداول بالهامش متعدد العملات

  • حساب التداول بهامش المحفظة

ولفهم الفرق بين أوضاع حساب التداول المختلفة وكيفية إعداد وضع الحساب عبر واجهة مستخدم الويب، يُرجى قراءة دليلنا المخصص. في وضع الهامش أو وضع التداول، تحدد المعلمة tdMode كيف سيتم إضافة هامش إلى مركزك، والذي تحتاج إلى تعيينه في كل مرة تقوم فيها بوضع طلب جديد. وبالنسبة للتداول الفوري في وضع حساب الهامش البسيط أو التداول بهامش من عملة واحدة، يُرجى تعيين tdMode='cash'.وبالنسبة للتداول الفوري في وضع التداول بهامش متعدد العملات أو وضع حساب هامش المحفظة، يُرجى تعيين tdMode = 'cross'.ستجد أدناه شرحًا سريعًا لكيفية معرفة الوضع الذي تم تكوين حسابك الحالي عليه.

9. كيف يمكنني معرفة الوضع الذي تم تكوين حسابي الحالي عليه؟

لمزيد من المعلومات حول كيفية معرفة الوضع الذي تم تكوين حسابك الحالي عليه، يُرجى قراءة دليلنا المخصص وإدخال المعلمة 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. كيف يمكنني وضع طلبات تداول فوري في وضع التداول بالهامش البسيط / الهامش من عملة واحدة؟

10.1 كيف يمكنني وضع طلب محدد السعر؟

لمزيد من المعلومات حول كيفية وضع طلب محدد السعر في وضع حساب الهامش البسيط أو التداول بهامش من عملة واحدة، يُرجى قراءة دليلنا المخصص.

فيما يلي مثال على شراء 0.01 BTC بسعر 19000 USDT.

```
# 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 كيف يمكنني وضع طلب بسعر السوق؟

لمزيد من المعلومات حول كيفية وضع طلب بسعر السوق في وضع حساب الهامش البسيط أو التداول بهامش من عملة واحدة، يُرجى قراءة دليلنا المخصص.

وفيما يلي مثال على شراء BTC بمبلغ 100 USD بسعر السوق الحالي.

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

10.3 كيف يمكنني استخدام معلمة العملة المستهدفة tgtCcy أثناء التداول الفوري؟

في التداول الفوري، تحدد المعلمة tgtCcy وحدة معلمة الحجم sz، والتي يمكن أن تكون إما العملة الأساسية أو عملة التسعير لزوج التداول. على سبيل المثال، في الزوج BTC-USDT، تكون العملة الأساسية هي BTC وعملة التسعير هي USDT.

وبشكل افتراضي، tgtCcy = quote_ccy تكون لطلبات الشراء، مما يعني أن sz الذي حددته هو من حيث عملة التسعير. وفي الوقت نفسه، القيمة الافتراضية لـ tgtCcy لطلبات البيع هي base_ccy، مما يعني أن sz الذي حددته هو من حيث العملة الأساسية.

في المثال أدناه، أنت على وشك تقديم طلب بسعر السوق لشراء BTC بقيمة 100 USD.

```
# market order
result = tradeAPI.place_order(
instId="BTC-USDT",
tdMode="cash",
side="buy",
ordType="market",
sz="100",
tgtCcy="quote_ccy" # this determines the unit of the sz parameter.
)
print(result) ```

10.4 كيف يمكنني استخدام معلمة معرف طلب العميل clOrdId؟

عند تقديم طلب، يمكنك تحديد مُعرِّف طلب العميل الخاص بك عن طريق تحديد المعلمة clOrdId، والتي يمكن استخدامها لاحقًا كمعرف بدلاً من ordId عند استدعاء نقطة نهاية إلغاء الطلب أو التعديل أو الاسترجاع.

```
# market order
result = tradeAPI.place_order(
instId="BTC-USDT",
tdMode="cash",
side="buy",
ordType="market",
sz="100",
clOrdId="003" # you can define your own client defined order ID
)
print(result) ```

11. كيف يمكنني الحصول على تفاصيل طلب معين؟

لمزيد من المعلومات حول كيفية الحصول على تفاصيل حول طلب معين، يُرجى قراءة دليلنا المخصص.

باستخدام معلمة ordId

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

باستخدام معلمة clOrdId

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

12. كيف يمكنني إلغاء طلب؟

لمزيد من المعلومات حول كيفية إلغاء طلب، يُرجى قراءة دليلنا المخصص.

يمكنك أيضًا استخدام معلمة clOrdId بدلاً من ordId.

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

13. كيف يمكنني تعديل طلب؟

لمزيد من المعلومات حول كيفية تعديل طلب، يُرجى قراءة دليلنا المخصص.

يمكنك أيضًا استخدام معلمة clOrdId بدلاً من ordId.

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

14. كيف يمكنني الوصول إلى قائمة الطلبات المفتوحة؟

لمزيد من المعلومات حول كيفية الوصول إلى الطلبات المفتوحة، يُرجى قراءة دليلنا المخصص.

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

15. كيف يمكنني الوصول إلى سجل الطلبات؟

15.1 بالنسبة لطلبات آخر 7 أيام

لمزيد من المعلومات حول كيفية الوصول إلى سجل الطلبات لآخر 7 أيام، يُرجى قراءة دليلنا المخصص.

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

15.2 بالنسبة لطلبات آخر 3 أشهر

لمزيد من المعلومات حول كيفية الوصول إلى سجل الطلبات لآخر 3 أشهر، يُرجى قراءة دليلنا المخصص.

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

16. كيف يمكنني المضي قدمًا في استخدام OKX API باستخدام Jupyter Notebook؟

لمزيد من الأمثلة، قم بتنزيل Jupyter Notebook الكامل هنا.وإذا كانت لديك أي أسئلة حول API الخاصة بنا، يمكنك طرحها على قناة Telegram لأسئلة الدعم الخاصة بـ OKX API.