B.F.M. UNITY
6.0.0
6.0.0
  • 🏁B.F.M. UNITY & U.R.S. & R.V.C.(On war with ShenNanPeng SEQUOIA HongShan & DaHongFei NEO Antshares)
  • 🩸B.F.M. R.V.C. 执行令
  • 沈南鹏,姚期智,去所里办点事吧
    • 沈南鹏,姚期智,去所里办点事吧
  • 🌟BF​M UNITY : A Brief Fantasy of Multiverse
  • 🫀古灵阁米达斯银行,请对洋人使用炼金术吧
  • B.F.M. R.V.C. | 位面简梦复仇做空风投
    • 中国加密项目名录
  • 中国金融机构名录
  • 红杉资本中国生态
  • 红杉资本全球生态
  • Antbot Antshares NEO 生态
  • 币安投资
  • 做市商名单
  • 华尔街RWA
  • 隐私代币
  • 人工智障
  • NFT
  • 跨链桥
  • 隐私代币
  • launchpad
  • BFM Lite | 位面简梦轻量版
    • 🌱新人必看(🔥)
    • 驾驶舱 (运行) (🔥)
      • 私钥云保管 🔑 ☁️
    • BFM Navigation
    • Main Bridge (Navigator)
  • BFM URS|位面简梦联合体储备系统(区块链加密货币宏观调控与货币政策机构)
    • 《位面简梦联合体(BFM-UNITY)储备系统(简称,位面简梦联储,位面联储,BFM-URS)法》
    • 😇历任行长(嵌套螺旋·符文占星·死灵炼金·原语谕示)
    • 🌟新资料片:寒武纪大过滤器与奥陶纪跃迁引擎启动!Smart Beta Neutral ——奎扎尔·科亚特尔计划
    • 战略资产配置——卓尔金历 🕙
      • 卓尔金升级1——拟合函数
      • 卓尔金升级2——误差分析
      • 卓尔金升级3——智能实验
      • 卓尔金升级4——图灵完备
      • 卓尔金升级5——动态图表
      • 卓尔金升级6——分类网络
      • 卓尔金升级7——引力透镜
      • 卓尔金升级8——货币政策
      • 卓尔金升级9——杠杆控制
      • 卓尔金升级A1——市占幂修
      • 卓尔金升级A2——参数读取
      • 卓尔金升级A3——止损熔断
      • 卓尔金升级A4——最大回撤
      • 卓尔金升级A5——波动率止损
      • 卓尔金升级A6——安全带
      • 卓尔金升级A7——在线图表
      • 卓尔金升级A8——商业化
      • 卓尔金升级A9——下拉菜单
      • 卓尔金升级A10——xlwings与Python连接
      • 卓尔金升级A11——KDE核密度估计
      • 卓尔金升级A12——杠杆风险控制,凯利准则
      • Plotly-制作数据仪表盘
      • 如何获取数字货币数据
      • 卓尔金升级A13——无监督学习优化
      • 卓尔金历法旧版页面
    • 战术资产配置——哈布历⌚️
      • 哈布历法1层次
      • 哈布历法2层次
      • 哈布历法3——仓位单元,量子调仓
      • 已废弃
    • 资产配置 🕙 ⌚️(🔥)
    • 时间校准研究
    • 如何碾碎中美政府国际金融部门
    • 如何碾碎中国人民银行
    • 如何碾碎中国三大政策性银行
    • 如何碾碎中国四大国有银行
    • 如何碾碎美联储
  • BFM Unity | 位面简梦联合体
    • 陈列室 (历程)
      • 虚拟资产编号名录
    • 新人指导
      • 【管理】宪章说明
      • 【选择】学区房 or 比特币
    • 【运营】加入组建
      • 群公告备份
    • 【组织】团队构成
  • BFM DA | 位面简梦数产
    • BFM Unity Reserve System
    • BFM Foundation
      • 比坊梦全球互联网 基金
      • 若尘的基金
    • BFM Trading Strategy♟
    • 影银行 (枢纽)
      • 自营业务
      • 个人业务
      • 企业业务
      • 创世业务
    • 会客厅 (赞助) 💰 & 资产公示
    • 财务
  • 🦣BFM Eco. | 位面简梦区块生态
    • BFM Eco. 🛰️
    • 链上数据分析
    • Cross-Chain Bridge
    • ETH - MainNet
      • Layer-2
        • MATIC - Polygon
        • Arbitrum
        • OP - Optimism
      • SHIB - Shiba Inu
    • BNB - BSC
    • AVAX - Avalanche
    • SOL - Solana
    • 其他公链
      • ADA - Cardano
      • ATOM - Cosmos
        • ☠️LUNA - Terra(已亡)
      • FTM - Fantom
      • Flow
      • Near
      • IPFS/FIL
    • BFM Meta
      • BFM DeFi 🦄️👻
      • BFM NFT🃏🧩
      • BFM Meme 🐶 💩
      • BFM GameFi 🎮👾
  • BFM DS|位面简梦数据支撑
    • Page 5
  • BFM OL|位面简梦障碍解除
    • SS/V2Ray 科学上网 ✈️
    • 华谷套件(Google Play商店)
    • 跨境收付
    • 离岸实体
    • Page 3
  • BFM BM|位面简梦区块基础
    • “在座的各位”总集篇
      • 讲师阵容
      • 介绍在座的各位
      • 问候在座的各位
      • 评价在座的各位
    • 《精通比特币》《精通以太坊》
    • 区块链安全
    • 区块链共识算法
    • 区块链分类与层次
    • 区块链要素理论
    • 区块链评级
    • 私钥与BIP44
    • 钱包
    • 交易所
    • 实体挖矿
    • 质押挖矿
    • 云算力挖矿
    • 桥接性钱包&加密银行卡
    • 礼品卡&场外交易
  • BFM Trad. | 位面简梦传统金融
    • FOReign EXchange
    • Cloud-POS,CNP 💳
    • Stock Investment
      • 选股
    • Fund Investment
      • 金融
      • 地产
      • 白酒
      • 医药
      • 互联网
      • 新能源
    • Gold investment
    • 国债逆回购
    • 可转债打新
    • Offshore Finance 🌍
    • Offshore Entity
    • International Phone Number
    • International Bank Card
    • 桥接性数字钱包
    • 礼品卡与场外交易
    • 草稿
  • BFM R-Ins. | 位面简梦科学研究院
    • 数学研究部
    • 算法科学部
      • 【算法】算法描述
        • 【研究】参考文献
        • BFM 维基百科翻译
        • 陵墓
    • 组织架构部
    • 项目流程部
      • 【软件】行动手册 🚩
      • 【软件】其他代码
      • 【软件】Graph algorithms and currency arbitrage
      • 【创新】未来发展
      • 【创新】DeFi - AMM
    • 项目架构部
      • 【架构】架构设计
        • 【规划】发展路线
        • 【规划】AMM下潜
        • 弯路
    • 量子科学部
      • LV5-研究院 (量子) ☢️
    • 数据智能部
      • Page
      • LV6-星魔方 (分类) 🎲
        • 数据分析-精炼
        • 数据分析-实验
        • 人工智能-实验
  • BFM D-Ins. | 位面简梦工程设计院
    • API接口
      • 币安API实验室🚩
    • 高并发
      • 新版本高并发实验室🚩
      • 旧版本高并发实验室
    • 开源项目部
      • 总览
      • Freqtrade 领域级重点实验室
      • HummingBot领域级重点实验室🚩
      • CCXT 领域级重点实验室🚩
        • CCXT文档
        • CCXT手册
      • AIOQuant 实验室
      • Peregrine 领域级重点实验室🚩
      • btrader实验室
      • js实验室1
      • 实验室2
      • py重点实验室
      • 以太坊部署实验室
    • 衍生产品部
    • 量化交易部
  • BFM Univ. | 位面简梦大学
    • 素白 · 密斯卡托尼克大学 🏫
    • Excel 教室
    • Power BI 教室
    • SPSS 教室
    • Python少儿编程教室 👩‍🏫
      • Python 办公自动化 OA
      • Python 金融 Finance
      • Python Project
    • 开发环境搭建教室 👨‍🏫 🚩
    • 文献与数据
    • 网络安全
    • MIS 系统开发
    • WEB 全栈开发
    • 企业战略分析
    • 基础财商教育
    • C#教室
    • 金融考试
    • 计算机考试
    • 发卡卡密交易平台
  • BFM LIB.|位面简梦图书馆
    • Page 1
    • Page 2
  • BFM Cult. | 位面简梦文化
    • 组织文化宣传
    • 设计
    • 组织文化
      • IT超度指南
      • 动漫
      • 漫画
      • 游戏
      • 01城密咒
      • 心理学
    • 风水玄学儒释道瑜伽占卜塔罗吸引力法则灵性修行
    • 【传媒】引起兴趣
  • 风控与合规
    • LICENCE:GNU GPL v3.0
  • 工具
    • AIGC
    • 文章论文生成器
    • 绘画生成器
    • AI 导航网站
    • 发现网站
    • B站视频下载 🎬 ⏬
  • 链接
    • 看板
    • 投资方法论
    • Github托管地址
    • 旧群文件
  • 位面简梦回收站
    • 三角套利程序众筹(中止)
  • 位面简梦后勤部
    • 餐厅
    • 药店
    • 服饰店
    • 数码店
    • 钱包店
    • 家具店
  • BFM AI|位面简梦智能
    • Page 4
