Shitcoin Pompalarından Sonra Düşüşleri Nasıl Yakalarsınız: Sistematik Bir Yaklaşım
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.

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.

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:
- Bir trader 20x kaldıraçlı long açıyor. Fiyat %5 düşerse tasfiye tetiklenir.
- Fiyat %5 düşüyor. Pozisyon tasfiye ediliyor — borsa piyasa satışı yapıyor.
- Piyasa satışı fiyatı daha aşağı itiyor. Bu da bir sonraki trader'ı tasfiye ediyor.
- Ve böyle devam ediyor. Kaskad.

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üğü:
10.000 dolar sermaye, işlem başına %2 risk ve %8 stop ile:
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:
-
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.
-
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.
-
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.
-
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:
-
İ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.
-
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ş.
-
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
- CoinGlass — Tasfiye Isı Haritası
- CoinGlass — Funding Rate
- CoinGlass — Açık Pozisyon
- Coinalyze — Toplu Açık Pozisyon
- Hyblock Capital — Tasfiye Seviyeleri
- Laevitas — Türev Analitikleri
- TradingView — Anchored VWAP
- 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.}
}
Yazarlar
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.