← Makalelere geri dön
March 24, 2026
5 dakikalık okuma

Shitcoin Pompalarından Sonra Düşüşleri Nasıl Yakalarsınız: Sistematik Bir Yaklaşım

Shitcoin Pompalarından Sonra Düşüşleri Nasıl Yakalarsınız: Sistematik Bir Yaklaşım
#shitcoinler
#pump
#dump
#short
#türevler
#funding-rate
#algo trading

Her kripto trader bunu en az bir kez görmüştür: dün kimsenin adını bilmediği bir token 4 saatte +800% yapıyor. Twitter roket emojileriyle dolup taşıyor. Reddit "bu sadece başlangıç" yazılarıyla kaplanıyor. Bir ay önce emir defterini McDonald's siparişinden ayırt edemeyen iş arkadaşınız size "kardeş, en azından yüz dolar at" diye mesaj atıyor. On iki saat sonra token, zirvesinden %85 düşmüş durumda. Sessizlik. Roketler silinmiş.

Soru dump olup olmayacağı değil. Soru, pompa tarafından ezilmeden bundan sistematik olarak nasıl kâr edilebileceği.

Bu makale finansal tavsiye değil (kimsenin okumadığı ama avukatların ısrar ettiği zorunlu feragat beyanı). Düşük likiditeye sahip varlıklardaki impuls hareketlerinden sonra dönüş noktalarını tespit etmeye yönelik mekanikler, sinyaller ve algoritmaların teknik bir analizidir.

Pump-and-Dump Anatomisi: Bir Çılgınlığın Üç Aşaması

Short işlemi yapmadan önce olgunun yapısını anlamanız gerekir. Her shitcoin pump-and-dump, her birinin kendine özgü veri imzaları olan üç aşamadan geçer.

Pump-and-dump anatomisi

Aşama 1: Birikim (Sessiz Av)

Süre: birkaç saatten birkaç güne kadar.

Biri — bir insider grubu, koordineli bir Telegram grubu ya da sadece bilgi avantajına sahip büyük bir oyuncu — tokeni satın almaya başlar. Bu dikkatli yapılır: küçük emirler, birden fazla borsada, genellikle Asya seansında (likiditenin minimum, dikkatin dağınık olduğu zamanlarda).

Verilerde görülenler:

  • İşlem hacmi kademeli olarak artar (7 günlük ortalamanın %50-200 üzerinde), ancak fiyat neredeyse hareket etmez
  • Emir defterinin alış tarafı kalınlaşır: mevcut fiyatın %2-5 altında "duvarlar" oluşur
  • Zincir üstü metrikler (DEX tokenleri için): borsalara büyük transferler, tekil alıcı cüzdan sayısında artış
  • Sürekli vadeli işlemlerdeki (varsa) funding rate hafifçe artmaya başlar

Bu aşamada short işlemi yapmak için çok erken. Bunun birikim mi yoksa organik ilgi mi olduğunu henüz bilmiyorsunuz. Birini diğerinden ayırt etmek çoğu zaman imkânsızdır — fark ancak sonradan netleşir.

Aşama 2: İmpuls (Parti)

Süre: 30 dakikadan 12 saate kadar.

Fiyat kritik bir direnç seviyesini kırar ve bir kaskad başlar. Short pozisyon sahiplerinin stop-loss'ları tasfiye edilir. FOMO (Fırsatı Kaçırma Korkusu) perakende yatırımcıları içine çeker. Kripto Twitter bir yankı odasına dönüşür. Her retweet yeni bir 50x kaldıraçlı long pozisyonu.

Karakteristik imzalar:

  • Hacim ortalamanın %1000-5000 üzerinde (yazım hatası değil)
  • Funding rate 8 saatte %0,1-0,5'e fırlar (normal %0,01)
  • Açık pozisyon (Open Interest) katlanarak büyür: yeni pozisyonlar kapananlardan daha hızlı açılıyor
  • Alış-satış spreadi, satış tarafındaki likidite eksikliği nedeniyle 3-10 kat genişler
  • Emir defteri üstte bir boşluk gösteriyor: mevcut fiyat ile en yakın önemli satış emri arasında — hiçlik

Bu aşamada short yapmak intihardır. "Eninde sonunda duracak" diye trenin önünde durmak gibidir. Evet, duracak. Ama o noktada siz çoktan tasfiye edilmiş olacaksınız. Aşağıdaki "Yapılmaması Gerekenler" bölümünde daha fazlası var.

