策略类型节点

一 节点概述

策略类型节点是交易信号的核心生成器,定义了何时交易交易什么。 BeeQuant 支持两大类主策略:择时策略(基于条件表达式判断开平仓时机)和择币策略(基于因子排序选择交易标的)。 策略节点接收 数据处理节点AI模型节点 的数据, 输出交易信号供 仓位管理节点 使用。

数据流位置
数据源节点数据处理AI模型策略类型仓位管理风险控制交易引擎
择时策略

基于条件表达式判断开平仓时机

适合单一或少量标的

支持多空双向交易

配置项:开多、开空、平多、平空条件编辑器

择币策略

基于因子排序选择交易标的

适合多标的轮动场景

三种子类型:多头、空头、中性

两种持仓模式:等权重、聚焦头部

二 模拟配置

下方是策略类型节点的真实配置面板,你可以直接操作体验各个配置项的功能。 切换策略类型可查看不同配置界面。

策略类型配置

✨ 检测到上游节点变量,可在表达式中使用:

4

💡 提示:所有条件均为可选,但至少需要1个开仓条件。编辑器支持智能补全和语法校验。

三 策略类型

策略类型节点支持两种主策略类型:择时策略择币策略,默认为择时策略。

3.1 择时策略

基于条件表达式判断开平仓时机,适合单一或少量标的
择时策略通过条件表达式定义开仓和平仓的时机。 当条件表达式返回 True 时,触发相应的交易信号。 支持多空双向交易,可以同时配置做多和做空的开平仓条件。

3.1.1 上游节点变量

系统自动检测上游节点定义的变量,可在表达式中直接使用

检测到上游节点变量,可在表达式中使用:

示例
predrsimomentumma5ma20
AI 预测列
来自 AI 模型节点的输出,通常命名为 pred,代表模型的预测值。
因子变量
来自数据处理节点定义的因子,如技术指标 rsimacd 等。
💡 提示:点击变量标签可直接复制到剪贴板,方便在表达式编辑器中粘贴使用。 如果未检测到变量,请检查上游节点是否已正确连接并配置。

3.1.2 开平仓条件

定义多空双向的开仓和平仓条件,所有条件均为可选,但至少需要 1 个开仓条件
💡提示:所有条件均为可选,但至少需要 1 个开仓条件。编辑器支持智能补全和语法校验。
参数说明示例表达式
开多条件触发做多开仓的条件rsi < 30
开空条件触发做空开仓的条件rsi > 70
平多条件触发多头平仓的条件rsi > 50
平空条件触发空头平仓的条件rsi < 50
做多逻辑
开多:开多条件满足时开多仓
平多:平多条件满足时平多仓
做空逻辑
开空:开空条件满足时开空仓
平空:平空条件满足时平空仓
常见策略示例
RSI 超买超卖策略
开多: rsi < 30
平多: rsi > 70
开空: rsi > 80
平空: rsi < 20
AI 预测 + 趋势确认
开多: (pred > 0.6) & (close > ma20)
平多: pred < 0.4
开空: (pred < 0.3) & (close < ma20)
平空: pred > 0.5
🚫 重要限制:策略条件中不能调用算子函数

策略条件表达式仅支持列引用、比较运算和逻辑运算不支持调用 ta_mashiftta_cross_over 等时序算子函数。

这是因为策略条件在运行时只接收每个标的的最新 1 行数据, 需要历史窗口的算子(均线、偏移、交叉等)会因数据不足返回 NaN,导致条件永远不触发。

✅ 正确做法
# 数据处理节点:预计算因子
golden = ta_cross_over(ma5, ma20)
# 策略条件:引用预计算的列
开多: golden == True
  或: golden & (rsi < 30)
❌ 错误做法
# 策略条件中直接调用算子
开多: ta_cross_over(ma5, ma20)
开多: shift(close, 1) < close
开多: ta_rsi(close, 14) < 30
表达式语法:策略条件支持 比较运算和逻辑运算, 可以引用上游数据处理节点定义的因子变量和 AI 模型预测列(如 pred)。 布尔类型的列既可以直接引用(如 golden),也可以显式比较(如 golden == True)。算子函数仅可在数据处理节点中使用。

3.2 择币策略

基于因子排序选择交易标的,适合多标的轮动场景
择币策略通过因子排序在多个标的中选择持仓。 系统按指定的排序字段对所有标的进行排名,然后根据策略方向选择 Top N 或 Bottom N 标的进行交易。 支持三种子类型:多头空头中性(多空对冲),默认为多头策略。

