python binance币安利用ccxt完成虚拟货币自动化交易

本文我们将探讨如何使用ccxt套件来实现自动化虚拟货币交易。ccxt是一个用于加密交易的Python套件,支持数百家加密交易所。在本文中,我们将使用ccxt套件来实现自动化交易,并使用Binance(币安)作为示范交易所。

Step 1: 安装ccxt套件

安装ccxt至python3
ccxt github 网址:
https://pypi.org/project/ccxt/
涵盖交易所部分

在开始之前,首先需要安装ccxt套件。你可以使用以下命令来安装:

pip3 install ccxt

Step 2: 连接Binance API

在开始交易之前,需要使用Binance API连接到Binance交易所。要连接到Binance API,需要在Binance注册一个帐户,然后生成API密钥。在生成API密钥后,可以使用以下代码连接到Binance API:

连接方法1

import ccxt

balance = ccxt.binance({
    'apiKey': 'YOUR_API_KEY',
    'secret': 'YOUR_SECRET_KEY',
})

连接方法2

import ccxt

balance = ccxt.binance()
balance.apiKey = 'apiKey'
balance.secret = 'secret私钥'

Step 3: 查询市场数据

在开始交易之前,需要查询市场数据,以了解目前市场的状况和价格。可以使用以下代码查询市场数据:

markets = exchange.load_markets()

for market in markets:
    print(market)

这个代码会输出所有可用的市场。你可以使用市场的符号(symbol)来指定要交易的货币对。
这是简单回传范例

{
    "id": "btcusd",
    "symbol": "BTC/USD",
    "base": "BTC",
    "quote": "USD",
    "info": {
        "pair": "BTCUSD",
        "price_precision": 1,
        "initial_margin": "20.0",
        "minimum_margin": "5.0",
        "maximum_order_size": "1000.0",
        "minimum_order_size": "0.01",
        "expiration": "NA",
        "margin": true
    },
    "limits": {
        "amount": {
            "min": 0.01,
            "max": 1000.0
        },
        "price": {
            "min": 0.01,
            "max": 1000000.0
        },
        "cost": {
            "min": 0.01,
            "max": 1000000.0
        }
    }
}

Step 4: 账户资产查询

当你使用ccxt 来进行虚拟货币交易时,一个非常重要的步骤就是确认你在交易所的帐户中拥有多少资金和资产。这可以通过调用fetch_balance() 方法来完成。

fetch_balance() 方法会返回一个字典对象,其中包含了你在交易所中的所有资产和资金。这些资源可以通过字典中的键值对来访问。

以下是一个示例代码,展示如何使用fetch_balance() 方法来获取您的资产和资金:

# =====获取账户资产
balance = binance.fetch_balance()
print(balance)  # 获得所有钱包信息
print(balance['info'])  # 交易所原始返回内容
print(balance['free'])  # 可以使用的资产数量
print(balance['used'])  # 已经使用的资产数量,例如正在挂单交易的资产。
print(balance['total'])  # 总资产数量
print(balance['EOS'])  # EOS这个资产的数量
print(balance['USDT']['total'])  # USDT这个资产的数量

打印USDT资产

print(balance['USDT'])  # USDT这个资产的数量
  • free:可用货币数量
  • used:冻结货币数量
  • total:总共货币数量
{'free': 399.39224294, 'used': 0.0, 'total': 399.39224294}

全部列出来

balance = exchange.fetch_balance()

# 获取所有资产和资金的列表
for key, value in balance['total'].items():
    print(key, ':', value)

# 获取可用的资产和资金的列表
for key, value in balance['free'].items():
    print(key, ':', value)

在这个示例中,fetch_balance() 方法返回一个字典对象balance,它包含了你在交易所中的所有资源。 balance 字典中的total 键对应一个子字典,其中包含了你所有资源的总数量。类似的,balance 字典中的free 键对应的子字典,包含了你可用的资源数量。

在上面的示例中,我们将资源和资金列表进行迭代,并使用print() 方法将它们输出到控制台上。你可以根据自己的需求,进行额外的处理和使用这些资源。

Step 6: 自动化交易

以下是一个简单的自动化交易策略的代码,LEND/USDT市场上进行简单的交易:

    symbol = 'LEND/USDT'
    pirce = 0.03 # 挂单价格
    amount = 20 # 卖20颗
    amount = balance['LEND']['total'] # 卖出所有LEND

    # 市价单,市价单不需要输入价格
    order_info = binance.create_market_buy_order(symbol=symbol, amount=amount)  # 买单
    order_info = binance.create_market_sell_order(symbol=symbol, amount=amount)  # 卖单

以下是一个简单的自动化交易策略的代码,用于在BTC/USDT市场上进行简单的交易:

import time

while True:
    ticker = exchange.fetch_ticker('BTC/USDT')
    balance = exchange.fetch_balance()

    # 如果BTC的价格小于41000 USDT并且账户中有足够的USDT
    if ticker['last'] < 41000 and balance['USDT']['free'] > 100:
        order = exchange.create_order(symbol='BTC/USDT', type='limit', side='buy', amount=0.001, price=40000)
        print(order)

    # 如果BTC的价格大于45000 USDT并且账户中有足够的BTC
    elif ticker['last'] > 45000 and balance['BTC']['free'] > 0.001:
        order = exchange.create_order(symbol='BTC/USDT', type='limit', side='sell', amount=0.001, price=46000)
        print(order)

    time.sleep(60)

完整范例

以下是一个使用ccxt Python 库进行虚拟货币交易的完整范例,这个范例可以实现以下三个步骤:

查询可交易的币种。
查询你在交易所中的资源和资金。
下单购买BTC。

import ccxt

# 初始化交易所对象
exchange = ccxt.binance({
    'apiKey': 'YOUR_API_KEY',
    'secret': 'YOUR_SECRET_KEY',
    'enableRateLimit': True,
})

# 查询可交易币种
markets = exchange.load_markets()
print('可交易币种:')
for market in markets:
    print(market)

# 查询你在交易所中的资源和资金
balance = exchange.fetch_balance()
print('你的资源和资金:')
for key, value in balance['total'].items():
    print(key, ':', value)

# 下单购买 BTC
symbol = 'BTC/USDT'  # 交易对
amount = 0.001  # 购买数量
price = exchange.fetch_ticker(symbol)['ask']  # 购买价格
order = exchange.create_order(symbol, 'limit', 'buy', amount, price)
print('下单成功:', order)

本文链接地址:https://www.wwsww.cn/btbjiaoxue/25050.html
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。