Binance Telegram Bot

This bot collect all aggtrade data from binance and when you want to see data you can get on telegram.

# -*- coding: utf-8 -*-
"""
Created on Sat Aug 20 08:40:18 2022

@author: okmen
"""

import unicorn_binance_websocket_api
from datetime import datetime
from binance.enums import *
from binance.client import Client
from binance.client import Client
import threading
from datetime import datetime
import pandas as pd
global client
client = Client()
import logging
import telegram
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
from matplotlib import pyplot as plt
import numpy as np
from PIL import Image
import time
import json
import pandas as pd
def telegrambotu():        
    try:
            
            apiid="5694856804:AAGmEnnVVHYi2rwRMIpcqRoGC0M7gIqKxdU"
    
            namebot="bionlukdeneme"
            username="bionlukdenemebot"
            link="t.me/bionlukdenemebot"       
            logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',level=logging.INFO)
    
            logger = logging.getLogger(__name__)
                    
                    
            def c(update, context):
                try:
                    gelen_mesaj=update["message"]["text"]
                except Exception as e:
                    gelen_mesaj="yokflavves"
                    print("hata mesajı",e)
                
                
                if gelen_mesaj =="yokflavves":
                    print("mesaj okunamadı")
                else:
                    
                    ######################## ÖRNEK
                    # veri="BTCUSDT,15m;ETHUSDT,30m;SOLUSDT,1h;AAVEUSDT,4h;TRXUSDT,2h;"
                    #print(update["message"]["chat"]["id"])
                    coin=gelen_mesaj.split(" ")[1][1:].upper()+"USDT"
                    fiyat=float(gelen_mesaj.split(" ")[2])
                                    
                    depth = client.get_order_book(symbol=coin,limit=1000)
    
                    alis=0
                    satis=0
                    
                    for alislar in depth["bids"]:
                        if fiyat == float(alislar[0]):
                            alis=(float(alislar[0])*float(alislar[1]))
                            break
                    
                    for satislar in depth["asks"]:
                        if fiyat == float(satislar[0]):
                            satis=(float(satislar[0])*float(satislar[1]))
                            break
                 
                    gonder="Coin:%s\nAlış: %s\nSatış: %s\ntotal %s\nK(Kademe): %s"%(coin,alis,satis,alis+satis,fiyat)
                    #update.message.reply_text("Alış: %s\n Satış: %s\n total %s\n K(Kademe): %s"%(alis,satis,alis+satis,fiyat))
                    #resime geç
                    
                    ##################################333
                    try:
                        grafikicinlabel=[]
                        data=[]
                        
                        sayac=0
                        for i in depth["bids"]:
                            sayac +=1
                            grafikicinlabel.append(i[0])
                            data.append(i[1])
                            if sayac==10:
                                break
                        
                        
                        
                         
                         
                        
                        #fig = plt.figure(figsize=(4,3),dpi=144)
                        
                        
                        
                        
                        fig = plt.figure(figsize =(10, 7))
                        plt.pie(data, labels = grafikicinlabel)
                        
                        fig.suptitle('BİDS', fontsize=23)
                        #plt.title("bids", x=0.0, y=0.0)
                        # show plot
                        plt.savefig('bids.png')
                        
                        
                        ##################################333
                        
                        grafikicinlabel=[]
                        data=[]
                        
                        sayac=0
                        for i in depth["asks"]:
                            sayac +=1
                            grafikicinlabel.append(i[0])
                            data.append(i[1])
                            if sayac==10:
                                break
                        
                        
                        
                         
                         
                        
                        #fig = plt.figure(figsize=(4,3),dpi=144)
                        
                        
                        
                        
                        fig = plt.figure(figsize =(10, 7))
                        plt.pie(data, labels = grafikicinlabel)
                        
                        fig.suptitle('ASKS', fontsize=23)
                        #plt.title("bids", x=0.0, y=0.0)
                        # show plot
                        plt.savefig('ASKS.png')
                        
                        ##################################333
                        
                        
                        
                        ##################################333
                        
                        # create figure
                        fig = plt.figure(figsize=(40, 15))
                          
                        # setting values to rows and column variables
                        rows = 1
                        columns = 2
                          
                        # reading images
                        Image1 = Image.open('bids.png')
                        Image2 = Image.open('ASKS.png')
                        
                        # Adds a subplot at the 1st position
                        fig.add_subplot(rows, columns, 1)
                          
                        # showing image
                        plt.imshow(Image1)
                        plt.axis('off')
                        
                          
                        # Adds a subplot at the 2nd position
                        fig.add_subplot(rows, columns, 2)
                          
                        # showing image
                        plt.imshow(Image2)
                        plt.axis('off')
                        plt.savefig('bidsandasks.png')
                        
                        ##################################333
                    except Exception as e:
                        print(e)
                                    
                                    
                    
                    
                    #resim bitti
                    bot = telegram.Bot(apiid)
                    """            
                    bot.send_photo(update["message"]["chat"]["id"],
                            photo=open('bidsandasks.png', 'rb'),
                            caption=gonder)
                    """
                    document = open('bidsandasks.png', 'rb')
                    bot.sendDocument(update["message"]["chat"]["id"],
                                             document = document,
                                             caption=gonder)
            
            
            def d(update, context):
                try:
                    gelen_mesaj=update["message"]["text"]
                except Exception as e:
                    gelen_mesaj="yokflavves"
                    print("hata mesajı",e)
                
                
                if gelen_mesaj =="yokflavves":
                    print("mesaj okunamadı")
                else:
                    
                    coin=gelen_mesaj.split(" ")[1][1:].upper()+"USDT"
                    zaman=int(gelen_mesaj.split(" ")[2])
                  
                    dAdi="jsons/"+coin.lower()+".json"
                    try:      
                            with open(dAdi) as f:
                                sozluka = json.load(f)
                                print("sözlük geldi")
                    except Exception as e:
                            print("sozluk alma hatası"+str(e))


                    sozluk_yeni={"alıs":[{"price":0,"quoteQty":0}],"satis":[{"price":0,"quoteQty":0,"time":0}]}
                    for veri in sozluka["veriler"]:
                        eklensinmi=False    
                        price=veri["p"]
                        miktar=veri["q"]
                        alisemrimi=veri["m"]==False
                        timestamp=veri["T"]
                        
                        try:
                                        start_ts = veri["T"]/1000
                                        end_ts = time.time()
                                        dt1 = datetime.fromtimestamp(start_ts)
                                        dt2 = datetime.fromtimestamp(end_ts)
                                        delta = dt2 - dt1 
                                        def days_hours_minutes(td):
                                            return td.days, td.seconds//3600, (td.seconds//60)%60               
                                        verininzamanı=days_hours_minutes(delta)
                                        if ((verininzamanı[0]>0) or ((verininzamanı[1]<zaman) == False)) :
                                            try:
                                                sozluk["veriler"].pop(sozluk["veriler"].index(veri))
                                            except:
                                                pass
                                            pass
                        except:pass
                      
                        
                    
                        
                        if veri["m"]==False:
                            sira_kalender=-1
                            for kalender in sozluk_yeni["alıs"]:
                                sira_kalender +=1
                                                                        
                              
                                if kalender["price"]==float(veri["p"]):
                                    #kalender["quoteQty"]=kalender["quoteQty"]+float(veri["quoteQty"])#hata burada bu kalender şeyine kayıt yapamıyo eskiden [0] falandı ya o işe yarıyordu.
                                    sozluk_yeni["alıs"][sira_kalender]["quoteQty"]=kalender["quoteQty"]+(float(veri["q"])*float(veri["p"]))
                                    eklensinmi=True
                                    sira_kalender=-1
                                    break
                                
                            if eklensinmi==False:
                                                                            
                                sozluk_yeni["alıs"].append({"price":float(veri["p"]),"quoteQty":float(veri["q"])*float(veri["p"])})  
                                eklensinmi=True
                        else:
                            sira_kalender=-1
                            for kalender in sozluk_yeni["satis"]:
                                sira_kalender +=1
                                                                        
                              
                                if kalender["price"]==float(veri["p"]):
                                    #kalender["quoteQty"]=kalender["quoteQty"]+float(veri["quoteQty"])#hata burada bu kalender şeyine kayıt yapamıyo eskiden [0] falandı ya o işe yarıyordu.
                                    sozluk_yeni["satis"][sira_kalender]["quoteQty"]=kalender["quoteQty"]+(float(veri["q"])*float(veri["p"]))
                                    eklensinmi=True
                                    sira_kalender=-1
                                    break
                                
                            if eklensinmi==False:
                                                                            
                                sozluk_yeni["satis"].append({"price":float(veri["p"]),"quoteQty":float(veri["q"])*float(veri["p"])})  
                                eklensinmi=True
                            
                        
                        
                    df = pd.DataFrame()
                    
                    
                    
                    try:
                                        toplam_alis=0
                                        toplam_alis_sayac=0
                                        alislars=""
                                        for alislar in sozluk_yeni["alıs"]:
                                            
                                                    if alislar["price"]==0:
                                                        pass
                                                    else:
                                                        toplam_alis_sayac=toplam_alis_sayac+1
                                                        pandasdf=pd.DataFrame.from_dict({"kademe":[alislar["price"]],"Alış Total":[alislar["quoteQty"]],
                                                                         "Satış Total":pd.NaT,"toplam":pd.NaT})
                                                        df = df.append(pandasdf, ignore_index = True)
                    
                                        
                                        toplam_satis=0
                                        toplam_satis_sayac=0
                                        #update.message.reply_text(a)      
                                        satislars =""
                                        for satislar in sozluk_yeni["satis"]:
                                            
                                                    if satislar["price"]==0:
                                                        pass
                                                    else:
                                                        toplam_satis_sayac=toplam_satis_sayac+1
                                                        
                                                        varmi=df.loc[df['kademe'] == satislar["price"]]                  
                                                        if len(varmi)   >0:
                                                      
                                                            #print(varmi)
                                                            df.loc[df['kademe'] == satislar["price"], 'Satış Total'] = [satislar["quoteQty"]]
                                                        else:
                                                            try:
                                                                pandasdf=pd.DataFrame.from_dict({"kademe":[satislar["price"]],
                                                                                                 "Alış Total":pd.NaT,
                                                                                                 "Satış Total":[satislar["quoteQty"]],
                                                                                                 "toplam":pd.NaT})
                                                                df = df.append(pandasdf, ignore_index = True)
                                                            except Exception as e:
                                                                print(e)
                                        
                                        
                    
                                        dfyeni = pd.DataFrame()
                                        
                                        
                                        
                                        for i in range(0,len(df),10):
                                                
                                            aratoplamicin=float('{0:.2f}'.format((df[i:i+10]["Alış Total"].dropna().sum())))
                                            arasatisicin=float('{0:.2f}'.format((df[i:i+10]["Satış Total"].dropna().sum())))
                                            toplam='{0:.2f}'.format(float(aratoplamicin)+float(arasatisicin))
                                            ekledicticin={"Alış Total":aratoplamicin,"Satış Total":arasatisicin,"toplam":aratoplamicin+arasatisicin}
                        
                                            pandasdf=pd.DataFrame.from_dict({"kademe":"SUBTOTAL",
                                                                             "Alış Total":[ekledicticin["Alış Total"]],
                                                                             "Satış Total":[ekledicticin["Satış Total"]],
                                                                             "toplam":[ekledicticin["toplam"]]})
                                            
                                   
                                            dfyeni2=(df[i:i+10])
                                            dfyeni=dfyeni.append(dfyeni2, ignore_index = True)
                                            dfyeni=dfyeni.append(pandasdf, ignore_index = True)
                                        # en son ana toplam
                                        
                                        aratoplamicin=float('{0:.2f}'.format((df["Alış Total"].dropna().sum())))
                                        arasatisicin=float('{0:.2f}'.format((df["Satış Total"].dropna().sum())))
                                        toplam='{0:.2f}'.format(float(aratoplamicin)+float(arasatisicin))
                                        ekledicticin={"Alış Total":aratoplamicin,"Satış Total":arasatisicin,"toplam":aratoplamicin+arasatisicin}
                                        pandasdf=pd.DataFrame.from_dict({"kademe":"TOTAL",
                                                                             "Alış Total":[ekledicticin["Alış Total"]],
                                                                             "Satış Total":[ekledicticin["Satış Total"]],
                                                                             "toplam":[ekledicticin["toplam"]]})
                                            
                                        dfyeni=dfyeni.append(pandasdf, ignore_index = True)                    
                                                       
                                        #dfyeni.to_excel("exceller/"+coin+'.xlsx', sheet_name='Sayfa1')        
                                        dfyeni2=pd.DataFrame()
                                        
                                        
                                        ekledicticin_enson={"kademe":str(coin),"Alış Total":str(zaman)}
                                        
                                        pandasdf=pd.DataFrame.from_dict({"kademe":[ekledicticin_enson["kademe"]],
                                                                         "Alış Total":[ekledicticin_enson["Alış Total"]],})
                                        
                                        dfyeni2=dfyeni2.append(pandasdf, ignore_index = True)
                                        dfyeni2=dfyeni2.append(dfyeni, ignore_index = True)
                                        dfyeni2.to_excel("exceller/"+coin+'.xlsx', sheet_name='Sayfa1')     
                                        
                                        bot = telegram.Bot(apiid)
                                        document = open("exceller/"+coin+'.xlsx', 'rb')
                                        bot.sendDocument(update["message"]["chat"]["id"],
                                                                 document = document)    
                                        
                        
                    except:pass  
                                                         
                 
                    
                    
            def help(update, context):
                """Send a message when the command /help is issued."""
                update.message.reply_text('Yardım geliyor')
            
            
           
            
            
            def error(update, context):
                """Log Errors caused by Updates."""
                logger.warning('Update "%s" caused error "%s"', update, context.error)
            
            
            def main():
                try:
                        
                    token = apiid
                    updater = Updater(token, use_context=True)
                    dp = updater.dispatcher
                    #komutlar burada
                    dp.add_handler(CommandHandler("c", c))
                    dp.add_handler(CommandHandler("d", d))
                    dp.add_handler(CommandHandler("help", help))
                    
        
                    dp.add_error_handler(error)
                    
                    
                    
                    
                    
                    
                    updater.start_polling()
                    updater.idle()
                except:pass
            
            
            if __name__ == '__main__':
                main()  
    
    except Exception as e:
            print("son hata:"+e)






