以下是如何使用 API 在世界著名的比特币币安交易所进行自动交易。
API应用
启动 Binance 应用程序并将您的 API 输入到搜索中。
在 Functions 类别中选择 API Management 项。
选择创建 API。
输入适当的键标签并选择下一步按钮。
安装拼图以确保安全。
然后继续进行电话文本验证和电子邮件验证。
完成后,您将获得一个 API Key 和 Secret Key。
我检查了期货交易的启用期货和现货和期货交易之间的存款和取款的允许通用转移。
安装 ccxt 库
接下来,让我们安装 ccxt,一个 Python 库,以轻松使用 Binance API。
我们假设您知道如何使用 Python 并继续。
说明和安装说明可在以下站点找到:
CCXT – CryptoCurrency eXchange 交易库
您可以使用以下命令安装它。
pip install ccxt
准备使用币安 API
首先,导入 ccxt 库。
import ccxt
这是使用之前请求的 API Key 值创建 Binance 实例的代码。期权部分的默认类型为现货,输入future即可进行期货交易。
binance_access_key = "xxxxxxxxx"
binance_secret_key = "yyyyyyyyy"
binance = ccxt.binance(config={
'apiKey': binance_access_key,
'secret': binance_secret_key,
'enableRateLimit': True,
'options': {
'defaultType': 'future'
}
})
当前价格查询
您可以简单地搜索如下。
binance.fetch_ticker('BTC/USDT')
余额查询
首先,让我们看一下检索期货交易的 USDT 余额的代码。在参数类型中输入future。进入现货查看现货交易余额。
balance = binance.fetch_balance(params={"type": "future"})
print(balance['USDT']['free'])
让我们也编写一些代码来获取现货交易中持有的硬币数量。
balance_info = binance.fetch_balance(params={"type": "spot"})
for balance in balance_info['info']['balances']:
if market['id'].find(balance['asset']) > -1:
print(abs(float(balance['free'])))
以下代码获取在期货交易中进入空头头寸的硬币的交易量。请注意与现货交易代码的区别。
balance_info = binance.fetch_balance(params={"type": "future"})
for position in balance_info['info']['positions']:
if position['symbol'] == market['id']:
print(abs(float(position['positionAmt'])))
进入和清算期货交易
以下是进入空头头寸的代码。市场交易和限价交易都是可能的。
symbol='BTC/USDT'
# market sell order
sell_order = binance.create_market_sell_order(symbol=symbol, amount=0.1)
# limit sell order
btc = binance.fetch_ticker(symbol)
sell_order = binance.create_limit_sell_order(symbol=symbol, amount=0.1, price=btc['last'])
这是空头头寸清理代码。同样,可以进行市价交易和限价交易。
symbol='BTC/USDT'
# market buy order
buy_order = binance.create_market_buy_order(symbol=symbol, amount=0.1)
# limit buy order
btc = binance.fetch_ticker(symbol)
buy_order = binance.create_limit_buy_order(symbol=symbol, amount=0.1, price=btc['last'])
建立和关闭多头头寸可以以相反的方式进行,现货交易也可以使用相同的方法进行。
现货和期货之间的电汇
要将现金从现货账户转移到期货账户,您只需查询现金账户余额并将价值直接转移到您的期货账户。从币安交易所内的账户转账不收取任何费用。
balance_spot = binance.fetch_balance(params={"type": "spot"})
balance_spot_free = balance_spot['USDT']['free']
if balance_spot_free > 0:
transfer = binance.transfer('USDT', balance_spot_free, 'spot', 'future')
反之亦然。
balance_future = binance.fetch_balance(params={"type": "future"})
balance_future_free = balance_future ['USDT']['free']
if balance_future_free > 0:
transfer = binance.transfer('USDT', balance_future_free, 'future', 'spot')
杠杆设置
对于期货交易,您可以设置杠杆。这是代码:只需更改杠杆部分中的数字即可。
markets = binance.load_markets()
market = binance.market('BTC/USDT')
resp = binance.fapiPrivate_post_leverage({
'symbol': market['id'],
'leverage': 2
})
查看交易数据
您可以通过编写以下代码查询1000 BTC每日交易数据:
candles = binance.fetch_ohlcv(
symbol='BTC/USDT',
timeframe='1d',
since=None,
limit=1000)