Skip to content

last-26/SMTbot

Repository files navigation

SMTbot — AI Destekli Kripto Futures Trading Bot

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


Mimari

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
Loading

⚠️ Pine olmadan bot çalışmaz

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.


Önkoşullar

  • Python 3.11+
  • Node.js 18+ (TradingView MCP için)
  • TradingView Desktop (abonelik — Pine indicator gerekli)
  • Bybit Demo Trading hesabı (UTA + hedge mode)

Kurulum

1. Repo klon + venv

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

2. Bybit Demo hesap

  1. Bybit mainnet'e giriş → sol üstten Demo Trading moduna geç
  2. Demo paneli üzerinden ayrı API key üret (mainnet key'i ile aynı değil)
  3. Account type: UNIFIED (UTA) + cross margin
  4. Position mode: Hedge (bot ilk açılışta otomatik ayarlar)
  5. Collateral: USDT + USDC ON, BTC/ETH OFF
  6. API yetkisi: Read + Trade (Withdrawal asla), IP whitelist önerilir

3. Konfigürasyon

cp config/default.example.yaml config/default.yaml

Kişisel ayarların config/default.yaml üzerinde — gitignored.

4. .env dosyası

cp .env.example .env

Zorunlu key'ler:

BYBIT_API_KEY=...
BYBIT_API_SECRET=...
BYBIT_DEMO=1               # 1 = demo, 0 = live
TV_MCP_PORT=9222

Opsiyonel: 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.

5. Pine indikatörlerini TradingView'a yükle

6. TradingView Desktop'ı debug portuyla başlat

"C:\TradingView\TradingView.exe" --remote-debugging-port=9222

CDP http://localhost:9222'de açılır. MCP daemon bu porta bağlanır.

7. Smoke test

# 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

8. Demo çalıştır

.venv/Scripts/python.exe -m src.bot --config config/default.yaml

9. Dashboard (opsiyonel, read-only)

.venv/Scripts/python.exe -m src.dashboard

http://localhost:8000 — açık pozisyonlar, balance chart, cumulative R, KPI header.

Live'a geçiş

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.


Repo yapısı

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

Yapılacaklar (Roadmap)

  • 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_USDT 2x scale)
  • Pass 3 Bayesian tune — Optuna TPE + walk-forward (VMCEntryConfig + VMCExitConfig knobs)

Detaylı changelog ve faz planı: CLAUDE.md.


Güvenlik

  • 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.
  • BybitClient constructor live'ı default reddeder; allow_live=True explicit 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.

TR ISP egress notu

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.1 yap
  • GoodbyeDPI gibi DPI atlatma araçları varsa kapat
  • Bağlantı testini tekrar çalıştır

Lisans

LICENSE

About

It's a Trading bot with my exclusive experience and Reinforcement Learning

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors