avatar of ianzeng123 ianzeng123
关注 私信
2
关注
410
关注者

妖币暴涨别慌!工作流做空,精准踩回调

创建于: 2026-03-06 10:15:08, 更新于: 2026-03-12 12:01:05
comments   0
hits   9

[TOC]

妖币暴涨别慌!工作流做空,精准踩回调

本文策略由用户 @Gianbin 开源分享,基于我们之前的工作流双交易路线框架改造而来。感谢慷慨分享,以下是完整的策略逻辑拆解。


一、策略核心理念:反向思维做空妖币

币圈里经常出现”妖币”——一天涨幅三四十甚至翻倍。这类币看起来诱人,但涨得越猛,往往回调越狠

这个策略就抓住了这个特点:

  • 从币安24小时涨幅榜筛选出涨势最猛的币种
  • 用AI多因子模型分析哪些已经”涨到头了”
  • 开空单等待回落,赚追高被套者的钱

整体资金管理原则:固定50U开仓,总头寸控制在500U以内,风险相对可控。


二、工作流整体架构

妖币暴涨别慌!工作流做空,精准踩回调

策略分为两条独立流程,各司其职:

主交易流程(每15分钟):筛选涨幅榜 → 收集数据 → AI分析 → 执行开仓

风控监控流程(每5秒):实时盯盘 → 止盈止损检测 → 倒金字塔加仓 → 可视化仪表板

策略决策可以慢慢跑,但风控反应必须快。这也是为什么两条线的触发频率差距如此之大。


三、主交易流程详解

第一步:筛选涨幅榜妖币

定时触发器每隔15分钟启动一次,从币安拉取所有USDT永续合约行情,筛选出24小时涨幅超过10%的币种,取前20名。同时自动排除已持仓的标的,避免重复建仓。

// 核心筛选逻辑(节选)
const minChange = $vars.minChange || 0.1; // 默认涨幅阈值10%
const topN = $vars.topN; // 取前N名,默认20

// 过滤USDT永续合约,计算24h涨幅
const change24h = open24h > 0 ? (price - open24h) / open24h : 0;
if (change24h < minChange) continue; // 低于阈值直接跳过

// 排除已持仓币种
if (excludeHolding && holdingSymbols.indexOf(symbol) !== -1) continue;

// 按涨幅降序,取前N名
usdtPairs.sort((a, b) => b.change24h - a.change24h);
const topGainers = usdtPairs.slice(0, topN);

这一步相当于”海选”,把最猛的妖币先捞出来备用。


第二步:多维度数据收集

光看涨幅不够,系统还会同步收集以下数据,为AI分析做准备:

数据维度 含义 用途
持仓量(OI) 合约市场总持仓规模 衡量流动性与市场热度
资金费率 多空双方支付比例 判断做空是否已过度拥挤
市值(MCap) 流通市值 计算OI/MCap杠杆率
K线数据 日线OHLCV 技术形态分析

其中OI/MCap比率是核心指标——这个比率越高,说明市场杠杆越高,爆仓风险越大,做空的胜算越高

// 通过币安API获取持仓量(节选)
const ret = exchange.IO("api", "GET", "/fapi/v1/openInterest", "symbol=" + symbol);
if (ret && ret.openInterest) {
    openInterest = parseFloat(ret.openInterest) * coin.price; // 折算成USD
}

// 计算OI/MCap比率
const oiMcapRatio = marketCap > 0 ? openInterest / marketCap : 0;

市值数据从CoinMarketCap API获取,并做了30分钟本地缓存,避免频繁调用外部接口。


第三步:AI六因子评分系统

这是整个策略的核心。收集到数据后,打包送给AI(这里用的是x-ai/grok-4.1-fast)进行评分,满分10分,只有达到8分以上的标的才会进入候选开仓名单。

六个因子及权重

因子 权重 评分逻辑
OI/MCap比率 3.5 >35%得满分,杠杆越高越危险
K线形态 2.8 长上影线/高位十字星等见顶信号得高分
持仓量 1.5 流动性越好得分越高
成交量 1.5 交易越活跃得分越高
涨幅 0.5 已通过初筛,区分度较低
资金费率 0.2 多头越拥挤得分越高