#veri toplama






try:
    client = Client()
    
    semboller=[]
    
    
    tickers = client.get_ticker()
    
    
    uzunluk_listenin=int(len(tickers))
    
    semboller=[]
    degerler=[]
    for qe in range(0,uzunluk_listenin):
            
        if (tickers[qe]["symbol"][-4:]) =="USDT" :
            
            
            siralama_icin_bakiyorum=(tickers[qe]["priceChangePercent"])
            
            degerler.append(float(siralama_icin_bakiyorum))
      
        
      
        
    degerler.sort(reverse=True)
            
    
    uzunluk_degerlerin=int(len(degerler))      
    
    
    
    for yummi in range(0,uzunluk_listenin):
    
        for qeq in range(0,uzunluk_listenin):   
            if ((tickers[qeq]["symbol"][-4:]) =="USDT" ):
            
                try:              
           
                    if degerler[yummi]==float(tickers[qeq]["priceChangePercent"]):
                        semboller.append((tickers[qeq]["symbol"]))
                except:
                    pass              
            
    
    semboller=list(set(semboller))
except:
        pass

semboller.remove("STORMUSDT")
semboller.remove("PAXUSDT")   
semboller.remove("BTTUSDT")   
semboller.remove("TUSDUSDT")  
semboller.remove("BUSDUSDT")
semboller.remove("USDCUSDT")
semboller.remove("ETHUSDT")
semboller.remove("BTCUSDT")
semboller.remove("BNBUSDT")
semboller.remove("XRPUSDT")