Aşama 3: Dağıtım ve Çöküş (Akşamdan Kalmalık)

Süre: 2 ile 48 saat arasında.

Insiderlar kâr realizasyonuna başlar. Fiyat ilk anlamlı düzeltmeyi yapar (zirveden -%15-30). Perakende yatırımcılar "dip'ten alır." Fiyat toparlar. Sonra tekrar düşer. Her sonraki toparlanma daha zayıf. Her düşüş daha derin.

Verilerde yaşananlar:

  • Hacim yüksek kalmaya devam eder ancak satış tarafına kayar
  • Funding rate düşmeye başlar ama hâlâ anormal derecede yüksektir
  • Açık pozisyon büyümeyi durdurur veya düşmeye başlar (long pozisyonlar kapanıyor)
  • Büyük piyasa satış emirleri belirir, emir defterini birkaç seviye aşağı "yer"
  • Zincir üstü: insider cüzdanlarından borsalara büyük transferler

Burası av bölgesi. Çalışma burada başlıyor.

Short Girişi İçin Temel Sinyaller

Her sinyal tek başına zayıftır. Üç veya daha fazlasının kombinasyonu artık işe yarar bir hipotez oluşturur.

Giriş sinyalleri

1. Funding Rate: Açgözlülüğün Vergisi

Funding rate, sürekli vadeli işlemlerde pozisyon tutmanın maliyetidir. Herkes long olmak istediğinde, long pozisyon sahipleri short pozisyon sahiplerine ödeme yapar. Oran ne kadar yüksekse, piyasa o kadar tek tarafa kaymıştır.

Funding Rate (8 saatte) Yorum Eylem
%0,01 Normal Hiçbir şey
%0,03-0,05 Long'a yüksek talep İzle
%0,05-0,1 Güçlü çarpıklık Short'a hazır
%0,1-0,3 Aşırı çarpıklık Aktif olarak giriş ara
> %0,3 Çılgınlık Konfirmasyonla short'a gir

Bu neden işe yarar: 8 saatte %0,3 funding rate'te long pozisyonlar sadece pozisyonu tutmak için günde ~%1 öder. 10x kaldıraçta bu günde sermayenin %10'udur. Bu uzun süremez — pozisyonlar kapanmaya başlar, fiyatı aşağı iter.

Uyarı: aşırı yüksek funding tek başına short sinyali değildir. Fiyat yükselmeye devam ederken saatlerce hatta günlerce yüksek kalabilir. Funding bir filtredir (çarpıklığın konfirmasyonu), tetik değil (giriş noktası).

def funding_rate_signal(
    current_rate: float,
    historical_rates: list[float],
    lookback: int = 90,  # 90 dönem = 30 gün
) -> dict:
    """
    Mevcut funding rate'in anomali seviyesini değerlendir.

    Döndürür:
        signal: 'neutral' | 'elevated' | 'extreme' | 'insane'
        z_score: float — normdan sapma
        percentile: float — geçmiş verideki persentil
    """
    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),  # % yıllık
    }

2. Açık Pozisyon (Open Interest): Kimin Tuzağa Düştüğü

Açık Pozisyon (OI), vadeli işlemlerdeki toplam açık kontrat sayısıdır. OI fiyatla birlikte yükseldiğinde — piyasaya yeni katılımcılar giriyor (büyük çoğunlukla long). Fiyat düşmeye başladığında ama OI yüksek kaldığında — bu long'lar tuzağa düşmüş demektir. Onların tasfiyesi dump'ı besleyecektir.

Temel örüntüler:

Fiyat OI Yorum
Yükseliyor Yükseliyor Yeni long girişleri (pump devam ediyor)
Yükseliyor Düşüyor Short'lar kapanıyor (short squeeze)
Düşüyor Yüksek Long'lar tuzağa düşmüş (dump potansiyeli)
Düşüyor Düşüyor Long'lar kapanıyor (dump devam ediyor)

Long'lar için en tehlikeli, short'lar için en iyi an: fiyat düşmeye başlamış ama OI hâlâ maksimumda. Bu, açık long pozisyonların henüz kapanmadığı anlamına gelir — toparlanma umuyorlar. O umut tükendiğinde, tasfiye kaskadı başlar.