OI/MCap比率权重最高(3.5分),是因为它直接反映市场杠杆程度——杠杆越高,一旦反转就越容易引发踩踏式平仓,做空的赔率更好。

K线形态评分规则

长上影线突破新高(2.8分):high创新高,且上影线 > 实体 × 2 高位长上影线(2.4分):上影线 > 实体 × 2,且收盘接近24h最高价 高量阴线(2.0分):收阴,且成交量 > 前日 × 1.5 高位十字星(1.8分):实体 < 振幅 × 0.1,且价格接近最高位 连续两根阴线(1.5分)

硬性过滤条件(打分前先过)

在AI评分之前,策略会先做几道硬过滤,不满足直接跳过不评分:

  1. 已持仓 → 跳过(防止重仓)
  2. 资金费率 < -0.20% → 跳过(空头已过度拥挤)
  3. 持仓量 < 3000万美元 → 跳过(流动性不足)
  4. 周线回撤 > 5% → 跳过(距最高点太远,可能已跌过一波)
  5. 日内回撤 > 5% → 跳过(今日已从高点回落,不在高位)
// 周线最高价计算(节选)
const weeklyHigh = Math.max(...klines.slice(-7).map(k => k.high));
const weeklyDrawdown = (weeklyHigh - price) / weeklyHigh;

if (weeklyDrawdown > 0.05) {
    // 距周线高点超5%,跳过
    filtered.weeklyDrawdown++;
    continue;
}

最终决策逻辑

总分 ≥ 8.0 且日内回撤 ≤ 5% 时,进入决策判断:资金费率 ≥ -0.15% 则输出「开空」;资金费率在 -0.20%~-0.15% 之间则输出「谨慎开空」。总分 < 8.0 的标的不输出、不开仓。


第四步:交易执行

AI输出JSON格式的决策结果,交易执行节点解析后下单:

// 执行开空(节选)
function executeShort(coin, signalInfo) {
    exchange.SetCurrency(coin + '_USDT');
    exchange.SetContractType("swap");
    exchange.SetMarginLevel(CONFIG.DEFAULT_LEVERAGE); // 设置需求杠杆

    // 根据固定金额计算张数
    const contractAmount = calculateContractAmount(
        CONFIG.FIXED_AMOUNT_USD, // 固定50U
        currentPrice,
        market
    );

    exchange.SetDirection("sell");
    const orderId = exchange.Sell(-1, contractAmount); // 市价开空

    if (orderId) {
        _G(`${coin}_USDT.swap_maxprofit`, 0); // 初始化最高盈利记录
        Log(`✅ ${coin}: 开空成功 评分${signalInfo.score}`);
    }
}

每次开仓固定50U,风险单一可控。


四、风控监控流程详解

每5秒触发一次,持续盯着所有持仓,执行两个核心功能:倒金字塔加仓止盈止损

倒金字塔加仓

这是这个策略最有意思的设计。做空之后,如果价格不跌反涨,正常人会止损跑路。但这个策略选择逆势加仓——越涨越加,因为涨得越高,最终回调的幅度往往越大。

加仓规则如下:

初始开仓 50U(开仓价记为 P0)。若价格从 P0 上涨 50%,触发第一次加仓 150U,记录此时价格为 P1。若价格从 P1 继续上涨 70%,再触发第二次加仓 300U。最多加仓两次,三笔合计总头寸上限 500U(50 + 150 + 300)。

// 加仓触发检测(节选)
function checkAndExecutePyramidAdd(coin, entryPrice, currentPrice, isShort) {
    const addCount = _G(addCountKey) || 0;
    if (addCount >= 2) return null; // 最多加仓两次

    if (addCount === 0) {
        // 第一次加仓:从开仓价涨50%触发
        triggerPrice = storedEntryPrice * (1 + PYRAMID_CONFIG.ADD1_TRIGGER);
        addAmount = PYRAMID_CONFIG.ADD1_AMOUNT; // 150U
    } else if (addCount === 1) {
        // 第二次加仓:从第一次加仓价涨70%触发
        triggerPrice = add1Price * (1 + PYRAMID_CONFIG.ADD2_TRIGGER);
        addAmount = PYRAMID_CONFIG.ADD2_AMOUNT; // 300U
    }

    if (currentPrice >= triggerPrice) {
        return { level: addCount + 1, amount: addAmount, triggerPrice, currentPrice };
    }
    return null;
}

