Cách thực hiện giao dịch giao ngay bằng Jupyter Notebook?

Phát hành vào 29 thg 9, 2023Cập nhật vào 24 thg 4, 2024Thời gian đọc: 11 phút131

Tìm hiểu cách bạn có thể thực hiện giao dịch Giao ngay đơn giản bằng cách gọi hàm trong thư viện python-okx trên Notebook Jupyter.

1. Cách chạy các đoạn mã Python trên Jupyter Notebook?

CT-web-spottrading-howtoapi-1

Jupyter Notebook là một công cụ cực kỳ mạnh mẽ và dễ sử dụng để phát triển Python và phân tích dữ liệu. Bạn có thể chạy máy chủ Jupyter Notebook trên Windows, Mac OS hoặc Linux. Hướng dẫn này cung cấp chỉ dẫn khá toàn diện về cách thiết lập và chạy Jupyter Notebook.

2. Cách cài đặt gói python-okx?

Khi bạn bắt đầu chạy Notebook Jupyter, bạn có thể cài đặt gói python-okx bằng cách chạy lệnh pip install python-okx trong notebook hoặc trong terminal (hoặc thông qua command prompt cho Windows):

CT-web-spottrading-howtoapi-2

3. Cách tạo mã API?

1. Sau khi đăng nhập OKX, hãy truy cập Giao dịch > Giao dịch demo để tạo khóa API cho mục đích thử nghiệm

CT-web-trade-demo trading

Mở trang giao dịch Demo

2. Đi đến Tài khoản > API để tạo khóa API

CT-web-profile-API

Mở API để tạo khóa API

3. Tạo khóa API cho các tài khoản chính/phụ khác nhau mà bạn có thể có

CT-web-API-create

Chọn Tạo khóa API

4. Chọn Giao dịch bên trong Cấp quyền để giao dịch bằng khóa API

CT-web-API-trade

Chọn Giao dịch trong mục Cấp quyền

5. Bạn hiện có quyền truy cập mã API, Khóa bí mật và passphrase của mình. Hãy cất chúng ở nơi an toàn!

6. Tạo các biến python để lưu chi tiết API của bạn vào notebook để sử dụng sau này

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

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

4. Cách nhập mô-đun OKX?

Trong python-okx, có một số mô-đun dựa trên mô-đun API REST của chúng tôi. Đọc hướng dẫn để tìm hiểu Cách nhập mô-đun OKX.

  • Giao dịch

  • Giao dịch Khối

  • Funding

  • Tài khoản

  • Chuyển đổi

  • Lợi nhuận

  • Tài khoản phụ

  • Dữ liệu thị trường

  • Dữ liệu công khai

  • Dữ liệu giao dịch

  • Trạng thái

  • NDBroker

  • FDBroker

Để nhập mô-đun Giao dịch, bạn có thể chạy:

1 import okx.Trade as Trade

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

Bây giờ bạn đã sẵn sàng sử dụng các tính năng toàn diện có sẵn trong python-okx!

5. Cách truy cập dữ liệu thị trường?

Tìm hiểu thêm về cách truy cập dữ liệu thị trường và tham khảo mã dưới đây.

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. Cách đọc các cặp giao dịch khả dụng?

Tìm hiểu thêm về cách đọc các cặp giao dịch khả dụng và tham khảo mã dưới đây.

