跳转至

自选监控名单管理

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

所属接口集:盘中监控

请求 URL

  • GET /v1/api/monitor/watchlist
  • POST /v1/api/monitor/watchlist
  • DELETE /v1/api/monitor/watchlist

认证方式

Bearer Token(详见 认证与签名

接口概述

管理用户的自选监控股票名单与自定义监控规则。支持查询、添加、删除操作。添加时校验股票必须存在于 monitor:bigdata 快照中(交易日校验当天 Redis 数据,非交易日校验上一交易日 Redis 数据)。expire_date 过期后,该自选及其规则不再参与 WebSocket 监控推送。

规则分类

  • price_track:价格跟踪
  • price_break_ma_up 股价突破均线
  • price_break_ma_down 股价跌破均线
  • price_new_high 股价创新高
  • price_new_low 股价创新低
  • price_reach_up 股价涨到(最新价涨到指定价格)
  • price_reach_down 股价跌到(最新价跌到指定价格)
  • movement_watch:异动盯盘
  • near_limit_up 逼近涨停
  • near_limit_down 逼近跌停
  • price_speed_up 涨速异动
  • price_speed_down 跌速异动
  • bigorder_buy 大单买入异动
  • bigorder_sell 大单卖出异动
  • technical_indicator:技术指标
  • ma_cross_up 均线上穿均线
  • ma_cross_down 均线下穿均线
  • ma_bullish_stack 均线多头排列
  • ma_bearish_stack 均线空头排列

6.1 查询自选名单

请求 URL

GET /v1/api/monitor/watchlist

请求参数

参数 类型 必填 说明
user_id int 用户 ID(整数)
page int 页码,默认 1
page_size int 每页条数,默认 50,上限 200
include_expired int 不传=返回全部记录;0=仅未过期;1=仅已过期

响应格式示例

{
  "code": 1,
  "message": "success",
  "data": {
    "user_id": 123,
    "total": 3,
    "page": 1,
    "page_size": 50,
    "items": [
      {
        "stock_code": "600519",
        "stock_name": "贵州茅台",
        "expire_date": "2026-06-12",
        "is_expired": false,
        "created_at": "2026-06-05T09:00:00",
        "rules": [
          {
            "rule_id": 12,
            "category": "price_track",
            "rule_type": "price_break_ma_up",
            "rule_name": "股价突破均线",
            "rule_params": {"ma_period": 20},
            "rule_signature": "a1b2c3",
            "is_enabled": true,
            "expire_date": "2026-06-12",
            "is_expired": false,
            "created_at": "2026-06-05T09:00:00",
            "updated_at": "2026-06-05T09:00:00"
          }
        ]
      }
    ]
  }
}

6.2 添加股票到异动监控自选名单

请求 URL

POST /v1/api/monitor/watchlist

请求参数(Body JSON)

参数 类型 必填 说明
user_id int 用户 ID
stocks array 股票列表,每项包含 stock_code(必填)、stock_name(选填)、expire_date(选填)、rules(选填)
expire_date string Body 级默认过期日期,支持 YYYY-MM-DDYYYYMMDD;不传时默认 today + 7 天
rules array Body 级默认规则列表;单股模式或 stocks[].rules 未传时生效
replace_rules bool 是否替换股票现有规则,默认 false
stock_code string 单股简写模式时的股票代码
stock_name string 单股简写模式时的股票名称
  • 支持批量模式(stocks 数组)和单股简写模式(直接传 stock_code/stock_name
  • 每个股票可独立设置 expire_date,未设置时使用 Body 级 expire_date,仍为空则默认 today + 7 天
  • 每个股票可独立设置 rules;未传时默认补入 price_speed_up / price_speed_down / bigorder_buy / bigorder_sell
  • 添加前校验股票是否在 monitor:bigdata 快照中;不存在则返回 errors

rules[] 结构

参数 类型 必填 说明
rule_type string 规则类型
category string 规则分类;不传时按 rule_type 自动推断
rule_name string 规则展示名称;不传时使用默认值
rule_params object 规则参数
is_enabled bool 是否启用,默认 true
expire_date string 规则独立过期日期;为空则继承股票的 expire_date

常用 rule_params

  • price_break_ma_up / price_break_ma_down{"ma_period": 5|10|20|60|180}
  • price_new_high / price_new_low{"lookback_days": 5|10|20}
  • price_reach_up / price_reach_down{"target_price": 12.5}(最新价涨到/跌到指定价格,须为正数)
  • near_limit_up / near_limit_down{"distance_pct": 0.5}
  • price_speed_up / price_speed_down{"price_speed_threshold": 3, "price_speed_mult": 1}
  • bigorder_buy / bigorder_sell{"bigorder_turnover_threshold": 0.0004}
  • ma_cross_up / ma_cross_down{"fast_ma": 5, "slow_ma": 10}
  • ma_bullish_stack / ma_bearish_stack{"stack": "ma5_ma10_ma20_ma60"}

请求示例 1:单股简写模式

{
  "user_id": 123,
  "stock_code": "600519",
  "stock_name": "贵州茅台",
  "expire_date": "2026-06-15",
  "rules": [
    {
      "rule_type": "price_break_ma_up",
      "rule_params": {
        "ma_period": 20
      }
    },
    {
      "rule_type": "price_reach_up",
      "rule_params": {
        "target_price": 1800
      }
    },
    {
      "rule_type": "near_limit_up",
      "rule_params": {
        "distance_pct": 0.5
      }
    },
    {
      "rule_type": "ma_cross_up",
      "rule_params": {
        "fast_ma": 5,
        "slow_ma": 10
      }
    }
  ]
}

请求示例 2:批量模式

{
  "user_id": 123,
  "expire_date": "2026-06-20",
  "replace_rules": false,
  "stocks": [
    {
      "stock_code": "600519",
      "stock_name": "贵州茅台",
      "rules": [
        {
          "rule_type": "price_break_ma_up",
          "rule_params": {
            "ma_period": 20
          }
        },
        {
          "rule_type": "bigorder_buy",
          "rule_params": {
            "bigorder_turnover_threshold": 0.0004
          }
        }
      ]
    },
    {
      "stock_code": "000001",
      "stock_name": "平安银行",
      "expire_date": "2026-06-18",
      "rules": [
        {
          "rule_type": "price_new_high",
          "rule_params": {
            "lookback_days": 20
          }
        },
        {
          "rule_type": "ma_bullish_stack",
          "rule_params": {
            "stack": "ma5_ma10_ma20_ma60"
          }
        }
      ]
    }
  ]
}

响应示例:成功并带部分失败

{
  "code": 1,
  "message": "success",
  "data": {
    "data_day": "20260605",
    "added": [
      {
        "stock_code": "600519",
        "expire_date": "2026-06-15",
        "rules": [
          {
            "rule_id": 12,
            "category": "price_track",
            "rule_type": "price_break_ma_up",
            "rule_name": "股价突破均线",
            "rule_params": {"ma_period": 20},
            "rule_signature": "a1b2c3",
            "is_enabled": true,
            "expire_date": "2026-06-15",
            "is_expired": false,
            "created_at": "2026-06-05T09:00:00",
            "updated_at": "2026-06-05T09:00:00"
          },
          {
            "rule_id": 13,
            "category": "movement_watch",
            "rule_type": "bigorder_buy",
            "rule_name": "大单买入异动",
            "rule_params": {"bigorder_turnover_threshold": 0.0004},
            "rule_signature": "d4e5f6",
            "is_enabled": true,
            "expire_date": "2026-06-15",
            "is_expired": false,
            "created_at": "2026-06-05T09:00:00",
            "updated_at": "2026-06-05T09:00:00"
          }
        ]
      }
    ],
    "errors": [
      {"stock_code": "000858", "error": "already exists"},
      {
        "stock_code": "000001",
        "rule_errors": [
          {
            "rule_index": 1,
            "rule_type": "ma_cross_up",
            "error": "fast_ma/slow_ma must be one of (5,10),(10,20),(20,60),(60,180)"
          }
        ]
      }
    ]
  }
}

6.3 从异动监控自选名单删除股票

请求 URL

DELETE /v1/api/monitor/watchlist

请求参数(Body JSON)

参数 类型 必填 说明
user_id int 用户 ID
stock_codes array 要删除的股票代码列表
stock_code string 单股简写模式时的股票代码
rule_ids array 要删除的规则 ID 列表
rules array stock_code + rule_type + rule_params 删除规则
  • 支持批量删除股票(stock_codes 数组)和单股简写模式(stock_code
  • 支持单独删除规则,不删除股票主记录

响应格式示例

{
  "code": 1,
  "message": "success",
  "data": {
    "deleted": 1,
    "deleted_rules": 2,
    "requested_codes": ["600519"],
    "requested_rule_ids": [12, 13]
  }
}

返回状态

状态码 说明
200 成功
400 参数错误(user_id 缺失/非法、stock_codes/rule_ids/rules 均为空、JSON 格式错误)
401 未认证
403 无权限