Powered by GitBook
On this page
  • 数字货币量化系统 CCXT 框架实战三角套利
  • 原理
  • 代码实战
  • 运行结果:
  1. BFM D-Ins. | 位面简梦工程设计院
  2. 开源项目部

CCXT 领域级重点实验室🚩

PreviousHummingBot领域级重点实验室🚩NextCCXT文档

| | | ****

|

🚩

🚩

**** 🚩

数字货币量化系统 CCXT 框架实战三角套利

本篇博文将使用CCXT来进行三角套利实战。

原理

针对同一个币种,由于计价币种(市场)不同而带来的价差进行套利。

BTC/USDT

  • 持仓 10000 个USDT

  • 可买入 0.7052 个BTC(10000/14179.95)

BCH/BTC

  • 可买入 4.0824个BCH(0.7052/0.172743)

BCH/USDT

  • 卖出所有BCH,得到 10010.6671 个USDT(4.0824 x 2452.10)

获利

  • (10010.6671 - 10000) / 10000 = 1.06671 ‰

实际套利转化流程: USDT -> BTC -> BCH -> USDT

上边的可以通过简单的套利公式计算出套利收益:

Profit = P3/(P1xP2) - 1 # 公式的推到可以看下边的套利步骤

说明: P1 为 BTC/USDT = 14179.95, P2 为 BCH/BTC = 0.172743, P3 为 BCH/USDT = 2452.10, 通过上边的公式即可算的收益率为:2452.10 / (14179.95 x 0.172743) - 1 = 0.00106671,可以看到和我们上边通过每笔交易算出来的结果一样。