这个设计的逻辑:妖币越涨越亢奋,泡沫越吹越大,最终回调时因为高杠杆踩踏会更猛烈。在高位持有更大仓位,一旦反转利润成倍放大。

风险也很明显:如果币种真的一直涨不回来(比如遇到真正的牛市单边行情),亏损同样会放大,因此账户应该持有足够的金额应对波动风险,防止被爆仓强平。在同时策略明确头寸上限500U,不会无限加仓。


止盈止损机制

止盈采用回撤止盈模式,而非固定止盈:

当持仓最高盈利达到 35% 时,自动启动回撤监控;一旦从最高盈利点回撤 5%,立即触发平仓。

这样设计的好处是”让利润奔跑”——不会因为提前止盈错过更大利润,同时也不会坐电梯把浮盈全吐回去。

// 自动止盈触发逻辑(节选)
if (enableAutoTpDrawdown && isShort && tpDrawdown === 0 && maxPnlPercent >= autoTpTrigger) {
    tpDrawdown = autoTpDrawdownValue; // 设置5%回撤止盈
    _G(tpDrawdownKey, tpDrawdown);
    Log(`🎯 ${coin} 最高盈亏达${maxPnlPercent}%,自动启用止盈回撤5%`);
}

// 触发止盈
if (tpDrawdown > 0 && maxPnlPercent > 0 && drawdown >= tpDrawdown) {
    autoCloseReason = `止盈回撤(回撤${drawdown}%≥${tpDrawdown}%)`;
}

止损方面,支持手动设置固定百分比止损,作为底线保护。


五、可视化仪表板

妖币暴涨别慌!工作流做空,精准踩回调

策略内置四个监控面板,方便实时掌握运行状态:

账户概览:权益、累计盈亏、盈利率、账户杠杆(带风险等级颜色提示)

AI信号表:记录每次AI决策的评分、决策结论、各因子得分和分析原因,不用猜AI在想什么

持仓监控表:实时显示每个仓位的入场价、当前价、浮盈浮亏、最高盈利记录、当前回撤、加仓触发价格,以及止盈止损状态

网格详情:持仓配合网格交易时的订单状态

每隔5秒刷新一次,通过FMZ平台的LogStatus渲染为交互式表格,支持直接点击平仓、修改止盈止损参数等操作。


六、策略优缺点客观评估

优势

逆向思维,天然有对手盘。当市场追涨时做空,流动性充足,滑点小。

AI多因子筛选,不是盲目做空。六个维度综合评分,过滤掉大量低质量信号,只做评分8分以上的标的。

倒金字塔配合回撤止盈,盈亏比不错。高位越涨越加仓,反转幅度大,潜在利润高;止盈不固定,让利润充分释放。

头寸严格控制。单笔最多500U,即便全亏也是可承受的。

风险与局限

遭遇单边牛市时会持续亏损。如果市场进入强势上涨周期,做空涨幅榜可能连续踩坑。

倒金字塔加仓是双刃剑。逆势加仓放大了胜利时的利润,同样也放大了失败时的亏损。如果妖币真的一直涨(比如某项目有重大利好),三次仓位全部亏损,损失最大500U。

适用场景:震荡市或熊市环境,不适合单边牛市。在使用前需要对大盘环境有基本判断。


七、写在最后

这个策略的核心思路:用数据和AI取代主观判断,用严格的头寸控制替代侥幸心理

不论是六因子评分体系的设计,还是OI/MCap比率作为核心指标的选择,都能看出作者对市场微观结构有扎实的认知——知道什么指标真正有用,什么是噪音。

当然,任何策略都有其适用边界。工具是死的,市场是活的。建议在实盘之前充分回测,根据自己的风险承受能力调整参数,不要无脑照搬。


特别感谢用户 @Gianbin 将这套策略毫无保留地分享了策略思路。正是这种开源精神,让更多人有机会学习和探索量化交易的可能性。如果你也有好的策略思路,欢迎交流!

相关推荐