3.2.1 多头

选择排序字段得分最高的 N 个标的进行做多
选币逻辑:Top N(得分最高)
持仓方向:全部做多
适用场景:牛市轮动
3.2.1.1 等权重模式
持仓模式 = 等权重 — 所有选中标的分配相同权重
① 持仓模式
等权重分配,所有选中标的获得相同的仓位权重
② 单次选币数 Top
选择得分最高的 N 个币做多,例如设为 5 则选 Top 5
③ 调仓间隔
每 N 根 K 线重新计算选币,1 = 每根 K 线都调仓
④ 调仓比例
每次调仓允许调整的持仓价值比例,0.2 = 20%
⑤ 排序字段
按此字段排序选币,来自上游因子或 AI 预测。多头选最高
⑥ 条件过滤(可选)
在排序前先筛选符合条件的标的,例如 rsi > 50
等权重分配示意图(选中 5 币)
币1
20%
币2
20%
币3
20%
币4
20%
币5
20%
✓ 风险分散 ✓ 简单直观 ✓ 适合新手
3.2.1.2 聚焦头部模式
持仓模式 = 聚焦头部 — 排名越靠前权重越高,由温度系数控制集中度
① 持仓模式
聚焦头部,排名第一的币获得最高权重
② 温度系数
控制权重集中度,值越大头部权重越高。可选 1.0 / 2.0 / 3.0 / 5.0
③ 单次选币数 Top
选择得分最高的 N 个币做多
④ 调仓间隔
每 N 根 K 线重新计算选币
⑤ 调仓比例
每次调仓允许调整的持仓价值比例
⑥ 排序字段
按此字段排序选币。多头选最高
⑦ 条件过滤(可选)
在排序前先筛选符合条件的标的
温度系数对权重分配的影响
温度=1.0 (分散)
#1
23%
#2
21%
#3
20%
#4
19%
#5
17%
温度=2.0 (默认)
#1
29%
#2
24%
#3
21%
#4
16%
#5
10%
温度=5.0 (集中)
#1
42%
#2
27%
#3
17%
#4
10%
#5
4%
聚焦头部分配示意图(温度=2.0,选中 5 币)
币1
29%
币2
24%
币3
21%
币4
16%
币5
10%
✓ 集中收益 ⚠ 风险集中 ✓ 适合强势因子

3.2.2 空头

选择排序字段得分最低的 N 个标的进行做空
选币逻辑:Bottom N(得分最低)
持仓方向:全部做空
适用场景:熊市做空
3.2.2.1 等权重模式
持仓模式 = 等权重 — 所有选中标的分配相同权重
① 持仓模式
等权重分配
② 单次选币数 Top
选择得分最低的 N 个币做空,例如设为 5 则选 Bottom 5
③~⑥ 其他配置
调仓间隔、调仓比例、排序字段、条件过滤 — 配置方式与多头相同,空头选最低
等权重分配示意图(选中 5 币做空)
币1
20%
币2
20%
币3
20%
币4
20%
币5
20%
✓ 风险分散 ✓ 简单直观 ✓ 适合新手
3.2.2.2 聚焦头部模式
持仓模式 = 聚焦头部 — 排名越靠前(得分越低)权重越高
① 持仓模式
聚焦头部,得分最低的币获得最高做空权重
② 温度系数
控制权重集中度,值越大头部权重越高
③~⑦ 其他配置
选币数、调仓间隔、调仓比例、排序字段、条件过滤 — 配置方式与多头聚焦模式相同
聚焦头部分配示意图(温度=2.0,选中 5 币做空)
币1
29%
币2
24%
币3
21%
币4
16%
币5
10%
✓ 集中收益 ⚠ 风险集中 ✓ 适合强势做空因子

3.2.3 中性

