表达式算子
适用位置:数据处理节点的因子表达式、策略节点的条件表达式、AI模型的标签定义
基础算子
逐元素计算,对每个数据点独立运算
| 算子名称 | 语法 | 说明 | 返回类型 | 示例 |
|---|---|---|---|---|
| abs | abs(x) | 绝对值 | 数值 | abs(close - open) |
| log | log(x) | 自然对数 | 数值 | log(volume) |
| exp | exp(x) | 指数函数 e^x | 数值 | exp(returns) |
| sqrt | sqrt(x) | 平方根 | 数值 | sqrt(variance) |
| sign | sign(x) | 符号函数 (返回 -1, 0, 1) | -1/0/1 | sign(returns) |
| round | round(x, decimals) | 四舍五入到指定小数位 | 数值 | round(price, 2) |
| max | max(x, y) | 逐元素取较大值 | 数值 | max(open, close) |
| min | min(x, y) | 逐元素取较小值 | 数值 | min(open, close) |
| mean | mean([cols]) | 多列逐元素平均 | 数值 | mean([open, high, low, close]) |
| if | if(cond, x, y) | 条件选择 | x或y | if(close > open, 1, -1) |
| clip | clip(x, lower, upper) | 截断到区间 [lower, upper] | 数值 | clip(returns, -0.1, 0.1) |
| qclip | qclip(x, q) | 按分位数对称截断到 [q, 1-q] | 数值 | qclip(returns, 0.01) |
时序算子
按标的分组,在时间维度上进行滚动窗口计算
| 算子名称 | 语法 | 说明 | 返回类型 | 示例 |
|---|---|---|---|---|
| shift | shift(x, n) | 向前移动n期 (n>0取历史) | 数值 | shift(close, 1) |
| delta | delta(x, n) | n期差分: x - shift(x, n) | 数值 | delta(close, 1) |
| pct | pct(x, n) | n期变化率: delta(x,n) / shift(x,n) | 数值 | pct(close, 1) |
| argmax | argmax(x, n) | n期内最大值的位置 (1-n) | 整数 | argmax(high, 20) |
| argmin | argmin(x, n) | n期内最小值的位置 (1-n) | 整数 | argmin(low, 20) |
| t_mean | t_mean(x, n) | n期移动平均 | 数值 | t_mean(close, 20) |
| t_sum | t_sum(x, n) | n期累加 | 数值 | t_sum(volume, 5) |
| t_max | t_max(x, n) | n期最大值 | 数值 | t_max(high, 20) |
| t_min | t_min(x, n) | n期最小值 | 数值 | t_min(low, 20) |
| t_std | t_std(x, n) | n期标准差 | 数值 | t_std(returns, 20) |
| t_var | t_var(x, n) | n期方差 | 数值 | t_var(returns, 20) |
| t_prod | t_prod(x, n) | n期累乘 | 数值 | t_prod(1 + returns, 20) |
| t_median | t_median(x, n) | n期中位数 | 数值 | t_median(close, 20) |
| t_quantile | t_quantile(x, n, q) | n期q分位数 | 数值 | t_quantile(close, 20, 0.75) |
| t_skew | t_skew(x, n) | n期偏度 | 数值 | t_skew(returns, 20) |
| t_kurt | t_kurt(x, n) | n期峰度 | 数值 | t_kurt(returns, 20) |
| t_rank | t_rank(x, n) | n期内排名 (最大值=1) | 整数 | t_rank(close, 20) |
| t_pctrank | t_pctrank(x, n) | n期内百分位排名 (0-1) | 数值 | t_pctrank(close, 20) |
| t_count | t_count(cond, n) | n期内条件为真的次数 | 整数 | t_count(close > open, 20) |
| t_all | t_all(cond, n) | n期内是否全部为真 | 布尔 | t_all(close > ma20, 5) |
| t_any | t_any(cond, n) | n期内是否存在为真 | 布尔 | t_any(volume > avg_vol * 2, 5) |
| t_corr | t_corr(x, y, n) | n期滚动相关系数 | 数值 | t_corr(close, volume, 20) |
| t_cov | t_cov(x, y, n) | n期滚动协方差 | 数值 | t_cov(returns, market_returns, 60) |
| t_beta | t_beta(y, x, n) | n期回归斜率β | 数值 | t_beta(returns, market_returns, 60) |
| t_alpha | t_alpha(y, x, n) | n期回归截距α | 数值 | t_alpha(returns, market_returns, 60) |
| t_residual | t_residual(y, x, n) | n期回归残差 | 数值 | t_residual(returns, market_returns, 60) |
| t_zscore | t_zscore(x, n) | n期时序Z-Score标准化 | 数值 | t_zscore(close, 20) |
| t_scale | t_scale(x, n) | n期时序Min-Max标准化到[0,1] | 数值 | t_scale(rsi, 20) |
横截面算子
按时间点分组,在所有标的之间进行截面计算
| 算子名称 | 语法 | 说明 | 返回类型 | 示例 |
|---|---|---|---|---|
| c_mean | c_mean(x) | 截面平均值 | 数值 | c_mean(returns) |
| c_sum | c_sum(x) | 截面求和 | 数值 | c_sum(volume) |
| c_max | c_max(x) | 截面最大值 | 数值 | c_max(returns) |
| c_min | c_min(x) | 截面最小值 | 数值 | c_min(returns) |
| c_std | c_std(x) | 截面标准差 | 数值 | c_std(returns) |
| c_median | c_median(x) | 截面中位数 | 数值 | c_median(pe_ratio) |
| c_rank | c_rank(x) | 截面排名 (最大值=1) | 整数 | c_rank(returns) |
| c_pctrank | c_pctrank(x) | 截面百分位排名 (0-1) | 数值 | c_pctrank(momentum) |
| c_percentile | c_percentile(x, q) | 截面分位数值 | 数值 | c_percentile(volume, 0.9) |
| c_top | c_top(x, n) | 截面前N名标记 | 布尔 | c_top(momentum, 10) |
| c_bottom | c_bottom(x, n) | 截面后N名标记 | 布尔 | c_bottom(momentum, 10) |
| c_zscore | c_zscore(x) | 截面Z-Score标准化 | 数值 | c_zscore(pe_ratio) |
| c_scale | c_scale(x) | 截面Min-Max标准化到[0,1] | 数值 | c_scale(volume) |
| c_mad_zscore | c_mad_zscore(x) | 截面MAD Z-Score(稳健标准化) | 数值 | c_mad_zscore(returns) |
| c_clip | c_clip(x, lower, upper) | 截面内截断到指定区间 | 数值 | c_clip(zscore, -3, 3) |
| c_qclip | c_qclip(x, q) | 截面内按分位数截断 | 数值 | c_qclip(returns, 0.01) |
| c_residual | c_residual(y, x) | 截面回归残差(中性化) | 数值 | c_residual(returns, market_cap) |
| c_absunit | c_absunit(x, a?) | 截面绝对值归一化 | 数值 | c_absunit(alpha) |
技术指标
经典技术分析指标,按标的分组计算
| 算子名称 | 语法 | 说明 | 返回类型 | 示例 |
|---|---|---|---|---|
| ta_ma | ta_ma(x, n) | 简单移动平均线 (SMA) | 数值 | ta_ma(close, 20) |
| ta_ema | ta_ema(x, n) | 指数移动平均线 (EMA) | 数值 | ta_ema(close, 12) |
| ta_wma | ta_wma(x, n) | 加权移动平均线 (WMA) | 数值 | ta_wma(close, 20) |
| ta_rsi | ta_rsi(x, n) | 相对强弱指数 (RSI) | 0-100 | ta_rsi(close, 14) |
| ta_roc | ta_roc(x, n) | 变化率 (ROC) | 数值 | ta_roc(close, 10) |
| ta_mom | ta_mom(x, n) | 动量 (Momentum) | 数值 | ta_mom(close, 10) |
| ta_cci | ta_cci(high, low, close, n) | 商品通道指数 (CCI) | 数值 | ta_cci(high, low, close, 20) |
| ta_willr | ta_willr(high, low, close, n) | 威廉指标 (Williams %R) | 数值 | ta_willr(high, low, close, 14) |
| ta_mfi | ta_mfi(high, low, close, volume, n) | 资金流量指数 (MFI) | 0-100 | ta_mfi(high, low, close, volume, 14) |
| ta_bias | ta_bias(x, n) | 乖离率 (BIAS) | 数值 | ta_bias(close, 20) |
| ta_ultimate | ta_ultimate(high, low, close, n1, n2, n3) | 终极振荡器 | 数值 | ta_ultimate(high, low, close, 7, 14, 28) |
| ta_atr | ta_atr(high, low, close, n) | 平均真实波幅 (ATR) | 数值 | ta_atr(high, low, close, 14) |
| ta_natr | ta_natr(high, low, close, n) | 标准化平均真实波幅 (NATR) | 百分比 | ta_natr(high, low, close, 14) |
| ta_bbands_upper | ta_bbands_upper(x, n, k?) | 布林带上轨 | 数值 | ta_bbands_upper(close, 20, 2) |
| ta_bbands_mid | ta_bbands_mid(x, n) | 布林带中轨(即MA) | 数值 | ta_bbands_mid(close, 20) |
| ta_bbands_lower | ta_bbands_lower(x, n, k?) | 布林带下轨 | 数值 | ta_bbands_lower(close, 20, 2) |
| ta_bbands_width | ta_bbands_width(x, n, k?) | 布林带宽度 | 数值 | ta_bbands_width(close, 20, 2) |
| ta_kc_upper | ta_kc_upper(high, low, close, n, k?) | Keltner通道上轨 | 数值 | ta_kc_upper(high, low, close, 20, 2) |
| ta_kc_lower | ta_kc_lower(high, low, close, n, k?) | Keltner通道下轨 | 数值 | ta_kc_lower(high, low, close, 20, 2) |
| ta_obv | ta_obv(close, volume) | 能量潮指标 (OBV) | 数值 | ta_obv(close, volume) |
| ta_cmf | ta_cmf(high, low, close, volume, n) | Chaikin资金流量 (CMF) | 数值 | ta_cmf(high, low, close, volume, 20) |
| ta_adosc | ta_adosc(high, low, close, volume, fast, slow) | Chaikin A/D振荡器 | 数值 | ta_adosc(high, low, close, volume, 3, 10) |
| ta_vwma | ta_vwma(close, volume, n) | 成交量加权移动平均 (VWMA) | 数值 | ta_vwma(close, volume, 20) |
| ta_adx | ta_adx(high, low, close, n) | 平均趋向指数 (ADX) | 数值 | ta_adx(high, low, close, 14) |
| ta_dmi_plus | ta_dmi_plus(high, low, close, n) | 正向动向指标 (+DI) | 数值 | ta_dmi_plus(high, low, close, 14) |
| ta_dmi_minus | ta_dmi_minus(high, low, close, n) | 负向动向指标 (-DI) | 数值 | ta_dmi_minus(high, low, close, 14) |
| ta_aroon_up | ta_aroon_up(high, n) | Aroon上线 | 数值 | ta_aroon_up(high, 25) |
| ta_aroon_down | ta_aroon_down(low, n) | Aroon下线 | 数值 | ta_aroon_down(low, 25) |
| ta_macd_dif | ta_macd_dif(x, fast, slow) | MACD DIF线(快线-慢线) | 数值 | ta_macd_dif(close, 12, 26) |
| ta_macd_dea | ta_macd_dea(x, fast, slow, signal) | MACD DEA线(DIF的EMA) | 数值 | ta_macd_dea(close, 12, 26, 9) |
| ta_macd_hist | ta_macd_hist(x, fast, slow, signal) | MACD柱状图(DIF-DEA) | 数值 | ta_macd_hist(close, 12, 26, 9) |
| ta_kdj_k | ta_kdj_k(high, low, close, n, k_smooth) | KDJ指标K线 | 数值 | ta_kdj_k(high, low, close, 9, 3) |
| ta_kdj_d | ta_kdj_d(high, low, close, n, k_smooth, d_smooth) | KDJ指标D线 | 数值 | ta_kdj_d(high, low, close, 9, 3, 3) |
| ta_kdj_j | ta_kdj_j(high, low, close, n, k_smooth, d_smooth) | KDJ指标J线 | 数值 | ta_kdj_j(high, low, close, 9, 3, 3) |
| ta_stoch_k | ta_stoch_k(high, low, close, n) | 随机指标K线 (%K) | 数值 | ta_stoch_k(high, low, close, 14) |
| ta_stoch_d | ta_stoch_d(high, low, close, n, d_smooth) | 随机指标D线 (%D) | 数值 | ta_stoch_d(high, low, close, 14, 3) |
| ta_cross_over | ta_cross_over(x, y) | 上穿信号 (x从下方穿越y) | 布尔 | ta_cross_over(ma5, ma20) |
| ta_cross_under | ta_cross_under(x, y) | 下穿信号 (x从上方穿越y) | 布尔 | ta_cross_under(ma5, ma20) |
| ta_breakout_high | ta_breakout_high(high, n) | 突破N期最高价信号 | 布尔 | ta_breakout_high(high, 20) |
| ta_breakout_low | ta_breakout_low(low, n) | 跌破N期最低价信号 | 布尔 | ta_breakout_low(low, 20) |
K线形态
经典K线形态识别
| 算子名称 | 语法 | 说明 | 返回类型 | 示例 |
|---|---|---|---|---|
| ta_marubozu_bull | ta_marubozu_bull(open, close, high, low) | 光头光脚阳线 | 布尔 | ta_marubozu_bull(open, close, high, low) |
| ta_marubozu_bear | ta_marubozu_bear(open, close, high, low) | 光头光脚阴线 | 布尔 | ta_marubozu_bear(open, close, high, low) |
| ta_doji | ta_doji(open, close, high, low) | 十字星 | 布尔 | ta_doji(open, close, high, low) |
| ta_pin_bar_long | ta_pin_bar_long(open, close, high, low) | 看涨Pin Bar(长下影线) | 布尔 | ta_pin_bar_long(open, close, high, low) |
| ta_pin_bar_short | ta_pin_bar_short(open, close, high, low) | 看跌Pin Bar(长上影线) | 布尔 | ta_pin_bar_short(open, close, high, low) |
| ta_inside_bar_bull | ta_inside_bar_bull(high, low, close) | 看涨内包线 | 布尔 | ta_inside_bar_bull(high, low, close) |
| ta_inside_bar_bear | ta_inside_bar_bear(high, low, close) | 看跌内包线 | 布尔 | ta_inside_bar_bear(high, low, close) |
| ta_engulfing_bull | ta_engulfing_bull(open, close) | 看涨吞没形态 | 布尔 | ta_engulfing_bull(open, close) |
| ta_engulfing_bear | ta_engulfing_bear(open, close) | 看跌吞没形态 | 布尔 | ta_engulfing_bear(open, close) |
| ta_three_rising | ta_three_rising(close) | 三连涨 | 布尔 | ta_three_rising(close) |
| ta_three_falling | ta_three_falling(close) | 三连跌 | 布尔 | ta_three_falling(close) |
| ta_hammer | ta_hammer(open, close, high, low) | 锤子线 | 布尔 | ta_hammer(open, close, high, low) |
| ta_shooting_star | ta_shooting_star(open, close, high, low) | 射击之星 | 布尔 | ta_shooting_star(open, close, high, low) |
| ta_morning_star | ta_morning_star(open, close, high, low) | 早晨之星 | 布尔 | ta_morning_star(open, close, high, low) |
| ta_evening_star | ta_evening_star(open, close, high, low) | 黄昏之星 | 布尔 | ta_evening_star(open, close, high, low) |
| ta_top_divergence | ta_top_divergence(price, indicator, n) | 顶背离信号 | 布尔 | ta_top_divergence(close, rsi, 20) |
| ta_bottom_divergence | ta_bottom_divergence(price, indicator, n) | 底背离信号 | 布尔 | ta_bottom_divergence(close, rsi, 20) |