Ekonomi, Kripto Para, Kripto Paralar, Programlama, Python

TradingView_TA kütüphanesi ve CoinmarketCap apisi kullanarak kripto paralar için Al-Sat sinyali oluşturalım

Merhabalar, bu yazımız da hepimizin teknik analiz için sıklıkla kullandığı tradingview sitesinin resmi olmayan analiz araçlarını kullanarak Python üzerinde bir al-sat simülasyonu oluşturacağız. Bunun için öncelikle kütüphanelerimizi yüklememiz gerekiyor.

import streamlit as st
from datetime import datetime
import json
from requests import Session
from tradingview_ta import *
import concurrent.futures

alım ve satım stratejimizi şekillendireceğimiz ve değişkenlere bağlayacağımız classımızı oluşturuyoruz:

class Crypto_analysis:
    
    all=[]
    interval=""
    osc_coins={}
    buy=[]
    sell=[]
    strong_buy=[]
    strong_sell=[]
    recommanded_list=[]
#bu yöntem en son 100 kripto para birimini listeler
    #yalnızca 1sa, 24sa, 7d, +Vol_24sa'daki pozitif değişiklikleri alarak filtreleme
    def get_marketCap():
        url = 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest'
        parameters = {
        'start':'1',
        'limit':'100', # daha büyük bir liste elde etmek için bu değeri değiştirebilirsiniz, ancak her 100 ile işlem süresini yaklaşık 2 dakika artıracaktır.
        'convert':'USDT'#USDT default ama siz BUSD veya TUSD olarak değiştirebilirsiniz.
        }
        headers = {
        'Accepts': 'application/json',
            'X-CMC_PRO_API_KEY': '328709da-cc4a-4fdf-8566-8c3d25d3e677',
        }

        session = Session()
        session.headers.update(headers)

        try:
            changes={}
            response = session.get(url, params=parameters)
            data = json.loads(response.text)
            
            with st.spinner("Yükseliş ve düşüş trendi gösterenler listeleniyor"):
                
                for d in data.keys():
                    if d=="data":
                        for i in data[d]:
                            ticker=i["symbol"]
                            Crypto_analysis.all.append(ticker)
                            proc_1h = i["quote"]["USDT"]["percent_change_1h"]
                            proc_24h= i["quote"]["USDT"]["percent_change_24h"]
                            proc_7d = i["quote"]["USDT"]["percent_change_7d"]
                            vol_ch24h=i["quote"]["USDT"]["volume_change_24h"]
                            changes[ticker] = [proc_1h,proc_24h ,proc_7d, vol_ch24h]
            
            Crypto_analysis.recommanded_list = [coin for coin in changes.keys() if changes[coin][0] and changes[coin][1]and changes[coin][2]and changes[coin][3]> 0] 
            
        except: 
            pass 
        st.success("İşlem tamam")
    
    def get_analysis_mma(ticker):
        try:
            ticker_summery = TA_Handler(
                symbol=ticker+"USDT",
                screener="crypto",
                exchange="binance",
                interval=Crypto_analysis.interval
            )
            
            rec = ticker_summery.get_analysis().moving_averages["RECOMMENDATION"]

            if rec == "SELL": Crypto_analysis.sell.append(ticker)
            if rec == "STRONG_SELL": Crypto_analysis.strong_sell.append(ticker)
            if rec == "BUY": Crypto_analysis.buy.append(ticker)
            if rec == "STRONG_BUY": Crypto_analysis.strong_buy.append(ticker)

        except:
            pass
        
    def get_analysis_osc(ticker):
        try:
            ticker_summery = TA_Handler(
                symbol=ticker+"USDT",
                screener="crypto",  
                exchange="binance", 
                interval=Crypto_analysis.interval 
            )
            Crypto_analysis.osc_coins[ticker] = ticker_summery.get_analysis().oscillators["RECOMMENDATION"]          
            
        except: 
            pass
       
    def do_draw_sidebar():

        #streamlit genişliği
        
        st.sidebar.header("Kripto analiz")
        Crypto_analysis.interval = st.sidebar.radio("Zaman aralığı",(
            "1 dakika", 
            "5 dakika",
            "15 dakika",
            "1 saat",
            "4 saat",
            "1 gün",
            "1 hafta",
            "1 ay"),2)

    def do_draw_body():
        
        st.header("AL/SAT LİSTESİ")
        col1, col2,col3,col4= st.columns(4)
   
        col1.success("Güçlü Al")
        col2.success("Al")
        col3.error("Sat")
        col4.error("Güçlü Sat")
        
        col1.table(list(Crypto_analysis.strong_buy))
        col2.table(list(Crypto_analysis.buy))
        col3.table(list(Crypto_analysis.sell))
        col4.table(list(Crypto_analysis.strong_sell))
    
    def do_analysis():
        with concurrent.futures.ProcessPoolExecutor() as executor:
            with st.spinner('Tüm kriptolar için OSC analizi yapılıyor...'):
                futures = [executor.submit(Crypto_analysis.get_analysis_osc(ticker),) for ticker in Crypto_analysis.all]
            st.success("İşlem tamam")
            with st.spinner('OSC analizi yapılan tüm kriptolar üzerinde MM analizi yapılıyor...'):
                futures = [executor.submit(Crypto_analysis.get_analysis_mma(ticker),) for ticker in Crypto_analysis.osc_coins.keys()]
            st.success("İşlem tamam")
def main():
    Crypto_analysis.do_draw_sidebar()
    Crypto_analysis.get_marketCap()
    Crypto_analysis.do_analysis()    
    Crypto_analysis.do_draw_body()
        
if __name__ == '__main__':
    start=datetime.now()
    main()
    st.write("Üretilme süresi",datetime.now()-start)
14160cookie-checkTradingView_TA kütüphanesi ve CoinmarketCap apisi kullanarak kripto paralar için Al-Sat sinyali oluşturalım

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir