Bybit V5 vadeli işlemlerinde otomatik çalışan bir scalper botu. VMC stratejisi (5m entry · 15m HTF anchor) ile demo + live üzerinde koşar. Karar mantığı Python tarafında; Claude Code yalnızca kodu yazar, parametreleri tune eder ve logları analiz eder.
TradingView = gözler · Bybit = eller · Python = beyin
flowchart LR
TV["TradingView Desktop<br/><i>gözler</i><br/>Pine indikatörleri"]
BOT["Python Bot<br/><i>beyin</i><br/>analiz · strateji · risk"]
BYB["Bybit V5<br/><i>eller</i><br/>limit emir + SL"]
DB[("SQLite<br/>jurnal")]
TV <-- "MCP" --> BOT
BOT <-- "pybit V5 REST" --> BYB
BOT --> DB
TradingView Desktop sürekli açık olmalı, pine/smt_overlay.pine ve pine/smt_oscillator.pine chart'a eklenmiş olmalı. MCP daemon Pine tablolarını okur, bot kararlarını bu veriyle verir. Pine settle olmazsa cycle skip — TV bağlantısı koparsa bot trade etmez.
- Python 3.11+
- Node.js 18+ (TradingView MCP için)
- TradingView Desktop (abonelik — Pine indicator gerekli)
- Bybit Demo Trading hesabı (UTA + hedge mode)
git clone https://github.com/last-26/SMTbot.git
cd SMTbot
python -m venv .venv
.venv/Scripts/activate # Windows
# source .venv/bin/activate # macOS / Linux
pip install -r requirements.txt- Bybit mainnet'e giriş → sol üstten Demo Trading moduna geç
- Demo paneli üzerinden ayrı API key üret (mainnet key'i ile aynı değil)
- Account type: UNIFIED (UTA) + cross margin
- Position mode: Hedge (bot ilk açılışta otomatik ayarlar)
- Collateral: USDT + USDC ON, BTC/ETH OFF
- API yetkisi: Read + Trade (Withdrawal asla), IP whitelist önerilir
cp config/default.example.yaml config/default.yamlKişisel ayarların config/default.yaml üzerinde — gitignored.
cp .env.example .envZorunlu key'ler:
BYBIT_API_KEY=...
BYBIT_API_SECRET=...
BYBIT_DEMO=1 # 1 = demo, 0 = live
TV_MCP_PORT=9222Opsiyonel: FINNHUB_API_KEY (makro takvim — config'de default kapalı). .env.example'da COINALYZE_API_KEY + ARKHAM_API_KEY placeholder'ları hâlâ duruyor ama bu servisler kod tarafında emekli (2026-05-05/06) — boş bırakabilirsin.
- pine/smt_overlay.pine ve pine/smt_oscillator.pine chart'a eklenir
- Sembol:
BYBIT:BTCUSDT.P(veya config'deki herhangi bir sembol) - Timeframe: 5m
"C:\TradingView\TradingView.exe" --remote-debugging-port=9222CDP http://localhost:9222'de açılır. MCP daemon bu porta bağlanır.
# Bybit bağlantı testi (cüzdan + open positions, emir vermez)
.venv/Scripts/python.exe scripts/test_bybit_connection.py
# Tek cycle dry-run (gerçek emir açmaz)
.venv/Scripts/python.exe -m src.bot --config config/default.yaml --dry-run --once.venv/Scripts/python.exe -m src.bot --config config/default.yaml.venv/Scripts/python.exe -m src.dashboardhttp://localhost:8000 — açık pozisyonlar, balance chart, cumulative R, KPI header.
Demo'da en az birkaç gün gözle. Sonra .env içinde BYBIT_DEMO=0 + BybitClient(allow_live=True) zorunlu — constructor varsayılan olarak live'ı reddeder.
src/
├── bot/ # Runner, config, CLI entry
├── data/ # TV bridge, market state, kline cache, makro takvim
├── analysis/ # Confluence (journal-only), regime, S/R, FVG, OB
├── strategy/ # VMC entry/exit planner, RR math, risk manager
├── execution/ # Bybit V5 client, order router, position monitor
├── journal/ # SQLite async jurnal + reporter
└── dashboard/ # Read-only FastAPI viewer
pine/ # smt_overlay.pine + smt_oscillator.pine
scripts/ # Analiz, audit, backtest helper'ları
tests/ # pytest suite (746 pass)
config/default.example.yaml
- Phase 13 gözlem — 30+ closed trade kalibrasyon dataset (max-R / avg-R / Chandelier trigger oranı)
- Phase 14 fine-tune — Chandelier trail %, MFE activation, WT zone threshold A/B
- Live transition — sub-account +
BYBIT_DEMO=0+allow_live=True(100+ live trade sonrasıRISK_AMOUNT_USDT2x scale) - Pass 3 Bayesian tune — Optuna TPE + walk-forward (VMCEntryConfig + VMCExitConfig knobs)
Detaylı changelog ve faz planı: CLAUDE.md.
- Demo'dan başla. Live'a geçmeden önce en az birkaç gün demo'da izle.
- API key'e asla withdrawal yetkisi verme. IP whitelist kullan.
- Live'da sub-account kullan, ana hesabı bot'a bağlama.
BybitClientconstructor live'ı default reddeder;allow_live=Trueexplicit gerekli.- Circuit breaker'lar (drawdown · ardışık kayıp · günlük limit) src/strategy/risk_manager.py içinde.
- Bu bir araştırma projesidir, finansal tavsiye değildir. Kripto vadeli = tasfiye riski.
Bazı Türk ISP'leri api-demo.bybit.com'un cevap verdiği CloudFront IP aralıklarına TCP-443 paketlerini düşürüyor. Bot her açılışta DNS'i probe edip ulaşılabilir bir edge'i pinler (bybit_demo_dns_pinned host=… ip=… log satırı). bybit_demo_dns_pin_failed görürsen:
- Sistem DNS'ini
8.8.8.8/1.1.1.1yap - GoodbyeDPI gibi DPI atlatma araçları varsa kapat
- Bağlantı testini tekrar çalıştır