```
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. Cách đọc số dư tài khoản của tôi?

Để biết thêm thông tin về cách đọc số dư tài khoản, vui lòng đọc hướng dẫn chuyên sâu.

Lưu ý: Đối với giao dịch giao ngay dưới dạng tdMode "tiền mặt", bạn chủ yếu cần kiểm tra thông số cashBal, frozenBal cho mỗi ccy trong phần chi tiết, và thông số 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. Cách truy cập bốn chế độ tài khoản khác nhau?

Trong hệ thống tài khoản hợp nhất của chúng tôi, có 4 chế độ tài khoản:

  • Tài khoản đơn giản

  • Tài khoản ký quỹ đơn tệ

  • Tài khoản ký quỹ đa tệ

  • Tài khoản ký quỹ danh mục đầu tư

Để hiểu sự khác biệt giữa các chế độ tài khoản khác nhau và cách thiết lập chế độ tài khoản thông qua giao diện người dùng web, vui lòng đọc hướng dẫn chuyên dụng của chúng tôi. Ở chế độ ký quỹ hoặc chế độ giao dịch, thông số tdMode xác định cách tính ký quỹ cho vị thế của bạn. Bạn cần thiết lập tham số này mỗi lần đặt lệnh mới. Đối với giao dịch giao ngay ở chế độ tài khoản ký quỹ Đơn giản hoặc Đơn tệ, vui lòng thiết lập tdMode="cash".Đối với giao dịch giao ngay theo chế độ tài khoản ký quỹ đa tệ hoặc tài khoản ký quỹ danh mục đầu tư, vui lòng thiết lập tdMode = "cross". Dưới đây là phần giải thích nhanh để tìm hiểu tài khoản hiện tại của bạn được thiết lập ở chế độ nào.

9. Cách tìm hiểu chế độ mà tài khoản hiện tại của tôi được thiết lập?

Để hiểu thêm về cách nhận biết tài khoản hiện tại được thiết lập ở chế độ nào, vui lòng đọc hướng dẫn chuyên dụng của chúng tôi và nhập thông số 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. Cách đặt lệnh giao ngay trong chế độ ký quỹ Đơn giản/Đơn tệ?

10.1 Cách đặt lệnh giới hạn?

Để biết thêm thông tin về cách đặt lệnh giới hạn trong chế độ tài khoản ký quỹ Đơn giản hoặc Đơn tệ, vui lòng đọc hướng dẫn chuyên sâu.

Sau đây là ví dụ mua 0,01 BTC với giá 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 Cách đặt lệnh thị trường?

Để biết thêm thông tin về cách đặt lệnh thị trường trong chế độ tài khoản ký quỹ Đơn giản hoặc Đơn tệ, vui lòng đọc hướng dẫn chuyên sâu của chúng tôi.

Đây là ví dụ về việc mua BTC trị giá 100 USD theo giá thị trường hiện tại.

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

10.3 Cách sử dụng thông số tiền tệ mục tiêu tgtCcy khi giao dịch giao ngay?

Trong giao dịch giao ngay, thông số tgtCcy xác định đơn vị của thông số kích thước sz, có thể là đồng cơ sở hoặc đồng định giá của cặp giao dịch. Ví dụ: trong cặp BTC-USDT, đồng cơ sở là BTC còn đồng định giá là USDT.

Theo mặc định, tgtCcy = quote_ccy cho lệnh mua, nghĩa là sz bạn đã chỉ định được tính bằng đồng định giá. Trong khi đó, giá trị mặc định của tgtCcy đối với lệnh bán là base_ccy, có nghĩa là sz bạn đã chỉ định được tính bằng đồng cơ sở.

Trong ví dụ bên dưới, bạn chuẩn bị đặt lệnh thị trường để mua BTC trị giá 100 USD.

```
# market order
result = tradeAPI.place_order(
instId="BTC-USDT",
tdMode="cash",
side="buy",
ordType="market",
sz="100",
tgtCcy="quote_ccy" # điều này xác định đơn vị của thông số sz.
)
print(result)
```

10.4 Cách sử dụng thông số ID lệnh khách clOrdId?

Khi đặt lệnh, bạn có thể xác định ID lệnh khách bằng cách xác định thông số clOrdId, sau này có thể sử dụng thông số đó làm định danh thay cho clOrdId khi gọi hủy lệnh, sửa đổi hoặc truy xuất điểm cuối.

```
# 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. Cách nhận chi tiết về một lệnh nhất định?

Để biết thêm thông tin về cách nhận thông tin chi tiết về một lệnh nhất định, vui lòng đọc hướng dẫn chuyên sâu.

Sử dụng ordId

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

Sử dụng clOrdId

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

12. Cách hủy lệnh?

Để biết thêm thông tin về cách hủy lệnh, vui lòng đọc hướng dẫn chuyên sâu.

Bạn cũng có thể dùng clOrdId thay vì ordId.

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

13. Cách sửa lệnh?

Để biết thêm thông tin về cách sửa đổi lệnh, vui lòng đọc hướng dẫn chuyên sâu.

Bạn cũng có thể dùng clOrdId thay vì ordId.

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

14. Cách truy cập danh sách lệnh chờ khớp?

Để biết thêm thông tin về cách truy cập danh sách lệnh chờ khớp, vui lòng đọc hướng dẫn chuyên dụng của chúng tôi.

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

15. Cách truy cập lịch sử đặt lệnh?

15.1 Trong 7 ngày qua

Để biết thêm thông tin về cách truy cập lịch sử đặt lệnh trong 7 ngày qua, vui lòng đọc hướng dẫn chuyên sâu.

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

15.2 Trong 3 tháng qua

Để biết thêm thông tin về cách truy cập lịch sử đặt lệnh trong 3 tháng qua, vui lòng đọc hướng dẫn chuyên sâu.

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

16. Cách khai thác sâu hơn tiềm năng của API OKX với Jupyter Notebook?

Để tìm hiểu thêm ví dụ, hãy tải xuống Notebook Jupyter đầy đủ tại đây. Với mọi thắc mắc về API của chúng tôi, bạn có thể đặt câu hỏi trong phần Kênh Telegram hỗ trợ API OKX.