Python ile Kripto Para Al/Sat Botu Yazalım (Python Trading Bot)

Kripto para grafiklerini saatlerce izlemekten bıktıysan, otomatik olarak belli bir algoritmaya göre al-sat yapabileceğini biliyor musun? Örneğin binance üzerinde python kullanarak otomatik olarak al-sat yapabilirsiniz.

TradingView sitesini bilmeyen trader herhalde yoktur. TradingView pine dili ile alert verebilir, kendi algoritmanızı yazabilirsiniz. TradingView üzerinde belirli bir sayıda indikator ekleyebilir, alert yazabilirsiniz. Belirli bir limiti aştıktan sonra, ücretli bir üyelik almanız gerekiyor.

Aynı şeyi python dilini kullanarak yapacağız arkadaşlar; adım adım nasıl yapacağınızı göstereceğim. Böylece istediğiniz kadar indikator ekleyebilir ve dilediğiniz algoritmaya göre alert verebilir, al-sat yapabilirsiniz.

Python Ide olarak PyCharm kullanıyorum arkadaşlar:

Uygulamayı Yazmaya Başlıyoruz

PyCharm ile yeni proje oluşturalım:

Python 3.6 sürümünü kullanıyorum.

Projemizi oluşturduktan sonra da yeni python dosya oluşturalım:

İsmini de algotrade olarak veriyorum.

Kripto para bilgilerini ve al/sat işlemlerini binance üzerinden alacağım. Binance bildiğiniz gibi çok yaygın bir şekilde kullanılan ve oldukça fazla hacimli işlem yapılan bir kripto para borsasıdır.

Binance Api (Key, Secret) Parametrelerimizi Alalım

Binance borsası üzerinde hesabınızın olduğunu varsayıyorum. Binance hesabınıza login olup, api yönetimi sayfanıza gidiniz:

Api Yönetimi sayfasında yeni api anahtarı oluşturun:

Bir etiket adı verip oluştur tuşuna basınca bizim için yeni bir key ve secret anahtar değerlerini oluşturacaktır.

Bu değerleri (key, secret) python projemizde bir txt dosyasına yazalım (credentials.txt):

credentials.txt (üst satır key, alt satır secret değeri):

3jJ8kD8D5iexxxxx908080980980980980
7VsGh8g4eguHfMj7LA23zkvJLbnbnbbn958585

algotrade.py kodumuza geri dönelim:

from binance.client import Client

class BinanceConnection:
    def __init__(self, file):
        self.connect(file)

    """ Creates Binance client """
    def connect(self, file):
        lines = [line.rstrip('\n') for line in open(file)]
        key = lines[0]
        secret = lines[1]
        self.client = Client(key, secret)

if __name__ == '__main__':
    pass

Bu kodda binance borsasına bağlanmak için bir sınıf oluşturuyoruz.

Kodumuz şu haliyle çalışmayacaktır. Binance client kütüphanesini yükleyelim.

python-binance kütüphanesi

https://github.com/sammchardy/python-binance

Binance borsası tüm fiyat bilgilerini rest apileri ile dışarıya sunmaktadır. python-binance kütüphanesi de bu bilgilere python ortamında erişmemizi kolaylaştıran güzel bir kütüphanedir.

PyCharm settings (ayarlar) menüsüne bağlanalım:

Settings ekranına + düğmesine tıklayarak (python-binance) kütüphanesini ekleyelim:

python-binance kütüphanesinin eklenmesi:

Install Package diyerek kütüphaneyi yüklemiş oluruz.

Artık algotrade.py kodunu çalıştırınca hata vermeyecektir. Binance borsasına bağlandığımıza göre BTCUSDT ikilisinin fiyatlarını çekmeyi deneyelim:

algotrade.py:

from binance.client import Client

class BinanceConnection:
    def __init__(self, file):
        self.connect(file)

    """ Creates Binance client """
    def connect(self, file):
        lines = [line.rstrip('\n') for line in open(file)]
        key = lines[0]
        secret = lines[1]
        self.client = Client(key, secret)

if __name__ == '__main__':
    filename = 'credentials.txt'
    connection = BinanceConnection(filename)

    symbol = 'BTCUSDT'
    interval = '5m'
    limit = 500

    try:
        klines = connection.client.get_klines(symbol=symbol, interval=interval, limit=limit)
    except Exception as exp:
        print(exp.status_code, flush=True)
        print(exp.message, flush=True)

    open = [float(entry[1]) for entry in klines]
    high = [float(entry[2]) for entry in klines]
    low = [float(entry[3]) for entry in klines]
    close = [float(entry[4]) for entry in klines]

    last_closing_price = close[-1]

    previous_closing_price = close[-2]

    print('anlık kapanış fiyatı', last_closing_price, ', bir önceki kapanış fiyatı', previous_closing_price)

Örneğimizde BTC’nin 5 dakikalık mum grafiğini USDT (tether) cinsinden bize dönen bir kod yazmış olduk:

anlık kapanış fiyatı 9354.79 , bir önceki kapanış fiyatı 9349.01

Parametreleri daha iyi anlamak için, binance’ın resmi api dokümanlarını incelemenizde fayda olacaktır:

https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md

close değişkeninde kapanışları bir liste olarak elde ettik.

Listenin son ve bir önceki değerlerine aşağıdaki kod satırları ile ulaşmış oluruz:

last_closing_price = close[-1]
previous_closing_price = close[-2]

Indikatörleri Nasıl Hesaplarız?

Şimdi belirli bir sistem dahilinde uyarı (alert, mail) ya da al/sat komutu vermek istiyoruz. Bir algoritmamız olduğunu basit bir örnek olmak üzere, macd ve macd sinyalinin üst tarafa doğru kesiştiği zaman alım emri verelim.

Bunu yapmak için, macd değerini hesaplamamız gerekiyor. Halihazırda böyle bir kütüphane olduğu için bizim yazmamıza gerek kalmayacaktır.

TA-Lib Python kütüphanesi ile 150’ye yakın indikatörü kolayca hesaplayabiliriz

Ta-lib kütüphanesi bu konudaki ihtiyacımızı rahatlıkla görecektir.

https://github.com/mrjbq7/ta-lib

Şöyle bir mantık düşünelim: 5 dakikalık rsi değeri 50’nin üzerinde olsun ve macd değeri macd sinyal değerini yukarı doğru kessin.

Bu mantığın pek çok durumda işe yaramayacağını söyleyelim. Sırf basit bir örnek olsun diye yapıyoruz. Amacımız örnek bir algoritmanın yazılıma nasıl uyarlanacağıdır.

TA-Lib kurulumu

Daha önce python-binance kütüphanesini kurmak için settings sayfasına giderek eklemiştik. TA-Lib kütüphanesi ise 3.6 python sürümünü tam olarak desteklemediği için farklı bir şekilde kuracağız:

https://www.lfd.uci.edu/~gohlke/pythonlibs/

Yukarıdaki siteden TA_Lib‑0.4.18‑cp36‑cp36m‑win_amd64.whl dosyasını kendi bilgisayarıma indirdim.

Siz bu dosya yerine hangi python sürümünü kullanıyorsanız onunla uyumlu sürümü indirin. Dosyayı projenin kök dizinine indiriyorum.

Dosyayı indirdikten sonra, pycharm terminal ekranından pip3 install diyerek kurulumu gerçekleştiriyorum:

pip3 install TA_Lib-0.4.17-cp36-cp36m-win_amd64.whl

Bu şekilde kurulumu başarıyla gerçekleştirdikten sonra artık istediğimiz ta-lib fonksiyonunu kullanmaya başlayabiliriz:

Öncelikle başka bir kütüphane daha ekleyelim (numpy). Numpy kütüphanesini yine pycharm File-> Settings (ayarlar) -> Project -> Project Interpreter menüsünden kolayca ekleyebiliriz.

numpy kütüphanesini ekledikten sonra algotrade.py kodunu son haline getirelim:

from binance.client import Client
import talib as ta
import numpy as np
import time

class BinanceConnection:
    def __init__(self, file):
        self.connect(file)

    """ Creates Binance client """
    def connect(self, file):
        lines = [line.rstrip('\n') for line in open(file)]
        key = lines[0]
        secret = lines[1]
        self.client = Client(key, secret)

if __name__ == '__main__':
    filename = 'credentials.txt'
    connection = BinanceConnection(filename)

    symbol = 'BTCUSDT'
    interval = '5m'
    limit = 500

    while True:
        # 10 saniye bekliyoruz. Sürekli sorgu göndermeye gerek yok.
        time.sleep(10)

        try:
            klines = connection.client.get_klines(symbol=symbol, interval=interval, limit=limit)
        except Exception as exp:
            print(exp.status_code, flush=True)
            print(exp.message, flush=True)

        open = [float(entry[1]) for entry in klines]
        high = [float(entry[2]) for entry in klines]
        low = [float(entry[3]) for entry in klines]
        close = [float(entry[4]) for entry in klines]

        last_closing_price = close[-1]

        previous_closing_price = close[-2]

        print('anlık kapanış fiyatı', last_closing_price, ', bir önceki kapanış fiyatı', previous_closing_price)

        close_array = np.asarray(close)
        close_finished = close_array[:-1]

        macd, macdsignal, macdhist = ta.MACD(close_finished, fastperiod=12, slowperiod=26, signalperiod=9)
        rsi = ta.RSI(close_finished, timeperiod=14)

        if len(macd) > 0:
            last_macd = macd[-1]
            last_macd_signal = macdsignal[-1]

            previous_macd = macd[-2]
            previous_macd_signal = macdsignal[-2]

            rsi_last = rsi[-1]

            macd_cross_up = last_macd > last_macd_signal and previous_macd < previous_macd_signal

            if macd_cross_up and rsi_last > 50:
                print('al sinyali', flush=True)

                # mail atabilirsiniz, sms gönderebilirsiniz.

                # alım yapabilirsiniz (0.1 miktarında market ya da limit alım emri girebiliriz):

                # buy_order = connection.client.order_market_buy(
                #     symbol=symbol,
                #     quantity=0.1)

Kodun üzerinde biraz duracak olursak, öncelikle sonsuz bir döngü kuruyoruz.

Program sürekli 10 saniyelik aralarla binance borsasını dinleyerek, rsi ve macd değerlerinin bizim belirlediğimiz şartlara uyup uymadığını denetliyor. Eğer uyuyorsa:

macd_cross_up and rsi_last > 50:

Bize uyarı vermesini sağlamış oluyoruz.

close_array = np.asarray(close)
close_finished = close_array[:-1]

Yukarıdaki kodda close değişkenine attığımız değerleri direkt almıyoruz. Çünkü anlık mum çubuğunu değil, tamamlanmış çubuğu hesaplamaya esas alıyoruz.

close_array[:-1] ile son çubuk hariç diğer değerleri almış oluyoruz.

Sonuç ve İyileştirme

Böylece dünyada en çok kullanılan dillerden birisi olan python dili ile nasıl bir al sat botu yazabileceğimizi görmüş olduk.

Binance çok yaygın bir kripto para borsası. Diğer borsaların da benzer api (rest, socket) arabirimleri var. O yüzden onlara da aynı mantığı uyarlayabilirsiniz. Daha güzeli ise CCXT kütüphanesini kullanmak olacaktır:

https://github.com/ccxt/ccxt

Bu kütüphane tüm borsalara standart bir arabirimle bağlanmaya imkan tanımaktadır. O yüzden iyileştirme adımı olarak kullanabilirsiniz.

TA-Lib içerisinde bulunmayan bazı indikatörleri de implement ettim (Tillson T3, supertrend). Eğer fırsat bulursam onları da onbirkod üzerinde paylaşacağım.

Güncelleme

SuperTrend indikatörünü python ile yazdığım fonksiyonu linke tıklayarak inceleyebilirsiniz.

Tillson T3 indikatörünü python ile yazalım.

Yararlı olmasını umuyorum.

Faydalandığım Kaynaklar

https://steemit.com/cryptocurrency/@genesiscrypto/cryptocurrency-trading-bot-part-1-setup-and-connect-to-binance

https://steemit.com/cryptocurrency/@genesiscrypto/cryptocurrency-trading-bot-part-2-ta-lib-setup-and-beginning-strategy

Python ile Mail Göndermek için tıklayın

