Files
PolyHermes/docs/zh/nba-strategy-configurable-parameters.md
WrBug e9e1111df9 feat: 实现 NBA 量化交易系统
- 后端实现:
  - 实现 NBA 比赛数据服务,从 Polymarket API 获取数据
  - 实现数据库存储和增量拉取逻辑(优先从 DB 获取,数据不足时增量拉取)
  - 使用 sports_market_types 参数直接筛选 moneyline 类型
  - 实现分页拉取逻辑(基于 gameStartTime 和 createdAt)
  - 移除 nba_markets 相关的外键约束(V12 迁移)
  - 修复数据拉取逻辑:超过 3 天的数据不拉取

- 前端实现:
  - 实现策略创建/编辑/列表页面
  - 实现交易信号展示页面和统计页面
  - 修复重复请求问题(使用 useCallback 包装 fetchGames)
  - 支持选择单场比赛进行配置
  - 使用西8区时间格式化显示

- 数据库:
  - 创建 NBA 量化交易相关表(V11 迁移)
  - 移除外键约束(V12 迁移)

- 文档:
  - 添加产品需求文档、技术方案、算法文档等
2025-12-13 08:05:08 +08:00

24 KiB
Raw Permalink Blame History

NBA 量化策略前端可配置参数清单

一、参数分类

前端可配置参数分为以下几类:

  1. 策略基本信息:策略名称、描述等
  2. 比赛筛选参数:选择关注的比赛
  3. 触发条件参数:控制何时生成交易信号
  4. 交易规则参数:控制如何执行交易
  5. 风险控制参数:限制交易风险
  6. 算法权重参数(高级):调整算法内部权重
  7. 系统配置参数:数据更新频率、推送设置等

二、详细参数列表

2.1 策略基本信息(必填)

参数名称 类型 必填 默认值 说明 UI 组件
策略名称 String - 用户自定义策略名称,1-50 字符 Input
策略描述 String - 策略的简要说明,最多 200 字符 TextArea
关联账户 Long - 选择用于交易的账户 Select
启用状态 Boolean true 是否启用该策略 Switch

2.2 比赛筛选参数(可选)

参数名称 类型 必填 默认值 说明 UI 组件
关注球队 List<String> [] 选择关注的球队(可选,不选择则分析所有比赛) MultiSelect
日期范围 DateRange 今日 选择关注的日期范围 DateRangePicker
比赛重要性 Enum 全部 选择比赛重要性(全部/常规赛/季后赛/关键战) Select
主客场筛选 Enum 全部 筛选主队或客队(全部/仅主队/仅客队) Select

2.3 触发条件参数(必填)

2.3.1 概率阈值参数

参数名称 类型 必填 默认值 取值范围 说明 UI 组件
最小获胜概率差异 Decimal 0.1 0.05 - 0.5 主队和客队获胜概率的最小差异(如 0.1 表示至少 10% 的差异) InputNumber (0-1, 步长 0.01)
最小获胜概率 Decimal 0.55 0.5 - 1.0 生成买入信号时的最小获胜概率(可选,不设置则不限制) InputNumber (0-1, 步长 0.01)
最大获胜概率 Decimal - 0.0 - 0.5 生成买入信号时的最大获胜概率(可选,用于反向策略) InputNumber (0-1, 步长 0.01)

2.3.2 交易价值参数

参数名称 类型 必填 默认值 取值范围 说明 UI 组件
最小交易价值 Decimal 0.05 0.0 - 1.0 交易价值评分的最小值,只有达到此值才会生成信号 InputNumber (0-1, 步长 0.01)

2.3.3 时间条件参数

参数名称 类型 必填 默认值 取值范围 说明 UI 组件
最小剩余时间 Integer 5 0 - 48 生成信号时的最小剩余时间(分钟),0 表示不限制 InputNumber (0-48)
最大剩余时间 Integer - 0 - 48 生成信号时的最大剩余时间(分钟),可选 InputNumber (0-48)
比赛阶段限制 Enum 全部 全部/仅比赛前/仅比赛中/仅比赛后 限制在哪个阶段生成信号 Select

2.3.4 分差条件参数(可选)

