引言:币圈的轮动游戏
加密货币市场每天都在上演不同的故事。今天比特币领涨,明天以太坊接棒,后天可能连冷门币ZEC都能翻红。各个币种轮番上涨或下跌,热点切换之快让人目不暇接。对于机构来说,他们有专业团队24小时盯盘、有内幕消息提前布局;但对于散户而言,这种应接不暇的轮动行情往往意味着:要么踏空,要么追高被套。
传统的轮动策略在金融领域其实很经典——机构用它做行业轮动、资产轮动,效果都不错。但问题是,传统轮动需要你有宏观眼光,要判断哪个板块会起来、什么时候该切换。对于没有内幕消息、反应又慢半拍的散户来说,基本就是靠感觉,成功率可想而知。那么,如果让AI来做这件事呢?它可以24小时不间断地监控技术指标、抓取新闻、分析持仓,也不会因为情绪波动做出冲动决策。今天,我就用发明者量化平台的工作流来实现这样一套AI轮动系统,并把完整的实现逻辑分享给大家。
系统架构:三层决策机制
这套AI轮动系统的核心设计理念是:让技术指标做筛选,让新闻分析做验证,让AI做最后把关。整个系统分为三个核心模块:
1. 技术筛选层:多周期均线综合评分
系统首先从高流动性币种中(按24小时交易量排序),通过多周期均线体系给每个币种打分。这个评分系统包含三个维度:
均线排列形态(arrangementScore:-4到+4)
- 计算四条不同周期均线(短期、中短期、中长期、长期)的相对位置
- 完美多头排列(短>中短>中长>长)得分+4
- 完美空头排列得分-4
- 其他情况根据排列完整度赋予中间分值
均线扩散间距(gapScore)
- 衡量均线之间的距离是扩大还是收窄
- 正值代表向上扩散(多头趋势加速)
- 负值代表向下扩散(空头趋势加速)
均线时序变化(timeSeriesScore:-4到+4)
- 统计四条均线有几条在上升、几条在下降
- 全部上升得分+4,全部下降得分-4
最终综合得分计算公式:
\[ \text{score} = \text{扩散间距} \times \text{排列形态得分} \times \text{时序变化得分} \]
这个公式的妙处在于:只有三个指标同时共振时,得分才会显著。如果均线排列很好但扩散间距在收窄,说明趋势在减弱,得分就不会太高。
1. 多周期设计
javascript
var s = exchange.GetRecords(processedSymbol, wheelPeriod / 4); // 短期
var ms = exchange.GetRecords(processedSymbol, wheelPeriod / 2); // 中短期
var ml = exchange.GetRecords(processedSymbol, wheelPeriod * 2); // 中长期
var ls = exchange.GetRecords(processedSymbol, wheelPeriod * 4); // 长期
如果wheelPeriod=60分钟,则实际周期为:15分钟、30分钟、120分钟、240分钟,覆盖短中长期趋势。
2. 排列形态打分逻辑
javascript
if (bullCount == 3) {
arrangementScore = 4; // 完美多头排列
} else if (bearCount == 3) {
arrangementScore = -4; // 完美空头排列
} else if (bullCount == 2) {
// 连续的两个条件得分更高
if ((compare1 > 0 && compare2 > 0) || (compare2 > 0 && compare3 > 0)) {
arrangementScore = 3;
} else {
arrangementScore = 2;
}
}
这里的设计是:连续的均线排列比分散的排列得分更高,因为连续排列代表趋势更清晰。
3. 综合得分的非线性设计
javascript
if (gapScore > 0) {
comprehensiveScore = gapScore * arrangementScore * timeSeriesScore;
} else if (gapScore < 0) {
comprehensiveScore = gapScore * Math.abs(arrangementScore) * Math.abs(timeSeriesScore);
}
这个设计确保了:
- 只有当扩散、排列、时序三者共振时,得分才会显著
- 如果其中一个指标为0或接近0,综合得分会很低
- 避免了单一指标误导
系统会自动筛选出两组币种:
- 正向组:得分最高的前5名,适合做多
- 负向组:得分最低的后5名,适合做空
但这里有个关键设计:如果你已经持有某个币的多仓,即使它不在前5名,系统也会把它加入正向组;空仓同理。这是为了让AI能够持续监控你的持仓,判断是否需要止损或反手。
2. 新闻验证层:基本面辅助判断
光有技术信号还不够,我们还需要知道市场为什么会这样走。系统会自动抓取每个币种最近的5条新闻(通过CryptoCompare接口),可能是项目进展、机构动向、监管消息等。
新闻面的作用是验证技术信号的可靠性:
- 共振:技术多头+利好消息 → 信号增强
- 矛盾:技术多头+重大利空 → 警示风险
- 中性:技术多头+无关新闻/无新闻 → 纯技术判断
这里需要注意的是,新闻抓取可能存在延迟或缺失(API限制、币种冷门等)。但系统的设计原则是:新闻是辅助,不是必需。如果新闻缺失,AI会标注"新闻缺失,纯技术判断",然后基于技术指标和持仓状态做出决策。
3. AI决策层:最后一道防线
这是整个系统的灵魂。AI不是主策略执行者,而是监督顾问——在关键时刻提供第二层判断,识别技术信号无法捕捉的风险。
系统会把以下信息全部告诉AI:
- 技术指标(score、排列形态、扩散间距等)
- 新闻摘要(标题列表)
- 持仓状态(无持仓/持有多仓/持有空仓/反向持仓)
- 盈亏情况(如有持仓)
AI需要处理三种核心情景:
情景1:无持仓 → 判断是否开仓
| 技术信号强度 | 新闻面 | 风险 | AI决策 |
|---|---|---|---|
| 强(score绝对值>0.05) | 支持/中性/无新闻 | 无 | 开多/开空 |
| 强 | 矛盾 | 无 | 观望 |
| 弱(<0.02) | 任何 | 无 | 观望 |
情景2:同向持仓 → 判断是否继续持有
这里的"同向"是指持仓方向与技术信号一致(例如持有多仓且技术显示多头)。系统会特别标注"持有多仓但指标强度不在前列",意味着这个多仓虽然还在多头名单里,但已经不在前5强了,趋势在弱化。
| 信号状态 | 新闻面 | 盈亏 | AI决策 |
|---|---|---|---|
| 在前5/后5 | 稳定/支持/无新闻 | 任何 | 持有 |
| 在前5/后5 | 转向/利空 | 盈利 | 平仓 |
| 不在前列 | 稳定/无新闻 | 盈利 | 持有(观察) |
| 不在前列 | 稳定/无新闻 | 亏损 | 平仓(止损) |
| 不在前列 | 转向/利空 | 任何 | 平仓 |
情景3:反向持仓 → 判断是否平仓/反手
这是AI监督者的核心价值场景。反向持仓是指持仓方向与技术信号相反(例如持有多仓但技术已转空头)。
| score绝对值 | 新闻面 | AI决策 |
|---|---|---|
| 强(>0.05) | 确认反转 | 反手(平仓后开反向仓) |
| 强(>0.05) | 中性/无新闻 | 反手 |
| 强(>0.05) | 矛盾 | 平仓(技术和新闻打架时保守) |
| 中等(0.02-0.05) | 确认反转 | 反手 |
| 中等(0.02-0.05) | 中性/无新闻 | 平仓(信号不够强) |
| 中等(0.02-0.05) | 矛盾 | 平仓 |
| 弱(<0.02) | 任何 | 持有(观察,信号太弱) |
反手操作的严格条件(必须同时满足):
- score绝对值 > 0.05(强信号)
- 新闻面明确支持反向,或中性/无新闻(但如果新闻矛盾则只平仓)
- 无重大风险(如监管打击、黑客攻击)
方向错了就纠正,强信号+确认反转=果断反手;强信号+新闻矛盾=保守平仓;中等信号=只在新闻确认时才反手,否则平仓;弱信号=继续观察,不急于操作。
AI输出的决策格式如下:
json
[
{
"symbol": "BTCUSDT",
"currentPosition": "无持仓",
"score": 0.0856,
"newsAnalysis": "机构增持,生态扩张",
"overallJudgment": "技术多头强劲,新闻面支持,开多",
"decision": "开多"
},
{
"symbol": "ETHUSDT",
"currentPosition": "持有空仓",
"score": 0.0623,
"newsAnalysis": "质押增加,资金流入",
"overallJudgment": "反向持仓亏损,技术已转多,止损",
"decision": "平仓"
}
]
交易执行:固定金额管理风险
AI给出决策后,系统会自动执行交易。这里采用的是固定金额交易机制:
假设你设置每次交易100 USDT,不管币的价格是100块还是10000块,系统都按100U来计算应该开多少张合约。计算公式:
合约张数 = 金额(U) / 当前价格 / 合约面值(CtVal)
例如:
- BTC价格 = 45000 USDT
- 合约面值 = 0.001 BTC
- 固定金额 = 100 USDT
- 合约张数 = 100 / 45000 / 0.001 ≈ 2.22张
系统会自动处理:
- 数量精度(按交易所要求取整)
- 最小/最大数量限制
- 杠杆设置(默认10倍)
这样做有两个好处:
- 风险敞口均等:每个币的风险是一样的,不会因为价格高低导致有的币亏一点点,有的币亏一大笔
- 资金管理简单:10个仓位 = 1000U风险敞口,一目了然
独立风控:移动止损系统
交易执行之后,还需要风险控制。这套系统使用独立运行的移动止损,与主策略分离,按秒级别一次的高频检查持仓。
移动止损不是简单的固定止损,而是:保护浮盈,让利润奔跑。
工作流程:
- 系统记录每个持仓的历史最高盈利
- 实时计算当前盈利
- 计算回撤 = 最高盈利 - 当前盈利
- 如果回撤超过阈值(例如1.5%),自动平仓
代码实现:
javascript
function monitorPositionWithTrailingStop(coin) {
const pos = getPosition(coin); // 获取持仓
if (!pos) return;
const currentPnl = calculatePnl(pos); // 当前盈亏百分比
// 获取历史最高盈利
const symbolKey = `${coin}_USDT.swap_maxprofit`;
let maxProfit = _G(symbolKey);
// 如果当前盈利更高,更新最高盈利
if (maxProfit === null || currentPnl > maxProfit) {
maxProfit = currentPnl;
_G(symbolKey, maxProfit);
Log(`📈 ${coin} 更新最高盈利:${(maxProfit * 100).toFixed(2)}%`);
}
// 计算回撤
const drawdown = maxProfit - currentPnl;
// 触发止损
if (drawdown >= CONFIG.TRAILING_STOP_PERCENT) {
closePosition(coin, pos, "移动止损");
_G(symbolKey, null); // 清除记录
}
}
因为币圈波动快,主策略可能4小时才运行一次(重新筛选币种、判断开平仓),但止损需要实时保护。如果等到4小时后才检查,利润可能早就回吐完了。所以止损系统是独立的工作流,按15秒一次的频率运行,与主策略并行。
可视化监控:三张表让你心里有数
策略在自动运行,但你需要知道它在做什么。系统设计了三张监控表:
1. 账户概览表
一眼看出整体盈亏和系统状态。
2. AI决策信号表(最重要)
这张表告诉你:
- AI给了什么建议
- 为什么这样建议(新闻+判断)
- 执行了没有/为什么跳过
3. 实时持仓表
这张表显示:
- 每个仓位的实时盈亏
- 历史最高盈利(巅峰在哪)
- 当前回撤(离止损线还有多远)
- 颜色警示(回撤接近止损线会变红)
通过这三张表,你随时能看到系统在做什么、为什么这样做、效果怎么样。
系统的局限性:保持清醒的认知
任何策略都不是完美的,这套系统也有明显的局限性:
1. AI质量取决于大模型
大模型功能虽然非常强大,大部分时候表现不错,但极端行情下可能判断失误。
例如:
- 2022年FTX暴雷,技术面还显示多头,新闻面最初也没有明确利空(因为消息传播有延迟),AI可能会建议持有或加仓
- 某些"老鼠仓"操作,技术面突然暴拉暴跌,AI无法识别
毕竟AI是根据历史数据学习的,遇到前所未有的情况(黑天鹅),它也可能懵。
2. 新闻抓取有延迟
系统抓的是公开新闻API,重大消息刚出来的那几分钟可能抓不到,等抓到了价格可能已经变了。
例如:
- 某交易所宣布下架某币,消息发布后1分钟币价暴跌30%,但API可能5分钟后才能抓到新闻
- 监管机构突发公告,币圈媒体还没来得及报道,API里就没有
这是所有自动化系统的通病,内幕消息永远比公开信息快。
3. 技术指标本质是滞后的
均线、趋势这些都是根据历史价格计算的,对突发事件的反应总是慢半拍。
例如:
- BTC从45000跌到30000,均线可能还显示多头排列(因为需要时间来反应)
- 某币突然暴拉50%,均线可能还没转多头
所以这套系统更适合跟趋势,不适合抓拐点。它的优势是在趋势形成后稳定跟随,但无法在底部抄底、顶部逃顶。
4. 固定金额可能不够灵活
固定金额交易虽然风险可控,但也意味着:
- 牛市中无法复利(每次还是100U)
- 熊市中无法减仓(每次还是100U)
如果账户从10000U涨到50000U,理论上应该增加每次交易金额,但系统不会自动调整。需要你手动修改$vars.Amount变量。
如何使用这套系统?
1. 前置条件
- 发明者量化平台账号:https://www.fmz.com
- 交易所API:支持合约交易的交易所(如币安、OKX)
- 大模型凭证:各个大模型接口/OpenRouter账号
2. 部署步骤
- 在发明者平台创建机器人,绑定交易所API
- 复制策略源码
- 设置触发器周期,第一条确定轮动周期,第二条确定止盈止损检查周期
- 配置工作流变量:
coinNumber:高流通币种筛选数量wheelPeriod:均线计算周期参数meanPeriod:均线周期Amount:每次交易金额lossPercent:移动止损比例
- 配置AI大模型凭证,选择大模型
- 启动策略
策略优化方向
这套系统还有很多可以改进的地方:
1. 动态仓位管理
当前是固定金额,可以改为:
- 根据账户权益动态调整(例如权益的2%)
- 根据信号强度分配仓位(强信号多投,弱信号少投)
2. 多AI模型投票
不依赖单一大模型,而是用3-5个模型同时判断:
- DeepSeek
- Claude
- GPT
- Gemini Pro
只有多数模型同意时才执行交易,降低单一模型误判风险。
3. 链上数据集成
除了价格和新闻,还可以加入:
- 巨鲸地址动向
- 交易所净流入/流出
- 稳定币供应量变化
这些数据往往比技术指标更早反应趋势变化。
4. 更智能的止损
当前移动止损是固定比例,可以优化为:
- 波动率自适应(BTC用1.5%,山寨币用3%)
- 时间衰减止损(持仓时间越长,止损线越宽松)
- 回撤加速度判断(如果快速回撤,立即平仓)
5. 资金曲线分析
记录每次交易的盈亏,分析:
- 哪些币种胜率高
- 哪些时段表现好
- 哪些信号强度更可靠
用历史数据反过来优化参数。
结语:策略只是工具
写到这里,这套AI轮动系统的完整逻辑就介绍完了。从技术筛选到新闻验证,从AI决策到交易执行,从移动止损到可视化监控,每一个环节都有其设计理念。
但我必须再次强调:任何策略都只是工具,市场是复杂的,有太多不可预测的因素。
这套系统能做的是:
- 帮你24小时监控市场,不错过机会
- 用技术+新闻+AI三层过滤,减少冲动交易
- 用固定金额和移动止损控制风险
- 让你不用盯盘,有更多时间思考和生活
这套系统不能做的是:
- 预测未来(没有圣杯)
- 规避黑天鹅(极端行情会失效)
- 保证盈利(策略有周期,有高光也有低谷)
我们要做的是用好这个工具,结合自己的风险承受能力、资金管理和心态控制,形成一套完整的交易体系。最后,这套系统的完整源码已经开源在发明者量化平台。如果你有任何问题或改进建议,欢迎在社区交流。让我们一起探索量化交易的可能性,在这个充满变数的市场中找到属于自己的节奏。
风险提示:本文仅为技术分享,不构成投资建议。加密货币交易存在巨大风险,请务必谨慎决策,量力而行。
本文配套代码已开源,访问发明者量化平台获取完整工作流:https://www.fmz.com/strategy/524103
- 1




