跳转至

筹码异动策略查询

来源同步:/Users/mac/Projects/chatgpt-codex/doc/api_StrategyChipMovement.md

所属接口集:筹码异动策略

请求 URL

GET /v1/api/strategy/chip_movement

认证方式

Bearer Token(详见 认证与签名

接口概述

按指定日期返回命中 D+(主力增仓)信号的股票列表,作为"主力异动策略"列表。为提升实盘查询性能,本接口只计算 D+ 信号;若显式传 signal=D-,直接返回空列表。

根据查询日期是否为交易日当天,接口走两条不同数据路径: - realtime(交易日当天):从 Redis 实时数据计算,data_source = "realtime" - snapshot(历史/非交易日):从 MySQL 快照表 monitor_chip_peak_daily_snapshot 读取,data_source = "snapshot"

请求参数

参数 类型 必填 说明
day string 查询日期,格式 YYYYMMDD,默认当天
signal string 信号筛选:all(默认)/ D+ / D-(传 D- 直接返回空列表)
codes string 逗号分隔的股票代码,限定筛选范围,如 600519,000858
exclude_prefixes string 逗号分隔的代码前缀排除列表,如 688,689 排除科创板
net_amount_gte number 净额下限,只返回 net_amount >= 该值 的记录
concentration_90_lte number 90%筹码集中度上限,只返回 concentration_90 <= 该值 的记录
free_float_shares_gte number 流通股本下限(亿股),只返回 free_float_shares >= 该值 的记录
free_float_shares_lt number 流通股本上限(亿股),只返回 free_float_shares < 该值 的记录
page int 页码,默认 1
page_size int 每页条数,默认 100,最大 500

接口说明

锁仓/增减仓核心公式

统一使用 main_control(主力控盘度)计算 lock_ic_dailylock_ic_delta_daily

lock_ic_delta_daily = (main_control - pre_main_control) / |pre_main_control|   # 带符号(增减仓比例)
lock_ic_daily       = |main_control - pre_main_control| / |pre_main_control|   # 绝对值(锁仓比例)
  • lock_ic_delta_daily:增减仓指标,带符号的比值。正值表示增仓,负值表示减仓。
  • lock_ic_daily:锁仓指标,取绝对值的比值,衡量主力锁仓力度。

|pre_main_control| <= 1e-9 时,两个指标均不计算(返回 null)。

realtime 路径下 main_control 取值

  • main_control:优先取 bigdata:{day}:{code6} 哈希,回退 bigdata:days:{code6} 哈希
  • pre_main_control:取 bigdata:days:{code6} 哈希

snapshot 路径下 main_control 取值

  • main_control:取当前快照行的 main_control
  • pre_main_control:取时间上紧邻的更早一条快照行的 prev_main_control(通过子查询获取)

信号判定条件

net_amount = buy_total_amount - sell_total_amount

D+(红点,主力增仓),需同时满足以下三个条件:

条件 阈值 常量名
lock_ic_delta_daily > 1.0 增仓比例超过 100% RED_LOCK_IC_DELTA_MIN
net_amount > 5,000,000 净流入超过 500 万元 RED_NET_AMOUNT_MIN
concentration_90 < 5.0 筹码集中度低于 5% RED_CONCENTRATION_90_MAX

D-(绿点,主力减仓),需同时满足以下四个条件(本接口默认不计算,d_plus_only=True 时跳过):

条件 阈值 常量名
lock_ic_delta_daily < -0.9 减仓比例低于 -90% GREEN_LOCK_IC_DELTA_MAX
lock_ic_daily > 2.0 锁仓变动超过 200% GREEN_LOCK_IC_DAILY_MIN
concentration_90 < 5.0 筹码集中度低于 5% GREEN_CONCENTRATION_90_MAX
net_amount < -10,000,000 净流出超过 1000 万元 GREEN_NET_AMOUNT_MAX

任一必需字段(lock_ic_delta_dailybuy_total_amountsell_total_amountconcentration_90)缺失则不产生信号。

realtime 路径 D+ 预筛优化

为避免对全市场每只股票都读取大单明细导致超时,采用两级筛选:

  1. 快速预筛_prefilter_dplus_candidates):仅用廉价 hget 做 D+ 的必要条件判断,缩小候选集合:
  2. lock_ic_delta_daily > 1.0
  3. concentration_90:Redis 已存明确值(>0)且 >= 5.0 时排除;缺失/<=0 保留(后续实时重算)
  4. 净额粗筛:chip_buy_total_amount_today - chip_sell_total_amount_today <= 0 时排除;哈希缺失则保留

  5. 逐票精算:对预筛后的候选,批量读取哈希字段构建指标,若 concentration_90 缺失或 <= 0 则用大单明细实时重算(_recalculate_realtime_concentration_90

买/卖总额取值(realtime 路径)

交易日当天的 buy_total_amount / sell_total_amount 直接取自 bigdata 哈希:

buy_total_amount  = HGET bigdata:{day}:{code6}  chip_buy_total_amount_today
                    (缺失回退 HGET bigdata:days:{code6} chip_buy_total_amount_today)
sell_total_amount = HGET bigdata:{day}:{code6}  chip_sell_total_amount_today
                    (缺失回退 HGET bigdata:days:{code6} chip_sell_total_amount_today)

集中度取值(realtime 路径)

concentration_90 取值优先级:当日 bigdata:{day}bigdata:dayspre_concentration_90 → MySQL 上一交易日 prev_concentration_90

排序规则

  1. D+ 信号优先
  2. |net_amount| 降序
  3. stock_code 升序

最新行情字段

close / pct_chg / vol / free_float_shares / today_vol_ratio 始终取当前最新 Redis 行情日(交易日取今天,否则取上一交易日),不随 day 参数变化:

  • close / pre_close / volHGET {prefix}:intraday:kline:1m:state:{latest_quote_day}:{code6}
  • free_float_shares / today_vol_ratioHGET {prefix}:monitor:bigdata:{latest_quote_day}:{code6}
  • pct_chg = (close - pre_close) / pre_close * 100

响应格式示例

{
  "code": 1,
  "message": "success",
  "data": {
    "query_day": "20260801",
    "resolved_day": "20260801",
    "data_source": "realtime",
    "latest_quote_day": "20260801",
    "latest_quote_fallback_day": "20260731",
    "signal": "all",
    "filters": {
      "exclude_prefixes": ["688", "689"],
      "net_amount_gte": null,
      "concentration_90_lte": null
    },
    "total": 25,
    "page": 1,
    "page_size": 100,
    "items": [
      {
        "stock_code": "600519.SH",
        "stock_name": "贵州茅台",
        "signal": "D+",
        "label": "D+",
        "dot_color": "red",
        "day": "20260801",
        "net_amount": 15000000.0,
        "buy_total_amount": 35000000.0,
        "sell_total_amount": 20000000.0,
        "lock_ic_daily": 1.25,
        "lock_ic_delta_daily": 1.25,
        "concentration_90": 3.2,
        "close": 1800.5,
        "pct_chg": 2.35,
        "vol": 35000.0,
        "free_float_shares": 12.56,
        "today_vol_ratio": 0.85
      }
    ]
  }
}

返回状态

状态码 说明
200 成功
400 参数错误
401 未认证
403 无权限
404 资源不存在