参数名称 类型 必填 默认值 取值范围 说明 UI 组件
最小分差 Integer - -50 - 50 生成信号时的最小分差(主队得分 - 客队得分),可选 InputNumber
最大分差 Integer - -50 - 50 生成信号时的最大分差,可选 InputNumber
分差范围 Enum 全部 全部/小分差(<5分)/中分差(5-15分)/大分差(>15分) 限制分差范围 Select

2.4 交易规则参数

2.4.1 买入规则参数

参数名称 类型 必填 默认值 取值范围 说明 UI 组件
买入金额策略 Enum FIXED FIXED/RATIO/DYNAMIC 买入金额计算方式 Select
固定买入金额 Decimal 条件必填 10 > 0 固定金额策略时的买入金额(USDC InputNumber
买入比例 Decimal 条件必填 0.1 0.01 - 1.0 按比例策略时的买入比例(账户余额的百分比) InputNumber (0-1, 步长 0.01)
基础买入金额 Decimal 条件必填 10 > 0 动态计算策略时的基础金额(USDC InputNumber
买入时机 Enum IMMEDIATE IMMEDIATE/DELAYED 立即买入或延迟买入 Select
延迟买入时间 Integer 条件必填 0 0 - 300 延迟买入的秒数(仅在延迟买入时生效) InputNumber (0-300)
买入方向 Enum AUTO AUTO/YES/NO 买入方向:AUTO=系统自动判断,YES/NO=固定方向 Select
说明 - - - - 系统会自动分析两支队伍,选择获胜概率更高、交易价值更大的方向 Info

2.4.2 卖出规则参数

参数名称 类型 必填 默认值 取值范围 说明 UI 组件
启用卖出 Boolean true - 是否启用卖出功能 Switch
止盈阈值 Decimal 0.2 0.0 - 1.0 预期收益达到多少时卖出(如 0.2 表示 20%) InputNumber (0-1, 步长 0.01)
止损阈值 Decimal -0.1 -1.0 - 0.0 预期亏损达到多少时卖出(如 -0.1 表示 -10%) InputNumber (-1-0, 步长 0.01)
概率反转阈值 Decimal 0.15 0.0 - 1.0 获胜概率反转多少时卖出(如 0.15 表示 15%) InputNumber (0-1, 步长 0.01)
卖出比例 Decimal 1.0 0.1 - 1.0 卖出时的比例(1.0 表示全部卖出) InputNumber (0-1, 步长 0.1)
卖出时机 Enum IMMEDIATE IMMEDIATE/DELAYED 立即卖出或延迟卖出 Select
延迟卖出时间 Integer 条件必填 0 0 - 300 延迟卖出的秒数(仅在延迟卖出时生效) InputNumber (0-300)

2.4.3 价格策略参数

参数名称 类型 必填 默认值 取值范围 说明 UI 组件
价格策略 Enum MARKET FIXED/MARKET/DYNAMIC 价格计算方式 Select
固定价格 Decimal 条件必填 - 0.01 - 0.99 固定价格策略时的价格(仅在固定价格时生效) InputNumber (0-1, 步长 0.01)
价格偏移 Decimal 0.0 -0.1 - 0.1 价格偏移百分比(用于调整价格,提高交易成功率,如 0.05 表示 +5%) InputNumber (-0.1-0.1, 步长 0.01)

2.5 风险控制参数

2.5.1 持仓限制参数

参数名称 类型 必填 默认值 取值范围 说明 UI 组件
最大持仓 Decimal 50 >= 1 单次最大买入金额(USDC InputNumber (>= 1)
最小持仓 Decimal 5 >= 1 单次最小买入金额(USDC InputNumber (>= 1)
单场比赛最大持仓 Decimal - >= 1 单场比赛的最大持仓金额(USDC),可选 InputNumber (>= 1)

2.5.2 每日限制参数

参数名称 类型 必填 默认值 取值范围 说明 UI 组件
每日亏损限制 Decimal 100 > 0 每日最大亏损金额(USDC),可选 InputNumber (> 0)
每日订单限制 Integer 20 > 0 每日最大订单数量,可选 InputNumber (> 0)
每日盈利目标 Decimal - > 0 每日盈利目标(USDC),达到后停止交易,可选 InputNumber (> 0)

2.5.3 价格容忍度参数

参数名称 类型 必填 默认值 取值范围 说明 UI 组件
价格容忍度 Decimal 0.05 0.0 - 1.0 允许的价格偏差百分比(如 0.05 表示 5%) InputNumber (0-1, 步长 0.01)

2.5.4 概率置信度参数

参数名称 类型 必填 默认值 取值范围 说明 UI 组件
最小概率阈值 Decimal - 0.5 - 1.0 最小获胜概率阈值(可选,不设置则不限制) InputNumber (0.5-1.0, 步长 0.01)
最大概率阈值 Decimal - 0.0 - 0.5 最大获胜概率阈值(可选,用于反向策略) InputNumber (0-0.5, 步长 0.01)

2.6 算法权重参数(高级,可选)

2.6.1 综合评分权重参数

参数名称 类型 必填 默认值 取值范围 说明 UI 组件
基础实力权重 Decimal 0.3 0.0 - 1.0 基础实力评分在综合评分中的权重 InputNumber (0-1, 步长 0.05)
近期状态权重 Decimal 0.25 0.0 - 1.0 近期状态评分在综合评分中的权重 InputNumber (0-1, 步长 0.05)
阵容完整度权重 Decimal 0.2 0.0 - 1.0 阵容完整度评分在综合评分中的权重 InputNumber (0-1, 步长 0.05)
球星状态权重 Decimal 0.15 0.0 - 1.0 球星状态评分在综合评分中的权重 InputNumber (0-1, 步长 0.05)
环境因素权重 Decimal 0.1 0.0 - 1.0 环境因素评分在综合评分中的权重 InputNumber (0-1, 步长 0.05)
说明 - - - - 所有权重之和应该等于 1.0,系统会自动归一化 Info

2.6.2 对位分析权重参数

参数名称 类型 必填 默认值 取值范围 说明 UI 组件
对位优势权重 Decimal 0.2 0.0 - 1.0 对位优势在获胜概率调整中的权重 InputNumber (0-1, 步长 0.05)

2.6.3 实时状态权重参数(仅比赛进行中)

参数名称 类型 必填 默认值 取值范围 说明 UI 组件
分差调整权重 Decimal 0.3 0.0 - 1.0 分差调整在实时概率调整中的权重 InputNumber (0-1, 步长 0.05)
势头调整权重 Decimal 0.2 0.0 - 1.0 势头调整在实时概率调整中的权重 InputNumber (0-1, 步长 0.05)

2.7 系统配置参数

2.7.1 数据更新参数

参数名称 类型 必填 默认值 取值范围 说明 UI 组件
数据更新频率 Integer 30 10/30/60/300 NBA 数据更新频率(秒) Select
分析频率 Integer 30 10/30/60/300 量化分析执行频率(秒) Select

2.7.2 推送设置参数

参数名称 类型 必填 默认值 取值范围 说明 UI 组件
推送失败订单 Boolean false - 是否推送失败订单 Switch
推送频率 Enum REALTIME REALTIME/BATCH 实时推送或批量推送 Select
批量推送间隔 Integer 条件必填 1 1 - 60 批量推送的时间间隔(秒,仅在批量推送时生效) InputNumber (1-60)

三、参数分组和页面布局建议

3.1 参数分组

基础配置组(第一页):

  • 策略基本信息
  • 比赛筛选参数

触发条件组(第二页):

  • 概率阈值参数
  • 交易价值参数
  • 时间条件参数
  • 分差条件参数

交易规则组(第三页):

  • 买入规则参数
  • 卖出规则参数
  • 价格策略参数

风险控制组(第四页):

  • 持仓限制参数
  • 每日限制参数
  • 价格容忍度参数
  • 概率置信度参数

高级配置组(第五页,可折叠):

  • 算法权重参数
  • 系统配置参数

3.2 UI 组件建议

表单布局

  • 使用分步骤表单(Stepper),引导用户逐步配置
  • 每个步骤有清晰的标题和说明
  • 必填项用红色星号标记
  • 提供实时验证和错误提示

参数展示

  • 使用折叠面板(Collapse)组织相关参数
  • 高级参数默认折叠,用户可展开查看
  • 提供参数说明和示例
  • 提供参数推荐值(基于历史数据)

交互优化

  • 条件显示:某些参数只在特定条件下显示(如固定价格只在价格策略=固定时显示)
  • 联动验证:相关参数之间进行联动验证(如最大持仓 >= 最小持仓)
  • 实时预览:显示参数配置后的预期效果(如预期信号数量、预期交易频率等)

四、参数验证规则

4.1 必填参数验证

  • 策略名称:不能为空,1-50 字符,不能重复
  • 关联账户:必须选择
  • 最小获胜概率差异:必须 > 0
  • 最小交易价值:必须 >= 0
  • 最大持仓:必须 >= 1
  • 最小持仓:必须 >= 1
  • 数据更新频率:必须选择
  • 分析频率:必须选择

4.2 数值范围验证

  • 概率相关参数:必须在 [0, 1] 范围内
  • 金额相关参数:必须 > 0
  • 时间相关参数:必须在合理范围内(如 0-48 分钟)
  • 权重相关参数:必须在 [0, 1] 范围内,且总和应该接近 1.0

4.3 逻辑关系验证

  • 最大持仓 >= 最小持仓
  • 最大剩余时间 >= 最小剩余时间(如果都设置了)
  • 最大分差 >= 最小分差(如果都设置了)
  • 最大概率阈值 <= 最小概率阈值(如果都设置了)
  • 权重总和应该在 0.9 - 1.1 范围内(系统会自动归一化)

4.4 条件依赖验证

  • 如果买入金额策略 = FIXED,则固定买入金额必填
  • 如果买入金额策略 = RATIO,则买入比例必填
  • 如果买入金额策略 = DYNAMIC,则基础买入金额必填
  • 如果价格策略 = FIXED,则固定价格必填
  • 如果买入时机 = DELAYED,则延迟买入时间必填
  • 如果卖出时机 = DELAYED,则延迟卖出时间必填
  • 如果推送频率 = BATCH,则批量推送间隔必填

五、参数默认值建议

5.1 新手推荐配置

保守策略(适合新手):

  • 最小获胜概率差异:0.15(更严格的条件)
  • 最小交易价值:0.08(更高的价值要求)
  • 最大持仓:20 USDC(较小的持仓)
  • 最小持仓:5 USDC
  • 每日亏损限制:50 USDC
  • 价格容忍度:0.033%,较严格)

稳健策略(推荐):

  • 最小获胜概率差异:0.1(标准条件)
  • 最小交易价值:0.05(标准价值)
  • 最大持仓:50 USDC
  • 最小持仓:5 USDC
  • 每日亏损限制:100 USDC
  • 价格容忍度:0.055%

激进策略(适合有经验的用户):

  • 最小获胜概率差异:0.05(较宽松的条件)
  • 最小交易价值:0.03(较低的价值要求)
  • 最大持仓:100 USDC(较大的持仓)
  • 最小持仓:10 USDC
  • 每日亏损限制:200 USDC
  • 价格容忍度:0.110%,较宽松)

5.2 参数模板

系统可以提供预定义的参数模板:

  • 保守模板:使用保守策略的默认值
  • 稳健模板:使用稳健策略的默认值
  • 激进模板:使用激进策略的默认值
  • 自定义模板:用户保存的自定义配置

5.3 基于历史数据的推荐值

5.3.1 推荐值功能概述

系统可以根据历史数据分析和回测结果,为每个可配置参数提供智能推荐值,帮助用户快速配置策略,提高策略效果。

5.3.2 推荐值计算方式

方式一:基于历史回测的推荐值

计算流程

  1. 使用历史比赛数据(如过去 1-3 个赛季)
  2. 对不同的参数组合进行回测
  3. 评估每个参数组合的效果(准确率、盈亏、风险等)
  4. 选择最优的参数组合作为推荐值

评估指标

  • 信号准确率:预测获胜 vs 实际获胜的比例
  • 总盈亏:累计盈亏金额
  • 盈亏比率:盈利信号的平均盈亏 / 亏损信号的平均盈亏
  • 最大回撤:最大连续亏损
  • 夏普比率:风险调整后的收益

推荐值选择

  • 选择综合评分最高的参数组合
  • 综合评分 = 准确率 × 0.3 + 盈亏比率 × 0.3 + 夏普比率 × 0.2 + (1 - 最大回撤率) × 0.2

方式二:基于用户策略的推荐值

计算方式

  • 分析用户已有策略的参数配置
  • 统计表现最好的策略的参数分布
  • 计算参数的平均值或中位数作为推荐值

适用场景

  • 新用户:使用所有用户的最佳策略参数
  • 老用户:使用该用户自己的最佳策略参数

方式三:基于市场环境的推荐值

动态调整

  • 根据当前市场环境(波动性、流动性等)动态调整推荐值
  • 市场波动大时:提高概率阈值,降低持仓
  • 市场稳定时:降低概率阈值,提高持仓

环境因素

  • 市场波动性:基于近期价格的波动率
  • 市场流动性:基于订单深度和交易量
  • 比赛重要性:季后赛 vs 常规赛

5.3.3 推荐值展示方式

在参数输入框中的展示

  • 在参数输入框旁边显示推荐值按钮(如"使用推荐值"图标)
  • 点击后自动填充推荐值
  • 推荐值用不同颜色标识(如蓝色高亮)
  • 显示推荐值的来源标签(如"基于历史回测"、"基于您的策略"、"基于市场环境"
  • 显示推荐值的置信度(如"高置信度"、"中置信度"、"低置信度"

推荐值详细说明

  • 点击推荐值按钮后,弹出推荐值说明卡片
  • 显示推荐值的计算依据
  • 显示使用该推荐值的预期效果(如"预期准确率 65%"、"预期盈亏比 1.5"
  • 显示推荐值的适用场景(如"适合保守策略"、"适合激进策略"
  • 显示推荐值的验证数据(如"基于 500 场历史比赛验证")

参数对比展示

  • 在参数配置页面底部显示"推荐值对比"面板
  • 显示当前配置值 vs 推荐值的对比
  • 显示预期效果对比(如准确率、盈亏等)
  • 提供"应用所有推荐值"按钮,一键应用所有推荐值
  • 提供"应用部分推荐值"选项,让用户选择应用哪些推荐值

5.3.4 推荐值更新机制

更新频率

  • 每周更新一次:基于最新的历史数据
  • 每月深度更新:重新进行完整的回测分析
  • 实时更新:根据市场环境变化实时调整(仅市场环境相关参数)

触发更新

  • 新赛季开始:使用新赛季的数据重新计算
  • 市场环境变化:检测到市场环境显著变化时更新
  • 用户请求:用户手动触发更新

更新通知

  • 在策略配置页面显示"推荐值已更新"提示
  • 显示更新内容(哪些参数有变化)
  • 提供"查看更新"按钮,查看详细的更新说明
  • 提供"应用更新"按钮,一键应用更新的推荐值

5.3.5 推荐值个性化

基于用户偏好的推荐

偏好设置

  • 风险偏好:保守/稳健/激进
  • 交易频率偏好:低频/中频/高频
  • 持仓偏好:小持仓/中持仓/大持仓

个性化推荐

  • 根据用户偏好筛选推荐值
  • 优先推荐符合用户偏好的参数组合
  • 提供多个推荐选项(保守推荐、稳健推荐、激进推荐)

基于策略类型的推荐

策略类型

  • 保守策略:高概率阈值、小持仓、严格风险控制
  • 稳健策略:中等概率阈值、中等持仓、标准风险控制
  • 激进策略:低概率阈值、大持仓、宽松风险控制

类型推荐

  • 用户选择策略类型后,自动推荐该类型的参数值
  • 提供策略类型模板,一键应用

5.3.6 推荐值验证和反馈

推荐值验证

验证方式

  • 使用历史数据验证推荐值的有效性
  • 计算推荐值的回测准确率
  • 评估推荐值的风险水平

验证结果展示

  • 显示推荐值的验证状态(如"已验证"、"待验证"
  • 显示验证数据(如"基于 500 场历史比赛验证")
  • 显示验证指标(如准确率、盈亏比等)
  • 显示验证时间(如"2024-12-01 验证"

用户反馈机制

反馈收集

  • 用户使用推荐值后,可以反馈效果
  • 收集用户对推荐值的满意度(1-5 星)
  • 收集用户的实际使用效果数据(准确率、盈亏等)

反馈应用

  • 根据用户反馈调整推荐算法
  • 优化推荐值的准确性
  • 提高推荐值的适用性

5.3.7 推荐值功能实现

前端实现

UI 组件

  • 推荐值按钮:在参数输入框旁边显示推荐值图标按钮
  • 推荐值卡片:点击后显示推荐值的详细说明
  • 推荐值对比面板:显示当前值 vs 推荐值的对比
  • 推荐值应用按钮:一键应用所有推荐值

交互流程

  1. 用户进入策略配置页面
  2. 系统异步加载推荐值(不阻塞页面加载)
  3. 在参数输入框旁边显示推荐值按钮(如果该参数有推荐值)
  4. 用户点击推荐值按钮,查看推荐值详情
  5. 用户可以选择应用推荐值或手动调整
  6. 用户可以在底部查看所有推荐值的对比

后端实现

推荐值计算服务

  • 历史回测服务:执行历史数据回测
  • 推荐值计算服务:计算推荐值
  • 推荐值缓存服务:缓存推荐值,提高响应速度

API 接口

  • 获取推荐值接口:根据参数类型和用户偏好返回推荐值
  • 更新推荐值接口:触发推荐值更新
  • 推荐值验证接口:验证推荐值的有效性
  • 用户反馈接口:收集用户反馈

数据存储

推荐值存储

  • 存储推荐值计算结果
  • 存储推荐值的计算依据和验证结果
  • 存储用户反馈数据

缓存策略

  • 推荐值缓存 24 小时(每天更新一次)
  • 市场环境变化时立即更新缓存
  • 用户请求时优先使用缓存,异步更新

5.3.8 推荐值参数列表

以下参数支持推荐值功能:

触发条件参数

  • 最小获胜概率差异:基于历史回测的最优值
  • 最小交易价值:基于历史回测的最优值
  • 最小剩余时间:基于历史回测的最优值

交易规则参数

  • 买入金额策略:基于用户策略的推荐
  • 固定买入金额:基于用户策略的推荐
  • 买入比例:基于用户策略的推荐
  • 价格策略:基于市场环境的推荐
  • 价格偏移:基于历史回测的最优值

风险控制参数

  • 最大持仓:基于用户偏好和账户余额的推荐
  • 最小持仓:基于用户偏好和账户余额的推荐
  • 每日亏损限制:基于用户账户余额的推荐
  • 每日订单限制:基于历史数据的推荐
  • 价格容忍度:基于市场环境的推荐

卖出规则参数

  • 止盈阈值:基于历史回测的最优值
  • 止损阈值:基于历史回测的最优值
  • 概率反转阈值:基于历史回测的最优值

算法权重参数(高级):

  • 综合评分权重:基于历史回测的最优值
  • 对位分析权重:基于历史回测的最优值
  • 实时状态权重:基于历史回测的最优值

六、参数说明和帮助

6.1 参数说明

每个参数都应该有清晰的说明:

  • 参数名称:简洁明了的名称
  • 参数说明:详细说明参数的作用和影响
  • 取值范围:明确的范围和单位
  • 推荐值:基于历史数据的推荐值
  • 示例:具体的使用示例

6.2 帮助文档

提供以下帮助内容:

  • 参数说明文档:详细的参数说明文档
  • 策略配置指南:如何配置策略的指南
  • 常见问题:常见配置问题和解答
  • 最佳实践:配置策略的最佳实践

6.3 实时提示

在配置过程中提供实时提示:

  • 参数影响提示:说明参数调整对策略的影响
  • 风险提示:高风险配置的警告提示
  • 优化建议:基于当前配置的优化建议

文档结束