← 返回文章列表
March 24, 2026
5 分鐘閱讀

如何捕捉山寨幣拉盤後的暴跌:系統化方法

如何捕捉山寨幣拉盤後的暴跌:系統化方法
#山寨幣
#拉盤
#砸盤
#做空
#衍生品
#資金費率
#演算法交易

每個加密貨幣交易者都至少目睹過這樣的場景:一個昨天還無人知曉的代幣,4小時內暴漲800%。推特上火箭表情滿天飛。Reddit上湧現"這只是開始"的帖子。你那位一個月前連訂單簿和麥當勞點餐都分不清的同事,給你發訊息:"兄弟,至少投一百塊進去"。12小時後,代幣從峰值跌去85%。一片寂靜。火箭已刪。

問題不在於是否會暴跌。問題在於如何系統化地從中獲利,而不被拉盤本身碾壓。

本文不構成投資建議(這是沒人看但律師堅持要加的免責聲明)。這是一篇關於識別低流動性資產脈衝行情反轉點的機制、訊號和演算法的技術分析。

拉盤砸盤的解剖學:一場瘋狂的三個階段

在做空之前,你需要理解這個現象的結構。每一次山寨幣的拉盤砸盤都經歷三個階段,每個階段在資料中都有其特徵性訊號。

拉盤砸盤解剖圖

階段一:吸籌(靜默狩獵)

持續時間:幾小時到幾天不等。

某個群體——內幕人士、協調的Telegram群組,或者僅僅是一個擁有資訊優勢的大戶——開始悄悄買入代幣。操作非常謹慎:小額訂單,分散在多個交易所,通常在亞洲交易時段進行(此時流動性最低,市場注意力分散)。

資料中可見的特徵:

  • 成交量逐步增加(比過去7天均值高50-200%),但價格幾乎不動
  • 買盤側訂單簿變厚:在當前價格下方2-5%處出現"掛單牆"
  • 鏈上指標(針對DEX代幣):大額轉賬至交易所,獨立買家錢包數量增長
  • 永續合約的資金費率(如果有的話)開始輕微上升

在這個階段做空為時過早。你還不知道這是吸籌還是有機需求。區分兩者往往是不可能的——差異只有事後才能看出來。

階段二:脈衝(狂歡派對)

持續時間:30分鐘到12小時。

價格突破關鍵阻力位,級聯反應開始。空頭的止損被清算。FOMO(錯失恐懼症)將散戶捲入。加密推特變成迴音室。每一次轉發都是一個新的50倍槓桿多頭。

特徵訊號:

  • 成交量比均值高1000-5000%(沒有打錯)
  • 資金費率飆升至每8小時0.1-0.5%(正常值為0.01%)
  • 持倉量呈指數級增長:新倉位開設速度快於關閉速度
  • 買賣價差擴大3-10倍,因為賣盤側流動性不足
  • 訂單簿上方出現真空:當前價格與最近的大額賣單之間一片空白

在這個階段做空等於自殺。 這就像站在火車前面,因為"它總會停下來的"。是的,它會停下來。但到那時你早已被清算了。更多細節見下文"不該做什麼"部分。

階段三:派發與崩盤(宿醉)

持續時間:2到48小時。

內幕人士開始獲利了結。價格出現首次明顯回撥(從峰值下跌15-30%)。散戶"抄底"。價格反彈。然後再次下跌。每次反彈都更弱。每次下跌都更深。

資料中的變化:

  • 成交量依然很高,但向賣方傾斜
  • 資金費率開始下降,但仍處於異常高位
  • 持倉量停止增長或開始下降(多頭平倉)
  • 出現大額市價賣單,將訂單簿"啃"下好幾檔
  • 鏈上資料:大額資金從內幕人士錢包轉入交易所

這就是狩獵區。 工作從這裡開始。

做空的關鍵入場訊號

單個訊號是弱的。三個以上的組合才是可操作的假設。

入場訊號

1. 資金費率:貪婪稅

