fsahinoglu adlı üyeden alıntı: mesajı görüntüle
veridiğniiz örnek spesifik benim mevcutta kullandığım uygulamada hatalar alıyorum websoket önerdiler mevcut uygulamada hatalardan ötürü kendime uyarlayamadım en azından aldığım hatayı durdurup dosyayı yeniden başlatmak istiyorum otomatik netten bununla ilgili bir kod buldum fakat çalışmıyor : doğru düzgün çalışan bir uygulama geliştiremedim illa hata olacak hataları kapatmak için yama yapıyoruz offff....
#! /bin/env python3
import os
import sys

def like_cheese():
var = input("Hi! I like cheese! Do you like cheese?").lower()
if var == "yes":
print("That's awesome!")

if __name__ == '__main__':
like_cheese()
os.execv(__file__, sys.argv) # Run a new iteration of the current script, providing any command line args from the current iteration.
python-binance veya unicorn-binance-websocket-api kütüphanelerinden birini kullanarak websocket konusunu kolaylıkla çözebilirsiniz.

Yapmanız gereken işlem kısaca şu (1 dakikalık mumlarda işlem yaptığınızı görüyorum örnek bunun üzerinden gidecek):

  1. İlk olarak get_klines vb. fonksiyonlarla ihtiyacınız olan sayıda mum verisini (OHLC) alın. Bunu yapmak için ilgili fonksiyondaki limit parametresini kullanabilirsiniz.
  2. RSI hesabının doğru olması için periyodun en az 2-3 katı veri almanızı tavsiye ederim. Yalnız 14 periyotluk mum verisi gönderirseniz hesabınız hatalı olacaktır. Burada RSI çıktısını ekrana yazdırırsanız array([nan, nan, nan, ..., 56.648156, 57.043271]) şeklinde bir sonuçla karşılaşırsınız. Ortalama hesabı doğru olmadığı için beklediğiniz değeri elde edemesiniz.
  3. Örnek olarak 100 mum verisi aldığınızı farz edelim.
  4. Soketi dinlemeye başlayın. Buradaki mantık şu, fiyat hareketi olduğunda soketten size veri geliyor, ancak gelen her veri farklı bir mumu temsil etmiyor. Burada yeni bir muma geçip geçmediğinizi "x" elemanının değişip değişmediğine bakarak anlayabilirsiniz. Detaylar için dokümantasyona göz atın.
    {
    "e": "kline", // Event type
    "E": 123456789, // Event time
    "s": "BTCUSDT", // Symbol
    "k": {
    "t": 123400000, // Kline start time
    "T": 123460000, // Kline close time
    "s": "BTCUSDT", // Symbol
    "i": "1m", // Interval
    "f": 100, // First trade ID
    "L": 200, // Last trade ID
    "o": "0.0010", // Open price
    "c": "0.0020", // Close price
    "h": "0.0025", // High price
    "l": "0.0015", // Low price
    "v": "1000", // Base asset volume
    "n": 100, // Number of trades
    "x": false, // Is this kline closed?
    "q": "1.0000", // Quote asset volume
    "V": "500", // Taker buy base asset volume
    "Q": "0.500", // Taker buy quote asset volume
    "B": "123456" // Ignore
    }
    }
  5. Eğer x parametresi değişmişse (Is this kline closed?) mum kapanışına ait sinyali almışsınız demektir. Bundan sonraki veri yeni muma ait olacak.
  6. Eğer aldığınız soket verisinde mum kapanışına ait bilgi gelmemişse OHLC değerlerini tuttuğunuz listenin son elemanını güncelleyin, kapanış bilgisi gelmişse dizinin başından bir eleman silip sonuna yeni gelen veriyi ekleyin. Bu mantıkla sürekli olarak güncel fiyat verilerini takip etmiş olursunuz.
  7. ta-lib kütüphanesini kullanarak istediğiniz indikatöre ait fonksiyonu çağırarak hesaplamanızı yapın.

Temel mantığı kabaca bu şekilde izah edebilirim. Takıldığınız bir yer olursa buradan yazarak detayları paylaşabilirsiniz, müsait oldukça yardımcı olmaya çalışırım.