在金字塔软件中实现多因子 CTA 策略,核心流程是:因子计算 → 信号合成 → 仓位与风控 → 回测 → 实盘。下面给你一套完整、可直接落地的方案(PEL 代码 + 步骤)。
一、多因子 CTA 核心结构(通用框架)
典型 CTA 多因子包含 3–6 类因子:
- 趋势因子:MA 多头排列、价格突破、动量
- 波动率因子:ATR、STD、波动率突破
- 量价/资金因子:成交量、持仓量、资金流向
- 情绪/反转因子:RSI、KD、乖离率
- 时间/日历因子:季节性、周内效应
逻辑:
- 每个因子打分(0–1 或 -1~1)
- 加权求和得到 综合因子得分
- 得分 > 阈值 → 开多;得分 < 阈值 → 开空
- 结合 ATR 动态止损 + 固定仓位/风险仓位
二、步骤1:新建多因子策略(PEL语言)
按 F2 打开公式编辑器 → 新建 策略公式 → 命名:MultiFactor_CTA
完整可运行代码(直接复制)
pascal
//=============================
// 多因子CTA策略(金字塔PEL)
// 趋势 + 波动率 + 动量 + 量能 四因子
//=============================
// 1. 参数设置(可优化)
INPUT:
// 趋势
MA_Fast(10), MA_Slow(30),
// 动量
Momentum_Len(12),
// 波动率
ATR_Len(14), Vol_Threshold(0.8),
// 量能
Vol_Factor(1.5),
// 信号阈值
Long_Threshold(0.6), Short_Threshold(-0.6),
// 风控
StopLoss_ATR(1.8), Risk_Pct(0.02);
// 2. 计算各因子(标准化到 -1~1)
// 2.1 趋势因子(均线多头排列)
MA1:=MA(C,MA_Fast);
MA2:=MA(C,MA_Slow);
Trend_F:=(MA1>MA2)*2-1; // 多头=1, 空头=-1
// 2.2 动量因子(价格变化率)
Momentum:=C/REF(C,Momentum_Len)-1;
Mom_F:=(Momentum>0.01)*1 + (Momentum<-0.01)*(-1);
// 2.3 波动率因子(高波动才交易)
ATR:=MA(TR,ATR_Len);
Vol_Ratio:=ATR/MA(ATR,ATR_Len*5);
Vol_F:=IF(Vol_Ratio>Vol_Threshold,1,-1);
// 2.4 量能因子(放量确认)
Vol_MA:=MA(V,20);
Vol_F:=IF(V>Vol_MA*Vol_Factor,1,-1);
// 3. 因子加权合成(可自定义权重)
Factor_Score:=
0.4*Trend_F +
0.2*Mom_F +
0.2*Vol_F +
0.2*Vol_F;
// 4. 信号生成(过滤震荡)
Long_Cond:=Factor_Score>Long_Threshold AND Vol_F=1;
Short_Cond:=Factor_Score<Short_Threshold AND Vol_F=1;
// 5. 仓位与止损(风险控制)
Capital_Risk:=CAPITAL*Risk_Pct;
Per_Share_Risk:=ATR*StopLoss_ATR;
Pos_Size:=IntPart(Capital_Risk/Per_Share_Risk);
Pos_Size:=MAX(1,Pos_Size);
// 6. 交易指令(自动过滤)
IF Long_Cond THEN BEGIN
BUY(1,Pos_Size,MARKET);
// 止损
SET_STOPLOSS(C-ATR*StopLoss_ATR);
END;
IF Short_Cond THEN BEGIN
SELLSHORT(1,Pos_Size,MARKET);
// 止损
SET_STOPLOSS(C+ATR*StopLoss_ATR);
END;
// 平仓:反向信号或离场
IF (Long_Cond=0 AND HOLDING>0) THEN SELL(1,HOLDING,MARKET);
IF (Short_Cond=0 AND HOLDING<0) THEN BUYSHORT(1,-HOLDING,MARKET);
AUTOFILTER; // 关键:自动过滤重复信号
三、步骤2:回测验证(必做)
1. 编译:点 编译 ✅
2. 回测设置:- 品种:螺纹钢/股指/商品主力(建议 5 分钟/15 分钟/1 小时)
- 周期:1小时(CTA主流)
- 初始资金:100万
- 手续费:0.01%(期货)
- 滑点:1–2跳
3. 看报告:- 年化收益、最大回撤、夏普比率、胜率、盈亏比
四、步骤3:实盘运行
1. 加载到 图表程序化 或 后台程序化
2. 勾选 启用自动交易
3. 绑定 CTP 期货账户
4. 开启 监控全部品种(或自选板块)
五、关键优化点(多因子必调)
1. 因子权重- 趋势:0.4–0.5
- 波动率:0.2
- 动量:0.1–0.2
- 量能:0.1–0.2
2. 阈值- 提高阈值 → 信号变少、胜率上升
- 降低阈值 → 信号变多、换手上升
3. 风控参数- StopLoss_ATR :1.5–2.5
- Risk_Pct :0.01–0.03(单品种风险)
六、进阶:多品种 + 轮动(CTA标配)
在后台程序化中:
- 勾选 多品种监控
- 设置 品种池(如 20 个流动性商品)
- 每个品种独立计算因子、独立开仓、独立止损
夜雨聆风