Kalıcılık Sistemi

Pozisyon Kurtarma

Trading motoru, kritik trading durumunu çökmelerden, yeniden başlatmalardan ve beklenmedik kapanışlardan kurtulmak için yerleşik bir kalıcılık katmanı içerir.

Tüm aktif trading verileri, özel PersistentMap bileşeni kullanılarak otomatik olarak diske kaydedilir.

Sistem kalıcı olarak şunları saklar:

  • Aktif pozisyonlar
  • Bekleyen emirler
  • Sembol trading kontrolleri
  • Risk yönetimi durumları

Bot yeniden başladığında:

  1. 1.Kalıcı dosyalar otomatik olarak yüklenir.
  2. 2.Önceki trading durumu belleğe geri yüklenir.
  3. 3.Aktif pozisyonlar hemen izlenmeye devam eder.
  4. 4.Bekleyen emirler, borsa yürütme durumunu izlemeye devam eder.
  5. 5.Risk kontrolleri korunmuş halde kalır.

Bu, botun kesintilerden sonra manuel müdahale olmadan çalışmaya devam etmesini sağlar.

Amaç:

  • Açık pozisyonların takibini kaybetmeyi önlemek
  • Trading sürekliliğini korumak
  • Doğru risk yönetimi durumunu sürdürmek
  • Yeniden başlatmadan sonra çift girişlerden kaçınmak
Persistence System Example

Veritabanı Yapısı

Kalıcılık katmanı, Python pickle serileştirmesi üzerine inşa edilmiş hafif yerel dosya tabanlı depolama kullanır.

Her kalıcı yapı, bağımsız bir dosyada saklanır:

  • active_positions.pkl
  • pending_orders.pkl
  • symbol_controls.pkl

Mimari, kasıtlı olarak minimaldir ve düşük gecikmeli trading sistemleri için optimize edilmiştir.

Aktif Pozisyonlar

Şu anda açık olan işlemleri saklar.

Her pozisyon şunları içerir:

  • Trading sembolü
  • Pozisyon yönü
  • Miktar
  • Giriş fiyatı
  • Zarar durdurma fiyatı
  • Kar al fiyatı
  • Sürükleyen durdurma durumu
  • Zaman damgası

Amaç:

  • Yeniden başlatmadan sonra pozisyon yönetimine devam etmek
  • Zarar durdurma ve sürükleme mantığını sürdürmek
  • Tam giriş durumunu korumak

Bekleyen Emirler

Yürütme onayı bekleyen borsa emirlerini saklar.

Her emir şunları içerir:

  • Sembol
  • Emir yönü
  • Emir tipi
  • Miktar
  • Borsa emir ID'si
  • Mevcut durum

Amaç:

  • Çift emirleri önlemek
  • Borsa yürütme durumunu izlemeye devam etmek
  • Tamamlanmamış emir akışlarını kurtarmak

Sembol Kontrolleri

Çalışma zamanı trading izinlerini ve koruma durumlarını saklar.

Her sembol şunları içerebilir:

  • Alım etkinlik durumu
  • Satım etkinlik durumu
  • Devre dışı bırakma nedenleri
  • Risk kilit durumları

Amaç:

  • Otomatik risk kısıtlamalarını korumak
  • Yeniden başlatmadan sonra kazara reaktivasyonu önlemek

Çökme Kurtarma Mantığı

Kalıcılık sistemi şu durumlarda otomatik kurtarma için tasarlanmıştır:

  • Süreç çökmeleri
  • Sunucu yeniden başlatmaları
  • VPS arızaları
  • Elektrik kesintileri
  • Beklenmeyen istisnalar

Eşzamansız Kalıcılık

Tüm yazmalar, özel bir arka plan iş parçacığında işlenir.

Özellikler:

  • Trading yürütmeyi engellemez
  • Sürekli otomatik kaydetme
  • Kuyruk tabanlı kaydetme planlaması

Amaç:

  • Disk işlemlerinin neden olduğu trading gecikmelerini önlemek.

Atomik Dosya Kaydetme

Sistem, maksimum veri güvenliği için atomik dosya değiştirme kullanır.

Kaydetme akışı:

  1. 1.Veriler geçici bir .tmp dosyasına yazılır.
  2. 2.Geçici dosya tamamen tamamlanır.
  3. 3.Dosya, atomik olarak nihai kalıcılık dosyasına yeniden adlandırılır.

Amaç:

  • Çökmeler veya kesintili yazmalar sırasında bozuk kalıcılık dosyalarını önlemek.

Kaydetme Tekilleştirmesi

Kalıcılık kuyruğu, eski kaydetme isteklerini otomatik olarak kaldırır.

Davranış:

  • Yalnızca en yeni durum kalıcı hale getirilir.
  • Gereksiz disk yazmaları atlanır.

Amaç:

  • Disk kullanımını azaltmak
  • Yoğun güncelleme sıklığında performansı iyileştirmek

Otomatik Durum Yeniden Yükleme

Başlangıç sırasında:

  1. 1.Kalıcılık dosyaları tespit edilir.
  2. 2.Serileştirilmiş nesneler belleğe geri yüklenir.
  3. 3.Trading motoru hemen izlemeye devam eder.

Kalıcılık dosyaları mevcut değilse:

  • Yeni temiz depolama otomatik olarak başlatılır.

İş Parçacığı Güvenliği

Kalıcılık motoru, kaydetme işlemleri sırasında dahili senkronizasyon kilitleri kullanır.

Özellikler:

  • Eşzamanlı güvenli yazmalar
  • Güvenli çoklu iş parçacığı erişimi
  • Korumalı dosya değiştirme

Amaç:

  • Trading iş parçacıkları ile kalıcılık katmanı arasında tutarlılık sağlamak

Düzgün Kapanış Koruması

Kapanıştan önce:

  1. 1.Son kaydetme işlemi zorlanır.
  2. 2.Kaydetme kuyruğu tamamen temizlenir.
  3. 3.Arka plan kalıcılık iş parçacığı güvenli bir şekilde durdurulur.

Amaç:

  • Çıkıştan önce en son trading durumunun diske yazılmasını garanti etmek.