#yüksek hacimlileri bölüştürdüm btc yi ayrı koydum
def yuksekhacimliler():
    print("yüksek hacimliler başladı") 
    #burada eklediğim kütüphane sorunsuz websocket bağlantısı sağladı bana
    ubwa = unicorn_binance_websocket_api.BinanceWebSocketApiManager(exchange="binance.com")
    ubwa.create_stream(['aggTrade'], ["btcusdt"])
    
    
    sozluk2={"coin":{"veriler":[]}}
  
    
    while True:
        try:
            oldest_data_from_stream_buffer = ubwa.pop_stream_data_from_stream_buffer()
            if oldest_data_from_stream_buffer:
                    #print(oldest_data_from_stream_buffer)
                    a = json.loads(oldest_data_from_stream_buffer)
                    
            
                  
        
                    #eklensinmi=False
                    #price=a["data"]["p"]
                    #miktar=a["data"]["q"]
                    #alisemrimi=a["data"]["m"]==False
                    #timestamp=a["data"]["T"]
                    
                    try:
                        #print("coin:%s\nalis emri mi:%s\nprice:%s\nmiktar:%s"%(a["stream"],alisemrimi,price,miktar))
            
                        try:
                            sozluk2[a["stream"].split("@")[0]]["veriler"].append(a["data"])
                        except:
                            sozluk2.update({a["stream"].split("@")[0]:{"veriler":[]}})
                            sozluk2[a["stream"].split("@")[0]]["veriler"].append(a["data"])
                        
                        
                        if len(sozluk2[a["stream"].split("@")[0]]["veriler"]) >1000:
                                
                            dAdi="jsons/"+a["stream"].split("@")[0]+".json"
                            
                            try:      
                                with open(dAdi) as f:
                                    sozluk = json.load(f)
                            except:
                                sozluk={"veriler":[]}
                                with open(dAdi, 'w') as f:
                                    json.dump(sozluk, f)
                                with open(dAdi) as f:
                                    sozluk = json.load(f)
                                    
            
                        
                        
                            for i in sozluk2[a["stream"].split("@")[0]]["veriler"]:
                                #print(i)
                                sozluk["veriler"].append(i)
                                
                            with open(dAdi, 'w') as f:
                                json.dump(sozluk, f)
                            sozluk2[a["stream"].split("@")[0]]={"veriler":[]}
                           
                    except Exception as e:
                        pass
                    
    
        except:
             ubwa = unicorn_binance_websocket_api.BinanceWebSocketApiManager(exchange="binance.com")
             ubwa.create_stream(['aggTrade'], ["btcusdt"])
   


global x
x=0
def coinler1():
    print("coinler1  başladı") 
    global x 
    coinler1semboller=semboller[x:x+100]
    coinler1semboller.append("bnbusdt")
    ubwa = unicorn_binance_websocket_api.BinanceWebSocketApiManager(exchange="binance.com")
    ubwa.create_stream(['aggTrade'], coinler1semboller)
    
    
    sozluk2={"coin":{"veriler":[]}}
  
    
    while True:
        try:
            oldest_data_from_stream_buffer = ubwa.pop_stream_data_from_stream_buffer()
            if oldest_data_from_stream_buffer:
                    #print(oldest_data_from_stream_buffer)
                    a = json.loads(oldest_data_from_stream_buffer)
                    
            
                  
        
                    #eklensinmi=False
                    #price=a["data"]["p"]
                    #miktar=a["data"]["q"]
                    #alisemrimi=a["data"]["m"]==False
                    #timestamp=a["data"]["T"]
                    
                    try:
                        #print("coin:%s\nalis emri mi:%s\nprice:%s\nmiktar:%s"%(a["stream"],alisemrimi,price,miktar))
            
                        try:
                            sozluk2[a["stream"].split("@")[0]]["veriler"].append(a["data"])
                        except:
                            sozluk2.update({a["stream"].split("@")[0]:{"veriler":[]}})
                            sozluk2[a["stream"].split("@")[0]]["veriler"].append(a["data"])
                        
                        
                        if len(sozluk2[a["stream"].split("@")[0]]["veriler"]) >300:
                            #print("bin veri aşıldı.")    
                            dAdi="jsons/"+a["stream"].split("@")[0]+".json"
                            
                            try:      
                                with open(dAdi) as f:
                                    sozluk = json.load(f)
                            except:
                                sozluk={"veriler":[]}
                                with open(dAdi, 'w') as f:
                                    json.dump(sozluk, f)
                                with open(dAdi) as f:
                                    sozluk = json.load(f)
                                    
            
                        
                        
                            for i in sozluk2[a["stream"].split("@")[0]]["veriler"]:
                                #print(i)
                                sozluk["veriler"].append(i)
                                
                            with open(dAdi, 'w') as f:
                                json.dump(sozluk, f)
                            sozluk2[a["stream"].split("@")[0]]={"veriler":[]}
                            print("kaydetti")
                            
                    except Exception as e:
                        pass
                    
        except:
            ubwa = unicorn_binance_websocket_api.BinanceWebSocketApiManager(exchange="binance.com")
            ubwa.create_stream(['aggTrade'], coinler1semboller)
            