P1 表示 A 的价格,P2 表示 ?的价格,P3 表示 ?/A 的价格

  • 行情获取的时刻:尽量确保获取的行情数据是同一时刻的

  • 交易成本:三个币的手续费,如果扣除手续费后依旧有利润,那木就可以进行套利

  • 目前市场上大部分套利集中关注双边套利或搬砖,竞争相对比较少

  • 相对来说,套利空间更大,利润也更多

  • 同时监控所有三角套利机会比较难

  • 同时成交的难度更高

  • 对交易系统的并发能力要求很高

代码实战

tri_arbitrage.py

import ccxt
import pandas as pd
import time

pd.set_option('expand_frame_repr', False)

def main():
    """
        主函数
    """
    # 初始化交易所
    binance_exchange = ccxt.binance({
        'timeout': 15000,
        'enableRateLimit': True,
        'proxies': {'https': "http://127.0.0.1:1087", 'http': "http://127.0.0.1:1087"}
    })

    # 加载行情
    markets = binance_exchange.load_markets()

    # == Step.1 选择两个交易市场 A, B
    market_a = 'BTC'
    market_b = 'ETH'
    # == Step.1 END =================

    # == Step.2 找到所有同时以 A 和 B 都作为计价的货币
    # 市场内的交易对
    symbols = list(markets.keys())

    # 存放到DataFrame中
    symbols_df = pd.DataFrame(data=symbols, columns=['symbol'])

    # 分割字符串得到 基础货币/计价货币
    base_quote_df = symbols_df['symbol'].str.split(pat='/', expand=True)
    base_quote_df.columns = ['base', 'quote']

    # 过滤得到以 A, B 计价的计价货币
    base_a_list = base_quote_df[base_quote_df['quote'] == market_a]['base'].values.tolist()
    base_b_list = base_quote_df[base_quote_df['quote'] == market_b]['base'].values.tolist()

    # 获取相同的基础货币列表
    common_base_list = list(set(base_a_list).intersection(set(base_b_list)))
    print('{}和{}共有{}个相同的计价货币'.format(market_a, market_b, len(common_base_list)))
    # == Step.2 END =================

    # == Step.3 执行套利步骤

    # 结果保存到DataFrame中,注意,这里的Profit为千分位 ‰(因为利润一般都比较小)
    columns = ['Market A',
               'Market B',
               'Market C',
               'P1',
               'P2',
               'P3',
               'Profit']

    results_df = pd.DataFrame(columns=columns)

    # 获取前一分钟的close价格
    last_min = binance_exchange.milliseconds() - 60 * 1000  # 前一分钟

    for base_coin in common_base_list:
        market_c = base_coin
        market_a2b_symbol = '{}/{}'.format(market_b, market_a)
        market_b2c_symbol = '{}/{}'.format(market_c, market_b)
        market_a2c_symbol = '{}/{}'.format(market_c, market_a)

        # 获取行情前一分钟的K线数据
        market_a2b_kline = binance_exchange.fetch_ohlcv(market_a2b_symbol, since=last_min, limit=1, timeframe='1m')
        market_b2c_kline = binance_exchange.fetch_ohlcv(market_b2c_symbol, since=last_min, limit=1, timeframe='1m')
        market_a2c_kline = binance_exchange.fetch_ohlcv(market_a2c_symbol, since=last_min, limit=1, timeframe='1m')

        if len(market_a2b_kline) == 0 or len(market_b2c_kline) == 0 or market_a2c_kline == 0:
            continue

        try:

            # 获取行情前一分钟的交易对价格
            p1 = market_a2b_kline[0][4]
            p2 = market_b2c_kline[0][4]
            p3 = market_a2c_kline[0][4]
        except IndexError:
            continue

        # 价差
        profit = (p3 / (p1 * p2) - 1) * 1000

        results_df = results_df.append({
            'Market A': market_a,
            'Market B': market_b,
            'Market C': market_c,
            'P1': p1,
            'P2': p2,
            'P3': p3,
            'Profit': profit
        }, ignore_index=True)

        # 显示信息
        print(results_df.tail(1))

        # 防止超过rate limit
        time.sleep(binance_exchange.rateLimit / 1000)
    # == Step.3 END =================

    # 按照收益由高到低排序
    # @see https://www.jianshu.com/p/d12af2b287b6
    results_df = results_df.sort_values(by="Profit", ascending=False)
    # print(new_sort)

    results_df.to_csv('./tri_arbitrage_results.csv', index=None)

