如何用 AI 搭建自己的量化交易工作站(03)——从策略研究到“策略工厂”
如何用 AI 搭建自己的量化交易工作站(03)——从策略研究到“策略工厂”:建立自动化量化研究系统
Part 01
我们建立了 AI量化交易工作站架构
Part 02
我们建立了 策略研究引擎(Strategy Research Engine)
前文:
01如何用 AI 搭建自己的量化交易工作站 01 |建立基础骨架
02如何用 AI 搭建自己的量化交易工作站(02)——从“写几个策略”到“建立策略研究引擎”
ztrader生态也架构了属于我们自己的量化交易引擎:
以下为正文,
所有步骤强烈建议读者自行问AI一步步展开落地,事半功倍,你不落地,永远就学不到东西,文章不会“自动帮你落地”,从第一行python代码开始,遇到第一个bug,才是你开始学习的过程
如果你只有单组盈利的交易策略,你仍然只是一个:
“会写策略的人”
而不是:
“拥有策略能力的人”
真正的量化机构,例如:
Renaissance
Two Sigma
Citadel
核心优势不是某个策略。
而是:
组建自己的交易策略工厂
今天这篇文章,我们会讲清楚:
如何把AI策略研究引擎升级成自动化策略工厂。
并且包含:
完整执行流程
可运行代码
实际案例
自动化结构
读完你可以建立一个:
每天自动产生策略候选的系统。
一、为什么需要策略工厂
先说一个残酷事实:
90%的策略最终都会失效。
原因包括:
市场结构变化
资金规模变化
交易拥挤
参数过拟合
所以真正的量化不是:
找到一个永远赚钱的策略
而是:
持续产生新策略
机构的逻辑是:
策略死亡 → 新策略替换
所以搞量化本质不是只交易一种策略,然后持续盈利一辈子。
而是,
你必须成为策略制造者。
有能力持续制造
有盈利能力的交易策略。
二、策略工厂结构
策略工厂的结构是:
策略生成
↓
策略编码
↓
自动回测
↓
指标计算
↓
策略筛选
↓
策略库
完整结构:
AI Strategy Factory
Signal Scaner
↓
Idea Generator
↓
Code Generator
↓
Backtest Engine
↓
Metrics Engine
↓
Strategy Filter
↓
Strategy Library
这就是其他对冲基金策略的终极内核:
交易策略的生产/研究管线。
三、第一步:建立策略模板
策略不能乱写。
所有交易策略必须模板化。
常见策略家族:
1 动量策略
2 均值回归
3 波动率突破
4 均线趋势
5 多因子策略
例如
动量模板:
价格 > MA(n)
做多
均值回归模板:
RSI < 30
做多
突破模板:
价格突破20日高点
做多
AI生成策略的时候,只需要填参数。
四、策略模板代码
我们先建立一个量化交易策略模板系统。
class StrategyTemplate:
def __init__(self,name,params):
self.name=name
self.params=params
def signal(self,df):
pass
动量策略:
class MomentumStrategy(StrategyTemplate):
def signal(self,df):
n=self.params["window"]
ma=df["Close"].rolling(n).mean()
signal=(df["Close"]>ma)*1
return signal
均值回归策略:
class RSIMeanReversion(StrategyTemplate):
def signal(self,df):
delta=df["Close"].diff()
gain=delta.clip(lower=0)
loss=-delta.clip(upper=0)
rs=gain.rolling(14).mean()/loss.rolling(14).mean()
rsi=100-(100/(1+rs))
signal=(rsi<30)*1
return signal
现在策略变成了:
可自定义的策略模块。
五、第二步:自动生成策略参数
策略真正的研究来自:
参数空间
例如:
MA window = 20
MA window = 50
MA window = 100
代码:
import itertools
windows=[10,20,30,50,100]
params=[{"window":w} for w in windows]
批量生成策略:
strategies=[MomentumStrategy("momentum",p) for p in params]
你现在已经有:
5个策略
如果:
5个模板
10个参数
就会产生:
50个策略
这就是策略工厂。
六、第三步:建立自动回测引擎
回测引擎核心:
策略收益
代码:
def backtest(df,signal):
returns=df["Close"].pct_change()
strategy=signal.shift(1)*returns
equity=(1+strategy).cumprod()
return strategy,equity
计算指标:
import numpy as np
def metrics(strategy):
sharpe=np.sqrt(252)*strategy.mean()/strategy.std()
max_dd=(strategy.cumsum()-strategy.cumsum().cummax()).min()
return sharpe,max_dd
七、第四步:批量回测策略
现在我们可以自动回测。
results=[]
for s in strategies:
signal=s.signal(df)
strategy,equity=backtest(df,signal)
sharpe,dd=metrics(strategy)
results.append({
"name":s.name,
"params":s.params,
"sharpe":sharpe,
"drawdown":dd
})
结果:
策略参数 + Sharpe + 回撤
八、第五步:策略筛选
机构不会保留所有策略。
他们会:
淘汰
筛选规则:
Sharpe > 1
Drawdown > -25%
代码:
filtered=[r for r in results if r["sharpe"]>1 and r["drawdown"]>-0.25]
剩下的策略:候选策略
九、真实案例:SPY策略工厂
我们跑一个简单案例。
Universe:
SPY
策略:
MA 10
MA 20
MA 50
MA 100
回测结果:
MA | Sharpe |
|---|---|
10 | 0.7 |
20 | 0.9 |
50 | 1.1 |
100 | 0.8 |
筛选结果:
MA50,这就是一个候选策略。
十、策略库(Strategy Library)
所有候选策略进入:
Strategy Library
结构:
Strategy Library
Momentum_MA50
RSI_Reversion_14
Breakout_20
保存:
策略代码
策略参数
回测结果
风险指标
数据库示例:
Postgres
Supabase
十一、每日自动研究流程
自动化流程:
每日更新数据
↓
AI生成策略候选
↓
自动编码
↓
自动回测
↓
自动筛选
↓
进入策略库
Cron任务:
每天运行
Python:
schedule.every().day.at("06:00").do(run_research)
这就是自动化策略研究。
十二、为什么 AI 会改变量化交易
过去策略研究:
一个月 1个策略
现在:
一天 50个策略
优势来自:
研究速度
而不是:
策略复杂度
最后,未来交易者会分成两类
第一类:
用指标交易的人
第二类:
拥有策略工厂的人
前者在:
寻找短期交易信号,最终亏损爆仓
后者在:
生产交易信号,最后形成长期交易系统。
这两者的差距会越来越大。
最后前者将长期秒杀后者。
最重要的一句话
量化交易真正的目标不是:
找到一个赚钱策略
而是:
建立一个持续产生策略的系统(策略工厂)
免责声明:上述内容仅代表发帖人个人观点,不构成本平台的任何投资建议。


