投资理财
🗒️量化常用的基础数据
00 分钟
2024-11-16
2024-11-17
type
status
date
slug
summary
tags
category
icon
password
市场(公共)数据:
公共数据是指市场中所有交易者都可以访问的数据,这些数据反映了交易所的市场状态。
1. K线数据(Candlestick Data / Bar Data)
  • 定义:K线数据表示某个时间周期内市场的价格波动信息,包括开盘价、最高价、最低价、收盘价以及成交量。
  • 内容
    • Open: 周期内的开盘价。
    • High: 周期内的最高价。
    • Low: 周期内的最低价。
    • Close: 周期内的收盘价。
    • Volume: 周期内的成交量。
  • 用途
    • 技术分析:趋势判断、形态分析、指标计算。
    • 回测策略:使用历史 K 线数据评估策略表现。
  • 获取方式
    • 交易所直接提供。
    • 或者通过历史成交数据(Trades 数据)自行计算。
  • 币安 API 接口
    • URL: https://api.binance.com/api/v3/klines
    • 参数
      • symbol: 交易对,例如 BTCUSDT
      • interval: K 线时间间隔,例如 1m1h
      • limit: 返回的最大记录数,默认 500,最大 1000
Python 使用 CCXT

2. Ticker 数据
  • 定义:Ticker 数据是市场当前状态的实时摘要,通常包含市场的核心指标。
  • 内容
    • 最新成交价(Last Price)。
    • 买一价(Bid Price)和买一量(Bid Volume)。
    • 卖一价(Ask Price)和卖一量(Ask Volume)。
    • 24小时最高价、最低价(24h High/Low)。
    • 24小时成交量和成交额(24h Volume/Turnover)。
  • 用途
    • 市场监控:快速查看当前市场状态。
    • 策略输入:趋势跟踪、量化交易模型的基础数据。
  • 获取方式:通过交易所的 API 获取实时更新。
  • 币安 API 接口
    • URL: https://api.binance.com/api/v3/ticker/24hr
    • 参数
      • symbol: 交易对,例如 BTCUSDT
  • Python 使用 CCXT

    3. Order Book 数据(深度数据)
    • 定义:订单簿数据记录了市场当前所有未成交的挂单(买卖双方的需求深度)。
    • 内容
      • 买盘(Bid)
        • 买方愿意购买的价格和挂单量。
        • 通常按价格从高到低排序。
      • 卖盘(Ask)
        • 卖方愿意出售的价格和挂单量。
        • 通常按价格从低到高排序。
    • 用途
      • 流动性分析:评估市场深度和交易滑点。
      • 短期策略:捕捉盘口的变化、挂单套利。
    • 获取方式:交易所 API 提供深度数据,分为全量(Snapshot)和增量更新(Delta Update)。
    • 币安 API 接口
      • URL: https://api.binance.com/api/v3/depth
      • 参数
        • symbol: 交易对,例如 BTCUSDT
        • limit: 订单簿深度,默认 100
    • Python 使用 CCXT

      4. Trades 数据(成交列表)

      • 定义:成交数据记录了市场中每一笔实际成交的交易信息。
      • 内容
        • 成交价格(Price)。
        • 成交量(Volume)。
        • 成交时间(Timestamp)。
        • 方向信息(Buy/Sell 或 Maker/Taker)。
      • 用途
        • 高频交易:分析成交流向和趋势。
        • 历史数据分析:构建 K 线数据、计算波动率。
      • 获取方式:通过交易所 API 获取实时或历史成交记录。

      5. 市场状态数据(Market Status)
      • 定义:市场状态信息提供有关交易所或特定交易对的运行状态。
      • 内容
        • 当前市场是否开放交易(Open/Closed)。
        • 是否处于维护或暂停状态。
        • 最小和最大订单数量、价格步长等交易限制。
      • 用途
        • 风险控制:避免在市场关闭或异常时交易。
        • 策略参数设置:调整订单参数以符合交易规则。
      • 币安 API 接口
        • URL: https://api.binance.com/api/v3/trades
        • 参数
          • symbol: 交易对,例如 BTCUSDT
          • limit: 返回的最大记录数,默认 500
      • Python 使用 CCXT

        1. 市场交易规则(Market Info)
        • 定义:交易所提供的关于每个交易对的规则和限制信息。
        • 内容
          • 交易对名称(如 BTC/USDT)。
          • 最小下单量和下单精度(数量精度、价格精度)。
          • 杠杆倍数(如果支持期货)。
          • 手续费率。
        • 用途
          • 确保订单符合交易所规则。
          • 策略优化:根据交易成本计算收益。
        • 币安 API 接口
          • URL: GET /fapi/v1/exchangeInfo
          • 功能:
            • 返回期货市场的交易规则,包括杠杆、最小交易量等信息。
          • 参数:
            • 无(可选查询 symbol 来过滤具体交易对)
        • 使用 CCXT 获取交易规则

        关键解释
        1. 精度和限制
        • limits
          • price: 最小和最大价格限制。
          • amount: 最小和最大交易量限制。
          • cost: 最小订单金额(计价货币)。
        • precision
          • price: 价格小数位精度。
          • amount: 交易量小数位精度。

        7. 资金费率数据(Funding Rate)
        • 定义:资金费率(Funding Rate)是永续合约交易中特有的费用机制,用于保持合约市场价格与现货市场价格的平衡。资金费率会在多头(持多仓)与空头(持空仓)之间进行支付:
          • 正资金费率:多头支付给空头,表明市场处于多头主导。
          • 负资金费率:空头支付给多头,表明市场处于空头主导。
        • 内容
          • 当前资金费率。
          • 下一期资金费率预估。
        • 用途
          • 期货策略优化。
          • 套利策略:通过资金费率收益进行套利。
        资金费率补充说明
        作用
        • 确保永续合约价格接近现货市场价格。
        • 反映市场对未来走势的预期(高资金费率往往预示极端市场情绪)。

        资金费率相关数据
        1. 当前资金费率:当前交易对的资金费率(下一次资金费率支付的值)。
        1. 历史资金费率:过去一段时间内的资金费率记录,分析市场情绪变化。
        1. 资金费率支付时间
            • 通常每 8 小时支付一次(例如币安)。
            • 支付时间:UTC 时间 00:00、08:00、16:00

        币安资金费率接口
        1. 获取当前资金费率
        • 接口: GET /fapi/v1/premiumIndex
        • 功能: 获取某个交易对的当前资金费率。
        • 参数:
          • symbol(可选):交易对(如 BTCUSDT)。
        2. 获取历史资金费率
        • 接口: GET /fapi/v1/fundingRate
        • 功能: 获取历史资金费率数据。
        • 参数:
          • symbol(可选):交易对。
          • startTimeendTime:查询时间范围(可选)。
          • limit:返回记录条数,最大值为 1000。
        使用 CCXT 获取资金费率数据
        获取当前资金费率
        资金费率与策略
        如何利用资金费率
        1. 市场情绪分析
            • 高资金费率(正值):市场情绪偏多,可能过热,需警惕回调。
            • 低资金费率(负值):市场情绪偏空,可能反弹。
        1. 套利策略
            • 如果资金费率为正,可以通过 持空永续合约 + 买入现货 实现套利。
            • 如果资金费率为负,可以通过 持多永续合约 + 卖出现货 实现套利。
         

        8. 指数价格和标记价格(Index Price & Mark Price)
        • 定义
          • 指数价格(Index Price):基于多个现货交易所的加权价格,反映标的物的合理价格。
          • 标记价格(Mark Price):用于计算未实现盈亏和强平价格,防止市场操纵。
        • 用途
          • 风险管理:避免因市场剧烈波动导致错误的强平。
          • 策略基准:根据合理价格调整交易逻辑。

        9. 历史数据(Historical Data)
        • 定义:交易所提供的过去的 K 线、成交记录等历史数据。
        • 用途
          • 策略回测:验证策略的历史表现。
          • 市场研究:分析长期趋势。

        总结

        市场公共数据通常包括以下关键类型:
        • 实时数据:Ticker 数据、Order Book 数据、Trades 数据。
        • 历史数据:K 线数据、历史成交记录。
        • 规则数据:市场状态、交易规则。
        • 期货特有数据:资金费率、指数价格、标记价格。
        这些数据是构建量化交易策略的核心基础,可以被用于趋势跟踪、套利、市场微观结构分析等各种策略中。如果需要具体的应用场景或代码示例,随时告诉我
        Tick 数据Ticker 数据
        不是同一个意思,尽管它们在概念上有一些联系。以下是对两者的详细区分和解释:
        1. Tick数据
          1. 定义
            Tick 数据是最底层的市场事件数据,记录了市场中每一次成交或订单簿的变动。它是市场活动的最小单位,通常用于高频交易或深度分析。Tick 数据也是交易所对定单薄 (order book) 中进行增加、删除、更新和成交四个操作产生的数据。换句话说,只要在定单薄中买价、买量、卖价和卖量发生变化,那么就产生一个 tick。
            主要特点
            • 高频:每次市场状态的变化(如成交、挂单更新)都会产生一个 Tick 数据。
            • 精细:每个 Tick 只记录一次具体事件,例如:
              • 成交:包含成交价格、成交量、时间戳等。
                • 每次撮合成交都会产生一个新的 Tick 数据,包括成交价格、成交量、时间等。
              • 订单簿变化:包含买卖价格、挂单量的增删改。
                • 每当订单簿中买价、卖价、买量或卖量发生变化(新增、删除、更新),也会生成一个与订单簿相关的事件,这可以被称为 Level 2 数据 的更新。
                • 为什么订单簿变化会导致 Tick 数据产生?
                  • 订单簿是市场的供需关系的反映,每次操作都会直接影响市场的状态:
                    1. 新增订单
                        • 买单或卖单被加入订单簿,可能改变买一价、卖一价。
                    1. 删除订单
                        • 挂单被撤销,订单簿相应价格层的数量减少或价格层消失。
                    1. 更新订单
                        • 已存在的挂单数量变化,例如部分成交或修改订单量。
                    1. 撮合成交
                        • 买单和卖单匹配成交,导致最新成交价和成交量发生变化。
                    每一次订单簿的变动都会生成数据事件,记录市场的即时状态。
            Tick 数据可以分为以下两类:
            1. 成交 Tick 数据 (Trade Tick)
            • 描述每笔成交,包括价格、数量、时间戳等。
            • 这些数据直接来源于撮合引擎的成交事件。
            2. 订单簿变化 Tick 数据 (Order Book Tick)
            • 描述订单簿中买卖挂单的变化。
            • 包括新增、删除、修改订单,以及订单簿的买一价、卖一价、买量和卖量的变化。
            用途
            • 用于分析微观市场结构(如订单流、滑点、盘口深度)。
            • 用于构建更高层级的数据,例如 Bar 数据Ticker 数据
            示例
            每条 Tick 数据可能包含以下内容:
        1. ticker数据
          1. Ticker 数据是对市场活动的实时摘要,提供了当前市场的关键状态。它是经过聚合的高层数据,通常直接供交易者使用。
            主要特点
            • 聚合数据:Ticker 数据包含了市场的核心状态指标,例如:
              • 最新成交价(Last Price)。
              • 最优买价(Bid)和卖价(Ask)。
              • 24小时高价、低价、成交量等。
            • 实时更新:随着市场活动(例如 Tick 数据)发生变化,Ticker 数据也会更新。
            用途
            • 用于监控市场状态(价格、波动性等)。
            • 为量化策略提供直接输入,例如趋势跟踪或均线策略。
            示例
            Ticker 数据通常类似以下格式:
            属性
            Tick 数据
            Ticker 数据
            层次
            底层(最小单位)
            高层(聚合数据)
            更新频率
            更新频率
            更新频率
            内容
            单个市场事件(成交、挂单更新、订单簿变化等)
            市场摘要(价格、成交量、最高价等)
            用途
            高频交易、深度市场分析
            技术分析、趋势跟踪、交易监控
            生成方式
            直接由交易所的撮合系统产生
            基于Tick 数据或订单簿的聚合结果
        市场用户(私有)数据:
        市场私有数据是指与特定用户账户相关的交易数据或账户信息,这些数据通常需要用户身份验证(如 API 密钥或 OAuth 授权)才能访问。以下是市场私有数据的典型类型及其详细描述:

        1. 账户数据(Account Data)
        • 定义:账户内的资产及余额信息,展示用户持有的资金数量。比如持有的比特币数量,usdt数量等等,如果是期货账户就是类似保证金数量等等
        • 内容
          • 现货账户
            • 可用余额:用户可以用于交易或提现的金额。
            • 冻结余额:因挂单等原因暂时锁定的金额。
          • 期货账户
            • 保证金余额:用于维持期货合约的资金。
            • 可用保证金:可以新增仓位的资金。
            • 已实现盈亏和未实现盈亏:反映当前交易的收益情况。
        • 用途
          • 账户管理:了解资产分布。
          • 风险控制:确定是否需要调整资金配置。
        • 币安 API 接口
          • URL: https://api.binance.com/api/v3/account
        • Python 使用 CCXT

          2. 仓位数据(Position Data) (适用于期货或杠杆交易)
          • 定义:反映用户在期货市场上的当前仓位及其相关信息。
          • 内容
            • 仓位方向:多头(Long)或空头(Short)。
            • 仓位数量:当前合约的持仓量。
            • 开仓均价:开仓时的平均价格。
            • 未实现盈亏:基于标记价格计算的浮动收益或损失。
            • 强平价格:仓位可能被强制平仓的价格。
          • 用途
            • 策略调整:根据仓位状态优化交易。
            • 风险管理:监控强平风险。
          • 币安 API 接口
            • URL: https://fapi.binance.com/fapi/v2/positionRisk
          • Python 使用 CCXT

            3. 当前挂单数据(Open Orders Data)
            • 定义:用户当前在市场上的未成交挂单。
            • 内容
              • 挂单 ID(Order ID)。
              • 交易对(如 BTC/USDT)。
              • 挂单类型:限价单、市价单、止损单等。
              • 挂单方向:买入(Buy)或卖出(Sell)。
              • 挂单价格和数量。
              • 挂单状态:未成交、部分成交等。
            • 用途
              • 挂单管理:取消未执行的订单或调整价格。
              • 市场策略:实时跟踪未成交挂单的状态。
            • 币安 API 接口
              • URL: https://api.binance.com/api/v3/openOrders
              • 参数
                • symbol: 交易对,例如 BTCUSDT
            • Python 使用 CCXT

              4. 历史订单数据(Order History Data)
              • 定义:用户过去的所有挂单记录,包括已成交和已取消的订单。
              • 内容
                • 挂单 ID(Order ID)。
                • 交易对、挂单类型、方向。
                • 成交价格和数量(若已成交)。
                • 挂单状态:已成交、已取消、过期等。
                • 时间戳:挂单创建时间和完成时间。
              • 用途
                • 交易记录分析:审查历史交易表现。
                • 税务申报:核算交易收入。

              5. 成交数据(Fills Data / Trade Data)
              • 定义:用户挂单部分或全部成交后的交易明细。
              • 内容
                • 成交 ID(Trade ID)。
                • 关联挂单 ID。
                • 成交价格、数量。
                • 成交方向:买入(Buy)或卖出(Sell)。
                • 手续费及费用资产类型。
                • 时间戳。
              • 用途
                • 盈亏计算:分析单笔交易的收益。
                • 策略优化:评估策略执行效果。
              • 币安 API 接口
                • URL: https://api.binance.com/api/v3/myTrades
                • 参数
                  • symbol: 交易对,例如 BTCUSDT
              • Python 使用 CCXT

                6. 提现和充值记录(Withdrawals and Deposits Data)
                • 定义:用户账户资金的进出记录,包括充值和提现。
                • 内容
                  • 交易类型:充值(Deposit)或提现(Withdraw)。
                  • 数量、币种(如 BTC、USDT)。
                  • 交易状态:处理中、完成、失败等。
                  • 时间戳。
                • 用途
                  • 资金管理:审查账户现金流。
                  • 确认交易成功:跟踪提现或充值是否到账。

                7. 风险参数与杠杆设置(Risk Parameters & Leverage Settings)
                • 定义:用户在杠杆或期货交易中的风险偏好和杠杆倍数设定。
                • 内容
                  • 当前杠杆倍数。
                  • 账户风险等级(如爆仓风险率)。
                  • 可用保证金率。
                • 用途
                  • 风险管理:避免因杠杆过高导致的强平风险。
                  • 策略调整:根据杠杆倍数优化头寸。


                总结

                市场私有数据通常包括以下几大类:
                1. 账户数据:反映用户资产状态。
                1. 仓位数据:期货账户特有的持仓信息。
                1. 挂单与订单历史数据:跟踪和管理交易行为。
                1. 成交数据:详细记录用户的实际交易。
                1. 提现与充值记录:账户的资金流动。
                1. 风险管理设置:杠杆与风险参数。
                这些数据的获取需要通过交易所提供的私有 API,并使用授权的 API 密钥进行访问。它们是量化策略的重要基础,尤其在账户管理、风控以及自动化交易中不可或缺。