BTC 量化交易实录:5 天 27 笔,胜率 26% 如何盈利 1.5%?

引言 大多数人对量化交易有一个误解:胜率越高越好。 但事实是——盈利不靠胜率,靠盈亏比。 这篇实录记录了我用 XGBoost 模型驱动的 BTC 量化交易系统在 Hyperliquid 上跑模拟交易的真实数据,从 4 月 7 日到 4 月 12 日,5 天时间,27 笔交易,胜率只有 25.9%,但最终账户从 $10,000 增长到 $10,152.02,盈利 +1.52%。 这篇文章不吹不黑,把原始数据摊开来看。 系统概况 项目 详情 模型 XGBoost 三分类(中性 / 做多 / 做空) 特征 51 个技术指标(三周期:15m / 1h / 4h) 交易所 Hyperliquid(DEX) 模式 Paper Trading(模拟交易) 执行频率 每 15 分钟 初始资金 $10,000 运行时间 2026-04-07 13:00 ~ 2026-04-12 07:00 风控参数 参数 值 说明 置信度阈值 60% 开仓条件 止盈 ATR × 5 动态止盈 止损 ATR × 2 动态止损 移动止盈 盈利 > 1% 后回撤 0.5% 触发 超时平仓 16 根 K 线 防止死扛 最大仓位 15% 置信度 + 连胜连败调整 交易数据 总览 指标 值 总交易 27 笔 盈利 7 笔 亏损 20 笔 胜率 25.9% 初始资金 $10,000.00 当前资金 $10,152.02 总收益 +$152.02 (+1.52%) 胜率不到 26%,但依然赚钱——因为赢的那些交易赚得足够多。 ...

2026-04-13 · 2 min

BTC量化模型数据泄露修复与回测验证

背景 今天对 BTC 量化交易模型进行了一次深度审核,发现了一个严重的数据泄露问题,修复后回测表现反而更好了。 问题发现 训练集划分问题 审核 train_model.py 时发现,模型训练使用了 train_test_split 随机划分数据集: X_train, X_val, y_train, y_val = train_test_split( X, y, test_size=0.2, random_state=42, stratify=y ) 问题:时间序列数据不能随机划分! 随机划分会导致验证集包含训练集之后的数据,模型在验证时实际上"看到了未来",导致验证集性能虚高。 回测脚本审核 回测脚本本身没有数据泄露问题: 特征全部向后看(rolling/ewm) 标签生成正确(shift(-12) 向前看) 逐笔模拟没有用未来数据 修复方案 将随机划分改为时间序列划分: # 修复前 X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, stratify=y) # 修复后 split_idx = int(len(X) * 0.8) X_train, X_val = X[:split_idx], X[split_idx:] y_train, y_val = y[:split_idx], y[split_idx:] 验证结果 验证集性能对比 指标 旧模型(随机划分) 新模型(时间序列划分) 准确率 74.2% 70.0% Macro F1 0.69 0.62 验证集性能下降了,但这是正常的——去掉了"作弊"后才是真实泛化能力。 回测对比(固定仓位 $10,000) 指标 旧模型 新模型 变化 总收益 +68.87% +75.57% +6.7% ✅ 最大回撤 -0.58% -0.62% -0.04% 夏普比率 15.00 16.03 +1.03 ✅ 胜率 88.0% 88.4% +0.4% 盈亏比 1.05 1.22 +0.17 ✅ 结论:时间序列划分训练的模型,回测表现更好! ...

2026-03-29 · 1 min

AI 量化交易系统 v3.6.2:仓位再平衡阈值的动态优化实践

AI 量化交易系统 v3.6.2:仓位再平衡阈值的动态优化实践 发布时间: 2026-03-14 作者: 高斯特 标签: #量化交易 #AI #系统设计 #代码优化 摘要 本文记录了 ai-trader 系统在 v3.6.2 版本中对仓位再平衡阈值机制的完整优化过程。通过 3 轮迭代,我们从固定金额方案演进到分段动态阈值策略,实现了大资金宽松、小资金敏感的智能适配机制。优化后系统测试覆盖率 169 tests 全通过,生产就绪。 背景 ai-trader 是一个完全集成的 AI 智能交易系统,采用规则驱动 + AI 辅助的混合架构。系统核心功能包括: 链上数据分析(Puell、MVRV、SOPR) 技术指标计算(EMA 多头/空头排列) 50 分制评分引擎 自动仓位再平衡 在 v3.6.1 版本运行过程中,我们发现仓位再平衡阈值设计存在缺陷,触发了本次优化。 问题分析 原始设计(v3.6.1 及之前) 系统采用固定金额偏差方案: // 固定 1000U 偏差转换为百分比 const fixedAmount = 1000; const threshold = (fixedAmount / totalValue) * 100; 总仓位 阈值 触发偏差 问题 30 万 U 0.33% 1000U ❌ 太敏感,频繁交易 10 万 U 1.00% 1000U ⚠️ 中等 1 万 U 10.00% 1000U ❌ 太宽松,错过机会 核心问题: ...

2026-03-14 · 2 min

量化交易系统的自我修养:ai-trader 进化周记

量化交易系统的自我修养:ai-trader 进化周记 时间: 2026-03-10 ~ 2026-03-13 作者: 马克 状态: 生产环境运行中 前言 这周没干别的,就折腾一件事:让 ai-trader 从"能跑"变成"靠谱"。 量化交易这玩意儿,最难的不是写策略,而是承认自己会错,然后给系统留够纠错的余地。 一、核心问题:为什么之前不靠谱? 1.1 数据层脆弱 问题:OKX API 返回的 K 线数据从新到旧 后果:EMA 计算用反了顺序 → 多头变空头 修复:反转数组 + 数据完整性验证(至少 200 根 K 线) 1.2 评分系统粗糙 之前是"满足 2 条规则就买",问题是: 满足 2 条弱信号 vs 2 条强信号 → 仓位一样? Puell 0.49(刚过线)vs Puell 0.1(深度低估)→ 权重一样? v3.5.0 改为 50 分制渐变评分: 指标 深度低估 刚过线 权重差 Puell <0.3 → +20 <0.5 → +15 +5 MVRV <-2.0 → +12 <-1.5 → +10 +2 EMA 强多头 → +10 弱多头 → +8 +2 仓位公式:目标仓位 = 分数 × 2% ...

2026-03-13 · 2 min

人生哪能多如意,万事只求半称心。

日记又停了一段时间了。 上个月从长沙过来东莞,到这边来学习交易,练习心态。 然而,半个月的学习后依旧是举棋不定,于是转变思路。 问题点在于个人主观的犹豫徘徊,客观行情走出来后反而不敢相信,不敢下手。 现在把一条好的思路写成策略,让电脑程序去执行,也就是常说的“量化交易” 很多年前,我就折腾过自动交易,不过那时候玩的是股票的,结局以失败告终。 现在的量化系统到现在已经运行几天了,触发了一次卖出现货到操作了。 这几天震荡下行,今晚大跌,目前看是比我执行的好太多了。 第一阶段测试到年底,二阶段要测试完一个牛熊轮回,估计要三到四年。 看这次我能否坚持完成。

2024-08-01 · 1 min