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 18 thg 8, 2024Thời gian đọc: 12 phút278

Tìm hiểu cách thực hiện giao dịch Giao ngay đơn giản nhờ gọi các chức năng trong thư viện python-okx trên Jupyter Notebook.

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

CT-web-spottrading-howtoapi-1

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

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

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

CT-web-spottrading-howtoapi-2

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

  1. Sau khi đăng nhập OKX, truy cập vào Giao dịch> Giao dịch mô phỏng để tạo mã API phục vụ cho mục đích thử nghiệm

    CT-web-trade-demo trading

    Mở trang Giao dịch mô phỏng

  2. Truy cập vào Tài khoản > APIđể tạo mã API

    CT-web-profile-API

    Mở API để tạo mã API

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

    CT-web-API-create

    Chọn Tạo mã API

  4. Chọn Giao dịch trong Quyền để giao dịch bằng mã API

    CT-web-API-trade

    Chọn Giao dịch trong mục Quyền

  5. Hiện bạ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. Biến số python tức thì giúp lưu thông tin chi tiết API của bạn trong notebook để sử dụng sau

    Python
    1 api_key = "xxxxx"
    2 secret_key = "xxxxx"
    3 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 Block

  • Funding

  • Tài khoản

  • Chuyển đổi

  • Earning

  • 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

  • NDBrover

  • FDBroker

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

Python
1 import okx.Trade as Trade

Hiện 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.

Python
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)

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.

Python
1   import okx.PublicData as PublicData
2
3   flag = "1"  # live trading: 0, demo trading: 1
4
5   PublicDataAPI = PublicData.PublicAPI(flag=flag)
6
7    result = PublicDataAPI.get_instruments(
8        instType="SPOT"
9    )
10  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 ý: Với giao dịch giao ngay trong "cash" tdMode, chủ yếu bạn cần kiểm tra thông số cashBal, frozenBal cho từng ccy trong chi tiết và thông số totalEq.

Python
1   import okx.Account as Account
2   flag = "1"  # live trading: 0, demo trading: 1
3
4   accountAPI = Account.AccountAPI(api_key, secret_key, passphrase, False, flag)
5
6   result = accountAPI.get_account_balance()
7   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:

  • Chế độ giao ngay

  • Chế độ giao ngay và hợp đồng tương lai

  • Chế độ ký quỹ đa tệ

  • Chế độ ký quỹ danh mục đầu tư

Để hiểu rõ 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 qua giao diện người dùng web, vui lòng đọc hướng dẫn chuyên sâu của chúng tôi.

Trong chế độ ký quỹ hoặc chế độ giao dịch, thông số tdMode xác định vị thế của bạn sẽ được ký quỹ như thế nào. Bạn cần đặt mức ký quỹ này mỗi khi đặt lệnh mới.

Đối với giao dịch giao ngay trong chế độ giao ngay hoặc giao ngay và futures, vui lòng đặt tdMode='cash'.

Đối với giao dịch giao ngay trong chế độ ký quỹ đa tệ hoặc ký quỹ danh mục đầu tư, vui lòng đặt tdMode= 'cross'.

Dưới đây là phần giải thích nhanh về cách tìm hiểu tài khoản hiện tại của bạn được cấu hình ở 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 cấu hình?

Để biết thêm thông tin về cách tìm hiểu tài khoản hiện tại của bạn được cấu hình ở chế độ nào, vui lòng đọc hướng dẫn chuyên sâu và nhập thông số acctLv.

Python
1 import okx.Account as Account
2
3 flag = "1"  # live trading: 0, demo trading: 1
4 
5 accountAPI = Account.AccountAPI(api_key, secret_key, passphrase, False, flag)
6 result = accountAPI.get_account_config()
7 print(result)
8 
9 if result['code'] == "0":
10     acctLv = result["data"][0]["acctLv"]
11     if acctLv == "1":
12         print("Simple mode")
13     elif acctLv == "2":
14        print("Single-currency margin mode")
15     elif acctLv == "3":
16        print("Multi-currency margin mode")
17     elif acctLv == "4":
18        print("Portfolio margin mode")

10. Cách đặt lệnh giao ngay trong chế độ Giao ngay/Giao ngay và futures?

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ế độ giao ngay hoặc giao ngay và futures, 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.

Python
1 # limit order
2 result = tradeAPI.place_order(
3     instId="BTC-USDT",
4     tdMode="cash",
5     side="buy",
6     ordType="limit",
7     px="19000",
8     sz="0.01"
9 )
10 print(result)
11 
12 if result["code"] == "0":
13     print("Successful order request,order_id = ",result["data"][0]["ordId"])
14 else:
15     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ế độ giao ngay hoặc giao ngay và futures, vui lòng đọc hướng dẫn chuyên sâu.

Sau đây là ví dụ mua 100 USD BTC ở giá thị trường hiện tại.

Python
1 #  market order
2 result = tradeAPI.place_order(
3     instId="BTC-USDT",
4     tdMode="cash",
5     side="buy",
6     ordType="market",
7     sz="100",
8 )
9 print(result)

10.3 Cách sử dụng thông số đồng tiền mục tiêu tgtCcy trong 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 là theo đồng định giá. Trong khi đó, giá trị mặc định của tgtCcy cho lệnh bán là base_ccy, nghĩa là sz bạn đã chỉ định là theo đồng cơ sở.

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

Python
1 #  market order
2 result = tradeAPI.place_order(
3     instId="BTC-USDT",
4     tdMode="cash",
5     side="buy",
6     ordType="market",
7     sz="100",
8     tgtCcy="quote_ccy" # this determines the unit of the sz parameter.
9 )
10 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ể chỉ định ID lệnh khách bằng cách chỉ định thông số clOrdId, sau này có thể sử dụng thông số đó làm định danh thay cho ordId khi gọi hủy lệnh, sửa đổi hoặc truy xuất endpoint.

Python
1 #  market order
2 result = tradeAPI.place_order(
3     instId="BTC-USDT",
4     tdMode="cash",
5     side="buy",
6     ordType="market",
7     sz="100",
8     clOrdId="003" # you can define your own client defined order ID
9 )
10 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.

11.1 Sử dụng ordId

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

11.2 Sử dụng clOrdId

Python
1 result = tradeAPI.get_order(instId="BTC-USDT", clOrdId="002")
2 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ể sử dụng clOrdId thay vì ordId.

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

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

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

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

Python
1 result = tradeAPI.amend_order(
2     instId="BTC-USDT",
3     ordId="489103565508685824",
4     newSz="0.012"
5 )
6 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 sâu.

Python
1 result = tradeAPI.get_order_list()
2 print(result)

15. Cách truy cập lịch sử 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ử lệnh trong 7 ngày qua, vui lòng đọc hướng dẫn chuyên sâu.

Python
1 result = tradeAPI.get_orders_history(
2     instType="SPOT"
3 )
4 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ử lệnh trong 3 tháng qua, vui lòng đọc hướng dẫn chuyên sâu.

Python
1 result = tradeAPI.get_orders_history_archive(
2     instType="SPOT"
3 )
4 print(result)

16. Cách đi xa hơn với API OKX nhờ Jupyter Notebook?

Để biết thêm ví dụ, hãy tải Jupyter Notebook đầy đủ tại đây.

Nếu có bất kỳ câu hỏi nào về API, bạn có thể tham gia cộng đồng API của chúng tôi và nêu lên trong cộng đồng.