1. 项目缘起:为什么我会把真金白银交给 AI
先交代一下背景。我平时的工作和量化投资没什么关系,编程水平属于能写点简单脚本、看得懂报错信息那类。但这些年一直对自动交易系统有点兴趣,尤其是看到不少人用一些公开的量化框架做回测,把历史K线导入模型,跑出漂亮曲线。我清楚回测好看不等于实盘赚钱,真正想验证的还是“如果让 AI 帮我按某种规则管一笔钱,连续跑两三个月,会发生什么”。
这个项目的目标其实特别朴素:在严格控制风险的前提下,让一套自动化策略自主完成选币、进出场、仓位调整全流程,人工只在极端行情下干预。账户里我放了一万块左右的本金,计划周期是 85 天,结果最多的时候单笔交易赚到 3733 元,这在我的交易记录里算是一次比较完整的验证。
之所以选这个切入点,是因为大多数散户的问题不在于没有赚钱的机会,而在于执行力:
- 明明设好了止损,看到下跌就手动改掉;
- 明明计划只开一手,一激动直接满仓;
- 信号已经出现,却总想“再等等看”。
这些行为靠纪律约束很难根治,但交给一套无人值守的策略,反而能老老实实按规则跑完。这个项目本质上不是研究 AI 能力边界,而是研究“人管不住手时,机器能不能替你做决策”。
85 天这个周期对测试交易策略来说比较合适。太短,样本不足,策略容易碰上行情特别顺的阶段,参考价值低;太长,市场风格变化等因素叠加,又难以分清是策略有效还是运气好。三个月左右既能看到完整波段,也能覆盖几次回调行情,我选这个周期就是为了让自己对结果有信心。
2. 整体方案:选什么策略、用什么框架、如何控制风险
2.1 为什么选择了趋势跟踪而非预测涨跌
一开始我也试过让模型去预测“明天BTC会涨还是会跌”,走了不少弯路。后来发现一个核心问题:预测准确率和交易盈利之间没有必然联系。模型预测明天涨的概率60%,但真正会涨多少、涨了之后是直接反转还是继续走强,这完全不是分类模型能解决的。
我最后采用的是经典趋势跟踪策略,框架很简单:
- 用均线系统判断方向;
- 用波动率动态调整仓位和止损;
- 不在震荡行情里频繁交易。
为什么选这个方案?因为趋势跟踪虽然单笔胜率不高,但胜在“截断亏损,让利润奔跑”。AI在这个策略里的角色不是预测未来,而是做三件事:过滤震荡噪音、计算风险敞口、机械执行进出场规则。这比让 AI 学会“预测下一根K线”要靠谱得多。
说到底,AI 在投资里最有价值的定位不是一个预言家,而是一个更严格、更专注的风险管理员。
2.2 技术栈和工具选型
具体工具方面,我调研了一圈,最后选了目前最稳定的一套组合:
| 模块 | 选择 | 原因 |
|---|---|---|
| 数据源 | 某主流交易所公开行情API | 免费、延迟低、历史K线完整 |
| 回测框架 | 某开源量化回测引擎 | 支持多策略集成,结果可视化直观 |
| 实盘执行 | 交易所API + 策略服务器 | 避免依赖第三方信号,完整自主可控 |
| 监控告警 | 极简脚本写日志 + 钉钉机器人通知 | 出现异常时能第一时间人工介入 |
| 部署环境 | 一台长期运行的云主机 | 保证策略持续在线,不因本机断网中断 |
我不建议一开始就上复杂的多因子模型或神经网络。站在项目可维护性的角度,趋势跟踪这种规则型策略的优点是每个参数都有明确含义,出问题后容易定位原因。神经网络模型不是不能赚钱,而是中间犯错时,你根本分不清是数据问题、特征问题还是模型结构问题。
我见过很多人在同一个坑里反复踩:
一上来就去优化最复杂的算法,然后被无数个超参数困住,最后把一个本来可以盈利的简单策略改成了一辆四肢散架的车。
2.3 风控系统的设计细节
这个项目的命根子就是风控。我用的是固定比例风险模型,每一单的风险敞口不超过账户总资金的2%。具体拆解是这样的:
假设当前账户净值是10000元,单笔最大亏损不能超过200元。然后结合当前K线的平均真实波幅(ATR指标)反推仓位大小。
举个例子:
- 某币种当前价格 30000 U;
- ATR(14) 计算出的单日波幅大约是 500 U;
- 设置止损距离为 2 倍ATR,也就是 1000 U;
- 单笔最大亏损额 = 账户净值 * 2% = 200 U;
- 仓位 = 200 ÷ 1000 = 0.2 个币。
这样设置的好处是,无论价格怎么波动,单笔亏损永远被控制在总资金的2%以内。波动大的时候自动少买,波动小的时候自动多买。
这是我全程下来最满意的一个设计,也是赚钱的关键之一。市面上一堆所谓“稳定盈利策略”,回测里收益率高得离谱,只因它完全没有把波动率和仓位挂钩,遇到大行情时一次就能爆仓。
我用两周时间把策略参数做完初步回测后,得出的收益曲线并不惊艳,年化收益大概在 30% 左右,但最大回撤控制在10%以内。说实话,放在量化圈这成绩很普通。但这类策略的最大价值在于“可预期、可持续、可复现”,散户真正需要的不是暴富神话,而是活着留在牌桌上。
2.4 选哪些标的、为什么不做股票
标的上我选了流动性较好的主流币对,比如BTC/USDT和ETH/USDT这类。原因很简单:7×24小时交易、有足够的深度、历史数据完整。股票交易受限于开盘时间,人工干预较多,且T+1制度让策略触发信号之后不能立刻平仓,回测和实盘的差异会大很多。
我不做加密货币的技术讲解,这里只是说明选择该市场的实操原因。如果你的目标是验证一套策略逻辑,选一个低门槛、能完整闭环的标的市场是合理的起点。唯一要注意的是,任何市场都有不可预知的风险,我没有把全部资金放进去,只拿了总资产里的一小部分做实验。
3. 85天实操过程全记录:每笔交易背后的决策逻辑
3.1 策略如何决定进场的
这套策略进场逻辑并不复杂——双均线趋势确认:
- 短期均线上穿长期均线时,视为入场信号;
- 短期均线仍在长期均线上方时,持仓不动;
- 短期均线下穿长期均线时,无条件离场。
同时配合一个震荡过滤器:近20根K线中的ATR如果低于某阈值,说明市场波动不足,即使出现金叉也不交易。
原因很简单,均线交叉本身反应迟钝,在震荡行情里会产生大量假信号。加一道波动率过滤看似增加了条件,实际反而可以减少无效交易。整个策略下来,85天内总交易次数只有17笔,每一笔都经得起复盘。
项目第9天出现了第一笔值得记录的盈利:
- 某主流币当时出现了一波快速拉升,短期均线迅速上穿;
- 波动率刚从低位启动,符合进场条件;
- 策略在26930 U附近买入 0.15个币;
- 持仓三天后价格涨到28240 U,策略触发动态止盈;
- 单笔盈利约170 U,折合人民币约1200元。
这第一笔盈利对项目意义不小。它验证了策略端到端全流程跑通了:数据获取、信号计算、下单、追踪止盈、日志记录都能正常工作。而且全程没有任何人工干预,我甚至是在收盘后看推送才知道那天的单子已经平掉了。
3.2 浮亏阶段的处理方式
当然,不是每一笔交易都赚钱。项目运行到第31天左右,市场进入震荡状态,策略连续止损了三笔,累计浮亏占到账户净值的4.8%。当时最难受的不是亏钱,而是系统看起来“很弱”,策略频繁开仓,没过两天又止损离场,账户净值不断下滑。
我复盘了日志,确认三笔止损全部符合规则,波动率过滤器也没有被绕过。所以我没有中断系统,而是又等了五天。第36天,市场出现一轮明显的趋势行情,策略重新入场后单笔赚了260 U,一下子把前面的亏损全部抹平还多出来一些。
这个过程真正让我体会到了“信任系统”有多难。看着账户每天缩水,人工干预的念头隔几分钟就会冒出来,但操盘记录告诉我:如果中途按下暂停键,后面的反弹全部吃不到。
3.3 最大单笔盈利 3733 元是怎么来的
整个项目期间最亮眼的一笔交易发生在第58天到第64天之间。
第58天时,某主流币种在连续一周的横盘后,ATR值突然从低位放大,同时均线系统形成多头排列,策略在价位28600 U附近自动买入0.8个币。买入后第二天币价小幅回调,但始终没有触及止损线。策略继续持有。
第61天,行情开始启动。日K连续出现放量阳线,价格在两天内从28900 U 一路涨到30150 U。这种走势如果手动交易,很容易在 29500 附近就因恐高而离场,但策略的逻辑是“趋势未破就持有”,完全没有理会中间的小回调。
第64天,价格冲到 31450 U 后高位出现一根长上影线,短期均线开始走平,动态止盈模块自动触发平仓:
- 买入价格:28600 U × 0.8 个币 = 22880 U;
- 卖出价格:31450 U × 0.8 个币 = 25160 U;
- 差价:2280 U;
- 扣除手续费后,净利润约 510 U,按当时汇率折合人民币 3733 元。
这就是标题里“最多赚到3733元”这笔交易的完整来龙去脉。它没有多神秘,就是趋势跟踪策略在单边行情里让利润完整奔跑了一次。
3.4 收益与回撤的完整记录
整个85天下来,账户的总收益约 2170 U,折合人民币约 15700 元。大家可能觉得这笔收益不算高,但注意几个关键指标:
| 指标 | 数值 |
|---|---|
| 总交易笔数 | 17 笔 |
| 胜率 | 约 47% |
| 平均单笔盈利 / 平均单笔亏损 | 3.7 : 1 |
| 最大单笔盈利 | 3733 元 |
| 最大连续亏损 | 3 笔 |
| 最大回撤 | 8.2% |
| 总收益率(相对初始本金) | 约 21.7% |
胜率不到一半,但盈利靠的不是高频的小赢,而是少数几笔大趋势把利润放大。这其实是趋势策略的典型特征:亏的时候小亏,赢的时候大赢。
4. 回测可靠吗?实盘和回测的差距出在哪里
4.1 回测框架里那些“看起来很美”的坑
这个项目做回测时,我也踩了不少经典的坑。最大的一个是对交易手续费和滑价的低估。
很多开源回测框架默认手续费为0,或者只按固定比例千分之一计费。但实盘过程中,限价单不一定能按理想价格成交,尤其进场时价格快速拉升,市价单很容易买在高点。回测时我原本用了极低的滑价假设,后来在实盘第一周就发现单笔成交价普遍比回测模型多滑了0.1%到0.3%。好在我的策略本身盈利空间较大,这部分成本还可以消化,否则策略很可能已经被打亏了。
4.2 参数优化陷阱
回测中我还犯过过度拟合的错误。一开始我加了太多条件,把自己能想到的指标全部叠上去,结果回测曲线那叫一个漂亮。后来换了另一段时间的数据做样本外测试,收益直接变成负的。
我删掉了大部分指标,只保留均线、ATR、波动率过滤器这三个核心要素。模型越简单,越不容易被行情“牵着鼻子走”。那些试图用几十个参数刻画历史走势的策略,本质上只是在背答案,而不是在解题。
4.3 回测和实盘之间差出来的心理因素
回测永远无法模拟的心理压力,往往是实盘亏损的最大原因。回测软件里你只是看一条资金曲线,亏20%也就是一个数字。实盘里当你看到账户净值在几天内缩水5%,同时各种群里都喊着“牛市要结束了”,你能不能做到继续持有?大概率不能。
这个项目后来能按计划跑完,很大原因是我强制自己在策略运行期间不看盘,只通过每天的日志摘要了解情况。AI系统的意义在于排除情绪干扰,但如果管理策略的人自己忍不住想干预,这个优势就完全无法发挥出来。
5. 项目复盘:哪些决策是对的,哪些我下次会改
5.1 做对的部分:限制人工干预、动态仓位、标的稀缺
最正确的决定是在项目开始时写了一页“操作纪律”,并且在电脑旁边贴了一张纸。内容就三条:
- 除非系统连续三天无法正常运行,否则不手动平仓;
- 每天只查看日志推送,不登录交易所后台;
- 账户净值回撤超过15%时,才启动人工评估。
这些纪律决定了我在浮亏阶段没有做蠢事。动态止损和仓位管理则保证了任何一笔黑天鹅级别的行情都不会伤到账户根基。选主流币对也是对的,流动性充足意味着滑价可控、信号真实,不会因为盘口太薄出现神仙价格。
5.2 下次会改的部分:收益曲线平滑度、异常处理机制
最大的不满意在于收益分布过于集中。整个85天的利润里,前五笔盈利贡献了全部收益的70%左右。这代表策略空窗期太长,资金利用率不高。
下次优化方向有两个思路:
第一个思路是增加一个网格增强模块。趋势策略休息的时候,用小仓网格赚取震荡行情的利润,以此平滑现金流。但需要注意网格和趋势无法同时运行,需要根据整体波动率状态切换模式。
第二个思路是引入相关性统计,把标的从单一主链币扩展到跟其他主流币之间的相关性分析。这样做可以在趋势策略信号空缺时增加收益机会,但也会扩大风险面,需要重新评估回撤指标。
另外,整个项目期间还遇到过两次 API 连接中断的情况。虽然策略有简单的断线重连机制,但重连后的状态同步不够细致,导致有两笔订单重复提交。后面我会在管理端加上幂等校验字段,确保同一个信号不会因为网络重试而下单两次。
5.3 关于情绪管理与策略信任
这里想多说一句:做自动交易,最难的从来不是策略本身,而是“敢不敢让策略亏着钱继续跑”。
项目第31天到第36天的过程,对我的考验比任何技术门槛都大。当时身边人建议我停一停,我的选择是硬扛,因为策略日志没有任何异常,信号全部符合预期。最终市场给了正反馈。这种“信任系统”的能力,不是靠胆量,而是靠充分了解策略逻辑、验证过回测结果、并且在事前就设定好“什么情况叫失败、什么情况只是波动”。
6. 常见问题与避坑指南
6.1 新手最容易犯的五个错误
| 错误行为 | 后果 | 正确做法 |
|---|---|---|
| 满仓单一标的 | 一把亏光本金 | 单笔风险控制在2%以内 |
| 人工随意干预策略 | 交易计划等于摆设 | 写清干预条件,管理好账户权限 |
| 用回测曲线代替实盘验证 | 过度自信 | 先用最小资金跑至少一个月 |
| 一亏损就调整参数 | 策略参数漂移,失去参考价值 | 连续20笔以上亏损后才考虑调整 |
| 忽略手续费和滑价 | 账面盈利变实亏 | 回测时单独评估摩擦成本 |
6.2 我在实盘中遇到过的具体异常和解决方案
第一个是刚才提到的 API 断线重连导致的重复下单。目前的解决思路是引入请求的唯一ID,在发送下单指令之前查询上一次请求的状态,确保同一信号不会被执行两次。
第二个是交易所限频导致信号延迟。CTA类策略对执行时间比较敏感,少则几分钟的延迟可能让入场价格差出半个百分点。我最后的处理是专门保留了一个低延迟通道给下单请求,数据拉取和交易执行分走不同的API接口。
第三个是时间同步问题。量化策略依赖精确时间戳,服务器时间偏差过大时,本地K线收盘时间和交易所时间对不上,信号会出现错位。我配置了NTP自动同步,并在日志里记录每次同步偏移量。
整体来说,这套系统的技术复杂度不高,最难的部分反而是运维的细心程度。只要日志完整、通知及时、幂等处理好,大部分问题都可以在几秒钟内定位到原因并解决。
7. 写在最后:这套方案什么人适合借鉴
如果你想让 AI 帮你投资,想从中获得长期稳定的收益,我的建议是把预期放低一些,同时把重心放在风控和系统稳定性上。这个项目最终赚了钱,主要是三件事做对了:仓位控制得当、策略设计合理、没有在关键时刻自己吓自己。
如果你正在考虑类似的事情,我建议从“最小可行产品”开始:拿一小笔闲钱,选一套你完全理解逻辑的简单策略,让它跑上至少两个月。中间无论盈亏,都完整记录下来。先不要追求收益,而是追求“系统能健康运行三个月”这个目标。
85天下来,我最大的收获并不是那笔 3733 元的盈利,而是用真实数据验证了一件事:普通人缺乏的不是赚钱机会,而是面对波动时的纪律。AI 在这个项目里真正帮到我的,是替我把纪律执行到底。
后面我打算把手上的策略继续迭代下去,把网格模块加进去做收益率平滑,顺便把单笔风险控制精度再提高一个台阶。投资这条路没有终点,每一次实盘都是和不确定性的一次切磋,把日志做完整,把心态摆平,剩下的交给时间。