def coinler2():
    global x 
    print("coinler2  başladı") 
    coinler2semboller=semboller[x+100:x+200]
    coinler2semboller.append("xrpusdt")
    ubwa = unicorn_binance_websocket_api.BinanceWebSocketApiManager(exchange="binance.com")
    ubwa.create_stream(['aggTrade'], coinler2semboller)
    
    
    sozluk2={"coin":{"veriler":[]}}
    
    
    while True:
        try:
            
            oldest_data_from_stream_buffer = ubwa.pop_stream_data_from_stream_buffer()
            if oldest_data_from_stream_buffer:
                    #print(oldest_data_from_stream_buffer)
                    a = json.loads(oldest_data_from_stream_buffer)
                    
            
                  
        
                    #eklensinmi=False
                    #price=a["data"]["p"]
                    #miktar=a["data"]["q"]
                    #alisemrimi=a["data"]["m"]==False
                    #timestamp=a["data"]["T"]
                    
                    try:
                        #print("coin:%s\nalis emri mi:%s\nprice:%s\nmiktar:%s"%(a["stream"],alisemrimi,price,miktar))
            
                        try:
                            sozluk2[a["stream"].split("@")[0]]["veriler"].append(a["data"])
                        except:
                            sozluk2.update({a["stream"].split("@")[0]:{"veriler":[]}})
                            sozluk2[a["stream"].split("@")[0]]["veriler"].append(a["data"])
                        
                        
                        if len(sozluk2[a["stream"].split("@")[0]]["veriler"]) >300:
                                
                            dAdi="jsons/"+a["stream"].split("@")[0]+".json"
                            
                            try:      
                                with open(dAdi) as f:
                                    sozluk = json.load(f)
                            except:
                                sozluk={"veriler":[]}
                                with open(dAdi, 'w') as f:
                                    json.dump(sozluk, f)
                                with open(dAdi) as f:
                                    sozluk = json.load(f)
                                    
            
                        
                        
                            for i in sozluk2[a["stream"].split("@")[0]]["veriler"]:
                                #print(i)
                                sozluk["veriler"].append(i)
                                
                            with open(dAdi, 'w') as f:
                                json.dump(sozluk, f)
                            sozluk2[a["stream"].split("@")[0]]={"veriler":[]}
                           
                    except Exception as e:
                        pass
        except:
            ubwa = unicorn_binance_websocket_api.BinanceWebSocketApiManager(exchange="binance.com")
            ubwa.create_stream(['aggTrade'], coinler2semboller)
def coinler3():
    print("coinler3  başladı") 
    global x 
    coinler3semboller=semboller[x+200:x+300]
    coinler3semboller.append("ethusdt")
    ubwa = unicorn_binance_websocket_api.BinanceWebSocketApiManager(exchange="binance.com")
    ubwa.create_stream(['aggTrade'], coinler3semboller)
    
    
    sozluk2={"coin":{"veriler":[]}}
  
    
    while True:
        try:
            oldest_data_from_stream_buffer = ubwa.pop_stream_data_from_stream_buffer()
            if oldest_data_from_stream_buffer:
                    #print(oldest_data_from_stream_buffer)
                    a = json.loads(oldest_data_from_stream_buffer)
                    
            
                  
        
                    #eklensinmi=False
                    #price=a["data"]["p"]
                    #miktar=a["data"]["q"]
                    #alisemrimi=a["data"]["m"]==False
                    #timestamp=a["data"]["T"]
                    
                    try:
                        #print("coin:%s\nalis emri mi:%s\nprice:%s\nmiktar:%s"%(a["stream"],alisemrimi,price,miktar))
            
                        try:
                            sozluk2[a["stream"].split("@")[0]]["veriler"].append(a["data"])
                        except:
                            sozluk2.update({a["stream"].split("@")[0]:{"veriler":[]}})
                            sozluk2[a["stream"].split("@")[0]]["veriler"].append(a["data"])
                        
                        
                        if len(sozluk2[a["stream"].split("@")[0]]["veriler"]) >300:
                                
                            dAdi="jsons/"+a["stream"].split("@")[0]+".json"
                            
                            try:      
                                with open(dAdi) as f:
                                    sozluk = json.load(f)
                            except:
                                sozluk={"veriler":[]}
                                with open(dAdi, 'w') as f:
                                    json.dump(sozluk, f)
                                with open(dAdi) as f:
                                    sozluk = json.load(f)
                                    
            
                        
                        
                            for i in sozluk2[a["stream"].split("@")[0]]["veriler"]:
                                #print(i)
                                sozluk["veriler"].append(i)
                                
                            with open(dAdi, 'w') as f:
                                json.dump(sozluk, f)
                            sozluk2[a["stream"].split("@")[0]]={"veriler":[]}
                            
                    except Exception as e:
                        pass
        except:
            ubwa = unicorn_binance_websocket_api.BinanceWebSocketApiManager(exchange="binance.com")
            ubwa.create_stream(['aggTrade'], coinler3semboller)
            
def coinler4():
    print("coinler4  başladı") 
    global x 
    ubwa = unicorn_binance_websocket_api.BinanceWebSocketApiManager(exchange="binance.com")
    ubwa.create_stream(['aggTrade'], semboller[x+300:x+400])
    
    
    sozluk2={"coin":{"veriler":[]}}
   
    
    while True:
        try:
            oldest_data_from_stream_buffer = ubwa.pop_stream_data_from_stream_buffer()
            if oldest_data_from_stream_buffer:
                    #print(oldest_data_from_stream_buffer)
                    a = json.loads(oldest_data_from_stream_buffer)
                    
            
                  
        
                    #eklensinmi=False
                    #price=a["data"]["p"]
                    #miktar=a["data"]["q"]
                    #alisemrimi=a["data"]["m"]==False
                    #timestamp=a["data"]["T"]
                    
                    try:
                        #print("coin:%s\nalis emri mi:%s\nprice:%s\nmiktar:%s"%(a["stream"],alisemrimi,price,miktar))
            
                        try:
                            sozluk2[a["stream"].split("@")[0]]["veriler"].append(a["data"])
                        except:
                            sozluk2.update({a["stream"].split("@")[0]:{"veriler":[]}})
                            sozluk2[a["stream"].split("@")[0]]["veriler"].append(a["data"])
                        
                        
                        if len(sozluk2[a["stream"].split("@")[0]]["veriler"]) >300:
                                
                            dAdi="jsons/"+a["stream"].split("@")[0]+".json"
                            
                            try:      
                                with open(dAdi) as f:
                                    sozluk = json.load(f)
                            except:
                                sozluk={"veriler":[]}
                                with open(dAdi, 'w') as f:
                                    json.dump(sozluk, f)
                                with open(dAdi) as f:
                                    sozluk = json.load(f)
                                    
            
                        
                        
                            for i in sozluk2[a["stream"].split("@")[0]]["veriler"]:
                                #print(i)
                                sozluk["veriler"].append(i)
                                
                            with open(dAdi, 'w') as f:
                                json.dump(sozluk, f)
                            sozluk2[a["stream"].split("@")[0]]={"veriler":[]}
                       
                         
                    except Exception as e:
                        pass
        except:
            ubwa = unicorn_binance_websocket_api.BinanceWebSocketApiManager(exchange="binance.com")
            ubwa.create_stream(['aggTrade'], semboller[x+300:x+400])                
                    
            
#y = threading.Thread(target=yuksekhacimliler)
#y.start()    


y1 = threading.Thread(target=coinler1)
y1.start()    

#y2 = threading.Thread(target=coinler2)
#y2.start()    

y3 = threading.Thread(target=coinler3)
y3.start()    

#y4 = threading.Thread(target=coinler4)
#y4.start()    


y_ssss = threading.Thread(target=telegrambotu)
y_ssss.start()     

















  


import unicorn_binance_websocket_api
import json

from datetime import datetime
from binance.enums import *
from binance.client import Client
from binance.client import Client
import threading
from datetime import datetime
import pandas as pd
global client
client = Client()
import logging
import telegram
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
from matplotlib import pyplot as plt
import numpy as np
from PIL import Image
import time
import json
import pandas as pd