def oi_divergence_signal(
    prices: list[float],
    oi_values: list[float],
    window: int = 12,  # 12 mum (örn. 12 x 5 dk = 1 saat)
) -> dict:
    """
    Fiyat/OI ıraksımasını tespit et.

    Boğa OI ıraksıması: fiyat düşüyor, OI yüksek — long'lar tuzağa düşmüş.
    """
    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  # fiyat %3+ düştü

    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. Hacim Analizi: Ticklardaki Gerçek

Hacim, sahte yapılamayan tek piyasa göstergesidir (neredeyse — bazı borsalarda wash trading hâlâ bir gerçeklik, ancak üst düzey platformlar bununla mücadelede daha iyi hale geldi).

Short için sinyaller:

Rallilerde azalan hacim. Zayıflığın klasik işareti. Fiyat yeni bir zirve yapıyor ama o hareketteki hacim öncekinden düşük. Alıcıların nefesi tükeniyor.

Düşüşlerde hacim patlaması. Eğer -%10'luk bir düzeltme son rallinin hacmini aşan bir hacimle gerçekleşiyorsa — satıcılar inisiyatifi ele geçirmiş demektir.

Düşük hacimli sahte kırılma. Fiyat yerel bir zirveyi kırar ama kırılma hacmi ortalamanın 2-3 katı altındadır. Bu alıcılar için bir tuzak: fiyat hızla geri döner.

def volume_exhaustion_signal(
    candles: list[dict],  # [{open, high, low, close, volume, timestamp}, ...]
    pump_start_idx: int,
) -> dict:
    """
    Pompadan sonra hacim tükenmesi analizi.
    """
    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. Mum Formasyonları: İşe Yarayan Eski Okul

Evet, mum analizi 17. yüzyıla, Munehisa Homma ve pirinç vadeli işlemlerine uzanıyor. Evet, YouTube'daki "mum stratejilerinin" %90'ı çöp. Ancak pompa sonrası 5 dakikalık ve 15 dakikalık zaman dilimlerinde belirli formasyonların istatistiksel olarak anlamlı tahmin gücü vardır. Nedeni basit: gerçek mikroyapıyı yansıtıyorlar — kontrolün alıcılardan satıcılara geçişini.

Takip etmeye değer formasyonlar:

Formasyon Açıklama Pompa sonrası güvenilirlik
Shooting Star Uzun üst gölge, altta küçük gövde Yüksek
Bearish Engulfing Kırmızı mum önceki yeşil mumu tamamen yutuyor Yüksek
Evening Star 3 mum: büyük yeşil -> küçük (doji) -> büyük kırmızı Çok yüksek
Gravestone Doji Açılış = kapanış altta, uzun üst gölge Orta
Three Black Crows Azalan kapanışlarla art arda üç kırmızı mum Yüksek (konfirmasyon)

Kritik önem: bağlamsız bir formasyon gürültüdür. Rastgele bir geri çekilmedeki Shooting Star hiçbir şey ifade etmez. Pump zirvesinde anormal funding rate ve OI ıraksımasıyla birlikte gelen Shooting Star — bu tamamen farklı bir hikâye.

def detect_reversal_patterns(
    candles: list[dict],
    min_upper_shadow_ratio: float = 2.0,  # shooting star için gölge > 2x gövde
) -> list[dict]:
    """
    Düşüş dönüşüm formasyonlarını tespit et.
    """
    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']):  # düşüş
            signals.append({
                'pattern': 'shooting_star',
                'index': i,
                'timestamp': c['timestamp'],
                'strength': upper_shadow / total_range,
            })

        prev = candles[i - 1]
        if (prev['close'] > prev['open']  # önceki yükseliş
            and c['close'] < c['open']      # mevcut düşüş
            and c['open'] > prev['close']   # önceki kapanışın üzerinde açılıyor
            and c['close'] < prev['open']): # önceki açılışın altında kapanıyor
            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']        # birinci yükseliş
                and c2_body < c1_body * 0.3      # ikinci küçük (doji)
                and c3['close'] < c3['open']     # üçüncü düşüş
                and c3_body > c1_body * 0.5      # üçüncü yeterince büyük
                and c3['close'] < c1['close']):  # üçüncü birincinin kapanışının altında kapanıyor
                signals.append({
                    'pattern': 'evening_star',
                    'index': i,
                    'timestamp': c['timestamp'],
                    'strength': c3_body / c1_body,
                })

    return signals