資金費率是在永續合約上持有倉位的成本。當所有人都想做多時,多頭向空頭付費。費率越高,市場向一側傾斜越嚴重。

資金費率(每8小時) 解讀 操作
0.01% 正常
0.03-0.05% 多頭需求增加 觀察
0.05-0.1% 強烈傾斜 準備做空
0.1-0.3% 極端傾斜 積極尋找入場點
> 0.3% 瘋狂 確認後做空

為什麼有效: 在每8小時0.3%的資金費率下,多頭每天僅持倉成本就要支付約1%。在10倍槓桿下,這是每天10%的資金。這種狀態無法持續太久——倉位會開始關閉,從而壓低價格。

注意: 極端的資金費率本身不是做空訊號。在價格繼續上漲期間,它可能維持數小時甚至數天的高位。資金費率是過濾器(確認傾斜),而非觸發器(入場點)。

def funding_rate_signal(
    current_rate: float,
    historical_rates: list[float],
    lookback: int = 90,  # 90个周期 = 30天
) -> dict:
    """
    评估当前资金费率的异常程度。

    Returns:
        signal: 'neutral' | 'elevated' | 'extreme' | 'insane'
        z_score: float — 偏离正常值的程度
        percentile: float — 在历史数据中的百分位
    """
    import numpy as np

    hist = np.array(historical_rates[-lookback:])
    mean = hist.mean()
    std = hist.std()

    z_score = (current_rate - mean) / std if std > 0 else 0
    percentile = np.searchsorted(np.sort(hist), current_rate) / len(hist)

    if z_score > 4:
        signal = 'insane'
    elif z_score > 3:
        signal = 'extreme'
    elif z_score > 2:
        signal = 'elevated'
    else:
        signal = 'neutral'

    return {
        'signal': signal,
        'z_score': round(z_score, 2),
        'percentile': round(percentile, 4),
        'annualized_cost': round(current_rate * 3 * 365 * 100, 1),  # 年化百分比
    }

2. 持倉量:誰被困住了

持倉量(OI)是期貨中未平倉合約的總量。當OI隨價格一起上升——新參與者正在入場(主要是多頭)。當價格開始下跌但OI仍然很高——這些多頭被困住了。他們的清算將成為砸盤的燃料。

關鍵模式:

價格 OI 解讀
上漲 上漲 新多頭入場(拉盤進行中)
上漲 下跌 空頭平倉(空頭擠壓)
下跌 高位 多頭被困(砸盤潛力)
下跌 下跌 多頭平倉(砸盤進行中)

多頭最危險、空頭最佳的時刻: 價格開始下跌,但OI仍在最高點。這意味著開倉的多頭還沒有平倉——他們在期待反彈。當希望消失時,連環清算就會開始。

def oi_divergence_signal(
    prices: list[float],
    oi_values: list[float],
    window: int = 12,  # 12根K线(例如 12 × 5分钟 = 1小时)
) -> dict:
    """
    检测价格/OI背离。

    看涨OI背离:价格下跌,OI高企——多头被困。
    """
    import numpy as np

    recent_prices = np.array(prices[-window:])
    recent_oi = np.array(oi_values[-window:])

    price_change = (recent_prices[-1] - recent_prices[0]) / recent_prices[0]
    oi_change = (recent_oi[-1] - recent_oi[0]) / recent_oi[0]

    oi_at_peak = recent_oi[-1] > np.percentile(oi_values, 90)
    price_declining = price_change < -0.03  # 价格下跌3%以上

    trapped_longs = oi_at_peak and price_declining

    if len(oi_values) > window * 2:
        oi_velocity = oi_change / max(abs(price_change), 0.001)
    else:
        oi_velocity = 0

    return {
        'trapped_longs': trapped_longs,
        'oi_percentile': round(
            np.searchsorted(np.sort(oi_values), recent_oi[-1]) / len(oi_values), 2
        ),
        'price_change': round(price_change * 100, 2),
        'oi_change': round(oi_change * 100, 2),
        'oi_velocity': round(oi_velocity, 2),
    }

3. 成交量分析:逐筆資料中的真相