try:
    client = Client()
    
    semboller=[]
    
    
    tickers = client.get_ticker()
    
    
    uzunluk_listenin=int(len(tickers))
    
    semboller=[]
    degerler=[]
    for qe in range(0,uzunluk_listenin):
            
        if (tickers[qe]["symbol"][-4:]) =="USDT" :
            
            
            siralama_icin_bakiyorum=(tickers[qe]["priceChangePercent"])
            
            degerler.append(float(siralama_icin_bakiyorum))
      
        
      
        
    degerler.sort(reverse=True)
            
    
    uzunluk_degerlerin=int(len(degerler))      
    
    
    
    for yummi in range(0,uzunluk_listenin):
    
        for qeq in range(0,uzunluk_listenin):   
            if ((tickers[qeq]["symbol"][-4:]) =="USDT" ):
            
                try:              
           
                    if degerler[yummi]==float(tickers[qeq]["priceChangePercent"]):
                        semboller.append((tickers[qeq]["symbol"]))
                except:
                    pass              
            
    
    semboller=list(set(semboller))
except:
        pass

semboller.remove("STORMUSDT")
semboller.remove("PAXUSDT")   
semboller.remove("BTTUSDT")   
semboller.remove("TUSDUSDT")  
semboller.remove("BUSDUSDT")
semboller.remove("USDCUSDT")
semboller.remove("ETHUSDT")
semboller.remove("BTCUSDT")
semboller.remove("BNBUSDT")
semboller.remove("XRPUSDT")



#yüksek hacimlileri bölüştürdüm btc yi ayrı koydum
def yuksekhacimliler():
    print("yüksek hacimliler başladı") 
    #burada eklediğim kütüphane sorunsuz websocket bağlantısı sağladı bana
    ubwa = unicorn_binance_websocket_api.BinanceWebSocketApiManager(exchange="binance.com")
    ubwa.create_stream(['aggTrade'], ["btcusdt"])
    
    
    sozluk2={"coin":{"veriler":[]}}
  
    
    while True:
        oldest_data_from_stream_buffer = ubwa.pop_stream_data_from_stream_buffer()
        if oldest_data_from_stream_buffer:
                #print(oldest_data_from_stream_buffer)
                a = json.loads(oldest_data_from_stream_buffer)
                
        
              
    
                #eklensinmi=False
                #price=a["data"]["p"]
                #miktar=a["data"]["q"]
                #alisemrimi=a["data"]["m"]==False
                #timestamp=a["data"]["T"]
                
                try:
                    #print("coin:%s\nalis emri mi:%s\nprice:%s\nmiktar:%s"%(a["stream"],alisemrimi,price,miktar))
        
                    try:
                        sozluk2[a["stream"].split("@")[0]]["veriler"].append(a["data"])
                    except:
                        sozluk2.update({a["stream"].split("@")[0]:{"veriler":[]}})
                        sozluk2[a["stream"].split("@")[0]]["veriler"].append(a["data"])
                    
                    
                    if len(sozluk2[a["stream"].split("@")[0]]["veriler"]) >1000:
                            
                        dAdi="jsons/"+a["stream"].split("@")[0]+".json"
                        
                        try:      
                            with open(dAdi) as f:
                                sozluk = json.load(f)
                        except:
                            sozluk={"veriler":[]}
                            with open(dAdi, 'w') as f:
                                json.dump(sozluk, f)
                            with open(dAdi) as f:
                                sozluk = json.load(f)
                                
        
                    
                    
                        for i in sozluk2[a["stream"].split("@")[0]]["veriler"]:
                            #print(i)
                            sozluk["veriler"].append(i)
                            
                        with open(dAdi, 'w') as f:
                            json.dump(sozluk, f)
                        sozluk2[a["stream"].split("@")[0]]={"veriler":[]}
                       
                except Exception as e:
                    print(e)
                
    



global x
x=0
def coinler1():
    print("coinler1  başladı") 
    global x 
    coinler1semboller=semboller[x:x+100]
    coinler1semboller.append("bnbusdt")
    ubwa = unicorn_binance_websocket_api.BinanceWebSocketApiManager(exchange="binance.com")
    ubwa.create_stream(['aggTrade'], coinler1semboller)
    
    
    sozluk2={"coin":{"veriler":[]}}
  
    
    while True:
        oldest_data_from_stream_buffer = ubwa.pop_stream_data_from_stream_buffer()
        if oldest_data_from_stream_buffer:
                #print(oldest_data_from_stream_buffer)
                a = json.loads(oldest_data_from_stream_buffer)
                
        
              
    
                #eklensinmi=False
                #price=a["data"]["p"]
                #miktar=a["data"]["q"]
                #alisemrimi=a["data"]["m"]==False
                #timestamp=a["data"]["T"]
                
                try:
                    #print("coin:%s\nalis emri mi:%s\nprice:%s\nmiktar:%s"%(a["stream"],alisemrimi,price,miktar))
        
                    try:
                        sozluk2[a["stream"].split("@")[0]]["veriler"].append(a["data"])
                    except:
                        sozluk2.update({a["stream"].split("@")[0]:{"veriler":[]}})
                        sozluk2[a["stream"].split("@")[0]]["veriler"].append(a["data"])
                    
                    
                    if len(sozluk2[a["stream"].split("@")[0]]["veriler"]) >300:
                        print("bin veri aşıldı.")    
                        dAdi="jsons/"+a["stream"].split("@")[0]+".json"
                        
                        try:      
                            with open(dAdi) as f:
                                sozluk = json.load(f)
                        except:
                            sozluk={"veriler":[]}
                            with open(dAdi, 'w') as f:
                                json.dump(sozluk, f)
                            with open(dAdi) as f:
                                sozluk = json.load(f)
                                
        
                    
                    
                        for i in sozluk2[a["stream"].split("@")[0]]["veriler"]:
                            #print(i)
                            sozluk["veriler"].append(i)
                            
                        with open(dAdi, 'w') as f:
                            json.dump(sozluk, f)
                        sozluk2[a["stream"].split("@")[0]]={"veriler":[]}
                        print("kaydetti")
                        
                except Exception as e:
                    print(e)
                
    
def coinler2():
    global x 
    print("coinler2  başladı") 
    coinler2semboller=semboller[x+100:x+200]
    coinler2semboller.append("xrpusdt")
    ubwa = unicorn_binance_websocket_api.BinanceWebSocketApiManager(exchange="binance.com")
    ubwa.create_stream(['aggTrade'], coinler2semboller)
    
    
    sozluk2={"coin":{"veriler":[]}}
    
    
    while True:
        oldest_data_from_stream_buffer = ubwa.pop_stream_data_from_stream_buffer()
        if oldest_data_from_stream_buffer:
                #print(oldest_data_from_stream_buffer)
                a = json.loads(oldest_data_from_stream_buffer)
                
        
              
    
                #eklensinmi=False
                #price=a["data"]["p"]
                #miktar=a["data"]["q"]
                #alisemrimi=a["data"]["m"]==False
                #timestamp=a["data"]["T"]
                
                try:
                    #print("coin:%s\nalis emri mi:%s\nprice:%s\nmiktar:%s"%(a["stream"],alisemrimi,price,miktar))
        
                    try:
                        sozluk2[a["stream"].split("@")[0]]["veriler"].append(a["data"])
                    except:
                        sozluk2.update({a["stream"].split("@")[0]:{"veriler":[]}})
                        sozluk2[a["stream"].split("@")[0]]["veriler"].append(a["data"])
                    
                    
                    if len(sozluk2[a["stream"].split("@")[0]]["veriler"]) >300:
                            
                        dAdi="jsons/"+a["stream"].split("@")[0]+".json"
                        
                        try:      
                            with open(dAdi) as f:
                                sozluk = json.load(f)
                        except:
                            sozluk={"veriler":[]}
                            with open(dAdi, 'w') as f:
                                json.dump(sozluk, f)
                            with open(dAdi) as f:
                                sozluk = json.load(f)
                                
        
                    
                    
                        for i in sozluk2[a["stream"].split("@")[0]]["veriler"]:
                            #print(i)
                            sozluk["veriler"].append(i)
                            
                        with open(dAdi, 'w') as f:
                            json.dump(sozluk, f)
                        sozluk2[a["stream"].split("@")[0]]={"veriler":[]}
                       
                except Exception as e:
                    print(e)