5. VWAP: Gerçekliğin Çıpası

VWAP (Volume-Weighted Average Price — Hacme Göre Ağırlıklı Ortalama Fiyat), hacme göre ağırlıklandırılmış ortalama fiyattır. Pompanın başlangıcından hesaplanan Anchored VWAP, impuls süresince alım yapan tüm katılımcıların ortalama giriş fiyatını gösterir.

Bu neden önemli: fiyat anchored VWAP'ın altına düştüğünde — ortalama alıcı zararda. Psikolojik baskı birikir. "Ucuza" (pompanın başında) alanlar kâr realizasyonuna başlar. Zirvede alanlar — paniğe kapılıyor.

Kural: anchored VWAP'ın altına yüksek hacimle kırılma, short açmak veya pozisyona ekleme için güçlü bir sinyaldir.

def anchored_vwap(
    candles: list[dict],
    anchor_idx: int,
) -> list[float]:
    """
    Belirli bir noktadan (pompanın başlangıcı) Anchored VWAP hesapla.
    """
    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. Tasfiye Kaskadları: Domino Etkisi

Bu, dump'ın en güçlü mekanizması ve short'lar için en kârlı olanı. Mantık basit:

  1. Bir trader 20x kaldıraçlı long açıyor. Fiyat %5 düşerse tasfiye tetiklenir.
  2. Fiyat %5 düşüyor. Pozisyon tasfiye ediliyor — borsa piyasa satışı yapıyor.
  3. Piyasa satışı fiyatı daha aşağı itiyor. Bu da bir sonraki trader'ı tasfiye ediyor.
  4. Ve böyle devam ediyor. Kaskad.

Tasfiye kaskadları

Bunu önceden nasıl görebilirsiniz:

CoinGlass Tasfiye Isı Haritası, tasfiye seviyelerinin nerede yoğunlaştığını gösterir. Mevcut fiyatın altında bir tasfiye "duvarı" görüyorsanız — o seviyeye bir düşüş büyük olasılıkla bir kaskad tetikleyecektir.

Araç Ne gösteriyor URL
CoinGlass Heatmap Fiyat grafiğinde tasfiye seviyeleri coinglass.com/liq/BTC
CoinGlass OI Borsaya göre Açık Pozisyon coinglass.com/open-interest
CoinGlass Funding Borsaya göre funding rate'ler coinglass.com/funding-rate
Coinalyze OI + hacim + tasfiyeler coinalyze.net
Hyblock Capital Tasfiye seviyeleri hyblock.co

Kaskad sinyali: mevcut fiyatın -%5 ile -%15 arasındaki bölgede 5 milyon dolardan fazla tasfiye yoğunlaşmışsa (günlük hacmi 50-200 milyon dolar olan bir shitcoin için) — kaskad muhtemeldir.

Pratik Algoritma: Filtre -> Giriş -> Risk

Teori harika. Şimdi — pipeline.

Adım 1: Filtreleme (Tarayıcı)

Binlerce token arasından pompa sonrası aşamada olanları izole etmeniz gerekiyor. Kriterler:

def pump_scanner(
    symbols: list[str],
    exchange,  # ccxt exchange örneği
    lookback_hours: int = 24,
    min_pump_pct: float = 100,  # lookback süresinde minimum +%100
    min_volume_z: float = 3,    # hacim Z-skoru > 3
) -> list[dict]:
    """
    Pompa sonrası aşamadaki tokenler için tarayıcı.
    """
    import numpy as np

    candidates = []

    for symbol in symbols:
        try:
            candles = exchange.fetch_ohlcv(symbol, '1h', limit=168)  # 7 gün
            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

Adım 2: Sinyal Yakınsaması (Puanlama)

Her aday için — altı parametrenin tamamında değerlendirme:

