量化策略代写:怎么把“我感觉”变成能回测的代码
先说边界,免得误会:我们不设计策略、不推荐股票、不承诺收益、不代客操作。我们做的是工程实现——你把规则讲清楚,我们把它写成能跑、能回测、结果可复现的代码。下面讲这件事具体怎么做。
一、为什么“三句话的策略”要写两周
“5 日均线上穿 20 日均线买入,下穿卖出,跌破买入价 5% 止损。”这句话人一听就懂,但机器执行时会冒出一堆没定义的问题:
- 上穿,是收盘价确认还是盘中触及?盘中触及会反复触发。
- 同一天多只股票都触发,买哪只?按什么排序?
- 资金分成几份?一次买多少?剩余现金怎么处理?
- 停牌、涨跌停买不进怎么办?
- 卖出当天还想再买,允不允许?
- 复权用前复权还是后复权?除权日怎么处理?
这些不是“细节”,它们直接决定回测结果。同一个想法,把这几个参数换个设定,年化收益能从 30% 变成 -5%。所以第一步不是写代码,是把规则写成规格书。
二、一份能开工的策略规格书
| 项目 | 你要回答的问题 | 示例 |
|---|---|---|
| 标的池 | 做哪些股票/品种?怎么筛? | 沪深300 成分股,剔除 ST 和上市不足 250 日的 |
| 数据周期 | 日线、分钟线还是 tick? | 日线,复权方式:前复权 |
| 进场条件 | 什么条件下买?用收盘价还是次日开盘? | 收盘价上穿 20 日线,次日开盘买入 |
| 出场条件 | 什么条件下卖? | 收盘价下穿 20 日线,次日开盘卖出 |
| 仓位 | 单票多少?最多几只? | 等权,最多 5 只,单票 20% |
| 风控 | 止损、止盈、时间止损 | 跌破成本 8% 次日开盘止损 |
| 成本 | 手续费、印花税、滑点 | 万三双边,卖出千一印花税,滑点 0.1% |
| 区间 | 回测哪几年? | 2018-01 至 2025-12,样本外留 2024 之后 |
这张表填完,代码基本就定型了。填不出来的地方,往往就是策略本身没想清楚的地方。
三、回测最容易骗人的五个地方
- 未来函数。用当天收盘价判断、又用当天收盘价成交,等于提前知道了结果。真实交易里,收盘价出来时已经不能按那个价买了。这是最常见的“回测很美、实盘很惨”的原因。
- 幸存者偏差。用今天的沪深300 成分股去回测 2018 年,等于只挑了活到今天的公司,退市的、被剔除的都被你悄悄排除了。收益会被系统性高估。
- 复权处理错误。前复权数据会随新的除权不断变化,同一份代码今天跑和明年跑结果不一样,没法复现。做长周期回测建议用后复权,并固定数据快照。
- 忽略成本。手续费、印花税、滑点,高频策略里这三项能吃掉全部利润。回测不加成本,等于自欺欺人。
- 参数过拟合。把均线周期从 5/20 试到 7/23,挑一个收益最高的,这叫“对着答案调参”。正确做法是留样本外区间,或者做参数敏感性分析——参数在小区间内变动,结果应该平滑,不该是尖峰。
四、我们交付什么
- 可运行的代码:Python(pandas + numpy,或按你要求用 backtrader / vnpy 框架),带注释
- 数据接口层:你给数据源(本地 CSV、数据库或公开接口),我们写成可替换的适配层
- 回测引擎:含成本模型、撮合逻辑、持仓管理
- 绩效报告:年化收益、最大回撤、夏普、胜率、盈亏比、月度收益表、净值曲线
- 参数敏感性测试:关键参数在区间内扫一遍,看结果稳不稳
- 说明文档:怎么跑、怎么改参数、怎么换数据
价格按策略复杂度报,简单的单标的择时 3000 元起,多标的轮动加风控模块的一般 5000–12000 元。周期通常 5–10 个工作日。
五、我们不做什么
- 不设计策略,不告诉你“买什么”。规则必须是你自己的判断。
- 不评价你的策略好坏,不预测收益。我们只保证代码忠实实现了你写的规则。
- 不承诺任何收益,不做代客理财、不接触你的资金账户。
- 不提供证券投资咨询——那是持牌业务,我们没有也不打算有这个资质。
如果你想的是“帮我找一个能赚钱的策略”,那这里不适合你。如果你想的是“我有一套想法,需要有人把它变成能验证的工具”,那我们能做得很扎实。

微信扫码,直接说需求手机上长按识别也可以。软件定制、网站、小程序、数据采集都能聊,看到了都会回。