def coinler3():
    print("coinler3  başladı") 
    global x 
    coinler3semboller=semboller[x+200:x+300]
    coinler3semboller.append("ethusdt")
    ubwa = unicorn_binance_websocket_api.BinanceWebSocketApiManager(exchange="binance.com")
    ubwa.create_stream(['aggTrade'], coinler3semboller)
    
    
    sozluk2={"coin":{"veriler":[]}}
  
    
    while True:
        oldest_data_from_stream_buffer = ubwa.pop_stream_data_from_stream_buffer()
        if oldest_data_from_stream_buffer:
                #print(oldest_data_from_stream_buffer)
                a = json.loads(oldest_data_from_stream_buffer)
                
        
              
    
                #eklensinmi=False
                #price=a["data"]["p"]
                #miktar=a["data"]["q"]
                #alisemrimi=a["data"]["m"]==False
                #timestamp=a["data"]["T"]
                
                try:
                    #print("coin:%s\nalis emri mi:%s\nprice:%s\nmiktar:%s"%(a["stream"],alisemrimi,price,miktar))
        
                    try:
                        sozluk2[a["stream"].split("@")[0]]["veriler"].append(a["data"])
                    except:
                        sozluk2.update({a["stream"].split("@")[0]:{"veriler":[]}})
                        sozluk2[a["stream"].split("@")[0]]["veriler"].append(a["data"])
                    
                    
                    if len(sozluk2[a["stream"].split("@")[0]]["veriler"]) >300:
                            
                        dAdi="jsons/"+a["stream"].split("@")[0]+".json"
                        
                        try:      
                            with open(dAdi) as f:
                                sozluk = json.load(f)
                        except:
                            sozluk={"veriler":[]}
                            with open(dAdi, 'w') as f:
                                json.dump(sozluk, f)
                            with open(dAdi) as f:
                                sozluk = json.load(f)
                                
        
                    
                    
                        for i in sozluk2[a["stream"].split("@")[0]]["veriler"]:
                            #print(i)
                            sozluk["veriler"].append(i)
                            
                        with open(dAdi, 'w') as f:
                            json.dump(sozluk, f)
                        sozluk2[a["stream"].split("@")[0]]={"veriler":[]}
                        
                except Exception as e:
                    print(e)

def coinler4():
    print("coinler4  başladı") 
    global x 
    ubwa = unicorn_binance_websocket_api.BinanceWebSocketApiManager(exchange="binance.com")
    ubwa.create_stream(['aggTrade'], semboller[x+300:x+400])
    
    
    sozluk2={"coin":{"veriler":[]}}
   
    
    while True:
        oldest_data_from_stream_buffer = ubwa.pop_stream_data_from_stream_buffer()
        if oldest_data_from_stream_buffer:
                #print(oldest_data_from_stream_buffer)
                a = json.loads(oldest_data_from_stream_buffer)
                
        
              
    
                #eklensinmi=False
                #price=a["data"]["p"]
                #miktar=a["data"]["q"]
                #alisemrimi=a["data"]["m"]==False
                #timestamp=a["data"]["T"]
                
                try:
                    #print("coin:%s\nalis emri mi:%s\nprice:%s\nmiktar:%s"%(a["stream"],alisemrimi,price,miktar))
        
                    try:
                        sozluk2[a["stream"].split("@")[0]]["veriler"].append(a["data"])
                    except:
                        sozluk2.update({a["stream"].split("@")[0]:{"veriler":[]}})
                        sozluk2[a["stream"].split("@")[0]]["veriler"].append(a["data"])
                    
                    
                    if len(sozluk2[a["stream"].split("@")[0]]["veriler"]) >300:
                            
                        dAdi="jsons/"+a["stream"].split("@")[0]+".json"
                        
                        try:      
                            with open(dAdi) as f:
                                sozluk = json.load(f)
                        except:
                            sozluk={"veriler":[]}
                            with open(dAdi, 'w') as f:
                                json.dump(sozluk, f)
                            with open(dAdi) as f:
                                sozluk = json.load(f)
                                
        
                    
                    
                        for i in sozluk2[a["stream"].split("@")[0]]["veriler"]:
                            #print(i)
                            sozluk["veriler"].append(i)
                            
                        with open(dAdi, 'w') as f:
                            json.dump(sozluk, f)
                        sozluk2[a["stream"].split("@")[0]]={"veriler":[]}
                   
                     
                except Exception as e:
                    print(e)
                    
                    
y = threading.Thread(target=yuksekhacimliler)
y.start()    


y1 = threading.Thread(target=coinler1)
y1.start()    

y2 = threading.Thread(target=coinler2)
y2.start()    

y3 = threading.Thread(target=coinler3)
y3.start()    

y4 = threading.Thread(target=coinler4)
y4.start()    