if __name__ == '__main__':
    main()

运行结果:

结果:

BTC -> ETH -> AION -> BTC

通过运行的结果我们可以看到,前几个交易对表现非常好,利润率达到了 59.14 ‰,即将近 6%,除去手续费,还是有利可图的。

交易对:用一种资产(quote currency)去定价另一种资产(base currency),比如用比特币(BTC)去定价莱特币(LTC), 就形成了一个LTC/BTC的交易对, 交易对的价格代表的是买入1单位的base currency(比如LTC) 需要支付多少单位的quote currency(比如BTC), 或者卖出一个单位的base currency(比如LTC) 可以获得多少单位的quote currency(比如BTC)。 当LTC对BTC的价格上涨时,同等单位的LTC能够兑换的BTC是增加的,而同等单位的BTC能够兑换的LTC是减少的。

base currency:基准资产 quote currency:定价资产

在外汇交易中,每一次交易买卖是同时在进行着的,在买进基本货币(Base currency)的同时也卖出了报价货币(Quote currency)。

三角套利步骤

注意事项

优势

劣势

相关名词说明

#
#
#
#
#
数字货币量化系统 CCXT 框架实战三角套利
本地链接
课程地址
源码
CCXT中文文档
CCXT英文文档
CCXT公有API课程
CCXT私有API课程
CCXT Example - Github
CCXT文档
CCXT手册
Logocryptohedging/blockhedging.py at master · bilibilihuangyifan/cryptohedgingGitHub
LogoNotebook on nbviewer