Thenextquant

Thenextquant

  • Docs
  • Tutorial
  • Help
  • Blog

›教程

开始

  • 概述
  • 安装

教程

  • 快速入门
  • 服务配置
  • 日志
  • 市场数据
  • 交易

主要概念

  • 交易所
  • 交易对
  • 现货交易
  • 期货交易
  • 订单

高级指南

  • 定时任务
  • RABBITMQ

API参考

  • 参考指南

操作指南

  • 操作指南

市场数据

通过行情模块(market),可以订阅任意交易所的任意交易对的实时行情,包括订单薄(Orderbook)、K线(KLine)、成交(Trade),根据不同交易所提供的行情信息,实时将行情信息推送给策略;

在订阅行情之前,需要先部署 行情服务器,行情服务器将通过 REST API 或 Websocket 的方式从交易所获取实时行情信息,并将行情信息按照统一的数据格式打包,通过事件的形式发布至事件中心;

1. 行情模块使用

此处以订单薄使用为例,订阅Binance的 ETH/BTC 交易对订单薄数据

# 导入模块
from quant import const
from quant.utils import logger
from quant.market import Market, Orderbook


# 订阅订单薄行情,注意此处注册的回调函数是`async` 异步函数,回调参数为 `orderbook` 对象,数据结构查看下边的介绍。
async def on_event_orderbook_update(orderbook: Orderbook):
    logger.info("orderbook:", orderbook)
    logger.info("platform:", orderbook.platform)  # 打印行情平台
    logger.info("symbol:", orderbook.symbol)  # 打印行情交易对
    logger.info("asks:", orderbook.asks)  # 打印卖盘数据
    logger.info("bids:", orderbook.bids)  # 打印买盘数据 
    logger.info("timestamp:", orderbook.timestamp)  # 打印行情更新时间戳(毫秒)
    

Market(const.MARKET_TYPE_ORDERBOOK, const.BINANCE, "ETH/BTC", on_event_orderbook_update)

使用同样的方式,可以订阅任意的行情

from quant import const

const.MARKET_TYPE_ORDERBOOK  # 订单薄(Orderbook)
const.MARKET_TYPE_KLINE  # K线(KLine)
const.MARKET_TYPE_TRADE  # 成交(KLine)

2. 行情数据结构

所有交易平台的行情,全部使用统一的数据结构;

2.1 订单薄(Orderbook)

  • 订单薄模块
from quant.market import Orderbook

Orderbook.platform  # 订单薄平台
Orderbook.symbol  # 订单薄交易对
Orderbook.asks  # 订单薄买盘数据
Orderbook.bids  # 订单薄买盘数据
Orderbook.timestamp  # 订单薄更新时间戳(毫秒)
Orderbook.data  # 订单薄数据
  • 订单薄数据结构
{
    "platform": "binance",
    "symbol": "ETH/USDT",
    "asks": [
        ["8680.70000000", "0.00200000"]
    ],
    "bids": [
        ["8680.60000000", "2.82696138"]
    ],
    "timestamp": 1558949307370
}
  • 字段说明
    • platform string 交易平台
    • symbol string 交易对
    • asks list 卖盘 [[price, quantity], ...]
    • bids list 买盘 [[price, quantity], ...]
    • timestamp int 时间戳(毫秒)

2.2 K线(KLine)

  • K线模块
from quant.market import Kline

Kline.platform  # 交易平台
Kline.symbol  # 交易对
Kline.open  # 开盘价
Kline.high  # 最高价
Kline.low  # 最低价
Kline.close  # 收盘价
Kline.volume  # 成交量
Kline.timestamp  # 时间戳(毫秒)
Kline.data  # K线数据
  • K线数据结构
{
    "platform": "okex",
    "symbol": "BTC/USDT",
    "open": "8665.50000000",
    "high": "8668.40000000",
    "low": "8660.00000000",
    "close": "8660.00000000",
    "volume": "73.14728136",
    "timestamp": 1558946340000
}
  • 字段说明
    • platform string 交易平台
    • symbol string 交易对
    • open string 开盘价
    • high string 最高价
    • low string 最低价
    • close string 收盘价
    • volume string 成交量
    • timestamp int 时间戳(毫秒)

2.3 成交(Trade)

  • 成交模块
from quant.market import Trade

Trade.platform  # 交易平台
Trade.symbol  # 交易对
Trade.action  # 操作类型 BUY 买入 / SELL 卖出
Trade.price  # 价格
Trade.quantity  # 数量
Trade.timestamp  # 时间戳(毫秒)
  • 成交数据结构
{
    "platform": "okex", 
    "symbol": "BTC/USDT", 
    "action": "SELL", 
    "price": "8686.40000000", 
    "quantity": "0.00200000", 
    "timestamp": 1558949571111,
}
  • 字段说明
    • platform string 交易平台
    • symbol string 交易对
    • action string 操作类型 BUY 买入 / SELL 卖出
    • price string 价格
    • quantity string 数量
    • timestamp int 时间戳(毫秒)
← 日志交易 →
  • 1. 行情模块使用
  • 2. 行情数据结构
    • 2.1 订单薄(Orderbook)
    • 2.2 K线(KLine)
    • 2.3 成交(Trade)
Thenextquant
文档
Getting StartedGuidesAPI Reference
介绍
框架介绍关于我们
More
BlogGitHubStar
Thenextquant Open Source
Copyright © 2019 Thenextquant