def confluence_score(
    funding_signal: dict,
    oi_signal: dict,
    volume_signal: dict,
    pattern_signals: list[dict],
    vwap_position: float,  # fiyat / VWAP (< 1 = VWAP'ın altında)
    liquidation_density: float,  # mevcut fiyatın altındaki tasfiyeler ($M)
) -> dict:
    """
    Short girişi için bileşik puan.
    0-6 arası puan, her faktör = 0 ya da 1 puan.
    """
    score = 0
    reasons = []

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

    if oi_signal['trapped_longs']:
        score += 1
        reasons.append(f"Tuzağa düşmüş long'lar: OI persentil {oi_signal['oi_percentile']}")

    if volume_signal['signal'] == 'exhaustion':
        score += 1
        reasons.append(f"Hacim bozulması: {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"Formasyon: {strong_patterns[-1]['pattern']}")

    if vwap_position < 0.98:  # fiyat VWAP'ın %2+ altında
        score += 1
        reasons.append(f"VWAP'ın altında: {round((1 - vwap_position) * 100, 1)}%")

    if liquidation_density > 5:  # > 5 milyon dolar tasfiye
        score += 1
        reasons.append(f"Tasfiye yoğunluğu: ${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,
    }

Adım 3: Giriş ve Risk Yönetimi

Giriş:

  • Puan >= 4: pozisyonun %50'siyle gir
  • Puan = 3: pozisyonun %25'iyle gir
  • Puan < 3: bekle

Stop-loss:

  • Son swing yüksek seviyesinin %1-2 buffer üzerinde
  • Dar stop değil. Shitcoin'lerdeki volatilite sizi öldürür. Girişten minimum %5-10.
  • Puan = 6 ise %8-12'lik stop kabul edilebilir (daha fazla güven = daha geniş stop, ama daha az kaldıraç)

Kâr al:

  • TP1 (pozisyonun %50'si): bir sonraki büyük destek seviyesi ya da girişten -%20
  • TP2 (pozisyonun %30'u): pompanın başlangıcındaki VWAP
  • TP3 (pozisyonun %20'si): pompa öncesi seviye

Pozisyon büyüklüğü:

Pozisyon bu¨yu¨klu¨g˘u¨=I˙s¸lem bas¸ına riskStop mesafesi=0,02×SermayeStop %\text{Pozisyon büyüklüğü} = \frac{\text{İşlem başına risk}}{\text{Stop mesafesi}} = \frac{0,02 \times \text{Sermaye}}{\text{Stop \%}}

10.000 dolar sermaye, işlem başına %2 risk ve %8 stop ile:

Pozisyon=2000,08=$2.500\text{Pozisyon} = \frac{200}{0,08} = \$2.500

3x kaldıraçla: TP1-TP3 için potansiyel 500-1.250 dolar karşılığında 200 dolar (sermayenin %2'si) riske ediyorsunuz.

Maksimum kaldıraç: 3-5x. Daha fazla değil. Ciddiyim. Shitcoin'ler pompa aşamasında "tüm göstergeler short dedi"den sonra bir +%50 daha yapabilir. Yüksek kaldıraç = tasfiye.

Yapılmaması Gerekenler: Beş Ölümcül Günah

1. Pompa sırasında short YAPMAYIN

"Ama kesinlikle düşecek!" — evet, düşecek. Peki ne zaman? +%200'de short girdiyseniz ve fiyat -%150'ye düşmeden önce +%600 yaptıysa — +%450'de tasfiye edildiniz. Teknik olarak haklıydınız. Pratikte — iflastar.

Kural: yalnızca zirveden ilk önemli geri çekilmenin (-%15 veya daha fazla) ardından ve bir dönüş yapısı oluştuktan sonra girin.

2. Dar stop-loss KULLANMAYIN

%15 ATR'li bir shitcoin'de %2'lik stop-loss, risk yönetimi değil — piyasa yapıcılara bağış. Stopunuz, bir sonraki volatil mum fitilinde dakikalar içinde tetiklenecek.

Kural: stop-loss >= mevcut zaman diliminin ATR'ının 1,5 katı. İdeal olarak 2 katı.

3. Her şeyi tek bir işleme YATIRMAYIN

6/6 puan alsanız bile başarı olasılığı yaklaşık %65-70. Bu, 10 işlemden 3'ünün kayıp olduğu anlamına gelir. Her birine sermayenin %10'unu koyarsanız — art arda üç kayıp = -%30 drawdown. Bunun ardından psikolojik olarak daha kötü işlem yaparsınız.

Kural: işlem başına sermayenin %1-2'si. Aşırı inanç durumunda maksimum %5.

4. Likiditeyi GÖRMEZDEN GELMEYİN

Goldman Sachs değilsiniz. Bir tokenin günlük hacmi 2 milyon dolar iken 50.000 dolarla girmeye çalışıyorsanız — siz piyasa olayı oluyorsunuz. Girişiniz fiyatı hareket ettirir, çıkışınız fiyatı hareket ettirir. Slippage tüm kârı yer.

Kural: pozisyon büyüklüğü <= tokenin günlük hacminin %1'i.

5. Short imkânı olmayan spot piyasalarda short YAPMAYIN

Bu bariz görünüyor ama DEX'te ters token alarak ya da "daha ucuza geri almayı planladıkları spot'u satarak" "short yapan" insan sayısı şaşırtıcı. Uygun likiditeye sahip borsalarda vadeli işlemleri kullanın. Ya da hiç short yapmayın.

İzleme Araçları

CoinGlass (coinglass.com)

Vadeli işlem analizi için birincil araç:

  • Tasfiye Isı Haritası: fiyat grafiğindeki tasfiye seviyelerinin görselleştirilmesi
  • Funding Rate: gerçek zamanlı olarak borsalar arası funding rate karşılaştırması
  • Açık Pozisyon: borsaya göre toplanan OI
  • Long/Short Oranı: long ile short oranı (hesap sayısına ve hacme göre)

Coinalyze (coinalyze.net)

Derin türev analitikleri:

  • Toplu OI: borsaya göre dağılımlı birleşik Açık Pozisyon
  • Tasfiyeler: long/short'a göre ayrışan tasfiye geçmişi
  • OI Ağırlıklı Funding Rate: her borsanın payını hesaba katan daha doğru funding rate

TradingView (tradingview.com)

Grafik analizi için:

  • Mum formasyonlarını otomatikleştirmek için Pine Script
  • Anchored VWAP (yerleşik araç)
  • Topluluk göstergeleri aracılığıyla CoinGlass veri katmanı

Laevitas (laevitas.ch)

Profesyonel türev terminali:

  • Gamma exposure
  • Opsiyon akışı
  • Strike'a göre OI ısı haritası

AI Ajanlarla Otomasyon

Yukarıda anlatılanların tamamı otomatize edilebilir (ve edilmeli). İşte tespit sistemi mimarisi:

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:
    """
    Pompa sonrası dump'ları tespit eden AI ajan.

    Pipeline:
    1. Tarama: hacim Z-skoru > 3 + fiyat artışı > %100
    2. Filtreleme: funding spike + OI artışı
    3. Bekleme: 5d/15d'de dönüş formasyonu
    4. Uyarı: puanlama -> bildirim
    """

    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):
        """Ana tarama döngüsü."""
        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"Pompa tespit edildi: +{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  # zirvenin %2 üstü

                    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]:
        """Tüm sembollerin hızlı taraması."""
        ...

    async def _deep_analysis(self, symbol: str) -> dict:
        """
        Belirli bir sembolün derin analizi.
        6 sinyalin tamamını toplar ve yakınsama puanını hesaplar.
        """
        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):
        """Uyarı gönder (Telegram, webhook vb.)."""
        print(f"[{alert.level.value.upper()}] {alert.symbol} "
              f"Puan: {alert.score}/6 | {', '.join(alert.reasons)}")
        ...

Otomasyon İçin Temel Eşikler

Parametre WATCH eşiği ENTRY eşiği
Hacim Z-skoru > 3 > 5
Funding Rate Z-skoru > 2 > 3
4 saatlik OI artışı > %50 > %100
Zirveden fiyat -%5 ile -%15 -%15 ile -%30
Mum formasyonu Herhangi biri Güçlü (strength > 0,6)
VWAP'a göre fiyat VWAP'a yakın %2+ altında

İstatistikler ve Gerçeklik

Dürüst olalım. Bu strateji kutsal kase değil. İşte 2024-2025 verilerindeki yaklaşık geri test istatistikleri:

Metrik Değer
Kazanma oranı (puan >= 4) ~%62-68
Ortalama kazanç +%18-25
Ortalama kayıp -%8-12
Kâr faktörü 1,8-2,3
Maksimum drawdown -%15-22
Sharpe oranı 1,1-1,6

Temel kısıtlamalar:

  1. Hayatta kalım yanlılığı: yalnızca vadeli işlem borsalarında işlem gören tokenleri analiz ediyoruz. En çılgın pump-and-dump'lar, short yapmanın imkânsız olduğu DEX'lerde gerçekleşiyor.

  2. Likidite: pek çok shitcoin vadeli işleminde anlamlı bir pozisyon büyüklüğü için yeterli likidite yok. Slippage kârın %2-5'ini yiyebilir.

  3. Piyasa yapıcılarla mücadele: profesyonel MM'ler bu formasyonları biliyor ve aktif olarak short satıcıların stop-loss'larını avlamak için kullanıyor. Dönüş formasyonu oluştuktan sonra sahte pompa — standart bir oyun.

  4. Short'larda kara kuğu: teorik olarak short'un sınırsız kayıp potansiyeli vardır. Pratikte stop-loss sorunu çözer — ancak düşük likidite anlarında stop, belirtilen fiyattan önemli ölçüde kötü dolabilir.

Sonuç

Shitcoin pompalarından sonra dump'ları short yapmak, kriptoda gerçekten bir avantajın (istatistiksel üstünlüğün) bulunduğu nadir stratejilerden biridir. Neden: perakende yatırımcıların kitlesel irrasyonalitesi öngörülebilir örüntüler yaratır ve tasfiye kaskadlarının mekaniği hareketi sizin yönünüzde güçlendirir.

Aklınızda tutmanız gereken üç kural:

  1. İmpulsu asla short'lamayın. Aşama 3'ü bekleyin. Dönüş formasyonlarını bekleyin. OI ıraksımasını bekleyin. Sabır, birincil araçınızdır; zekice bir gösterge değil.

  2. Sinyal yakınsamasını kullanın. Bir gösterge gürültüdür. İki gösterge hipotez. Dört veya daha fazlası işlem yapılabilir bir kurulum. Funding + OI + formasyon + VWAP = giriş.

  3. Pozisyon büyüklüğünü yönetin, kaldıracı değil. İşlem başına %2 risk, maksimum 3-5x kaldıraç, stop-loss >= 1,5 ATR. Sıkıcı mı? Evet. Ama sıkıcı trader'lar bir yıl sonra hâlâ piyasada olan tek kişilerdir.

Son bir şey. Unutmayın: her dump'ın arkasında gerçek para kaybeden gerçek insanlar var. Bunların çoğu FOMO'ya kapılan yeni başlayanlardır. Piyasa mekaniklerini analiz ediyoruz, manipülasyonu savunmuyoruz. Verimsizlikten kâr etmek meşrudur. O verimsizliği yaratmak değil.

Funding rate'ler ve kaldıraç üzerindeki etkileri hakkında daha fazlası için Funding Rate'ler Kaldıracınızı Öldürür makalemize bakın. Trading'de anomali tespit yöntemleri için — Trading Botlarını Korumak İçin Anomali Tespiti. Borsalar arası funding rate arbitrajı için — Borsalar Arası Funding Rate Arbitrajı.


Faydalı Bağlantılar

  1. CoinGlass — Tasfiye Isı Haritası
  2. CoinGlass — Funding Rate
  3. CoinGlass — Açık Pozisyon
  4. Coinalyze — Toplu Açık Pozisyon
  5. Hyblock Capital — Tasfiye Seviyeleri
  6. Laevitas — Türev Analitikleri
  7. TradingView — Anchored VWAP
  8. Binance — Funding Rate Geçmişi

Alıntı

@article{soloviov2026shitcoinpumpdump,
  author = {Soloviov, Eugen},
  title = {Shitcoin Pompalarından Sonra Düşüşleri Nasıl Yakalarsınız: Sistematik Bir Yaklaşım},
  year = {2026},
  url = {https://marketmaker.cc/tr/blog/post/shitcoin-pump-dump-strategies},
  version = {0.1.0},
  description = {Shitcoin pompalarından sonra short stratejilerinin sistematik analizi. Funding rate, OI, hacim analizi, mum formasyonları, tasfiye kaskadları. Pratik algoritmayla birlikte.}
}
Sorumluluk Reddi: Bu makalede sağlanan bilgiler yalnızca eğitim ve bilgilendirme amaçlıdır ve finansal, yatırım veya ticaret tavsiyesi niteliği taşımaz. Kripto para ticareti önemli bir kayıp riski içerir.

Yazarlar

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

Piyasanın Önünde Olun

Özel yapay zeka ticaret içgörüleri, piyasa analizi ve platform güncellemeleri için bültenimize abone olun.

Gizliliğinize saygı duyuyoruz. İstediğiniz zaman abonelikten çıkabilirsiniz.