# -*- coding: utf-8 -*-
"""
Created on Sat Aug 20 08:40:18 2022
@author: okmen
"""
from datetime import datetime
from binance.enums import *
from binance.client import Client
from binance.client import Client
import threading
from datetime import datetime
import pandas as pd
global client
client = Client()
import logging
import telegram
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
from matplotlib import pyplot as plt
import numpy as np
from PIL import Image
import time
import json
import pandas as pd
def telegrambotu():        
    try:
            
            apiid="5422970822:AAEvfDaaI8DvxC1xp6ZTpyEAMivOPiU2EG8"
    
            namebot="bionlukdeneme"
            username="bionlukdenemebot"
            link="t.me/bionlukdenemebot"       
            logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',level=logging.INFO)
    
            logger = logging.getLogger(__name__)
                    
                    
            def c(update, context):
                try:
                    gelen_mesaj=update["message"]["text"]
                except Exception as e:
                    gelen_mesaj="yokflavves"
                    print("hata mesajı",e)
                
                
                if gelen_mesaj =="yokflavves":
                    print("mesaj okunamadı")
                else:
                    
                    ######################## ÖRNEK
                    # veri="BTCUSDT,15m;ETHUSDT,30m;SOLUSDT,1h;AAVEUSDT,4h;TRXUSDT,2h;"
                    #print(update["message"]["chat"]["id"])
                    coin=gelen_mesaj.split(" ")[1][1:].upper()+"USDT"
                    fiyat=float(gelen_mesaj.split(" ")[2])
                                    
                    depth = client.get_order_book(symbol=coin,limit=1000)
    
                    alis=0
                    satis=0
                    
                    for alislar in depth["bids"]:
                        if fiyat == float(alislar[0]):
                            alis=(float(alislar[0])*float(alislar[1]))
                            break
                    
                    for satislar in depth["asks"]:
                        if fiyat == float(satislar[0]):
                            satis=(float(satislar[0])*float(satislar[1]))
                            break
                 
                    gonder="Coin:%s\nAlış: %s\nSatış: %s\ntotal %s\nK(Kademe): %s"%(coin,alis,satis,alis+satis,fiyat)
                    #update.message.reply_text("Alış: %s\n Satış: %s\n total %s\n K(Kademe): %s"%(alis,satis,alis+satis,fiyat))
                    #resime geç
                    
                    ##################################333
                    try:
                        grafikicinlabel=[]
                        data=[]
                        
                        sayac=0
                        for i in depth["bids"]:
                            sayac +=1
                            grafikicinlabel.append(i[0])
                            data.append(i[1])
                            if sayac==10:
                                break
                        
                        
                        
                         
                         
                        
                        #fig = plt.figure(figsize=(4,3),dpi=144)
                        
                        
                        
                        
                        fig = plt.figure(figsize =(10, 7))
                        plt.pie(data, labels = grafikicinlabel)
                        
                        fig.suptitle('BİDS', fontsize=23)
                        #plt.title("bids", x=0.0, y=0.0)
                        # show plot
                        plt.savefig('bids.png')
                        
                        
                        ##################################333
                        
                        grafikicinlabel=[]
                        data=[]
                        
                        sayac=0
                        for i in depth["asks"]:
                            sayac +=1
                            grafikicinlabel.append(i[0])
                            data.append(i[1])
                            if sayac==10:
                                break
                        
                        
                        
                         
                         
                        
                        #fig = plt.figure(figsize=(4,3),dpi=144)
                        
                        
                        
                        
                        fig = plt.figure(figsize =(10, 7))
                        plt.pie(data, labels = grafikicinlabel)
                        
                        fig.suptitle('ASKS', fontsize=23)
                        #plt.title("bids", x=0.0, y=0.0)
                        # show plot
                        plt.savefig('ASKS.png')
                        
                        ##################################333
                        
                        
                        
                        ##################################333
                        
                        # create figure
                        fig = plt.figure(figsize=(40, 15))
                          
                        # setting values to rows and column variables
                        rows = 1
                        columns = 2
                          
                        # reading images
                        Image1 = Image.open('bids.png')
                        Image2 = Image.open('ASKS.png')
                        
                        # Adds a subplot at the 1st position
                        fig.add_subplot(rows, columns, 1)
                          
                        # showing image
                        plt.imshow(Image1)
                        plt.axis('off')
                        
                          
                        # Adds a subplot at the 2nd position
                        fig.add_subplot(rows, columns, 2)
                          
                        # showing image
                        plt.imshow(Image2)
                        plt.axis('off')
                        plt.savefig('bidsandasks.png')
                        
                        ##################################333
                    except Exception as e:
                        print(e)
                                    
                                    
                    
                    
                    #resim bitti
                    bot = telegram.Bot(apiid)
                    """            
                    bot.send_photo(update["message"]["chat"]["id"],
                            photo=open('bidsandasks.png', 'rb'),
                            caption=gonder)
                    """
                    document = open('bidsandasks.png', 'rb')
                    bot.sendDocument(update["message"]["chat"]["id"],
                                             document = document,
                                             caption=gonder)
            
            
            def d(update, context):
                try:
                    gelen_mesaj=update["message"]["text"]
                except Exception as e:
                    gelen_mesaj="yokflavves"
                    print("hata mesajı",e)
                
                
                if gelen_mesaj =="yokflavves":
                    print("mesaj okunamadı")
                else:
                    
                    coin=gelen_mesaj.split(" ")[1][1:].upper()+"USDT"
                    zaman=int(gelen_mesaj.split(" ")[2])
                  
                    dAdi="jsons/"+coin+".json"
                    with open(dAdi) as f:
                        sozluk = json.load(f)
                    
                    ###################################3
                    #pandas denemesi excell
                    df = pd.DataFrame()
                    #pandasdf=pd.DataFrame.from_dict({"kademe":[alislar["price"]],"Alış Total":[alislar["quoteQty"]],
                    #                                 "Satış Total":"","toplam":""})
                    
                    #df = df.append(pandasdf, ignore_index = True)
                    
                    ######################################
                    
                    toplam_alis=0
                    toplam_alis_sayac=0
                    alislars=""
                    for alislar in sozluk["alıs"]:
                        
                        start_ts = alislar["time"]
                        end_ts = time.time()
                        dt1 = datetime.fromtimestamp(start_ts)
                        dt2 = datetime.fromtimestamp(end_ts)
                        delta = dt2 - dt1 
                        def days_hours_minutes(td):
                            return td.days, td.seconds//3600, (td.seconds//60)%60               
                        verininzamanı=days_hours_minutes(delta)
                        if verininzamanı[0]==0:
                            if verininzamanı[1]<zaman:
                                if alislar["price"]==0:
                                    pass
                                else:
                                    toplam_alis_sayac=toplam_alis_sayac+1
                                    pandasdf=pd.DataFrame.from_dict({"kademe":[alislar["price"]],"Alış Total":[alislar["quoteQty"]],
                                                     "Satış Total":pd.NaT,"toplam":pd.NaT})
                                    df = df.append(pandasdf, ignore_index = True)
                                    
                                    
                                    """
                                    if toplam_alis_sayac==11:
                                        toplamicinsozluk={"aratoplam":toplam_alis}
                                        pandasdf=pd.DataFrame.from_dict({"Alış Total":[toplamicinsozluk["aratoplam"]],
                                                                         "toplam":"ARA TOPLAM"})
                                        toplam_alis=0
                                        toplam_alis_sayac=0
                                    """
                                        
                    
                    
                 
                    
                    toplam_satis=0
                    toplam_satis_sayac=0
                    #update.message.reply_text(a)      
                    satislars =""
                    for satislar in sozluk["satis"]:
                        start_ts = satislar["time"]
                        end_ts = time.time()
                        dt1 = datetime.fromtimestamp(start_ts)
                        dt2 = datetime.fromtimestamp(end_ts)
                        delta = dt2 - dt1 
                        def days_hours_minutes(td):
                            return td.days, td.seconds//3600, (td.seconds//60)%60               
                        verininzamanı=days_hours_minutes(delta)
                        if verininzamanı[0]==0:
                            if verininzamanı[1]<zaman:
                                if satislar["price"]==0:
                                    pass
                                else:
                                    toplam_satis_sayac=toplam_satis_sayac+1
                                    
                                    varmi=df.loc[df['kademe'] == satislar["price"]]                  
                                    if len(varmi)   >0:
                                  
                                        print(varmi)
                                        df.loc[df['kademe'] == satislar["price"], 'Satış Total'] = [satislar["quoteQty"]]
                                    else:
                                        try:
                                            pandasdf=pd.DataFrame.from_dict({"kademe":[satislar["price"]],
                                                                             "Alış Total":pd.NaT,
                                                                             "Satış Total":[satislar["quoteQty"]],
                                                                             "toplam":pd.NaT})
                                            df = df.append(pandasdf, ignore_index = True)
                                        except Exception as e:
                                            print(e)
                    
                    

                    dfyeni = pd.DataFrame()
                    
                    
                    
                    for i in range(0,len(df),10):
                            
                        aratoplamicin=float('{0:.2f}'.format((df[i:i+10]["Alış Total"].dropna().sum())))
                        arasatisicin=float('{0:.2f}'.format((df[i:i+10]["Satış Total"].dropna().sum())))
                        toplam='{0:.2f}'.format(float(aratoplamicin)+float(arasatisicin))
                        ekledicticin={"Alış Total":aratoplamicin,"Satış Total":arasatisicin,"toplam":aratoplamicin+arasatisicin}
    
                        pandasdf=pd.DataFrame.from_dict({"kademe":"SUBTOTAL",
                                                         "Alış Total":[ekledicticin["Alış Total"]],
                                                         "Satış Total":[ekledicticin["Satış Total"]],
                                                         "toplam":[ekledicticin["toplam"]]})
                        
               
                        dfyeni2=(df[i:i+10])
                        dfyeni=dfyeni.append(dfyeni2, ignore_index = True)
                        dfyeni=dfyeni.append(pandasdf, ignore_index = True)
                    # en son ana toplam
                    
                    aratoplamicin=float('{0:.2f}'.format((df["Alış Total"].dropna().sum())))
                    arasatisicin=float('{0:.2f}'.format((df["Satış Total"].dropna().sum())))
                    toplam='{0:.2f}'.format(float(aratoplamicin)+float(arasatisicin))
                    ekledicticin={"Alış Total":aratoplamicin,"Satış Total":arasatisicin,"toplam":aratoplamicin+arasatisicin}
                    pandasdf=pd.DataFrame.from_dict({"kademe":"TOTAL",
                                                         "Alış Total":[ekledicticin["Alış Total"]],
                                                         "Satış Total":[ekledicticin["Satış Total"]],
                                                         "toplam":[ekledicticin["toplam"]]})
                        
                    dfyeni=dfyeni.append(pandasdf, ignore_index = True)                    
                                   
                    #dfyeni.to_excel("exceller/"+coin+'.xlsx', sheet_name='Sayfa1')        
                    dfyeni2=pd.DataFrame()
                    
                    
                    ekledicticin_enson={"kademe":str(coin),"Alış Total":str(zaman)}
                    
                    pandasdf=pd.DataFrame.from_dict({"kademe":[ekledicticin_enson["kademe"]],
                                                     "Alış Total":[ekledicticin_enson["Alış Total"]],})
                    
                    dfyeni2=dfyeni2.append(pandasdf, ignore_index = True)
                    dfyeni2=dfyeni2.append(dfyeni, ignore_index = True)
                    dfyeni2.to_excel("exceller/"+coin+'.xlsx', sheet_name='Sayfa1')     
                    bot = telegram.Bot(apiid)
                    document = open("exceller/"+coin+'.xlsx', 'rb')
                    bot.sendDocument(update["message"]["chat"]["id"],
                                             document = document)
                    
                 
                    
                    
            def help(update, context):
                """Send a message when the command /help is issued."""
                update.message.reply_text('Yardım geliyor')
            
            
           
            
            
            def error(update, context):
                """Log Errors caused by Updates."""
                logger.warning('Update "%s" caused error "%s"', update, context.error)
            
            
            def main():
                try:
                        
                    token = apiid
                    updater = Updater(token, use_context=True)
                    dp = updater.dispatcher
                    #komutlar burada
                    dp.add_handler(CommandHandler("c", c))
                    dp.add_handler(CommandHandler("d", d))
                    dp.add_handler(CommandHandler("help", help))
                    
        
                    dp.add_error_handler(error)
                    
                    
                    
                    
                    
                    
                    updater.start_polling()
                    updater.idle()
                except:pass
            
            
            if __name__ == '__main__':
                main()  
    
    except Exception as e:
            print("son hata:"+e)

