Bot Mimarisi

TCP Architecture

Sisteme Genel Bakış

ByNinja Trading platformu, trading yürütmeyi kullanıcı etkileşiminden ayıran dağıtılmış çoklu süreç sistemi olarak inşa edilmiştir.

Mimari, iki bağımsız uygulamadan oluşur:

  • Trading Botu — piyasa analizi, strateji yürütme, risk yönetimi ve emir işlemeden sorumludur.
  • Telegram Kontrol Sunucusu — Telegram üzerinden bildirimler, uzaktan kontrol ve komut işlemeden sorumludur.

Her iki hizmet, hafif bir özel TCP katmanı aracılığıyla iletişim kurar, bu sayede bağımsız çalışırken gerçek zamanlı olarak senkronize kalırlar.

Bu ayrım, kararlılığı, ölçeklenebilirliği ve hata izolasyonunu iyileştirir. Telegram hizmeti kullanılamaz hale gelse bile, trading motoru kesintisiz çalışmaya devam edebilir.


Süreç Mimarisi

Sistem, her bileşenin belirli bir sorumluluğa sahip olduğu süreç odaklı bir tasarım kullanır.

Trading Süreci

Trading süreci şunları yönetir:

  • Borsa API entegrasyonu
  • Piyasa izleme
  • Strateji yürütme
  • Risk yönetimi
  • Pozisyon işleme
  • İç loglama

Trading motoru sürekli çalışır ve TCP istemci bağlantısı üzerinden uzaktan kontrol komutlarını kullanıma sunar.

Telegram Süreci

Telegram süreci şunları işler:

  • Telegram Bot API iletişimi
  • Kullanıcı komut işleme
  • Bildirimler ve uyarılar
  • TCP sunucu yönetimi

Bu süreç, kullanıcı ile trading motoru arasında bir köprü görevi görür.

Bağımsız Çalışma Zamanı

Her iki uygulama ayrı ayrı başlatılır ve bağımsız süreçler olarak çalışır:

Code
python3 -c "from trading.main import main; main()"
Code
python3 -c "from telegram.main import main; main()"

Her iki hizmet izole edildiğinden, her süreç diğer alt sistemi etkilemeden yeniden başlatılabilir, güncellenebilir veya hata ayıklaması yapılabilir.


TCP İletişimi

İletişim katmanı, düşük yük ve gerçek zamanlı etkileşim için tasarlanmış özel bir TCP protokolüne dayanır.

İletişim Akışı

Code
Telegram User
      ↓
Telegram Bot
      ↓
TCP Server
      ↓
Trading Bot TCP Client
      ↓
Trading Engine

Ters akış, loglar, uyarılar ve durum güncellemeleri için kullanılır.

Mesaj Yapısı

Tüm mesajlar, sabit uzunluklu bir başlık ile JSON formatında aktarılır:

Code
{
    "tag": "command",
    "message": "starttrading",
    "timestamp": 1750000000
}

Desteklenen Özellikler

TCP katmanı şunları içerir:

  • Otomatik yeniden bağlanma mantığı
  • Arka plan gönder/alma işçileri
  • İş parçacığı güvenli mesaj kuyrukları
  • Düzgün kapanış işleme
  • Türe göre mesaj yönlendirme
  • Kalıcı bağlantı izleme

Komut Sistemi

Mimari şu gibi uzaktan komutları destekler:

  • Tradingi başlat / durdur
  • Alımı etkinleştir veya devre dışı bırak
  • Satımı etkinleştir veya devre dışı bırak
  • Zorla alım / satım işlemleri
  • İstatistik alma
  • Sistem durumu izleme

Komutlar global veya sembole özel olabilir.


Çoklu Süreç Tasarımı

Platform, monolitik bir tasarım yerine çoklu süreç mimarisini takip eder.

Avantajlar

İzolasyon

Telegram alt sistemindeki bir arıza, trading işlemlerini durdurmaz.

Ölçeklenebilirlik

Her hizmet gelecekte farklı makinelere veya konteynırlara dağıtılabilir.

Sürdürülebilirlik

Kod tabanı, net sorumluluklara sahip mantıksal bileşenlere ayrılmıştır.

Güvenilirlik

TCP yeniden bağlanma ve arka plan işçileri, geçici ağ arızalarında bile kararlı iletişimin korunmasına yardımcı olur.

Eşzamanlı Yürütme

Trading işlemleri, Telegram yoklaması, TCP iletişimi ve loglama, özel iş parçacıkları kullanarak eşzamanlı çalışır.


İç Eşzamanlılık Modeli

Her sürecin içinde sistem, eşzamansız işlemler için çoklu iş parçacığı kullanır.

Trading Uygulaması İş Parçacıkları

  • Trading yürütme iş parçacığı
  • TCP iletişim iş parçacığı
  • Log iletme iş parçacığı
  • Arka plan izleme işçileri

Telegram Uygulaması İş Parçacıkları

  • Telegram yoklama iş parçacığı
  • TCP sunucu iş parçacığı
  • Mesaj iletme işçileri

Bu tasarım, ağ işlemlerinin trading motorunu asla bloke etmemesini sağlar.