Python: impariamolo insieme - Pagina 12
Alla ricerca della Grande Scommessa (Long)? Warren Buffett ne ha 15, accanto ad Apple banche e tanto altro
A dispetto di chi lo critica per avere una visione degli investimenti ormai antiquata, Warren Buffett continua a confermarsi una sorta di ‘Verbo’ per i mercati. Basta guardare al trend …
NIO perde il tocco magico: titolo giù dopo debole guidance e a Wall Street non riesce più a tenere i ritmi di Tesla 
Gli investitori non digeriscono i numeri trimestrali di NIO che continua il suo momento interlocutorio a Wall Street dopo i fuochi d’artificio del 2020. La startup cinese delle auto elettriche …
Societe Generale lancia i nuovi Cash Collect su panieri worst of tematici tra cui idrogeno e mobilità elettrica
Societe Generale ha ampliato la gamma di Investment Certificate proponendo su EuroTLX cinque nuovi certificati Cash Collect su panieri Worst of tematici di azioni e un certificato Cash Collect su …
Tutti gli articoli
Tutti gli articoli Tutte le notizie

  1. #111
    L'avatar di Federico Juvara
    Data Registrazione
    Jan 2021
    Messaggi
    43
    Mentioned
    2 Post(s)
    Quoted
    28 Post(s)
    Potenza rep
    881808
    Citazione Originariamente Scritto da marcobrasich Visualizza Messaggio
    Ieri ho aperto un thread sul FOL (qui) perchè ho il problema di recuperare (x qualche giorno all'anno) dati realtime (o quasi... ...cioè, andrebbero bene anche dati ritardati di 15 minuti) da qualche sito web (ad esempio yahoo o investing.com) .

    Questi dati intraday dovrei aggiungerli, tramite la grafica di un indicatore, nel mio software di borsa al mio chart daily del titolo che seguo.

    In pratica vorrei il mio solito grafico daily con sul lato dx (oltre l'ultima barra daily completa) una barra daily fittizia (disegnata dall'indicatore) in continua formazione, ottenuta (come dicevo) tramite i dati realtime, della giornata di borsa in corso. Dati ottenuti da qualche script in python.



    Quindi sarei interessato anch'io alle funzioni di cui parli.
    Se si possono avere ti ringrazio moltissimo.


    PS: Messo questo thread fra i preferiti... ...sono interessato anch'io ad una infarinatura di python.
    L'unica mia conoscenza di linguaggio vero di programmazione è un po' di C++. Poi, conosco un po' di easylinguage di TS2000 e un po' di AFL di amibroker.
    I dati streaming da Yahoo è difficile, quello che ho io è una banale funzione per scaricare i dati storici di tutte le azioni SP500 o SP100 in un dataframe Pandas. Ovviamente basta rieseguire lo script per aggiornare, quindi se costruisci un semplice timer che automaticamente ogni tot lo esegue forse ci riesci. Il resto è roba di GUI di cui non mi occupo, spero che tu l'abbia già implementata.
    Sulla singola azione rimando banalmente alle istruzioni della libreria: yfinance * PyPI
    Per tutto l'SP100 puoi fare questo:

    Codice:
    resp = requests.get("https://en.wikipedia.org/wiki/S%26P_100")
    convert_soup = bs.BeautifulSoup(resp.text, 'lxml')
    table = convert_soup.find('table',{'class':'wikitable sortable'})
    
    tickers = []
    
    for rows in table.findAll('tr')[1:]:
        ticker = rows.findAll('td')[0].text.strip()
        tickers.append(ticker)
    
    all_data = pd.DataFrame()
    test_data = pd.DataFrame()
    no_data = []
    
    
    for i in tickers:
        try:
            print(i)
            test_data = pdr.get_data_yahoo(i, start = dt.datetime(2000,1,1), end = dt.date.today())
            test_data['symbol'] = i
            all_data = all_data.append(test_data)
            clear_output(wait = True)
        except:
            no_data.append(i)
    
        clear_output(wait = True)
    Questo per fare la stessa cosa su SP500 con dati anche intraday:
    Codice:
    table=pd.read_html('https://en.wikipedia.org/wiki/List_of_S%26P_500_companies',flavor='html5lib')
    df = table[0]
    df.to_csv('S&P500-Info.csv')
    df.to_csv("S&P500-Symbols.csv", columns=['Symbol'])
    
    df = pd.read_csv('S&P500-Symbols.csv')
    df2 = pd.read_csv('S&P500-Info.csv')
    symbols = df['Symbol'].values.tolist()
    prices = yf.download(  # or pdr.get_data_yahoo(...
            # tickers list or string as well
            tickers = symbols,
    
            # use "period" instead of start/end
            # valid periods: 1d,5d,1mo,3mo,6mo,1y,2y,5y,10y,ytd,max
            # (optional, default is '1mo')
            period = "10y",
    
            # fetch data by interval (including intraday if period < 60 days)
            # valid intervals: 1m,2m,5m,15m,30m,60m,90m,1h,1d,5d,1wk,1mo,3mo
            # (optional, default is '1d')
            interval = "1d",
    
            # group by ticker (to access via data['SPY'])
            # (optional, default is 'column')
            group_by = 'column',
    
            # adjust all OHLC automatically
            # (optional, default is False)
            auto_adjust = True,
    
            # download pre/post regular market hours data
            # (optional, default is False)
            prepost = True,
    
            # use threads for mass downloading? (True/False/Integer)
            # (optional, default is True)
            threads = True,
    
            # proxy URL scheme use use when downloading?
            # (optional, default is None)
            proxy = None
        )

  2. #112
    L'avatar di marcobrasich
    Data Registrazione
    Jan 2001
    Messaggi
    5,384
    Mentioned
    1 Post(s)
    Quoted
    1242 Post(s)
    Potenza rep
    42949693
    Ok, grazie.

    Proverò per esercitarmi.

Accedi