iT邦幫忙

2022 iThome 鐵人賽

DAY 12
0
Software Development

Python之虛擬貨幣API實作系列 第 12

Day12 開始實作-建立現貨交易訂單

  • 分享至 

  • xImage
  •  

建立訂單

import os
from binance.client import Client
from binance.enums import *
from binance.exceptions import BinanceAPIException, BinanceOrderException

api_key = os.environ.get('binance_api')
api_secret = os.environ.get('binance_secret')
client = Client(api_key, api_secret)

buy_limit = client.create_test_order(
    symbol='BTCUSDT',
    side='BUY',
    type='LIMIT',
    timeInForce='GTC',
    quantity=0.01,
    price=20000)

這邊我們用create_test_order()的方法來建立測試訂單,我們可以確保語法是對的,而不會真正的建立此訂單。

如果確定好要建立交易訂單的話需要將程式碼改寫成:

buy_order = client.create_order(
    symbol='BTCUSDT',
    side='BUY',
    type='MARKET',
    quantity=0.01)

執行後就可以看到訂單已成交

有一點很重要的是quantity是你要購買幣種的數量,所以必須先自己換算,可以去看DAY 7的查詢價格怎麼使用,這邊我先做簡單的測試,假設使用者要用200 USDT去購買BTC,這樣就可以換算可以購買多少顆BTC。

常見錯誤

嘗試著把quantity的值修改成比較合理的金額。

binance.exceptions.BinanceAPIException: APIError(code=-1013): QTY is over the symbol's maximum QTY.

如果出現下列錯誤請先登入幣安帳戶,到最一開始創建API金鑰的地方進行修改就可以了。

binance.exceptions.BinanceAPIException: APIError(code=-2015): Invalid API-key, IP, or permissions for action.

此範例是用BTCUSDT實作,如果要更改成其他幣種可能會收到API錯誤如下。幣安只允許和當前交易價格相差一定百分比的訂單。

binance.exceptions.BinanceAPIException: APIError(code=-1013): Filter failure: PERCENT_PRICE

請先到幣安的錢包查看要進行交易的幣餘額是否不足。

binance.exceptions.BinanceAPIException: APIError(code=-2010): Account has insufficient balance for requested action.

上一篇
Day11 開始實作-技術指標2
下一篇
Day13 開始實作-建立現貨止盈止損訂單
系列文
Python之虛擬貨幣API實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言