def veritoplama():
        
    client = Client()
    
    semboller=[]
    
    
    tickers = client.get_ticker()
    
    
    uzunluk_listenin=int(len(tickers))
    
    semboller=[]
    degerler=[]
    for qe in range(0,uzunluk_listenin):
            
        if (tickers[qe]["symbol"][-4:]) =="USDT" :
            
            
            siralama_icin_bakiyorum=(tickers[qe]["priceChangePercent"])
            
            degerler.append(float(siralama_icin_bakiyorum))
      
        
      
        
    degerler.sort(reverse=True)
            
    
    uzunluk_degerlerin=int(len(degerler))      
    
    
    
    for yummi in range(0,uzunluk_listenin):
    
        for qeq in range(0,uzunluk_listenin):   
            if ((tickers[qeq]["symbol"][-4:]) =="USDT" ):
            
                try:              
           
                    if degerler[yummi]==float(tickers[qeq]["priceChangePercent"]):
                        semboller.append((tickers[qeq]["symbol"]))
                except:
                    pass              
            
    
    semboller=list(set(semboller))
    
    
    
    #bu olcak gibi
    
    idler=[]
    time.sleep(2)
    coin="BANDUSDT"
    
    while 1:
            
        for coin in semboller:
               
            dAdi="jsons/"+coin+".json"
            
            try:      
                with open(dAdi) as f:
                    sozluk = json.load(f)
            except:
                sozluk={"alıs":[{"price":0,"quoteQty":0,"time":0}],"satis":[{"price":0,"quoteQty":0,"time":0}],"idler":[]}
                with open(dAdi, 'w') as f:
                    json.dump(sozluk, f)
                with open(dAdi) as f:
                    sozluk = json.load(f)
                    
            sayac=0
            
            idler=sozluk["idler"]
            time.sleep(2)
            trades = client.get_recent_trades(symbol=coin,limit=1000)   
            #trades.reverse()  
            eklensinmi=False
            kayac=0
            yeniidler=[]
            for veri in trades:
                  
                    
                    if veri["id"] not in  idler:
                        
                        timestamp = int(veri["time"])/1000
                        dt_object = datetime.fromtimestamp(timestamp)
                        yeniidler.append(veri["id"])
                        eklensinmi=False
                        try:           
                            if veri["isBuyerMaker"]==False:
                                sira_kalender=-1
                                for kalender in sozluk["alıs"]:
                                    sira_kalender +=1    
                                    if kalender["price"]==float(veri["price"]):
                                        #kalender["quoteQty"]=kalender["quoteQty"]+float(veri["quoteQty"])#hata burada bu kalender şeyine kayıt yapamıyo eskiden [0] falandı ya o işe yarıyordu.
                                        sozluk["alıs"][sira_kalender]["quoteQty"]=kalender["quoteQty"]+float(veri["quoteQty"])
                                        sozluk["alıs"][sira_kalender]["time"]=timestamp
                                        eklensinmi=True
                                        sira_kalender=-1
                                        break
                                    
                                if eklensinmi==False:
                                        
                                        sozluk["alıs"].append({"price":float(veri["price"]),"quoteQty":float(veri["quoteQty"]),"time":timestamp})  
                                        eklensinmi=True
                                    
                            elif veri["isBuyerMaker"]==True:
                                sira_kalender=-1
                                for kalender in sozluk["satis"]:
                                    sira_kalender +=1
                                    if kalender["price"]==float(veri["price"]):
                                        sozluk["satis"][sira_kalender]["quoteQty"]=kalender["quoteQty"]+float(veri["quoteQty"])
                                        sozluk["satis"][sira_kalender]["time"]=timestamp
                                        eklensinmi=True
                                        sira_kalender=-1
                                        break    
                                    
                                    
                                if eklensinmi==False:
                                          
                                        sozluk["satis"].append({"price":float(veri["price"]),"quoteQty":float(veri["quoteQty"]),"time":timestamp})  
                                        eklensinmi=True
                        except Exception as e:
                            print(e)  
            
            for x in yeniidler:
              idler.append(x)                
            
            
            sozluk["idler"]=idler
            
            with open(dAdi, 'w') as f:
                json.dump(sozluk, f)


y = threading.Thread(target=telegrambotu)
y.start()     
  
z = threading.Thread(target=veritoplama)
z.start()   

Bir yanıt yazın