同时做多 Top N 和做空 Bottom N,实现市场中性对冲
多头选币:Top N 做多
空头选币:Bottom N 做空
适用场景:对冲套利
中性策略特点:多空头寸对冲,降低市场整体波动的影响。理想情况下,策略收益来自多空标的的相对表现差异,而非市场方向。 注意:中性模式不支持条件过滤,避免破坏对冲逻辑。
3.2.3.1 等权重模式
持仓模式 = 等权重 — 多空两边各自等权重分配
① 持仓模式
等权重分配,多空各占 50%
② 单边选币数(Top/Bottom 各 N 个)
多头选最高 N 个,空头选最低 N 个,总持仓 2N 个
③~⑤ 其他配置
调仓间隔、调仓比例、排序字段 — 多头选最高空头选最低
多头仓位(Top 5,共 50%)
币1
10%
币2
10%
币3
10%
币4
10%
币5
10%
空头仓位(Bottom 5,共 50%)
币A
10%
币B
10%
币C
10%
币D
10%
币E
10%
✓ 多空平衡 ✓ 风险分散 ✓ 适合震荡市
3.2.3.2 聚焦头部模式
持仓模式 = 聚焦头部 — 多空两边各自聚焦头部分配
① 持仓模式
聚焦头部,多空各边头部标的权重更高
② 温度系数
多空两边同时应用相同温度系数
③~⑥ 其他配置
单边选币数、调仓间隔、调仓比例、排序字段 — 多头选最高,空头选最低
多头仓位(聚焦头部,共 50%)
币1
14%
币2
12%
币3
11%
币4
8%
币5
5%
空头仓位(聚焦头部,共 50%)
币A
14%
币B
12%
币C
11%
币D
8%
币E
5%
✓ 收益集中 ✓ 多空对冲 ⚠ 需要强势因子支撑

四 输出数据结构

策略节点在输入数据的基础上添加交易信号列,输出结构如下:

列名类型来源说明
datetimedatetime传递时间戳
symbolstring传递交易对
[原有列...]各类型传递OHLCV、因子、预测值等
交易信号int新增交易信号(1=做多, -1=做空, 0=无信号)
仓位权重float新增仓位权重(择币策略)
信号含义说明
signal = 1
做多信号
signal = -1
做空信号
signal = 0
无信号 / 平仓

五 常见问题

Q: 择时策略和择币策略该怎么选?
A: 如果你只交易一个或少量标的,选择择时策略,通过条件表达式控制开平仓; 如果你在多个标的中轮动,选择择币策略,通过因子排序选择持仓。 实际上两者可以组合使用:先用择时判断大方向,再用择币选择具体标的。
Q: 择币策略的排序字段从哪来?
A: 排序字段通常来自上游节点: 1) 数据处理节点定义的因子(如 rsi、momentum); 2) AI 模型节点输出的预测列(如 pred)。 系统会自动检测上游可用变量,在配置面板的下拉框中显示。
Q: 中性策略为什么不能用条件过滤?
A: 中性策略需要同时选择最好和最差的标的进行多空对冲。 如果应用条件过滤,可能会过滤掉应该做空的"差"标的,破坏对冲逻辑。 如果确实需要过滤,建议在数据处理节点中处理。
Q: 等权重和聚焦头部模式有什么区别?
A: 等权重给所有选中标的分配相同仓位,风险分散但可能稀释收益;聚焦头部给排名靠前的标的分配更多仓位,收益集中但风险也集中。 温度系数越大,头部权重越集中。建议新手从等权重开始。
Q: 调仓间隔设为 1 会不会交易太频繁?
A: 调仓间隔 = 1 表示每根 K 线都重新计算持仓,但实际交易取决于持仓变化。 如果选中的标的没变,不会产生交易。如果希望减少换手,可以增大调仓间隔,或使用调仓比例控制单次调仓幅度。
Q: 温度系数该如何选择?
A: 温度系数控制权重集中度:1.0 较为分散,接近等权重;2.0(默认)是较平衡的选择;5.0 高度集中,第一名可能占 40% 以上。 如果你的因子预测能力很强,可以尝试更高的温度系数以放大收益。
Q: 调仓比例有什么作用?
A: 调仓比例限制单次调仓的幅度。例如设为 0.2 表示每次调仓最多调整总持仓的 20%。 这可以平滑换仓过程,避免一次性大幅调仓带来的冲击成本。 设为 1.0 表示可以完全按新信号调仓。
Q: 条件过滤表达式可以使用哪些变量?
A: 可以使用所有上游节点产生的变量,包括: 基础 OHLCV 数据(open、high、low、close、volume)、 数据处理节点定义的因子、AI 模型的预测列(如 pred)。 系统会在编辑器中自动提示可用变量。
Q: 多头/空头策略可以同时运行吗?
A: 可以。你可以在同一个工作流中创建多个策略节点, 一个配置为多头,一个配置为空头,然后分别连接到不同的仓位管理节点。 或者直接使用中性策略,它本身就同时管理多空头寸。