141 thoughts on “Python ile Kripto Para Al/Sat Botu Yazalım (Python Trading Bot)”

  1. merhaba, 2 hareketli ortalamanın crossover yapmasını kullanarak basit bit bot yazdırmak istiyorum. örneğin XRP/BTC de trade ediyor olalım. hareketli ortalamalar AL sinyal verdiğinde portföyümde olan BTC ile XRP alıyoruz. hareketli ortalamalar SAT sinyali verdiğinde eğer BTC/USDT çaprazı aynı hareketli ortalamalar AL pozisyonunda ise BTC de kalıyoruz değil ise USDT’ ye geçiyoruz. bunu yazdırmak istiyorum. yardımcı olabilirseniz memnun olurum. sevgiler

    1. Selamlar
      Ema (exponential moving average, üssel ortalama) için ta.EMA,
      SMA (simple moving average, basit ortalama) için ta.SMA fonksiyonunu kullanabilirsiniz.

      Aşağıdaki koda benzer şekilde çakışmayı kontrol edebilirsiniz:

      ema10 = ta.EMA(close_array, 10)
      last_ema10 = ema10[-1]
      previous_ema10 = ema10[-2]

      ema20 = ta.EMA(close_array, 20)
      last_ema20 = ema20[-1]
      previous_ema20 = ema20[-2]

      # ema10 değeri ema20’yi yukarı doğru kesiyor, al sinyali
      if last_ema10 > last_ema20 and previous_ema10 < previous_ema20: print(''al sinyali', flush=True) ------

      1. Hocam bu örnek hatalı değil mi?
        çünkü ilk bakışta da close_finished değişkenini değil de close_array değişkenini almış olduğunuz gözüme çarptı.
        Ema ve WMA olarak çok basit bir örnek yazabilir misiniz?

        şöyle yapsak doğru olur mu?
        Ema9 = ta.EMA(close_finished, 9)
        Son_Ema9 = Ema9[-1]
        Onceki_Ema9 = Ema9[-2]

        Wma30 = ta.WMA(close_finished, 30)
        Son_Wma30 = Wma30[-1]
        Onceki_Wma30 = Wma30[-2]

        yardım ederseniz çok memnun olurum. teşekkürler.

  2. merhaba,
    tradingview’ den aldığım verilerle yalnızca 2 hareketli ortalama kullanarak binance’ de çalışan bir bot yazdırmak istiyorum. ayrıca dk lık güncellemeler yaparak binance’ da listelenen tüm coin lerdeki sonuçları (buy/sell) bir web sitesinde yayımlamak istiyorum. bu konuda birlikte nasıl çalışabiliriz?

    1. Ben binance api üzerinden verileri çekiyorum. TradingView’da aynı yerden verileri çekiyor. Hangi borsayı esas alıyorsanız onun api’si üzerinden veriye ulaşabilirsiniz.

      Geliştirme hakkında daha detaylı bilgi için, email adresime mesaj gönderebilirsiniz. Başarılar dilerim.

      talattufekci@gmail.com

  3. buy_order = connection.client.order_market_buy(
    symbol=symbol,
    quantity=0.1)

    satın alma işlemine hata vermekte komut hatalı dıyor. symbol=symbol bölümüne ayrıca satma komutuda bunun tam tersimi olmalı? market_sell gibi teşekkürler

  4. Geri bildirim: SuperTrend İndikatörünü Python ile Yazalım - Onbirkod

  5. selamlar

    python-binance kütüphanesini yüklemek istediğim de bu hatayı alıyorum sebep ne olabilir acaba
    Error occurred when installing package”python-binance”

    1. Error’un kendisini göndermeniz gerekiyor. İnternete bağlı olmanız gerekiyor, dosyayı uzaktan yükleyeceği için. Diğer taraftan firewall antivirüs programlarını kontrol edebilirsiniz.
      Hata mesajının kendisini gönderirseniz daha net bir cevap verebilirim.

  6. merhaba xrp haftalık grafikte rsi indikatörü 40-60 arası gidip geliyor 1,5 yıldır. Buna göre bir alım satım botunu ve ayrıca;
    ampl tokeni 0,55 usd -0,80 usd arasında 4 kez para kazandım.
    bu ikisinin python kodlarını urhanozgur67@gmail.com adresine mail atarmısınız.
    Teşekkürler.

  7. Tradingview’da kendi oluşturduğumuz indikatörün verdiği al ve sat değerlerine programı nasıl uygulayabiliriz. bir kaç indikatörün birleşiminden hibrit bir indikatör oluşturduk. Kütüphanede bulunan hazır indikatörlerden olmadığı için uyarlama konusunda fikir verirseniz sevinirim.

    Değerli vaktinizi aldığım için kusura bakmayın. Selamlar.

    1. Merhaba

      Supertrend indikatörünü python ile yazdığım yazıya bakabilirsiniz.

      Söylediğiniz gibi uyarlama için python ve algoritma bilgisi gerekiyor.

      İyi çalışmalar dilerim.

  8. merhaba, binance testnet üzerinde botu çalıştırmak istiyorum. binance’den çekilen verilerle testnet verileri arasında farklılık var mıdır?

  9. Merhabalar;
    python-binance yüklerken sürekli hata alıyorum pip hatası sanırsam ama çözüm bulamadım yardımcı olabilirmisiniz
    Teşekkürler..

    ERROR: Command errored out with exit status1:
    Try to run this command from the system terminal. Make sure that you use the correct version of ‘pip’ installed for your Python interpreter located at ‘C:\Users\….\PycharmProjects\binance\venv\Scripts\python.exe’.

    ERROR: Command errored out with exit status 1: ‘C:\Users\….\PycharmProjects\binance\venv\Scripts\python.exe’ -u -c ‘import sys, setuptools, tokenize; sys.argv[0] = ‘”‘”‘C:\\Users\\…..\\AppData\\Local\\Temp\\pip-install-qig93_0r\\twisted_2532199c36d64e3b93582a66a43cf694\\setup.py'”‘”‘; __file__='”‘”‘C:\\Users\\……\\AppData\\Local\\Temp\\pip-install-qig93_0r\\twisted_2532199c36d64e3b93582a66a43cf694\\setup.py'”‘”‘;f=getattr(tokenize, ‘”‘”‘open'”‘”‘, open)(__file__);code=f.read().replace(‘”‘”‘\r\n'”‘”‘, ‘”‘”‘\n'”‘”‘);f.close();exec(compile(code, __file__, ‘”‘”‘exec'”‘”‘))’ install –record ‘C:\Users\….\AppData\Local\Temp\pip-record-mhletjyi\install-record.txt’ –single-version-externally-managed –compile –install-headers ‘C:\Users\…..\PycharmProjects\binance\venv\include\site\python3.8\Twisted’ Check the logs for full command output.

    1. pycharm editöründe yazıda dediğim gibi install etmeyi deneyebilir misiniz?

      Bahsettiğiniz hatayı ide’ye mi veriyor, yoksa komut satırında mı çalıştırıyorsunuz?

      1. Dosyayı başka türlü yüklemenin yolu yok mu ? Ben de aynı hatayı alıyorum. Editörden de pip install dan da aynı hata geliyor talib versiyonu ile mi ilgili acaba özel bir versiyon gerektiriyor olabilir mi ?

        Try to run this command from the system terminal. Make sure that you use the correct version of ‘pip’ installed for your Python interpreter located at ‘C:\Users\Predator\PycharmProjects\HRobo\venv\Scripts\python.exe’.

        1. Sistemde python 3 versiyonu olması gerekiyor.
          python 2 varsa onu uninstall edebilirsiniz.

          pip yerine bazen pip3 komutunu da deneyebilirsiniz.

  10. Merhaba öncelikle yazınız için teşekkürler,

    Ben RSI 35 altına düşüp Parabolic SAR’ ın kırılım yaptığı yerde alım yaptırmak ve RSI 65 ‘in üstüne çıkıp Parabolic SAR’ın kırılım yaptğı yerde satım yaptırmak istiyorum yardımcı olabilir misiniz?

  11. Merhaba,

    Pycharmda Python-Binance’i kurarken hata alıyorum. Cmd ekranında pip install python-binance diyince yüklendi ve jupyterlabda kullanabildim fakat Pycharm nedense hata veriyor.

    Aynı zamanda TaLib içinde filename.whil is not a supported wheel on this platform. Hatası alıyorum, stackoverflowda da araştırma yaptım fakat çözümüze ulaşamadım bana önerebileceğin bir şey var mı?

    1. Merhaba

      Hatanın detayını paylaşırsan sevinirim.

      Versiyon uyuşmazlığı olabilir. Hangi python sürümünü kullanıyorsun?

      Talip wheel dosyasını kendi sürümüne uygun olanını seçmelisin.

      İyi çalışmalar

  12. Verdiğin bilgiler çok değerli. Emeğin için teşekkürler. Bunu kullanarak ilk kodumu çalıştırdım. Hello Algotrade dedim diyebiliriz 🙂
    Backtest ile ilgili bir çalışman var mı?
    Kıvanç Özbilgiç’in son zamanlarda yayınladığı most ve supertrend’in birleşimi olan P maximizer indikatörü içinde belki bir çalışma yapılabilir.

    1. Merhaba

      Backtest ile ilgili olarak jesse diye bir framework var. Onu araştırıyorum.

      Diğer frameworklerin biraz kompleks bir yapısı var. jesse daha basit ve anlaşılır geldi. Onun üzerinde çalışıyorum.

      Çalışmam tamamlandığında bir yazı hazırlamayı düşünüyorum.

      https://jesse.trade/

  13. Bende sizin bu yazınız ile Binance’ten ilk veriyi çektim.Teşekkür ederim. Daha sonra supertrend ile devam edeceğim. Kıvanç Özbilgiç’in profit maximixer gibi diğer indikatörleri ile backtestler yapılıp karşılaştırmalar yapılabilir belki. Kolay gelsin.

  14. Merhaba,
    otomatik olarak benim adıma alıp satması için kullanabileceğimiz bir komut var mıdır var ise paylaşırsanız sevinirim.

    1. Bunun için bir firmanın servisini kullanmak gerekiyor. Nasıl bir servis sunuyorsa, oraya özgü bir kod yazmak gerekiyor.

      Python ile bir telegram bot yazabilirsiniz. O konuda bir yazı hazırlamak istiyorum.

  15. ERROR: Command errored out with exit status 1:
    Try to run this command from the system terminal. Make sure that you use the correct version of ‘pip’ installed for your Python interpreter located at ‘C:\Users\….”
    böyle bir hata alıyorum nasıl düzeltebilirim
    python-binance kütüphanesini yüklerken

  16. merhaba kod için teşekkürker.
    Bu koda shaff trend cycle (STC) indicator eklemek istiyorum acaba bu konuda çalışmanız var mıdır?

  17. Tradingview daki Kıvançın Supertrend ten farklı çalışıyor. tam doğru yerde al sat sinyali gelmiyor sanki. Tradingview da buy yazarken burda sell geliyor mesela. Nasıl örtüştüreceğim bilemedim.

  18. Normal de

    if(last_closing_price>previous_closing_price)
    {
    fonksiyon satin al ve satış fiyatı
    }

    şeklinde bir fonksiyonu nasıl yazabiliriz. bu kütüphanede satın alma ve satış emri fonksiyonunu bulamadımda

  19. Merhaba Hocam ;

    from binance.client import Client

    class BinanceConnection:
    def __init__(self, file):
    self.connect(file)

    “”” Creates Binance client “””
    def connect(self, file):
    lines = [line.rstrip(‘D:\credentials.txt’) for line in open(file)]
    key = lines[0]
    secret = lines[1]
    self.client = Client(key, secret)

    if __name__ == ‘__main__’:
    filename = ‘credentials.txt’
    connection = BinanceConnection(filename)

    symbol = ‘BTCUSDT’
    interval = ‘5m’
    limit = 500

    try:
    klines = connection.client.get_klines(symbol=symbol, interval=interval, limit=limit)
    except Exception as exp:
    print(exp.status_code, flush=True)
    print(exp.message, flush=True)

    open = [float(entry[1]) for entry in klines]
    high = [float(entry[2]) for entry in klines]
    low = [float(entry[3]) for entry in klines]
    close = [float(entry[4]) for entry in klines]

    last_closing_price = close[-1]

    previous_closing_price = close[-2]

    print(‘anlık kapanış fiyatı’, last_closing_price, ‘, bir önceki kapanış fiyatı’, previous_closing_price)

    Kodu bu şekilde dediğiniz gibi yazdım. Fakat aşagıdaki hatayı aldım.

    “C:\Users\Edanur Selam\PycharmProjects\BOT\venv\Scripts\python.exe” “C:/Users/Edanur Selam/PycharmProjects/BOT/main.py”
    Traceback (most recent call last):
    File “C:/Users/fuaterturk/PycharmProjects/BOT/main.py”, line 16, in
    connection = BinanceConnection(filename)
    File “C:/Users/fuaterturk/PycharmProjects/BOT/main.py”, line 5, in __init__
    self.connect(file)
    File “C:/Users/fuaterturk/PycharmProjects/BOT/main.py”, line 9, in connect
    lines = [line.rstrip(‘D:\credentials.txt’) for line in open(file)]
    FileNotFoundError: [Errno 2] No such file or directory: ‘credentials.txt’

    Process finished with exit code 1

    D sürücünde credentials.txt dosyası var
    0. satır key yazıyor
    1. satır secret yazıyor.
    Pycharm da yazıyorum.
    pyhton 3.6 yüklü
    pyhton binance kütüphanesi yüklü

    1. windows pathlerinde bazen ters slash kullanmak gerekebiliyor. Siz credentials dosyasını main.py nin olduğu dizine atıp deneyebilirsiniz.

  20. # buy_order = connection.client.order_market_buy(
    # symbol=symbol,
    # quantity=0.1)
    # işaretlerini kaldırdıgımda hata veriyor.

    Verdiği hata:
    buy_order = connection.client.order_market_buy(
    IndentationError: unexpected indent

  21. ERROR: Command errored out with exit status 1: hatası alıyorum hocam son sürümleri indirdim sitelerinden sizce ne yapmalıyım?

    Collecting python-binance
    Using cached python_binance-0.7.9-py2.py3-none-any.whl (36 kB)
    Collecting dateparser
    Using cached dateparser-1.0.0-py2.py3-none-any.whl (279 kB)
    Requirement already satisfied: requests in c:\users\kteki\pycharmprojects\alsatbotu\venv\lib\site-packages (from python-binance) (2.25.1)
    Collecting pyOpenSSL
    Using cached pyOpenSSL-20.0.1-py2.py3-none-any.whl (54 kB)
    Requirement already satisfied: six in c:\users\kteki\pycharmprojects\alsatbotu\venv\lib\site-packages (from python-binance) (1.15.0)
    Requirement already satisfied: certifi in c:\users\kteki\pycharmprojects\alsatbotu\venv\lib\site-packages (from python-binance) (2020.12.5)
    Requirement already satisfied: cryptography in c:\users\kteki\pycharmprojects\alsatbotu\venv\lib\site-packages (from python-binance) (3.4.6)
    Requirement already satisfied: urllib3 in c:\users\kteki\pycharmprojects\alsatbotu\venv\lib\site-packages (from python-binance) (1.26.3)
    Collecting Twisted
    Using cached Twisted-20.3.0.tar.bz2 (3.1 MB)
    Requirement already satisfied: ujson in c:\users\kteki\pycharmprojects\alsatbotu\venv\lib\site-packages (from python-binance) (4.0.2)
    Collecting autobahn
    Using cached autobahn-21.2.2-py2.py3-none-any.whl (495 kB)
    Collecting service-identity
    Using cached service_identity-18.1.0-py2.py3-none-any.whl (11 kB)
    Requirement already satisfied: txaio>=21.2.1 in c:\users\kteki\pycharmprojects\alsatbotu\venv\lib\site-packages (from autobahn->python-binance) (21.2.1)
    Requirement already satisfied: hyperlink>=21.0.0 in c:\users\kteki\pycharmprojects\alsatbotu\venv\lib\site-packages (from autobahn->python-binance) (21.0.0)
    Requirement already satisfied: cffi>=1.12 in c:\users\kteki\pycharmprojects\alsatbotu\venv\lib\site-packages (from cryptography->python-binance) (1.14.5)
    Requirement already satisfied: pycparser in c:\users\kteki\pycharmprojects\alsatbotu\venv\lib\site-packages (from cffi>=1.12->cryptography->python-binance) (2.20)
    Requirement already satisfied: idna>=2.5 in c:\users\kteki\pycharmprojects\alsatbotu\venv\lib\site-packages (from hyperlink>=21.0.0->autobahn->python-binance) (2.10)
    Requirement already satisfied: tzlocal in c:\users\kteki\pycharmprojects\alsatbotu\venv\lib\site-packages (from dateparser->python-binance) (2.1)
    Requirement already satisfied: regex!=2019.02.19 in c:\users\kteki\pycharmprojects\alsatbotu\venv\lib\site-packages (from dateparser->python-binance) (2020.11.13)
    Requirement already satisfied: python-dateutil in c:\users\kteki\pycharmprojects\alsatbotu\venv\lib\site-packages (from dateparser->python-binance) (2.8.1)
    Requirement already satisfied: pytz in c:\users\kteki\pycharmprojects\alsatbotu\venv\lib\site-packages (from dateparser->python-binance) (2021.1)
    Requirement already satisfied: chardet=3.0.2 in c:\users\kteki\pycharmprojects\alsatbotu\venv\lib\site-packages (from requests->python-binance) (4.0.0)
    Requirement already satisfied: attrs>=16.0.0 in c:\users\kteki\pycharmprojects\alsatbotu\venv\lib\site-packages (from service-identity->python-binance) (20.3.0)
    Requirement already satisfied: pyasn1-modules in c:\users\kteki\pycharmprojects\alsatbotu\venv\lib\site-packages (from service-identity->python-binance) (0.2.8)
    Requirement already satisfied: pyasn1 in c:\users\kteki\pycharmprojects\alsatbotu\venv\lib\site-packages (from service-identity->python-binance) (0.4.8)
    Requirement already satisfied: zope.interface>=4.4.2 in c:\users\kteki\pycharmprojects\alsatbotu\venv\lib\site-packages (from Twisted->python-binance) (5.2.0)
    Requirement already satisfied: constantly>=15.1 in c:\users\kteki\pycharmprojects\alsatbotu\venv\lib\site-packages (from Twisted->python-binance) (15.1.0)
    Requirement already satisfied: incremental>=16.10.1 in c:\users\kteki\pycharmprojects\alsatbotu\venv\lib\site-packages (from Twisted->python-binance) (17.5.0)
    Requirement already satisfied: Automat>=0.3.0 in c:\users\kteki\pycharmprojects\alsatbotu\venv\lib\site-packages (from Twisted->python-binance) (20.2.0)
    Requirement already satisfied: PyHamcrest!=1.10.0,>=1.9.0 in c:\users\kteki\pycharmprojects\alsatbotu\venv\lib\site-packages (from Twisted->python-binance) (2.0.2)
    Requirement already satisfied: setuptools in c:\users\kteki\pycharmprojects\alsatbotu\venv\lib\site-packages (from zope.interface>=4.4.2->Twisted->python-binance) (53.1.0)
    Using legacy ‘setup.py install’ for Twisted, since package ‘wheel’ is not installed.
    Installing collected packages: Twisted, service-identity, pyOpenSSL, dateparser, autobahn, python-binance
    Running setup.py install for Twisted: started
    Running setup.py install for Twisted: finished with status ‘error’

    ERROR: Command errored out with exit status 1:
    command: ‘C:\Users\kteki\PycharmProjects\alsatbotu\venv\Scripts\python.exe’ -u -c ‘import sys, setuptools, tokenize; sys.argv[0] = ‘”‘”‘C:\\Users\\kteki\\AppData\\Local\\Temp\\pip-install-z8bwpgp7\\twisted_de868a585184474c93c4bd619ae658a8\\setup.py'”‘”‘; __file__='”‘”‘C:\\Users\\kteki\\AppData\\Local\\Temp\\pip-install-z8bwpgp7\\twisted_de868a585184474c93c4bd619ae658a8\\setup.py'”‘”‘;f=getattr(tokenize, ‘”‘”‘open'”‘”‘, open)(__file__);code=f.read().replace(‘”‘”‘\r\n'”‘”‘, ‘”‘”‘\n'”‘”‘);f.close();exec(compile(code, __file__, ‘”‘”‘exec'”‘”‘))’ install –record ‘C:\Users\kteki\AppData\Local\Temp\pip-record-hut05u30\install-record.txt’ –single-version-externally-managed –compile –install-headers ‘C:\Users\kteki\PycharmProjects\alsatbotu\venv\include\site\python3.9\Twisted’
    cwd: C:\Users\kteki\AppData\Local\Temp\pip-install-z8bwpgp7\twisted_de868a585184474c93c4bd619ae658a8\
    Complete output (949 lines):
    running install
    running build
    running build_py
    creating build
    creating build\lib.win-amd64-3.9
    creating build\lib.win-amd64-3.9\twisted
    copying src\twisted\copyright.py -> build\lib.win-amd64-3.9\twisted
    copying src\twisted\plugin.py -> build\lib.win-amd64-3.9\twisted
    copying src\twisted\_version.py -> build\lib.win-amd64-3.9\twisted
    copying src\twisted\__init__.py -> build\lib.win-amd64-3.9\twisted
    copying src\twisted\__main__.py -> build\lib.win-amd64-3.9\twisted
    creating build\lib.win-amd64-3.9\twisted\application
    copying src\twisted\application\app.py -> build\lib.win-amd64-3.9\twisted\application
    copying src\twisted\application\internet.py -> build\lib.win-amd64-3.9\twisted\application
    copying src\twisted\application\reactors.py -> build\lib.win-amd64-3.9\twisted\application
    copying src\twisted\application\service.py -> build\lib.win-amd64-3.9\twisted\application
    copying src\twisted\application\strports.py -> build\lib.win-amd64-3.9\twisted\application
    copying src\twisted\application\__init__.py -> build\lib.win-amd64-3.9\twisted\application
    creating build\lib.win-amd64-3.9\twisted\conch
    copying src\twisted\conch\avatar.py -> build\lib.win-amd64-3.9\twisted\conch
    copying src\twisted\conch\checkers.py -> build\lib.win-amd64-3.9\twisted\conch
    copying src\twisted\conch\endpoints.py -> build\lib.win-amd64-3.9\twisted\conch
    copying src\twisted\conch\error.py -> build\lib.win-amd64-3.9\twisted\conch
    copying src\twisted\conch\interfaces.py -> build\lib.win-amd64-3.9\twisted\conch
    copying src\twisted\conch\ls.py -> build\lib.win-amd64-3.9\twisted\conch
    copying src\twisted\conch\manhole.py -> build\lib.win-amd64-3.9\twisted\conch
    copying src\twisted\conch\manhole_ssh.py -> build\lib.win-amd64-3.9\twisted\conch
    copying src\twisted\conch\manhole_tap.py -> build\lib.win-amd64-3.9\twisted\conch
    copying src\twisted\conch\mixin.py -> build\lib.win-amd64-3.9\twisted\conch
    copying src\twisted\conch\recvline.py -> build\lib.win-amd64-3.9\twisted\conch
    copying src\twisted\conch\stdio.py -> build\lib.win-amd64-3.9\twisted\conch
    copying src\twisted\conch\tap.py -> build\lib.win-amd64-3.9\twisted\conch
    copying src\twisted\conch\telnet.py -> build\lib.win-amd64-3.9\twisted\conch
    copying src\twisted\conch\ttymodes.py -> build\lib.win-amd64-3.9\twisted\conch
    copying src\twisted\conch\unix.py -> build\lib.win-amd64-3.9\twisted\conch
    copying src\twisted\conch\__init__.py -> build\lib.win-amd64-3.9\twisted\conch
    creating build\lib.win-amd64-3.9\twisted\cred
    copying src\twisted\cred\checkers.py -> build\lib.win-amd64-3.9\twisted\cred
    copying src\twisted\cred\credentials.py -> build\lib.win-amd64-3.9\twisted\cred
    copying src\twisted\cred\error.py -> build\lib.win-amd64-3.9\twisted\cred
    copying src\twisted\cred\portal.py -> build\lib.win-amd64-3.9\twisted\cred
    copying src\twisted\cred\strcred.py -> build\lib.win-amd64-3.9\twisted\cred
    copying src\twisted\cred\_digest.py -> build\lib.win-amd64-3.9\twisted\cred
    copying src\twisted\cred\__init__.py -> build\lib.win-amd64-3.9\twisted\cred
    creating build\lib.win-amd64-3.9\twisted\enterprise
    copying src\twisted\enterprise\adbapi.py -> build\lib.win-amd64-3.9\twisted\enterprise
    copying src\twisted\enterprise\__init__.py -> build\lib.win-amd64-3.9\twisted\enterprise
    creating build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\abstract.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\address.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\asyncioreactor.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\base.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\cfreactor.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\default.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\defer.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\endpoints.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\epollreactor.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\error.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\fdesc.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\gireactor.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\glib2reactor.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\gtk2reactor.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\gtk3reactor.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\inotify.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\interfaces.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\kqreactor.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\main.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\pollreactor.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\posixbase.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\process.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\protocol.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\pyuisupport.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\reactor.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\selectreactor.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\serialport.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\ssl.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\stdio.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\task.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\tcp.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\testing.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\threads.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\tksupport.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\udp.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\unix.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\utils.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\win32eventreactor.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\wxreactor.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\wxsupport.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\_baseprocess.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\_dumbwin32proc.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\_glibbase.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\_idna.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\_newtls.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\_pollingfile.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\_posixserialport.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\_posixstdio.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\_producer_helpers.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\_resolver.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\_signals.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\_sslverify.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\_threadedselect.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\_win32serialport.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\_win32stdio.py -> build\lib.win-amd64-3.9\twisted\internet
    copying src\twisted\internet\__init__.py -> build\lib.win-amd64-3.9\twisted\internet
    creating build\lib.win-amd64-3.9\twisted\logger
    copying src\twisted\logger\_buffer.py -> build\lib.win-amd64-3.9\twisted\logger
    copying src\twisted\logger\_capture.py -> build\lib.win-amd64-3.9\twisted\logger
    copying src\twisted\logger\_file.py -> build\lib.win-amd64-3.9\twisted\logger
    copying src\twisted\logger\_filter.py -> build\lib.win-amd64-3.9\twisted\logger
    copying src\twisted\logger\_flatten.py -> build\lib.win-amd64-3.9\twisted\logger
    copying src\twisted\logger\_format.py -> build\lib.win-amd64-3.9\twisted\logger
    copying src\twisted\logger\_global.py -> build\lib.win-amd64-3.9\twisted\logger
    copying src\twisted\logger\_io.py -> build\lib.win-amd64-3.9\twisted\logger
    copying src\twisted\logger\_json.py -> build\lib.win-amd64-3.9\twisted\logger
    copying src\twisted\logger\_legacy.py -> build\lib.win-amd64-3.9\twisted\logger
    copying src\twisted\logger\_levels.py -> build\lib.win-amd64-3.9\twisted\logger
    copying src\twisted\logger\_logger.py -> build\lib.win-amd64-3.9\twisted\logger
    copying src\twisted\logger\_observer.py -> build\lib.win-amd64-3.9\twisted\logger
    copying src\twisted\logger\_stdlib.py -> build\lib.win-amd64-3.9\twisted\logger
    copying src\twisted\logger\_util.py -> build\lib.win-amd64-3.9\twisted\logger
    copying src\twisted\logger\__init__.py -> build\lib.win-amd64-3.9\twisted\logger
    creating build\lib.win-amd64-3.9\twisted\mail
    copying src\twisted\mail\imap4.py -> build\lib.win-amd64-3.9\twisted\mail
    copying src\twisted\mail\interfaces.py -> build\lib.win-amd64-3.9\twisted\mail
    copying src\twisted\mail\pop3.py -> build\lib.win-amd64-3.9\twisted\mail
    copying src\twisted\mail\pop3client.py -> build\lib.win-amd64-3.9\twisted\mail
    copying src\twisted\mail\protocols.py -> build\lib.win-amd64-3.9\twisted\mail
    copying src\twisted\mail\relay.py -> build\lib.win-amd64-3.9\twisted\mail
    copying src\twisted\mail\smtp.py -> build\lib.win-amd64-3.9\twisted\mail
    copying src\twisted\mail\_cred.py -> build\lib.win-amd64-3.9\twisted\mail
    copying src\twisted\mail\_except.py -> build\lib.win-amd64-3.9\twisted\mail
    copying src\twisted\mail\__init__.py -> build\lib.win-amd64-3.9\twisted\mail
    creating build\lib.win-amd64-3.9\twisted\names
    copying src\twisted\names\authority.py -> build\lib.win-amd64-3.9\twisted\names
    copying src\twisted\names\cache.py -> build\lib.win-amd64-3.9\twisted\names
    copying src\twisted\names\client.py -> build\lib.win-amd64-3.9\twisted\names
    copying src\twisted\names\common.py -> build\lib.win-amd64-3.9\twisted\names
    copying src\twisted\names\dns.py -> build\lib.win-amd64-3.9\twisted\names
    copying src\twisted\names\error.py -> build\lib.win-amd64-3.9\twisted\names
    copying src\twisted\names\hosts.py -> build\lib.win-amd64-3.9\twisted\names
    copying src\twisted\names\resolve.py -> build\lib.win-amd64-3.9\twisted\names
    copying src\twisted\names\root.py -> build\lib.win-amd64-3.9\twisted\names
    copying src\twisted\names\secondary.py -> build\lib.win-amd64-3.9\twisted\names
    copying src\twisted\names\server.py -> build\lib.win-amd64-3.9\twisted\names
    copying src\twisted\names\srvconnect.py -> build\lib.win-amd64-3.9\twisted\names
    copying src\twisted\names\tap.py -> build\lib.win-amd64-3.9\twisted\names
    copying src\twisted\names\_rfc1982.py -> build\lib.win-amd64-3.9\twisted\names
    copying src\twisted\names\__init__.py -> build\lib.win-amd64-3.9\twisted\names
    creating build\lib.win-amd64-3.9\twisted\pair
    copying src\twisted\pair\ethernet.py -> build\lib.win-amd64-3.9\twisted\pair
    copying src\twisted\pair\ip.py -> build\lib.win-amd64-3.9\twisted\pair
    copying src\twisted\pair\raw.py -> build\lib.win-amd64-3.9\twisted\pair
    copying src\twisted\pair\rawudp.py -> build\lib.win-amd64-3.9\twisted\pair
    copying src\twisted\pair\testing.py -> build\lib.win-amd64-3.9\twisted\pair
    copying src\twisted\pair\tuntap.py -> build\lib.win-amd64-3.9\twisted\pair
    copying src\twisted\pair\__init__.py -> build\lib.win-amd64-3.9\twisted\pair
    creating build\lib.win-amd64-3.9\twisted\persisted
    copying src\twisted\persisted\aot.py -> build\lib.win-amd64-3.9\twisted\persisted
    copying src\twisted\persisted\crefutil.py -> build\lib.win-amd64-3.9\twisted\persisted
    copying src\twisted\persisted\dirdbm.py -> build\lib.win-amd64-3.9\twisted\persisted
    copying src\twisted\persisted\sob.py -> build\lib.win-amd64-3.9\twisted\persisted
    copying src\twisted\persisted\styles.py -> build\lib.win-amd64-3.9\twisted\persisted
    copying src\twisted\persisted\__init__.py -> build\lib.win-amd64-3.9\twisted\persisted
    creating build\lib.win-amd64-3.9\twisted\plugins
    copying src\twisted\plugins\cred_anonymous.py -> build\lib.win-amd64-3.9\twisted\plugins
    copying src\twisted\plugins\cred_file.py -> build\lib.win-amd64-3.9\twisted\plugins
    copying src\twisted\plugins\cred_memory.py -> build\lib.win-amd64-3.9\twisted\plugins
    copying src\twisted\plugins\cred_sshkeys.py -> build\lib.win-amd64-3.9\twisted\plugins
    copying src\twisted\plugins\cred_unix.py -> build\lib.win-amd64-3.9\twisted\plugins
    copying src\twisted\plugins\twisted_conch.py -> build\lib.win-amd64-3.9\twisted\plugins
    copying src\twisted\plugins\twisted_core.py -> build\lib.win-amd64-3.9\twisted\plugins
    copying src\twisted\plugins\twisted_ftp.py -> build\lib.win-amd64-3.9\twisted\plugins
    copying src\twisted\plugins\twisted_inet.py -> build\lib.win-amd64-3.9\twisted\plugins
    copying src\twisted\plugins\twisted_names.py -> build\lib.win-amd64-3.9\twisted\plugins
    copying src\twisted\plugins\twisted_portforward.py -> build\lib.win-amd64-3.9\twisted\plugins
    copying src\twisted\plugins\twisted_reactors.py -> build\lib.win-amd64-3.9\twisted\plugins
    copying src\twisted\plugins\twisted_runner.py -> build\lib.win-amd64-3.9\twisted\plugins
    copying src\twisted\plugins\twisted_socks.py -> build\lib.win-amd64-3.9\twisted\plugins
    copying src\twisted\plugins\twisted_trial.py -> build\lib.win-amd64-3.9\twisted\plugins
    copying src\twisted\plugins\twisted_web.py -> build\lib.win-amd64-3.9\twisted\plugins
    copying src\twisted\plugins\twisted_words.py -> build\lib.win-amd64-3.9\twisted\plugins
    copying src\twisted\plugins\__init__.py -> build\lib.win-amd64-3.9\twisted\plugins
    creating build\lib.win-amd64-3.9\twisted\positioning
    copying src\twisted\positioning\base.py -> build\lib.win-amd64-3.9\twisted\positioning
    copying src\twisted\positioning\ipositioning.py -> build\lib.win-amd64-3.9\twisted\positioning
    copying src\twisted\positioning\nmea.py -> build\lib.win-amd64-3.9\twisted\positioning
    copying src\twisted\positioning\_sentence.py -> build\lib.win-amd64-3.9\twisted\positioning
    copying src\twisted\positioning\__init__.py -> build\lib.win-amd64-3.9\twisted\positioning
    creating build\lib.win-amd64-3.9\twisted\protocols
    copying src\twisted\protocols\amp.py -> build\lib.win-amd64-3.9\twisted\protocols
    copying src\twisted\protocols\basic.py -> build\lib.win-amd64-3.9\twisted\protocols
    copying src\twisted\protocols\dict.py -> build\lib.win-amd64-3.9\twisted\protocols
    copying src\twisted\protocols\finger.py -> build\lib.win-amd64-3.9\twisted\protocols
    copying src\twisted\protocols\ftp.py -> build\lib.win-amd64-3.9\twisted\protocols
    copying src\twisted\protocols\htb.py -> build\lib.win-amd64-3.9\twisted\protocols
    copying src\twisted\protocols\ident.py -> build\lib.win-amd64-3.9\twisted\protocols
    copying src\twisted\protocols\loopback.py -> build\lib.win-amd64-3.9\twisted\protocols
    copying src\twisted\protocols\memcache.py -> build\lib.win-amd64-3.9\twisted\protocols
    copying src\twisted\protocols\pcp.py -> build\lib.win-amd64-3.9\twisted\protocols
    copying src\twisted\protocols\policies.py -> build\lib.win-amd64-3.9\twisted\protocols
    copying src\twisted\protocols\portforward.py -> build\lib.win-amd64-3.9\twisted\protocols
    copying src\twisted\protocols\postfix.py -> build\lib.win-amd64-3.9\twisted\protocols
    copying src\twisted\protocols\sip.py -> build\lib.win-amd64-3.9\twisted\protocols
    copying src\twisted\protocols\socks.py -> build\lib.win-amd64-3.9\twisted\protocols
    copying src\twisted\protocols\stateful.py -> build\lib.win-amd64-3.9\twisted\protocols
    copying src\twisted\protocols\tls.py -> build\lib.win-amd64-3.9\twisted\protocols
    copying src\twisted\protocols\wire.py -> build\lib.win-amd64-3.9\twisted\protocols
    copying src\twisted\protocols\__init__.py -> build\lib.win-amd64-3.9\twisted\protocols
    creating build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\compat.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\components.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\constants.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\context.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\deprecate.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\failure.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\fakepwd.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\filepath.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\formmethod.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\htmlizer.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\lockfile.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\log.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\logfile.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\modules.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\monkey.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\procutils.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\randbytes.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\rebuild.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\reflect.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\release.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\roots.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\runtime.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\sendmsg.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\shortcut.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\syslog.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\systemd.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\text.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\threadable.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\threadpool.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\url.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\urlpath.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\usage.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\util.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\versions.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\win32.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\zippath.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\zipstream.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\_appdirs.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\_inotify.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\_oldstyle.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\_release.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\_setup.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\_shellcomp.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\_textattributes.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\_tzhelper.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\_url.py -> build\lib.win-amd64-3.9\twisted\python
    copying src\twisted\python\__init__.py -> build\lib.win-amd64-3.9\twisted\python
    creating build\lib.win-amd64-3.9\twisted\runner
    copying src\twisted\runner\inetd.py -> build\lib.win-amd64-3.9\twisted\runner
    copying src\twisted\runner\inetdconf.py -> build\lib.win-amd64-3.9\twisted\runner
    copying src\twisted\runner\inetdtap.py -> build\lib.win-amd64-3.9\twisted\runner
    copying src\twisted\runner\procmon.py -> build\lib.win-amd64-3.9\twisted\runner
    copying src\twisted\runner\procmontap.py -> build\lib.win-amd64-3.9\twisted\runner
    copying src\twisted\runner\__init__.py -> build\lib.win-amd64-3.9\twisted\runner
    creating build\lib.win-amd64-3.9\twisted\scripts
    copying src\twisted\scripts\htmlizer.py -> build\lib.win-amd64-3.9\twisted\scripts
    copying src\twisted\scripts\trial.py -> build\lib.win-amd64-3.9\twisted\scripts
    copying src\twisted\scripts\twistd.py -> build\lib.win-amd64-3.9\twisted\scripts
    copying src\twisted\scripts\_twistd_unix.py -> build\lib.win-amd64-3.9\twisted\scripts
    copying src\twisted\scripts\_twistw.py -> build\lib.win-amd64-3.9\twisted\scripts
    copying src\twisted\scripts\__init__.py -> build\lib.win-amd64-3.9\twisted\scripts
    creating build\lib.win-amd64-3.9\twisted\spread
    copying src\twisted\spread\banana.py -> build\lib.win-amd64-3.9\twisted\spread
    copying src\twisted\spread\flavors.py -> build\lib.win-amd64-3.9\twisted\spread
    copying src\twisted\spread\interfaces.py -> build\lib.win-amd64-3.9\twisted\spread
    copying src\twisted\spread\jelly.py -> build\lib.win-amd64-3.9\twisted\spread
    copying src\twisted\spread\pb.py -> build\lib.win-amd64-3.9\twisted\spread
    copying src\twisted\spread\publish.py -> build\lib.win-amd64-3.9\twisted\spread
    copying src\twisted\spread\util.py -> build\lib.win-amd64-3.9\twisted\spread
    copying src\twisted\spread\__init__.py -> build\lib.win-amd64-3.9\twisted\spread
    creating build\lib.win-amd64-3.9\twisted\tap
    copying src\twisted\tap\ftp.py -> build\lib.win-amd64-3.9\twisted\tap
    copying src\twisted\tap\portforward.py -> build\lib.win-amd64-3.9\twisted\tap
    copying src\twisted\tap\socks.py -> build\lib.win-amd64-3.9\twisted\tap
    copying src\twisted\tap\__init__.py -> build\lib.win-amd64-3.9\twisted\tap
    creating build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\crash_test_dummy.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\iosim.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\mock_win32process.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\myrebuilder1.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\myrebuilder2.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\plugin_basic.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\plugin_extra1.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\plugin_extra2.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\process_cmdline.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\process_echoer.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\process_fds.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\process_getargv.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\process_getenv.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\process_linger.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\process_reader.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\process_signal.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\process_stdinreader.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\process_tester.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\process_tty.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\process_twisted.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\proto_helpers.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\reflect_helper_IE.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\reflect_helper_VE.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\reflect_helper_ZDE.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\ssl_helpers.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\stdio_test_consumer.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\stdio_test_halfclose.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\stdio_test_hostpeer.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\stdio_test_lastwrite.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\stdio_test_loseconn.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\stdio_test_producer.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\stdio_test_write.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\stdio_test_writeseq.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\testutils.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_abstract.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_adbapi.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_amp.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_application.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_compat.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_context.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_cooperator.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_defer.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_defgen.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_dict.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_dirdbm.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_error.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_factories.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_failure.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_fdesc.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_finger.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_formmethod.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_ftp.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_ftp_options.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_htb.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_ident.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_internet.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_iosim.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_iutils.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_lockfile.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_log.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_logfile.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_loopback.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_main.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_memcache.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_modules.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_monkey.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_news.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_nooldstyle.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_paths.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_pcp.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_persisted.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_plugin.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_policies.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_postfix.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_process.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_protocols.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_randbytes.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_rebuild.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_reflect.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_roots.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_shortcut.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_sip.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_sob.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_socks.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_ssl.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_sslverify.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_stateful.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_stdio.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_strerror.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_strports.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_task.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_tcp.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_tcp_internals.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_text.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_threadable.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_threadpool.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_threads.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_tpfile.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_twistd.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_twisted.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_udp.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_unix.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\test_usage.py -> build\lib.win-amd64-3.9\twisted\test
    copying src\twisted\test\__init__.py -> build\lib.win-amd64-3.9\twisted\test
    creating build\lib.win-amd64-3.9\twisted\trial
    copying src\twisted\trial\itrial.py -> build\lib.win-amd64-3.9\twisted\trial
    copying src\twisted\trial\reporter.py -> build\lib.win-amd64-3.9\twisted\trial
    copying src\twisted\trial\runner.py -> build\lib.win-amd64-3.9\twisted\trial
    copying src\twisted\trial\unittest.py -> build\lib.win-amd64-3.9\twisted\trial
    copying src\twisted\trial\util.py -> build\lib.win-amd64-3.9\twisted\trial
    copying src\twisted\trial\_asyncrunner.py -> build\lib.win-amd64-3.9\twisted\trial
    copying src\twisted\trial\_asynctest.py -> build\lib.win-amd64-3.9\twisted\trial
    copying src\twisted\trial\_synctest.py -> build\lib.win-amd64-3.9\twisted\trial
    copying src\twisted\trial\__init__.py -> build\lib.win-amd64-3.9\twisted\trial
    copying src\twisted\trial\__main__.py -> build\lib.win-amd64-3.9\twisted\trial
    creating build\lib.win-amd64-3.9\twisted\web
    copying src\twisted\web\client.py -> build\lib.win-amd64-3.9\twisted\web
    copying src\twisted\web\demo.py -> build\lib.win-amd64-3.9\twisted\web
    copying src\twisted\web\distrib.py -> build\lib.win-amd64-3.9\twisted\web
    copying src\twisted\web\domhelpers.py -> build\lib.win-amd64-3.9\twisted\web
    copying src\twisted\web\error.py -> build\lib.win-amd64-3.9\twisted\web
    copying src\twisted\web\guard.py -> build\lib.win-amd64-3.9\twisted\web
    copying src\twisted\web\html.py -> build\lib.win-amd64-3.9\twisted\web
    copying src\twisted\web\http.py -> build\lib.win-amd64-3.9\twisted\web
    copying src\twisted\web\http_headers.py -> build\lib.win-amd64-3.9\twisted\web
    copying src\twisted\web\iweb.py -> build\lib.win-amd64-3.9\twisted\web
    copying src\twisted\web\microdom.py -> build\lib.win-amd64-3.9\twisted\web
    copying src\twisted\web\proxy.py -> build\lib.win-amd64-3.9\twisted\web
    copying src\twisted\web\resource.py -> build\lib.win-amd64-3.9\twisted\web
    copying src\twisted\web\rewrite.py -> build\lib.win-amd64-3.9\twisted\web
    copying src\twisted\web\script.py -> build\lib.win-amd64-3.9\twisted\web
    copying src\twisted\web\server.py -> build\lib.win-amd64-3.9\twisted\web
    copying src\twisted\web\static.py -> build\lib.win-amd64-3.9\twisted\web
    copying src\twisted\web\sux.py -> build\lib.win-amd64-3.9\twisted\web
    copying src\twisted\web\tap.py -> build\lib.win-amd64-3.9\twisted\web
    copying src\twisted\web\template.py -> build\lib.win-amd64-3.9\twisted\web
    copying src\twisted\web\twcgi.py -> build\lib.win-amd64-3.9\twisted\web
    copying src\twisted\web\util.py -> build\lib.win-amd64-3.9\twisted\web
    copying src\twisted\web\vhost.py -> build\lib.win-amd64-3.9\twisted\web
    copying src\twisted\web\wsgi.py -> build\lib.win-amd64-3.9\twisted\web
    copying src\twisted\web\xmlrpc.py -> build\lib.win-amd64-3.9\twisted\web
    copying src\twisted\web\_element.py -> build\lib.win-amd64-3.9\twisted\web
    copying src\twisted\web\_flatten.py -> build\lib.win-amd64-3.9\twisted\web

    diye giden bir hata var

  22. Selamlar. Hocam Ta-lib kütüphanesinde zaten macd ve rsi hazır olarak yok mu? Direkt kütüphaneden bu verileri çekemez miydik?

    1. Zaten o kütüphaneden çekiyoruz. Çekilen veri bir array şeklinde. O array içinden ilgilendiğimiz macd ve rsi değerlerine bakıyoruz.

  23. Merhaba kolay gelsin. Gerçekten bu konuda Türkçe bilgi veren tek içerik üreten kişi sizsiniz. Bende bir robot yapmak istiyorum bunun için ne sevisede Pyhton bilmem gerekiyor acaba? 1- 2 ay youtubedan öğrendiğimle yapabilir miyim acaba?

    1. Python diğer dillere nazaran öğrenmesi daha kolay bir dildir. Daha önce herhangi bir yazılım dili tecrübesine sahip iseniz daha kolay öğrenirsiniz.
      Dil öğrenmek için proje geliştirmeniz gerekir. Sadece izleyerek öğrenmeniz mümkün olmaz. Bol bol pratik yapın, algoritma geliştirin, kod yazın.
      Dil öğrenmek zor olsa da karşılığını her türlü alabileceğiniz çok önemli bir beceri.

  24. 5 tane indikatörü (RSI, mavilim gibi) ekleyip bu indikatörler istediğimiz yere gelince (100 tane coin seçip) 100 coin arasından hangisi gelirse ona yatırıp %2 %3 kârla satmasını ayarlayabileceğimiz bir bot yazılabilir mi?

    1. Yazılabilir 🙂
      ta-lib kütüphanesinde bulunan indikatörleri doğrudan kullanabilirsiniz. Fakat mavilim, ta-lib içerisinde yok, kendinizin implement etmesi gerekiyor.

      1. Hocam emeğinize sağlık, bende bir kod denemesi yapıyorum, yardıma ihtiyacım olan konu ise şu:
        bir stratejim var ve bunun AL/SAT verdiğini USDT paritesindeki tüm coinlerde close[-1]’e göre taramasını istiyorum ama başaramadım. Örneğin bir .txt içine yazacağım listeyi sürekli tarasın ve alarm oluştuğunda 1 kez uyarsın istiyorum. aşağıdaki kodu buldum ancak başaramadım bununlada:) saygılar..

        symbols = []
        api = “https://api.binance.com/api/v3/ticker/price”
        api2 = “https://api.binance.com/api/v1/ticker/24hr?symbol=”
        sList = requests.get(api).json()
        expected = “”

        for x in range(len(sList)):
        if(“BTC” in sList[x][‘symbol’]): # Create list with cryptocurrencies that we can buy with BTC
        if sList[x][‘symbol’] in expected:
        symbols.append(sList[x][‘symbol’])
        if expected == “”:
        symbols.append(sList[x][‘symbol’])

        1. ben yaptım benzerini ama kodu döngüye koyduğum için defalarca mesaj atıyor sadece o sorunu çözemedim onun dışında 180 ne yakın coini usdt cinsinde tarıyor eğer isterseniz mail atın yardımcı olurum cresat26 @gmail.com

    1. Python diğer dillere nazaran öğrenmesi daha kolay bir dildir. Daha önce herhangi bir yazılım dili tecrübesine sahip iseniz kolay öğrenirsiniz.
      İsviçre çakısı gibi bir dildir. İyi düzeyde python ile birlikte, numpy gibi belli başlı python paketlerini de kullanabilmen gerekiyor.

      1. hocam kusura bakmayın rahatsız ediyorum tekrardan, bir bot yazmaya çalışıyorum fakat websocket konusunu tam anlamadım.Sizde mesela kullanmamışsınız fakat çoğu kişi kullanıyor. Neden normal işlevler varken websocket komutlarını kullanılıyor?

  25. Merhaba Hocam,
    Öncelikle makaleniz için teşekkürler, Pc imde python 3.8 kurulu işletim sistemime uygun TA-lib ide yükledim ama anlamadığım birşekilde altaki hatayı alıyorum internette iki saat arastırdım buraya yazmadan önce ama çözüm bulamadım sizce nedir?
    Traceback (most recent call last):
    File “C:/Users/mrt/PycharmProjects/BİNANCE/BOT.py”, line 2, in
    import talib as ta
    ModuleNotFoundError: No module named ‘talib’

      1. Traceback (most recent call last):
        File “”, line 1, in
        File “C:\Anaconda3\lib\site-packages\talib\__init__.py”, line 52, in
        from ._ta_lib import (
        File “_ta_lib.pyx”, line 1, in init talib._ta_lib
        ValueError: numpy.ufunc size changed, may indicate binary incompatibility. Expected 216 from C header, got 192 from PyObject

        bu hatayı alıyorum çözemiyorum.

        1. pip list komutunu calısttırdığımda ise TA-Lib ile numpy gözüküyor ama hala ModuleNotFoundError: No module named ‘talib’ hatası var.
          Package Version
          ———————————- ———-
          alabaster 0.7.12
          anaconda-client 1.7.2
          anaconda-navigator 1.9.6
          anaconda-project 0.8.2
          asn1crypto 0.24.0
          astroid 2.1.0
          astropy 3.1
          atomicwrites 1.2.1
          attrs 18.2.0
          Babel 2.6.0
          backcall 0.1.0
          backports.os 0.1.1
          backports.shutil-get-terminal-size 1.0.0
          beautifulsoup4 4.6.3
          bitarray 0.8.3
          bkcharts 0.2
          blaze 0.11.3
          bleach 3.0.2
          bokeh 1.0.2
          boto 2.49.0
          Bottleneck 1.2.1
          certifi 2018.11.29
          cffi 1.11.5
          chardet 3.0.4
          Click 7.0
          cloudpickle 0.6.1
          clyent 1.2.2
          colorama 0.4.1
          comtypes 1.1.7
          conda 4.5.12
          conda-build 3.17.6
          conda-verify 3.1.1
          contextlib2 0.5.5
          cryptography 2.4.2
          cycler 0.10.0
          Cython 0.29.2
          cytoolz 0.9.0.1
          dask 1.0.0
          datashape 0.5.4
          decorator 4.3.0
          defusedxml 0.5.0
          distributed 1.25.1
          docutils 0.14
          entrypoints 0.2.3
          et-xmlfile 1.0.1
          fastcache 1.0.2
          filelock 3.0.10
          Flask 1.0.2
          Flask-Cors 3.0.7
          future 0.17.1
          gevent 1.3.7
          glob2 0.6
          greenlet 0.4.15
          h5py 2.8.0
          heapdict 1.0.0
          html5lib 1.0.1
          idna 2.8
          imageio 2.4.1
          imagesize 1.1.0
          importlib-metadata 0.6
          ipykernel 5.1.0
          ipython 7.2.0
          ipython-genutils 0.2.0
          ipywidgets 7.4.2
          isort 4.3.4
          itsdangerous 1.1.0
          jdcal 1.4
          jedi 0.13.2
          Jinja2 2.10
          jsonschema 2.6.0
          jupyter 1.0.0
          jupyter-client 5.2.4
          jupyter-console 6.0.0
          jupyter-core 4.4.0
          jupyterlab 0.35.3
          jupyterlab-server 0.2.0
          keyring 17.0.0
          kiwisolver 1.0.1
          lazy-object-proxy 1.3.1
          libarchive-c 2.8
          llvmlite 0.26.0
          locket 0.2.0
          lxml 4.2.5
          MarkupSafe 1.1.0
          matplotlib 3.0.2
          mccabe 0.6.1
          menuinst 1.4.14
          mistune 0.8.4
          mkl-fft 1.0.6
          mkl-random 1.0.2
          more-itertools 4.3.0
          mpmath 1.1.0
          msgpack 0.5.6
          multipledispatch 0.6.0
          navigator-updater 0.2.1
          nbconvert 5.4.0
          nbformat 4.4.0
          networkx 2.2
          nltk 3.4
          nose 1.3.7
          notebook 5.7.4
          numba 0.41.0
          numexpr 2.6.8
          numpy 1.16.1
          numpydoc 0.8.0
          odo 0.5.1
          olefile 0.46
          openpyxl 2.5.12
          packaging 18.0
          pandas 0.23.4
          pandocfilters 1.4.2
          parso 0.3.1
          partd 0.3.9
          path.py 11.5.0
          pathlib2 2.3.3
          patsy 0.5.1
          pep8 1.7.1
          pickleshare 0.7.5
          Pillow 5.3.0
          pip 21.0.1
          pkginfo 1.4.2
          pluggy 0.8.0
          ply 3.11
          prometheus-client 0.5.0
          prompt-toolkit 2.0.7
          psutil 5.4.8
          py 1.7.0
          pycodestyle 2.4.0
          pycosat 0.6.3
          pycparser 2.19
          pycrypto 2.6.1
          pycurl 7.43.0.2
          pyflakes 2.0.0
          Pygments 2.3.1
          pylint 2.2.2
          pyodbc 4.0.25
          pyOpenSSL 18.0.0
          pyparsing 2.3.0
          PySocks 1.6.8
          pytest 4.0.2
          pytest-arraydiff 0.3
          pytest-astropy 0.5.0
          pytest-doctestplus 0.2.0
          pytest-openfiles 0.3.1
          pytest-remotedata 0.3.1
          python-dateutil 2.7.5
          pytz 2018.7
          PyWavelets 1.0.1
          pywin32 223
          pywinpty 0.5.5
          PyYAML 3.13
          pyzmq 17.1.2
          QtAwesome 0.5.3
          qtconsole 4.4.3
          QtPy 1.5.2
          requests 2.21.0
          rope 0.11.0
          ruamel-yaml 0.15.46
          scikit-image 0.14.1
          scikit-learn 0.20.1
          scipy 1.1.0
          seaborn 0.9.0
          Send2Trash 1.5.0
          setuptools 40.6.3
          simplegeneric 0.8.1
          singledispatch 3.4.0.3
          six 1.12.0
          snowballstemmer 1.2.1
          sortedcollections 1.0.1
          sortedcontainers 2.1.0
          Sphinx 1.8.2
          sphinxcontrib-websupport 1.1.0
          spyder 3.3.2
          spyder-kernels 0.3.0
          SQLAlchemy 1.2.15
          statsmodels 0.9.0
          sympy 1.3
          TA-Lib 0.4.19
          tables 3.4.4
          tblib 1.3.2
          terminado 0.8.1
          testpath 0.4.2
          toolz 0.9.0
          tornado 5.1.1
          tqdm 4.28.1
          traitlets 4.3.2
          unicodecsv 0.14.1
          urllib3 1.24.1
          wcwidth 0.1.7
          webencodings 0.5.1
          Werkzeug 0.14.1
          wheel 0.32.3
          widgetsnbextension 3.4.2
          win-inet-pton 1.0.1
          win-unicode-console 0.5
          wincertstore 0.2
          wrapt 1.10.11
          xlrd 1.2.0
          XlsxWriter 1.1.2
          xlwings 0.15.1
          xlwt 1.3.0
          zict 0.1.3

  26. Çok yardımcı oldunuz teşekkürler. Yalnız bir sorum olacak.

    buy_order = connection.client.order_market_buy( symbol=symbol, quantity=0.1)

    Kodu alım emri için yeterli mi yoksa buy_order nesnesi ile başka bir işlem daha mı yapılması gerekiyor? Sanki sadece değer atanmış gibi duruyor.

    1. Başka bir işleme gerek yok. Binance arayüzünde alımı görürsünüz zaten.
      buy_order üzerinden orderId değerini okuyarak sorgulayabilirsiniz, programdan.
      Daha sonra sorgulamak için, aşağıdakine benzer bir kod yazabilirsiniz:

      orderid = buy_order.get(‘orderId’)

      buy_order = connection.client.get_order(
      symbol=’BTCUSDT’,
      orderId=orderid)

      status = buy_order.get(‘status’)

      if status == ‘FILLED’:
      print(‘ok’)

  27. Merhaba
    Kodu çalıştırabiliyoruz, hatta grubumuzla farklı al sat stratejileri üzerinde çalışıyoruz. fakat kodlar uzun süre çalışınca (mesela 10 saat gibi) aşağıdaki hatayı alıyoruz.
    Bu konuda bildiğiniz bir çözüm var mıdır?

    ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host

    C:\Users\murat\PycharmProjects\basictradersami\venv\Scripts\python.exe C:/Users/murat/PycharmProjects/basictradersami/parabolicSAR.py
    Traceback (most recent call last):
    File “C:\Users\murat\PycharmProjects\basictradersami\venv\lib\site-packages\urllib3\connectionpool.py”, line 706, in urlopen
    chunked=chunked,
    File “C:\Users\murat\PycharmProjects\basictradersami\venv\lib\site-packages\urllib3\connectionpool.py”, line 445, in _make_request
    six.raise_from(e, None)
    File “”, line 3, in raise_from
    File “C:\Users\murat\PycharmProjects\basictradersami\venv\lib\site-packages\urllib3\connectionpool.py”, line 440, in _make_request
    httplib_response = conn.getresponse()
    File “C:\Users\murat\AppData\Local\Programs\Python\Python37\lib\http\client.py”, line 1321, in getresponse
    response.begin()
    File “C:\Users\murat\AppData\Local\Programs\Python\Python37\lib\http\client.py”, line 296, in begin
    version, status, reason = self._read_status()
    File “C:\Users\murat\AppData\Local\Programs\Python\Python37\lib\http\client.py”, line 257, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), “iso-8859-1”)
    File “C:\Users\murat\AppData\Local\Programs\Python\Python37\lib\socket.py”, line 589, in readinto
    return self._sock.recv_into(b)
    File “C:\Users\murat\AppData\Local\Programs\Python\Python37\lib\ssl.py”, line 1049, in recv_into
    return self.read(nbytes, buffer)
    File “C:\Users\murat\AppData\Local\Programs\Python\Python37\lib\ssl.py”, line 908, in read
    return self._sslobj.read(len, buffer)
    ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host

    NOT: Websocket ile aşağıdaki hatayı almadan sınırsız süre çalıştırabiliyoruz fakat bu seferde gelen datada hatalı veriler karşımıza çıkıyor. Ama yukarıdaki sorunu çözebilirsek başka bir problemimiz kalmayacak.

  28. Bot exe haline çevirme işlemini yapıyorum.Ancak exe tıkladığımda Ta_lib modülü bulunamıyor hatası alıyorum.Sistem win10 kod çalışıyor sorunsuz bir şekilde exe yapınca sorun oluyor python güncel sürüm kullanıyorum. Yardımlarınızı bekliyorum

    1. Hocam Python Console de şu uyarıyı alıyorum:

      C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe C:/pyprojects/basictrade/algotrade.py
      Traceback (most recent call last):
      File “C:/pyprojects/basictrade/algotrade.py”, line 1, in
      from binance.client import Client
      ModuleNotFoundError: No module named ‘binance.client’; ‘binance’ is not a package

      Process finished with exit code 1

  29. Traceback (most recent call last):
    File “\py.py”, line 181, in
    klines = connection.client.get_klines(symbol=symbol, interval=interval, limit=limit)
    File “binance\client.py”, line 705, in get_klines
    return self._get(‘klines’, data=params)
    File “\binance\client.py”, line 207, in _get
    return self._request_api(‘get’, path, signed, version, **kwargs)
    File “\binance\client.py”, line 181, in _request_api
    return self._request(method, uri, signed, **kwargs)

  30. Merhabalar. Bu kodu paylaştığınız için çok teşekkürler. Bu kodun alım yapması için verilen “buy_order = connection.client.order_market_buy(symbol=symbol, quantity=0.0001)” kodun en başında “buy_order” ifadesi bulunmalı mı yoksa “buy_order” ifadesi yazmadan da alım yapabiliyor mu?
    İyi Çalışmalar

  31. İyi günler. Başarılı çalışma için teşekkürler. Bu kod ile alış yaparken ” if macd_cross_up and rsi_last > 25:” değeri kullanılmış satış yapması için bu kod nasıl olmalı peki?

  32. merhaba belirli bir koşul sağlandığında mesela BTCUSDT paritesidne ki bütün varlığı market satım emri vermek istiyorum. quantity= nasıl yazılmalı böyle bir durumda ?

    1. Merhaba hocam, aynı sorunu bende yaşıyorum, bir miktar değilde tüm coinleri satma ve alma komutu nasıl devam edecek?
      Çok teşekkürler

  33. merhaba,
    indikatörleri hesaplarken verileri kaç bar olarak çekiyorsunuz ? Yani dataları online çekip mi hesaplıyor. ? Mesela 100 bar.

  34. merhabalar. macd vs rsi indkatörlerinden gelen sinyaller doğrultusunda alım yapabiliyorum.
    lakin satım işlemi de yapabilmek istiyorum. bu kodlarla sadece yukseliş sinyali geldiğinde alım yapılabliyor, çok fazla vakit ayırmama ragmen otomatik satış işlemi gerçekleştiremedim.

    rica etsem uygun bır zaman bu projeyı otomatk satım yapabılır hale getırebılırmıyız hocam.
    saygılar.

      1. Çok sağolun hocam, projeleriniz ile bizleri aydınlatıyorsunuz.
        Bu gibi projelerde yardımlaşmamız açısından bir forum açsanız çok çok faydalı olur diye düşünüyorum.
        Bu alanda proje üreten kişiler ülkemizde maalesef çok az.

        1. Önerin için teşekkür ederim.

          Yorumlar veya mailler üzerinden soru sorup cevap almak verimli olmayabiliyor.

          Forum konusunda önereceğin bir platform ya da yazılım varsa paylaşırsan sevinirim.

  35. Hocam merhaba, if __name__ == ‘__main__’:
    filename = ‘credentials.txt’
    connection = BinanceConnection(filename)

    kısmını yazdıktan sonra Colab üzerinde çalıştırınca ”AttributeError: ‘BinanceConnection’ object has no attribute ‘connect”’ hatası alıyorum. Gerekli bütün kütüphaneler drive ve colaba yükledim ve import ettim.

    1. Colab ortamını hic kullanmadım. Ama sizin lokalinizdeki credentials.txt dosyasına muhtemelen ulaşamıyordur.
      Bu durumda, binance connection’u kurmak icin, key ve secret değerlerinin baska türlü girişini sağlamanız gerekir.
      Aşağıdaki örneğe göre giriş yapabilirsiniz (https://python-binance.readthedocs.io/en/latest/):

      from binance.client import Client
      client = Client(api_key, api_secret)

  36. hocam kusura bakmayın rahatsız ediyorum tekrardan, bir bot yazmaya çalışıyorum fakat websocket konusunu tam anlamadım.Sizde mesela kullanmamışsınız fakat çoğu kişi kullanıyor. Neden normal işlevler varken websocket komutlarını kullanılıyor?

    1. Websocket konusunda bir yazı hazırlıyorum. Websocket’in kullandığım yönteme göre artıları var.

      Yazımda bu konuyu detaylandırmak istiyorum.

  37. Alım yaparken bu hatayı neden veriyor olabilir?

    Traceback (most recent call last):
    File “C:\Users\USER\PycharmProjects\BitCoin\main.py”, line 84, in
    buy_order = connection.client.order_market_buy(symbol=symbol, quantity=0.0001)
    File “C:\Users\USER\PycharmProjects\BitCoin\venv\lib\site-packages\binance\client.py”, line 1421, in order_market_buy
    return self.order_market(**params)
    File “C:\Users\USER\PycharmProjects\BitCoin\venv\lib\site-packages\binance\client.py”, line 1393, in order_market
    return self.create_order(**params)
    File “C:\Users\USER\PycharmProjects\BitCoin\venv\lib\site-packages\binance\client.py”, line 1255, in create_order
    return self._post(‘order’, True, data=params)
    File “C:\Users\USER\PycharmProjects\BitCoin\venv\lib\site-packages\binance\client.py”, line 295, in _post
    return self._request_api(‘post’, path, signed, version, **kwargs)
    File “C:\Users\USER\PycharmProjects\BitCoin\venv\lib\site-packages\binance\client.py”, line 242, in _request_api
    return self._request(method, uri, signed, **kwargs)
    File “C:\Users\USER\PycharmProjects\BitCoin\venv\lib\site-packages\binance\client.py”, line 237, in _request
    return self._handle_response()
    File “C:\Users\USER\PycharmProjects\BitCoin\venv\lib\site-packages\binance\client.py”, line 285, in _handle_response
    raise BinanceAPIException(self.response)
    binance.exceptions.BinanceAPIException: APIError(code=-2014): API-key format invalid.

  38. Demir Bayraktar

    Öncelikle merhabalar;

    Ben yaptığınız örnek üzerinden hareketle tek bir coinin değil de iki coinin fiyatını çekip ekrana gösterip ve alımı yaptırıyorum ancak, tek satırda birleştiremedim.

    Acaba birden fazla coini aynı satırda toplayabilir miyiz?
    Örnek kodu ekliyorum ne demek istediğim daha da iyi anlaşılır.

    Sizin örnek Kodunuz:
    symbol = ‘BTCUSDT’
    interval = ‘5m’
    limit = 500

    klines = connection.client.get_klines(symbol=symbol, interval=interval, limit=limit)

    open = [float(entry[1]) for entry in klines]
    high = [float(entry[2]) for entry in klines]
    low = [float(entry[3]) for entry in klines]
    close = [float(entry[4]) for entry in klines]

    Benim yapmak istediğim:

    symbolBTC = ‘BTCUSDT’
    intervalBTC = ‘5m’
    limitBTC = 500

    symbolETH = ‘ETHUSDT’
    intervalETH = ‘5m’
    limitETH = 500

    klinesBTC = connection.client.get_klines(symbol=symbolBTC, interval=intervalBTC, limit=limitBTC)

    klinesETH = connection.client.get_klines(symbol=symbolETH, interval=intervalETH, limit=limitETH)

    open = [float(entry[1]) for entry in klinesBTC and klinesETH]
    high = [float(entry[2]) for entry in klinesBTC and klinesETH]
    low = [float(entry[3]) for entry in klinesBTC and klinesETH]
    close = [float(entry[4]) for entry in klinesBTC and klinesETH]

    ancak ekrana yazdırdığım zaman close değişkenindeki en son klines değerini alıyor. ikisini birden aldıramadım.
    Acaba var mı bir yolu? Yardımcı olabilirseniz sevinirim.

  39. Selam. Çok teşekkürler.

    Burada sadece bir coin in fiyatını çektik ya.
    Şöyle yapsak nasıl yaparız.
    Belirlediğimiz bir indikatörüm parametrelerine uyanların listesini ve datalarını alıp,, onlara al/sat yapsak nasıl olur. Belki de bunun için önce tüm borsayı bir geçici tabloya kaydetmek gerekecektir.
    Düşünsenize diğer tüm botlarda coin manuel seçiliyor, ama bu olursa bot coini de kendi seçecek. Yani tam otomatik?

    Böyle bir şey nasıl yapılır?

  40. öncelikle çok teşekkür ederim çok faydalı olmuş,
    benim sorum ise sadece btcye deüil binancedeki tüm coinleri taratmak istiyorum bunu nasıl yapabilirim.

  41. hocam merhabalar,

    python-binance kütüphanesi kullanarak bir while döngüsü ile işlem yapmışsınız elinize sağlık.

    Websocket kullanımına bir örnek vermeniz mümkün müdür?
    ve ikisi arasındaki farkı kısaca özetleyebilir misiniz?

    1. Merhabalar

      websocket üzerine bir yazı hazırlıyorum.

      Websocket’in benim yaptığım örneğe göre avantajları var.
      while içerisinde sürekli sorgu göndermek yerine Binance tarafından değişikliklerin anlık uygulamaya gönderilmesi,

      performans açısından artıları olacaktır. Yeni hazırladığım yazımda bu konularda detaylı bilgi vermeyi planlıyorum.

      İyi çalışmalar dilerim.

  42. Traceback (most recent call last):
    File “C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\connectionpool.py”, line 699, in urlopen
    httplib_response = self._make_request(
    File “C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\connectionpool.py”, line 445, in _make_request
    six.raise_from(e, None)
    File “”, line 3, in raise_from
    File “C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\connectionpool.py”, line 440, in _make_request
    httplib_response = conn.getresponse()
    File “C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\http\client.py”, line 1345, in getresponse
    response.begin()
    File “C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\http\client.py”, line 307, in begin
    version, status, reason = self._read_status()
    File “C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\http\client.py”, line 268, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), “iso-8859-1”)
    File “C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\socket.py”, line 704, in readinto
    return self._sock.recv_into(b)
    File “C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\ssl.py”, line 1241, in recv_into
    return self.read(nbytes, buffer)
    File “C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\ssl.py”, line 1099, in read
    return self._sslobj.read(len, buffer)
    ConnectionResetError: [WinError 10054] Varolan bir bağlantı uzaktaki bir ana bilgisayar tarafından zorla kapatıldı

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File “C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\adapters.py”, line 439, in send
    resp = conn.urlopen(
    File “C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\connectionpool.py”, line 755, in urlopen
    retries = retries.increment(
    File “C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\util\retry.py”, line 532, in increment
    raise six.reraise(type(error), error, _stacktrace)
    File “C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\packages\six.py”, line 734, in reraise
    raise value.with_traceback(tb)
    File “C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\connectionpool.py”, line 699, in urlopen
    httplib_response = self._make_request(
    File “C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\connectionpool.py”, line 445, in _make_request
    six.raise_from(e, None)
    File “”, line 3, in raise_from
    File “C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\connectionpool.py”, line 440, in _make_request
    httplib_response = conn.getresponse()
    File “C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\http\client.py”, line 1345, in getresponse
    response.begin()
    File “C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\http\client.py”, line 307, in begin
    version, status, reason = self._read_status()
    File “C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\http\client.py”, line 268, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), “iso-8859-1”)
    File “C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\socket.py”, line 704, in readinto
    return self._sock.recv_into(b)
    File “C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\ssl.py”, line 1241, in recv_into
    return self.read(nbytes, buffer)
    File “C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\ssl.py”, line 1099, in read
    return self._sslobj.read(len, buffer)
    urllib3.exceptions.ProtocolError: (‘Connection aborted.’, ConnectionResetError(10054, ‘Varolan bir bağlantı uzaktaki bir ana bilgisayar tarafından zorla kapatıldı’, None, 10054, None))

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File “c:\p\mnisan.py”, line 177, in
    klines = connection.client.get_klines(symbol=symbol, interval=interval, limit=limit)
    File “C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\site-packages\binance\client.py”, line 789, in get_klines
    return self._get(‘klines’, data=params, version=self.PRIVATE_API_VERSION)
    File “C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\site-packages\binance\client.py”, line 292, in _get
    return self._request_api(‘get’, path, signed, version, **kwargs)
    File “C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\site-packages\binance\client.py”, line 242, in _request_api
    return self._request(method, uri, signed, **kwargs)
    File “C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\site-packages\binance\client.py”, line 236, in _request
    self.response = getattr(self.session, method)(uri, **kwargs)
    File “C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\sessions.py”, line 555, in get
    return self.request(‘GET’, url, **kwargs)
    File “C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\sessions.py”, line 542, in request
    resp = self.send(prep, **send_kwargs)
    File “C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\sessions.py”, line 655, in send
    r = adapter.send(request, **kwargs)
    File “C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\adapters.py”, line 498, in send
    raise ConnectionError(err, request=request)
    requests.exceptions.ConnectionError: (‘Connection aborted.’, ConnectionResetError(10054, ‘Varolan bir bağlantı uzaktaki bir ana bilgisayar tarafından zorla kapatıldı’, None, 10054, None))

    1. Bu tür hatalar çeşitli sebeplerden dolayı olabiliyor.
      Bu durumda benim yaptığım, try catch içerisinde yakalayıp, yeni bir connection oluşturmak oluyor.

      Önerileriniz olursa, lütfen paylaşın.

      Websocket kullanımının bu anlamda avantajları olabilir. Konuyla ilgili bir yazı hazırlıyorum.

      İyi çalışmalar dilerim.

      1. while True:
        time.sleep(20)
        try:
        klines = connection.client.get_klines(symbol=symbol, interval=interval, limit=limit)

        hocam kod yukarıdaki gibi hatta.

        except Timeout:
        # write event to logfile
        pass
        except requests.exceptions.ConnectTimeout: #requests.exceptions.ReadTimeout
        print(“timeout”)
        time.sleep(360)
        pass
        except BinanceAPIException as e:
        print(e)
        print(‘Something went wrong. Error occured at %s. Wait for 1 hour.’ % (datetime.datetime.now()))
        time.sleep(360)
        client = Client(“x”,”x”)
        continue
        except ConnectionResetError:
        print(“ConnectionResetError”)
        time.sleep(360)
        pass

      2. Demir Bayraktar

        Hocam merhabalar. Yorum olarak yazdım ancak yayınlanmadı. Sizin yazdığınız kod üzerinde biraz değişiklik yapmak istedim ancak yapamadım. Yardımcı olabilir misiniz.

        “Kod Örneğiniz”

        symbol = ‘BTCUSDT’
        interval = ‘5m’
        limit = 500

        klines = connection.client.get_klines(symbol=symbol, interval=interval, limit=limit)

        close = [float(entry[4]) for entry in klines]

        “Benim yapmak istediğim kod örneği”

        symbolBTC = ‘BTCUSDT’
        intervalBTC = ‘5m’
        limitBTC = 500

        symbolXRP = ‘XRPUSDT’
        intervalXRP = ‘5m’
        limitXRP = 500

        klinesBTC = connection.client.get_klines(symbol=symbol, interval=interval, limit=limit)

        klinesXRP = connection.client.get_klines(symbol=symbol, interval=interval, limit=limit)

        close = [float(entry[4]) for entry in klinesBTC and klinesXRP]

        yani özet olarak iki ayrı coini ayrı ayrı almak yerine ikisini de tek close değişkenine atamak istiyorum. Ancak yapamadım. Python’u çok bilmediğim içindir. Umarım anlatabildim. Yardımcı olabilir misiniz?

        1. Demir Bayraktar

          klinesBTC = connection.client.get_klines(symbol=symbolBTC, interval=intervalBTC, limit=limitBTC)

          klinesXRP = connection.client.get_klines(symbol=symbolXRP, interval=intervalXRP, limit=limitXRP)

          şu kısmı eksik yazmışım doğrusu bu şekilde.

  43. 1000 TL yıllık lisans, 10000 TL kodu ile birlikte veriyorum, burdakinden farklı çok sayıda indikatörü olumlu kullanıyor

  44. Merhaba benim şöyle birşeye ihtiyacım var vadeli işlemler için telegramdan gelen giriş ve çıkış degerlerini binance de otomatik işlem açıp kapaticak bir şeye ihtiyacım var

  45. hocam merhaba,
    verdiğiniz kodlara göre son 24 saatin en yüksek en düşük ve anlık fiyatını veren küçük bir program yazmak istiyorum. ancak en düşük fiyata ulaşabilmeme rağmen en yüksek fiyat, binance’in sitesindekinden farklı görünüyor. yardımcı olabilirseniz çok çok mutlu olurum. sizin yazdığınız örnekteki BTC’nin 5 dakikalık mum grafiğini USDT (tether) cinsinden bize dönen bir kodun son kısmını şu şekilde revize ettim:

    last_closing_price = close[-1]
    endusuk_24 = low[-1]
    enyuksek_24 = high[-2]

    print(“anlık kapanış fiyatı:”, last_closing_price)
    print(“24 saat en düşük:”, endusuk_24)
    print(“24 saat en yüksek:”, enyuksek_24)

    yalniz endusuk_24 değişkeni sitedeki ile uyumlu olmasına rağmen en yuksek_24 değişkeni sitedekinden farklı bir sonuç veriyor. “enyuksek_24 = high[-2]”daki [-2] değerini değiştirmem gerekiyor sanırım ama -2 yerine hangi sayıyı yazdıysam da tutturamadım. yardimci olursanız çok mutlu olurum.

    NOT: interval = ‘1d’ yaptım.

    1. api de bu yetkiyi (enable withdrawals) vermisseniz yapabilir. Bu yüzden çok dikkatli olmak lazım.
      Bu tür yetkileri açmamak en iyisi.

  46. Hocam farklı indikatörler ile al-sat sinyali verecek şekilde revize edebilir miyiz bu kodları? Diğer indikatörler ile kodları nereden bulabilirim. Bu kodlar ile daha hiç sinyal alamadım. Yardımcı olursanız sevinirim

  47. Merhabalar hocam rsi indikatörünü çekmeye çalıştığımda güncel rsi değeri değilde kapanmış olan son mumdaki rsi değerini getiriyor. Bunu nasıl güncel değere çevirebiliriz ne yaptıysam olmadı yardımcı olur musunuz?

  48. Program ilk başlarda sorunsuz çalışırken şimdi sorun çıkıyor. Çıkan sorunların sebebi ne olabilir acaba?

    Traceback (most recent call last):
    File “C:\Users\USER\PycharmProjects\BitCoin\venv\lib\site-packages\urllib3\connectionpool.py”, line 445, in _make_request
    six.raise_from(e, None)
    File “”, line 3, in raise_from
    File “C:\Users\USER\PycharmProjects\BitCoin\venv\lib\site-packages\urllib3\connectionpool.py”, line 440, in _make_request
    httplib_response = conn.getresponse()
    File “C:\Users\USER\Documents\Python39\lib\http\client.py”, line 1347, in getresponse
    response.begin()
    File “C:\Users\USER\Documents\Python39\lib\http\client.py”, line 307, in begin
    version, status, reason = self._read_status()
    File “C:\Users\USER\Documents\Python39\lib\http\client.py”, line 268, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), “iso-8859-1”)
    File “C:\Users\USER\Documents\Python39\lib\socket.py”, line 704, in readinto
    return self._sock.recv_into(b)
    File “C:\Users\USER\Documents\Python39\lib\ssl.py”, line 1241, in recv_into
    return self.read(nbytes, buffer)
    File “C:\Users\USER\Documents\Python39\lib\ssl.py”, line 1099, in read
    return self._sslobj.read(len, buffer)
    socket.timeout: The read operation timed out

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File “C:\Users\USER\PycharmProjects\BitCoin\venv\lib\site-packages\requests\adapters.py”, line 439, in send
    resp = conn.urlopen(
    File “C:\Users\USER\PycharmProjects\BitCoin\venv\lib\site-packages\urllib3\connectionpool.py”, line 755, in urlopen
    retries = retries.increment(
    File “C:\Users\USER\PycharmProjects\BitCoin\venv\lib\site-packages\urllib3\util\retry.py”, line 532, in increment
    raise six.reraise(type(error), error, _stacktrace)
    File “C:\Users\USER\PycharmProjects\BitCoin\venv\lib\site-packages\urllib3\packages\six.py”, line 735, in reraise
    raise value
    File “C:\Users\USER\PycharmProjects\BitCoin\venv\lib\site-packages\urllib3\connectionpool.py”, line 699, in urlopen
    httplib_response = self._make_request(
    File “C:\Users\USER\PycharmProjects\BitCoin\venv\lib\site-packages\urllib3\connectionpool.py”, line 447, in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
    File “C:\Users\USER\PycharmProjects\BitCoin\venv\lib\site-packages\urllib3\connectionpool.py”, line 336, in _raise_timeout
    raise ReadTimeoutError(
    urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host=’api.binance.com’, port=443): Read timed out. (read timeout=10)

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File “C:\Users\USER\PycharmProjects\BitCoin\main.py”, line 48, in
    klines = connection.client.get_klines(symbol=symbol, interval=interval, limit=limit)
    File “C:\Users\USER\PycharmProjects\BitCoin\venv\lib\site-packages\binance\client.py”, line 789, in get_klines
    return self._get(‘klines’, data=params, version=self.PRIVATE_API_VERSION)
    File “C:\Users\USER\PycharmProjects\BitCoin\venv\lib\site-packages\binance\client.py”, line 292, in _get
    return self._request_api(‘get’, path, signed, version, **kwargs)
    File “C:\Users\USER\PycharmProjects\BitCoin\venv\lib\site-packages\binance\client.py”, line 242, in _request_api
    return self._request(method, uri, signed, **kwargs)
    File “C:\Users\USER\PycharmProjects\BitCoin\venv\lib\site-packages\binance\client.py”, line 236, in _request
    self.response = getattr(self.session, method)(uri, **kwargs)
    File “C:\Users\USER\PycharmProjects\BitCoin\venv\lib\site-packages\requests\sessions.py”, line 555, in get
    return self.request(‘GET’, url, **kwargs)
    File “C:\Users\USER\PycharmProjects\BitCoin\venv\lib\site-packages\requests\sessions.py”, line 542, in request
    resp = self.send(prep, **send_kwargs)
    File “C:\Users\USER\PycharmProjects\BitCoin\venv\lib\site-packages\requests\sessions.py”, line 655, in send
    r = adapter.send(request, **kwargs)
    File “C:\Users\USER\PycharmProjects\BitCoin\venv\lib\site-packages\requests\adapters.py”, line 529, in send
    raise ReadTimeout(e, request=request)
    requests.exceptions.ReadTimeout: HTTPSConnectionPool(host=’api.binance.com’, port=443): Read timed out. (read timeout=10)

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File “C:\Users\USER\PycharmProjects\BitCoin\main.py”, line 50, in
    print(exp.status_code, flush=True)
    AttributeError: ‘ReadTimeout’ object has no attribute ‘status_code’

  49. Bu güzel yazınız için teşekkür ederim. Volume nasıl alınır araştırdım bulamadım. hem btc olarak hemde adet olarak ne kadar işlem yapıldığını nasıl alabiliriz.
    saygılar

  50. Hocam Selam, TRBINANCE de çalışan bir kod da oluşturur musun? Bu kod Global BINANCE de çalışıyor, TRBINANCE de hesaba yönelik APIler ( al /sat vs) hata veriyor.

    Hata: APIError(code=-2015): Invalid API-key, IP, or permissions for action.

    client = bin.Client(api_key, api_sec)
    client.get_account() # Hata veriyor
    client.get_all_tickers() # Çalışıyor.

    API_URL farklı sanırım

    Global Binance’a para göndermek ile sıkınıtılar var. TRBINANCE kullanıyorum o yüzden.
    TRBINANCE de bu kodu nasıl çalıştırabiliriz?
    tşk.

  51. Merhaba,

    Aşağıdaki gibi hata alıyorum sebebi nedir?
    C:\binance\venv\Scripts\python.exe C:\binance\python-binance-master\binance\algotrade.py
    Traceback (most recent call last):
    File “C:\binance\python-binance-master\binance\algotrade.py”, line 1, in
    from binance.client import Client
    File “C:\binance\venv\lib\site-packages\binance\__init__.py”, line 10, in
    from binance.depthcache import DepthCacheManager, OptionsDepthCacheManager, ThreadedDepthCacheManager # noqa
    File “C:\binance\venv\lib\site-packages\binance\depthcache.py”, line 7, in
    from .streams import BinanceSocketManager
    File “C:\binance\venv\lib\site-packages\binance\streams.py”, line 10, in
    import websockets as ws
    File “C:\binance\venv\lib\site-packages\websockets\__init__.py”, line 3, in
    from .auth import *
    File “C:\binance\venv\lib\site-packages\websockets\auth.py”, line 15, in
    from .server import HTTPResponse, WebSocketServerProtocol
    File “C:\binance\venv\lib\site-packages\websockets\server.py”, line 49, in
    from .protocol import WebSocketCommonProtocol
    File “C:\binance\venv\lib\site-packages\websockets\protocol.py”, line 18, in
    from typing import (
    ImportError: cannot import name ‘Deque’

    Process finished with exit code 1

  52. Merhaba,

    Aşağıdaki gibi bir hata alıyorm. Python öğrenmeye başladım ama hani bot yazma seviyesine gelene kadar bekleyemem. En azından ben uyurken çalışsın :). Fakat aşağıdaki hataları çözemedim. Aynı zamanda yazarken kodlara bakıyorum ki öğreneyim. ileride kendim başka işler için en azından yazabileyim diye bunu yapıyorum. Yardımcı olursanız sevinirim. Teşekkürler.

    Traceback (most recent call last):
    File “/Users/leventcan/PycharmProjects/BasicTradeBot/binancetesting.py”, line 16, in
    connection = BinanceConnection(filename)
    File “/Users/leventcan/PycharmProjects/BasicTradeBot/binancetesting.py”, line 5, in __init__
    self.connect(file)
    File “/Users/leventcan/PycharmProjects/BasicTradeBot/binancetesting.py”, line 9, in connect
    lines = [line.rstrip(‘\n’) for line in open(file)]
    FileNotFoundError: [Errno 2] No such file or directory: ‘credentials.txt’

    Process finished with exit code 1

  53. hocam kodda eksik bir olay var misal alış veya satış esnasında borsa saniyeler içerisinde o fiyata geliyor malum sistem o an al yada sat emri veridiğin emri gerçekleştiremiyor ve alış yada satış emrine giriyor. botta emirde kalanı nasıl bulup iptal ettirebiliriz. Daha spesifik olması açısından satışta yada alışta kalan emri bulup iptal ettirmek.

  54. Selamlar Hocam, Paylaşımınız için öncelikle teşekkürler. Kodu deniyorum. Yardımcı olursanız sevinirim.
    Altına bi time.sleep ekledim 1 dakikalık. ve alma-satma işlemini aktif ettim. Ancak takıldığım nokta: Her yenilemede tekrar alım emri yada satım gönderiyor. Yani bir hesap kontrolü yada sıradaki emire (satım işlemine) geçme işlemi yapmak lazım. O konuda yardımcı olursanız sevinirim.

  55. Hocam merhabalar.
    Binance future daki coinleri taratip kriterlerime gore al sat yapacak bir bot yazmaya calistim. 146 coinin fiyat verilerini getiriyor. Kriterime göre eliyor ve ve kalanlari listeliyor ve bu islem kabaca 4 dk sürüyor. Sizce bu normal mi

  56. Gökhan raciniss

    Hocam tüm yorumları ve verdiğiniz cevapları okudum ilginiz ve yardımınızdan ötürü özellikle programı detaylı anlatımla paylaştığınız için çok teşekkür ederim
    Benim sorum : alım miktarını belirmek istiyorum mesela kasadaki paranın hepsiyle girmesin kasada 100 dolar varken ben 10 dolarla işlem yaptırmak istiyorum kâr alsana zararla işlem kapatsada yine kasadan 10 doları çekerek işleme başladın istiyorum bunu nasıl yapabilrim
    Şimdiden teşekkür ederim

  57. hocam selamlar trading view.den dışarıya canlı veri çekmek mümkünmü?
    Misalen bir btc ni son 10.000 bar 1 dakikalık grafiğini

Yorum bırakın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Scroll to Top