成交量是唯一不可偽造的市場指標(好吧,幾乎不可以——某些交易所的刷量交易仍然存在,但主流平臺在這方面已經改善了很多)。

做空訊號:

上漲時成交量萎縮。 經典的弱勢訊號。價格創新高,但該波段成交量低於前一波。買方力竭。

下跌時成交量放大。 如果一次-10%的回撥伴隨的成交量超過了上一波上漲的成交量——賣方已經奪取了主導權。

低量假突破。 價格突破區域性高點,但突破時成交量比均值低2-3倍。這是對買家的陷阱:價格會迅速回落。

def volume_exhaustion_signal(
    candles: list[dict],  # [{open, high, low, close, volume, timestamp}, ...]
    pump_start_idx: int,
) -> dict:
    """
    拉盘后的成交量衰竭分析。
    """
    import numpy as np

    pump_candles = candles[pump_start_idx:]

    up_candles = [c for c in pump_candles if c['close'] > c['open']]
    down_candles = [c for c in pump_candles if c['close'] <= c['open']]

    if not up_candles or not down_candles:
        return {'signal': 'insufficient_data'}

    avg_up_vol = np.mean([c['volume'] for c in up_candles])
    avg_down_vol = np.mean([c['volume'] for c in down_candles])

    up_volumes = [c['volume'] for c in up_candles]
    if len(up_volumes) >= 3:
        first_half = np.mean(up_volumes[:len(up_volumes)//2])
        second_half = np.mean(up_volumes[len(up_volumes)//2:])
        volume_degradation = (second_half - first_half) / first_half
    else:
        volume_degradation = 0

    all_volumes = np.array([c['volume'] for c in candles])
    vol_mean = all_volumes[:-len(pump_candles)].mean() if len(candles) > len(pump_candles) else all_volumes.mean()
    vol_std = all_volumes[:-len(pump_candles)].std() if len(candles) > len(pump_candles) else all_volumes.std()
    current_z = (pump_candles[-1]['volume'] - vol_mean) / vol_std if vol_std > 0 else 0

    return {
        'sell_buy_volume_ratio': round(avg_down_vol / max(avg_up_vol, 1), 2),
        'volume_degradation_pct': round(volume_degradation * 100, 1),
        'current_volume_z_score': round(current_z, 2),
        'signal': 'exhaustion' if volume_degradation < -0.3 else 'active',
    }

4. K線形態:依然有效的古典方法

沒錯,K線分析起源於17世紀,本間宗久和稻米期貨。沒錯,YouTube上90%的"K線策略"都是垃圾。但在拉盤之後的5分鐘和15分鐘時間框架上,某些形態具有統計上顯著的預測能力。原因很簡單:它們反映了真實的微觀結構——控制權從買方轉向賣方。

值得追蹤的形態:

形態 描述 拉盤後可靠性
流星線 (Shooting Star) 長上影線,小實體在底部
空頭吞沒 (Bearish Engulfing) 陰線完全包住前一根陽線
黃昏之星 (Evening Star) 三根K線:大陽線 -> 十字星 -> 大陰線 非常高
墓碑十字星 (Gravestone Doji) 開盤=收盤在底部,長上影線 中等
三隻烏鴉 (Three Black Crows) 三根連續陰線,收盤價逐級遞降 高(確認性)

至關重要的一點: 脫離背景的形態只是噪音。隨機回撥中的流星線毫無意義。但在拉盤頂部出現的流星線,配合異常資金費率和OI背離——那完全是另一回事。

def detect_reversal_patterns(
    candles: list[dict],
    min_upper_shadow_ratio: float = 2.0,  # 上影线 > 2倍实体(流星线标准)
) -> list[dict]:
    """
    检测看跌反转形态。
    """
    signals = []

    for i in range(2, len(candles)):
        c = candles[i]
        body = abs(c['close'] - c['open'])
        upper_shadow = c['high'] - max(c['close'], c['open'])
        lower_shadow = min(c['close'], c['open']) - c['low']
        total_range = c['high'] - c['low']

        if total_range == 0:
            continue

        if (upper_shadow > body * min_upper_shadow_ratio
            and lower_shadow < body * 0.5
            and c['close'] < c['open']):  # 看跌
            signals.append({
                'pattern': 'shooting_star',
                'index': i,
                'timestamp': c['timestamp'],
                'strength': upper_shadow / total_range,
            })

        prev = candles[i - 1]
        if (prev['close'] > prev['open']  # 前一根是阳线
            and c['close'] < c['open']      # 当前是阴线
            and c['open'] > prev['close']   # 开盘高于前收盘
            and c['close'] < prev['open']): # 收盘低于前开盘
            signals.append({
                'pattern': 'bearish_engulfing',
                'index': i,
                'timestamp': c['timestamp'],
                'strength': body / (abs(prev['close'] - prev['open']) + 1e-10),
            })

        if i >= 2:
            c1 = candles[i - 2]
            c2 = candles[i - 1]
            c3 = candles[i]

            c1_body = abs(c1['close'] - c1['open'])
            c2_body = abs(c2['close'] - c2['open'])
            c3_body = abs(c3['close'] - c3['open'])

            if (c1['close'] > c1['open']        # 第一根是阳线
                and c2_body < c1_body * 0.3      # 第二根很小(十字星)
                and c3['close'] < c3['open']     # 第三根是阴线
                and c3_body > c1_body * 0.5      # 第三根足够大
                and c3['close'] < c1['close']):  # 第三根收盘低于第一根收盘
                signals.append({
                    'pattern': 'evening_star',
                    'index': i,
                    'timestamp': c['timestamp'],
                    'strength': c3_body / c1_body,
                })

    return signals

5. VWAP:現實的錨點

VWAP(成交量加權平均價格)是按成交量加權的均價。從拉盤起點錨定的VWAP顯示了脈衝期間所有買入者的平均入場價格。

為什麼重要: 當價格跌破錨定VWAP時——平均買家已經虧損。心理壓力開始積聚。在拉盤初期"低價"買入的人開始獲利了結。在頂部買入的人——陷入恐慌。

規則: 放量跌破錨定VWAP是做空或加倉的強烈訊號。

def anchored_vwap(
    candles: list[dict],
    anchor_idx: int,
) -> list[float]:
    """
    从指定点(拉盘起点)计算锚定VWAP。
    """
    vwap_values = []
    cum_vol = 0
    cum_vol_price = 0

    for i in range(anchor_idx, len(candles)):
        c = candles[i]
        typical_price = (c['high'] + c['low'] + c['close']) / 3
        cum_vol += c['volume']
        cum_vol_price += typical_price * c['volume']

        vwap = cum_vol_price / cum_vol if cum_vol > 0 else typical_price
        vwap_values.append(vwap)

    return vwap_values

6. 連環清算:多米諾效應

這是最強大的砸盤機制——也是空頭最賺錢的機制。邏輯很簡單:

  1. 交易者以20倍槓桿開多。價格下跌5%即觸發清算。
  2. 價格下跌5%。倉位被清算——交易所以市價賣出。
  3. 市價賣出推動價格進一步下跌。這又清算了下一個交易者。
  4. 如此迴圈。級聯效應。

連環清算

如何提前預判:

CoinGlass清算熱力圖顯示清算水平集中在哪裡。如果在當前價格下方看到一道清算"牆"——跌至該水平大機率會引發連鎖清算。

工具 功能 URL
CoinGlass熱力圖 價格圖上的清算水平 coinglass.com/liq/BTC
CoinGlass OI 各交易所持倉量 coinglass.com/open-interest
CoinGlass資金費率 各交易所資金費率 coinglass.com/funding-rate
Coinalyze OI + 成交量 + 清算 coinalyze.net
Hyblock Capital 清算水平 hyblock.co

連鎖清算訊號: 如果在當前價格-5%到-15%的區間內集中了超過500萬美元的清算量(對於日成交量5000萬-2億美元的山寨幣而言)——連鎖清算很可能發生。

實用演算法:篩選 -> 入場 -> 風控

理論很美好。現在來看流水線。

步驟1:篩選(Scanner)

從數千個代幣中,需要篩選出處於拉盤後階段的代幣。標準:

def pump_scanner(
    symbols: list[str],
    exchange,  # ccxt exchange instance
    lookback_hours: int = 24,
    min_pump_pct: float = 100,  # 回看期内最低+100%
    min_volume_z: float = 3,    # 成交量Z-score > 3
) -> list[dict]:
    """
    处于拉盘后阶段的代币扫描器。
    """
    import numpy as np

    candidates = []

    for symbol in symbols:
        try:
            candles = exchange.fetch_ohlcv(symbol, '1h', limit=168)  # 7天
            if len(candles) < 168:
                continue

            closes = [c[4] for c in candles]
            volumes = [c[5] for c in candles]

            recent_closes = closes[-lookback_hours:]
            max_price = max(recent_closes)
            min_price_before = min(closes[:-lookback_hours]) if len(closes) > lookback_hours else closes[0]
            pump_pct = (max_price - min_price_before) / min_price_before * 100

            current_price = closes[-1]
            drawdown_from_peak = (current_price - max_price) / max_price * 100

            vol_baseline = np.mean(volumes[:-lookback_hours])
            vol_std = np.std(volumes[:-lookback_hours])
            vol_recent = np.mean(volumes[-lookback_hours:])
            vol_z = (vol_recent - vol_baseline) / vol_std if vol_std > 0 else 0

            if pump_pct >= min_pump_pct and vol_z >= min_volume_z:
                candidates.append({
                    'symbol': symbol,
                    'pump_pct': round(pump_pct, 1),
                    'drawdown_from_peak': round(drawdown_from_peak, 1),
                    'volume_z_score': round(vol_z, 2),
                    'current_price': current_price,
                    'peak_price': max_price,
                })
        except Exception:
            continue

    candidates.sort(key=lambda x: x['drawdown_from_peak'], reverse=True)
    return candidates

步驟2:訊號匯聚(評分)

對每個候選代幣——按全部六個參數評估:

def confluence_score(
    funding_signal: dict,
    oi_signal: dict,
    volume_signal: dict,
    pattern_signals: list[dict],
    vwap_position: float,  # 价格 / VWAP(< 1 = 低于VWAP)
    liquidation_density: float,  # 当前价格下方的清算量(百万美元)
) -> dict:
    """
    做空入场的综合评分。
    分数0-6,每个因素 = 0或1分。
    """
    score = 0
    reasons = []

    if funding_signal['signal'] in ('extreme', 'insane'):
        score += 1
        reasons.append(f"Funding z-score: {funding_signal['z_score']}")

    if oi_signal['trapped_longs']:
        score += 1
        reasons.append(f"Trapped longs: OI percentile {oi_signal['oi_percentile']}")

    if volume_signal['signal'] == 'exhaustion':
        score += 1
        reasons.append(f"Volume degradation: {volume_signal['volume_degradation_pct']}%")

    strong_patterns = [p for p in pattern_signals if p['strength'] > 0.6]
    if strong_patterns:
        score += 1
        reasons.append(f"Pattern: {strong_patterns[-1]['pattern']}")

    if vwap_position < 0.98:  # 价格低于VWAP 2%以上
        score += 1
        reasons.append(f"Below VWAP: {round((1 - vwap_position) * 100, 1)}%")

    if liquidation_density > 5:  # > 500万美元清算量
        score += 1
        reasons.append(f"Liquidation density: ${liquidation_density}M")

    if score >= 4:
        action = 'strong_short'
    elif score >= 3:
        action = 'short'
    elif score >= 2:
        action = 'watch'
    else:
        action = 'skip'

    return {
        'score': score,
        'max_score': 6,
        'action': action,
        'reasons': reasons,
    }

步驟3:入場與風險管理

入場:

  • 評分 >= 4:50%倉位入場
  • 評分 = 3:25%倉位入場
  • 評分 < 3:等待

止損:

  • 設在最近的擺動高點上方 + 1-2%緩衝
  • 不要用緊止損。山寨幣的波動會殺死你。距入場價最少5-10%。
  • 評分 = 6時,可接受8-12%的止損(信心越強 = 止損越寬,但槓桿要更低)

止盈:

  • TP1(50%倉位):下一個主要支撐位或入場價-20%
  • TP2(30%倉位):從拉盤起點算的VWAP
  • TP3(20%倉位):拉盤前的價格水平

倉位大小:

Position size=Risk per tradeStop distance=0.02×CapitalStop %\text{Position size} = \frac{\text{Risk per trade}}{\text{Stop distance}} = \frac{0.02 \times \text{Capital}}{\text{Stop \%}}

假設資金1萬美元,每筆交易風險2%,止損8%:

Position=2000.08=$2,500\text{Position} = \frac{200}{0.08} = \$2,500

使用3倍槓桿:你冒200美元(資金的2%)的風險,去博取500-1250美元的潛在收益(TP1-TP3)。

最大槓桿:3-5倍。 不能更多。說真的。山寨幣在拉盤階段可能在"所有指標都說該做空"之後又漲50%。高槓杆 = 清算。

不該做什麼:五大致命錯誤

1. 不要在拉盤過程中做空

"它肯定會跌的!"——是的,會跌。但什麼時候?如果你在+200%時做空,而價格先漲到+600%再跌到+150%——你在+450%時就被清算了。從技術上說你是對的。實際上——破產。

規則: 只在首次明顯回撥(從峰值下跌15%或更多)並形成反轉結構後才入場。

2. 不要使用過緊的止損

在ATR為15%的山寨幣上設2%的止損——這不是風控,這是對做市商的慈善。你的止損會在下一次劇烈波動中幾分鐘內被掃掉。

規則: 止損 >= 當前時間框架ATR的1.5倍。最好是2倍。

3. 不要把所有資金押在一筆交易上

即使評分6/6,成功機率也只有大約65-70%。這意味著每10筆交易中有3筆虧損。如果每筆投入10%資金——連續三次虧損 = -30%回撤。心理上,此後你的交易會更糟糕。

規則: 每筆交易1-2%資金。極端確信時最多5%。

4. 不要忽視流動性

你不是高盛。如果一個代幣日成交量200萬美元,你試圖以5萬美元入場——你本身就成了市場事件。你的入場會推動價格,你的退出也會推動價格。滑點會吃掉所有利潤。

規則: 倉位大小 <= 代幣日成交量的1%。

5. 不要在沒有做空功能的現貨市場上做空

這看起來很明顯,但通過在DEX上購買反向代幣或"賣出打算低價買回的現貨"來"做空"的人數量驚人。使用流動性良好的交易所的期貨。或者乾脆不做空。

監控工具

CoinGlass (coinglass.com)

期貨分析的首要工具:

  • 清算熱力圖: 價格圖上的清算水平視覺化
  • 資金費率: 各交易所資金費率即時對比
  • 持倉量: 各交易所彙總OI
  • 多空比: 多頭與空頭的比率(按賬戶數和成交量)

Coinalyze (coinalyze.net)

深度衍生品分析:

  • 彙總OI: 按交易所拆分的合併持倉量
  • 清算: 按多/空拆分的清算曆史
  • OI加權資金費率: 考慮各交易所份額的更精確資金費率

TradingView (tradingview.com)

用於圖表分析:

  • Pine Script自動化K線形態識別
  • 錨定VWAP(內建工具)
  • 通過社群指標疊加CoinGlass資料

Laevitas (laevitas.ch)

專業衍生品終端:

  • Gamma敞口
  • 期權資金流
  • 按行權價的OI熱力圖

使用AI代理自動化

上述所有內容都可以(也應該)自動化。以下是檢測系統的架構:

import asyncio
import numpy as np
from dataclasses import dataclass
from enum import Enum

class AlertLevel(Enum):
    WATCH = "watch"
    PREPARE = "prepare"
    ENTRY = "entry"

@dataclass
class PumpDumpAlert:
    symbol: str
    level: AlertLevel
    score: int
    reasons: list[str]
    suggested_entry: float | None
    suggested_stop: float | None
    suggested_tp: list[float]
    timestamp: float

class PumpDumpDetector:
    """
    用于检测拉盘后砸盘的AI代理。

    流水线:
    1. 扫描:成交量Z-score > 3 + 价格涨幅 > 100%
    2. 过滤:资金费率飙升 + OI增长
    3. 等待:5m/15m上的反转形态
    4. 警报:评分 -> 通知
    """

    def __init__(
        self,
        exchange,
        symbols: list[str],
        volume_z_threshold: float = 3.0,
        funding_z_threshold: float = 2.0,
        min_pump_pct: float = 80.0,
        scan_interval_sec: int = 60,
    ):
        self.exchange = exchange
        self.symbols = symbols
        self.volume_z_threshold = volume_z_threshold
        self.funding_z_threshold = funding_z_threshold
        self.min_pump_pct = min_pump_pct
        self.scan_interval_sec = scan_interval_sec
        self.active_watches: dict[str, dict] = {}

    async def scan_loop(self):
        """主扫描循环。"""
        while True:
            candidates = await self._broad_scan()

            for candidate in candidates:
                symbol = candidate['symbol']

                if symbol not in self.active_watches:
                    self.active_watches[symbol] = {
                        'first_seen': asyncio.get_event_loop().time(),
                        'pump_peak': candidate['peak_price'],
                        'pump_start_approx': candidate.get('pump_start_price'),
                    }
                    await self._emit_alert(PumpDumpAlert(
                        symbol=symbol,
                        level=AlertLevel.WATCH,
                        score=0,
                        reasons=[f"Pump detected: +{candidate['pump_pct']}%"],
                        suggested_entry=None,
                        suggested_stop=None,
                        suggested_tp=[],
                        timestamp=asyncio.get_event_loop().time(),
                    ))

                analysis = await self._deep_analysis(symbol)

                if analysis['score'] >= 3:
                    entry = candidate['current_price']
                    stop = candidate['peak_price'] * 1.02  # 峰值上方2%

                    await self._emit_alert(PumpDumpAlert(
                        symbol=symbol,
                        level=AlertLevel.ENTRY if analysis['score'] >= 4 else AlertLevel.PREPARE,
                        score=analysis['score'],
                        reasons=analysis['reasons'],
                        suggested_entry=entry,
                        suggested_stop=stop,
                        suggested_tp=[
                            entry * 0.80,  # TP1: -20%
                            entry * 0.65,  # TP2: -35%
                            entry * 0.50,  # TP3: -50%
                        ],
                        timestamp=asyncio.get_event_loop().time(),
                    ))

            current_time = asyncio.get_event_loop().time()
            self.active_watches = {
                s: d for s, d in self.active_watches.items()
                if current_time - d['first_seen'] < 48 * 3600
            }

            await asyncio.sleep(self.scan_interval_sec)

    async def _broad_scan(self) -> list[dict]:
        """快速扫描所有交易对。"""
        ...

    async def _deep_analysis(self, symbol: str) -> dict:
        """
        对特定交易对的深度分析。
        收集全部6个信号并计算汇聚评分。
        """
        funding = await self._get_funding_signal(symbol)

        oi = await self._get_oi_signal(symbol)

        volume = await self._get_volume_signal(symbol)

        patterns = await self._get_pattern_signals(symbol, timeframe='5m')

        vwap_pos = await self._get_vwap_position(symbol)

        liq_density = await self._get_liquidation_density(symbol)

        return confluence_score(
            funding, oi, volume, patterns, vwap_pos, liq_density
        )

    async def _emit_alert(self, alert: PumpDumpAlert):
        """发送警报(Telegram、webhook等)。"""
        print(f"[{alert.level.value.upper()}] {alert.symbol} "
              f"Score: {alert.score}/6 | {', '.join(alert.reasons)}")
        ...

自動化關鍵閾值

參數 WATCH閾值 ENTRY閾值
成交量Z-score > 3 > 5
資金費率Z-score > 2 > 3
4小時OI增長 > 50% > 100%
距峰值價格 -5%到-15% -15%到-30%
K線形態 任何 強訊號(strength > 0.6)
價格 vs VWAP 接近VWAP 低於2%以上

統計與現實

讓我們坦誠面對。這個策略不是聖盃。以下是2024-2025年資料回測的大致統計:

指標 數值
勝率(評分 >= 4) ~62-68%
平均盈利 +18-25%
平均虧損 -8-12%
盈虧比 1.8-2.3
最大回撤 -15-22%
夏普比率 1.1-1.6

關鍵侷限性:

  1. 倖存者偏差: 我們只分析在期貨交易所交易的代幣。最瘋狂的拉盤砸盤發生在DEX上,那裡無法做空。

  2. 流動性: 許多山寨幣期貨的流動性不足以支撐有意義的倉位規模。滑點可能吃掉2-5%的利潤。

  3. 與做市商博弈: 專業做市商瞭解這些模式,並積極利用它們來掃空頭的止損。在反轉形態形成後製造假拉盤——這是標準手法。

  4. 做空的黑天鵝風險: 理論上做空的虧損是無限的。實際上止損可以解決問題——但在低流動性時刻,止損可能以遠差於設定價格的價格成交。

結論

做空山寨幣拉盤後的砸盤,是加密貨幣中為數不多的真正存在統計優勢(edge)的策略之一。原因在於:散戶的集體非理性創造了可預測的模式,而連環清算的機制會放大朝你有利方向的行情。

三條值得銘記的規則:

  1. 永遠不要做空脈衝行情。 等待階段三。等待反轉形態。等待OI背離。耐心是你最重要的工具,而不是某個花哨的指標。

  2. 使用訊號匯聚。 一個指標是噪音。兩個是假設。四個以上是可交易的機會。資金費率 + OI + 形態 + VWAP = 入場。

  3. 管理倉位大小,而非槓桿。 每筆交易2%風險,最高3-5倍槓桿,止損 >= 1.5 ATR。無聊?是的。但無聊的交易者是一年後唯一還在市場上的人。

最後一點。請記住:每次砸盤的背後,都是失去真金白銀的真實的人。他們中許多是屈服於FOMO的新手。我們分析的是市場機制,而非鼓勵操縱。從市場低效中獲利是合法的。製造這種低效則不是。

更多關於資金費率及其對槓桿的影響,請參閱我們的文章資金費率正在殺死你的槓桿。關於交易中的異常檢測方法——交易機器人異常檢測。關於跨交易所資金費率套利——跨交易所資金費率套利


有用連結

  1. CoinGlass — 清算熱力圖
  2. CoinGlass — 資金費率
  3. CoinGlass — 持倉量
  4. Coinalyze — 彙總持倉量
  5. Hyblock Capital — 清算水平
  6. Laevitas — 衍生品分析
  7. TradingView — 錨定VWAP
  8. Binance — 資金費率歷史

引用

@article{soloviov2026shitcoinpumpdump,
  author = {Soloviov, Eugen},
  title = {如何捕捉山寨币拉盘后的暴跌:系统化方法},
  year = {2026},
  url = {https://marketmaker.cc/zh/blog/post/shitcoin-pump-dump-strategies},
  version = {0.1.0},
  description = {系统化解析山寨币拉盘后的做空策略。资金费率、持仓量、成交量分析、K线形态、连环清算。附实用算法。}
}
免責宣告:本文提供的資訊僅用於教育和參考目的,不構成財務、投資或交易建議。加密貨幣交易涉及重大損失風險。

Authors

Eugen Soloviov
Eugen Soloviov

Trading-systems engineer

Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.

Newsletter

緊跟市場步伐

訂閱我們的時事通訊,獲取獨家 AI 交易見解、市場分析和平台更新。

我們尊重您的隱私。您可以隨時退訂。