加密货币市场每天都在上演不同的故事。今天比特币领涨,明天以太坊接棒,后天可能连冷门币ZEC都能翻红。各个币种轮番上涨或下跌,热点切换之快让人目不暇接。对于机构来说,他们有专业团队24小时盯盘、有内幕消息提前布局;但对于散户而言,这种应接不暇的轮动行情往往意味着:要么踏空,要么追高被套。
传统的轮动策略在金融领域其实很经典——机构用它做行业轮动、资产轮动,效果都不错。但问题是,传统轮动需要你有宏观眼光,要判断哪个板块会起来、什么时候该切换。对于没有内幕消息、反应又慢半拍的散户来说,基本就是靠感觉,成功率可想而知。那么,如果让AI来做这件事呢?它可以24小时不间断地监控技术指标、抓取新闻、分析持仓,也不会因为情绪波动做出冲动决策。今天,我就用发明者量化平台的工作流来实现这样一套AI轮动系统,并把完整的实现逻辑分享给大家。

这套AI轮动系统的核心设计理念是:让技术指标做筛选,让新闻分析做验证,让AI做最后把关。整个系统分为三个核心模块:
系统首先从高流动性币种中(按24小时交易量排序),通过多周期均线体系给每个币种打分。这个评分系统包含三个维度:
均线排列形态(arrangementScore:-4到+4)
均线扩散间距(gapScore)
均线时序变化(timeSeriesScore:-4到+4)
最终综合得分计算公式:

这个公式的妙处在于:只有三个指标同时共振时,得分才会显著。如果均线排列很好但扩散间距在收窄,说明趋势在减弱,得分就不会太高。
1. 多周期设计
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. 排列形态打分逻辑
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. 综合得分的非线性设计
if (gapScore > 0) {
comprehensiveScore = gapScore * arrangementScore * timeSeriesScore;
} else if (gapScore < 0) {
comprehensiveScore = gapScore * Math.abs(arrangementScore) * Math.abs(timeSeriesScore);
}
这个设计确保了:
系统会自动筛选出两组币种:
但这里有个关键设计:如果你已经持有某个币的多仓,即使它不在前5名,系统也会把它加入正向组;空仓同理。这是为了让AI能够持续监控你的持仓,判断是否需要止损或反手。
光有技术信号还不够,我们还需要知道市场为什么会这样走。系统会自动抓取每个币种最近的5条新闻(通过CryptoCompare接口),可能是项目进展、机构动向、监管消息等。
新闻面的作用是验证技术信号的可靠性:
这里需要注意的是,新闻抓取可能存在延迟或缺失(API限制、币种冷门等)。但系统的设计原则是:新闻是辅助,不是必需。如果新闻缺失,AI会标注"新闻缺失,纯技术判断",然后基于技术指标和持仓状态做出决策。
这是整个系统的灵魂。AI不是主策略执行者,而是监督顾问——在关键时刻提供第二层判断,识别技术信号无法捕捉的风险。
系统会把以下信息全部告诉AI:
AI需要处理三种核心情景:
情景1:无持仓 → 判断是否开仓

情景2:同向持仓 → 判断是否继续持有
这里的"同向"是指持仓方向与技术信号一致(例如持有多仓且技术显示多头)。系统会特别标注"持有多仓但指标强度不在前列",意味着这个多仓虽然还在多头名单里,但已经不在前5强了,趋势在弱化。

情景3:反向持仓 → 判断是否平仓/反手
这是AI监督者的核心价值场景。反向持仓是指持仓方向与技术信号相反(例如持有多仓但技术已转空头)。

反手操作的严格条件(必须同时满足):
方向错了就纠正,强信号+确认反转=果断反手;强信号+新闻矛盾=保守平仓;中等信号=只在新闻确认时才反手,否则平仓;弱信号=继续观察,不急于操作。
AI输出的决策格式如下:
[
{
"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)
例如:
系统会自动处理:
这样做有两个好处:
交易执行之后,还需要风险控制。这套系统使用独立运行的移动止损,与主策略分离,按秒级别一次的高频检查持仓。
移动止损不是简单的固定止损,而是:保护浮盈,让利润奔跑。
工作流程:
代码实现:
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秒一次的频率运行,与主策略并行。
策略在自动运行,但你需要知道它在做什么。系统设计了三张监控表:

一眼看出整体盈亏和系统状态。

这张表告诉你:

这张表显示:
通过这三张表,你随时能看到系统在做什么、为什么这样做、效果怎么样。
任何策略都不是完美的,这套系统也有明显的局限性:
大模型功能虽然非常强大,大部分时候表现不错,但极端行情下可能判断失误。
例如:
毕竟AI是根据历史数据学习的,遇到前所未有的情况(黑天鹅),它也可能懵。
系统抓的是公开新闻API,重大消息刚出来的那几分钟可能抓不到,等抓到了价格可能已经变了。
例如:
这是所有自动化系统的通病,内幕消息永远比公开信息快。
均线、趋势这些都是根据历史价格计算的,对突发事件的反应总是慢半拍。
例如:
所以这套系统更适合跟趋势,不适合抓拐点。它的优势是在趋势形成后稳定跟随,但无法在底部抄底、顶部逃顶。
固定金额交易虽然风险可控,但也意味着:
如果账户从10000U涨到50000U,理论上应该增加每次交易金额,但系统不会自动调整。需要你手动修改$vars.Amount变量。
coinNumber:高流通币种筛选数量wheelPeriod:均线计算周期参数meanPeriod:均线周期Amount:每次交易金额lossPercent:移动止损比例这套系统还有很多可以改进的地方:
当前是固定金额,可以改为:
不依赖单一大模型,而是用3-5个模型同时判断:
只有多数模型同意时才执行交易,降低单一模型误判风险。
除了价格和新闻,还可以加入:
这些数据往往比技术指标更早反应趋势变化。
当前移动止损是固定比例,可以优化为:
记录每次交易的盈亏,分析:
用历史数据反过来优化参数。
写到这里,这套AI轮动系统的完整逻辑就介绍完了。从技术筛选到新闻验证,从AI决策到交易执行,从移动止损到可视化监控,每一个环节都有其设计理念。
但我必须再次强调:任何策略都只是工具,市场是复杂的,有太多不可预测的因素。
这套系统能做的是:
这套系统不能做的是:
我们要做的是用好这个工具,结合自己的风险承受能力、资金管理和心态控制,形成一套完整的交易体系。最后,这套系统的完整源码已经开源在发明者量化平台。如果你有任何问题或改进建议,欢迎在社区交流。让我们一起探索量化交易的可能性,在这个充满变数的市场中找到属于自己的节奏。
风险提示:本文仅为技术分享,不构成投资建议。加密货币交易存在巨大风险,请务必谨慎决策,量力而行。