Scaricare le quotazioni in automatico con Excel
UniCredit, Mustier vuole accerchiare Messina con acquisto 10% di Ubi. E frenando anche mossa Intesa su Nexi
Vanno avanti a ritmo serrato le audizioni dell’Antitrust sull’ops che Intesa SanPaolo ha lanciato su Ubi Banca; di pari passo, continuano a circolare anche indiscrezioni sugli ostacoli che il numero …
Societe Generale amplia la gamma dei certificati di investimento con 6 nuovi Cash Collect Boost
Societe Generale ha allargato la propria gamma di certificati di investimento, proponendo sul sistema EuroTLX sei nuovi Cash Collect BOOST su panieri di azioni Worst of. Questi nuovi strumenti consentono …
Recovery Fund, Varoufakis consiglia di non festeggiare. E anche Confindustria
«Qualcuno dirà che l’Europa finalmente si sta muovendo veloce. Ma la direzione è sbagliata». Niente da fare. Per l’economista Yanis Varoufakis, ex ministro delle finanze del primo governo di Alexis …
Tutti gli articoli
Tutti gli articoli Tutte le notizie

  1. #1
    L'avatar di TheOrbix
    Data Registrazione
    Mar 2007
    Messaggi
    286
    Mentioned
    0 Post(s)
    Quoted
    8 Post(s)
    Potenza rep
    14610911

    Scaricare le quotazioni in automatico con Excel

    Un pò di tempo fa ho scoperto (grazie ad un paio di voi del NG che mi hanno dato la dritta...) che Excel può recuperare dati dal web automaticamente o quasi, tramite la funzionalità di Query web.

    Al momento recupero i dati delle quotazioni con una query web dal sito di MSN MoneyCentral, che però non mi soddisfa molto (i dati a volte sono aggiornati con 4/5 giorni di ritardo, e la query restituisce la quotazione ma non la data di aggiornamento, il che non è l'ideale se uno vuole costruirsi un proprio database storico delle quotazioni).

    Quindi mi chiedevo: qualcuno ha creato delle proprie query web personalizzate e configurabili (pescando i dati da altri siti, non necessariamente da MSN)?

    Io ho fatto qualche prova provando a pescare dati da un pò di siti, ma il limite peggiore è che nella maggior parte dei casi la query importa nel foglio Excel anche parti di formattazione e layout della pagina web di uscita che non servono a un bel niente (se non a complicare inutilmente la vita di chi vuole poi pescare i dati in automatico, andandoli poi a copiare nelle celle "target"): grafica, banner, e fregnacce simili

    L'ideale sarebbe avere una query web su un sito che resituisca i dati delle quotazioni di un fondo o di un ETF in maniera "pulita" (ovvero solo i dati della quotazione)...

    Se qualcuno ha risolto il problema, vi va di condividere degli esempi, magari sotto forma di file Excel di "demo" che mostrano come è stata implementata la funzionalità?

  2. #2
    L'avatar di TheOrbix
    Data Registrazione
    Mar 2007
    Messaggi
    286
    Mentioned
    0 Post(s)
    Quoted
    8 Post(s)
    Potenza rep
    14610911
    OK, ho fatto la domanda e alla fine ieri sera con un pò di prove mi sono risposto da solo...

    Un sito in grado di visualizzare dati "puliti" relativi alle quotazioni di un fondo è Yahoo.

    L'URL che consente di recuperare le quotazioni è questa:

    http://it.old.finance.yahoo.com/d/qu...1c1ohgv&e=.csv

    Dove ovviamente CODICE_YAHOO va sostituto con il codice Yahoo del fondo, ETF o azione che si interessa reperire.

    Questo è il frammento di codice VBA che consente di reperire una determinata quotazione e inserirla in una cella Excel:

    CurrentInvestmentID = Range("A2")

    CurrentInvestmentOutput = "B2"

    With ActiveSheet.QueryTables.Add(Connection:= _
    "URL;http://it.old.finance.yahoo.com/d/quotes.csv?s=" & CurrentInvestmentID & "&f=sl1d1t1c1ohgv&e=.csv", _
    Destination:=Range(CurrentInvestmentOutp ut))
    .BackgroundQuery = True
    .RefreshStyle = xlInsertDeleteCell
    .TablesOnlyFromHTML = False
    .Refresh BackgroundQuery:=False
    .SaveData = True
    End With


    Fatto questo bisogna fare un pò di pastrugni per decodificare automaticamente la stringa (che è in formato CSV e contiene tutti i dati separati da semicolon) risultante dalla query Web e copiare l'output in colonne separate, ma il codice non è particolarmente difficile.

    Se qualcuno è interessato posso postare un foglio Excel di esempio con il codice della macro commentato...

  3. #3
    L'avatar di Toshiba
    Data Registrazione
    May 2003
    Messaggi
    2,380
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)
    Potenza rep
    42949690
    Ciao TheOrbix,
    mi faresti un gra favore visto che anch'io stavo pensando di "costruirmi" una funzione simile per aggiornare le quotazioni di alcuni strumenti finanziari ma al momento non avrei idea di come fare...
    Grazie mille.
    Ciao.
    T.

  4. #4
    L'avatar di Haganah
    Data Registrazione
    Apr 2006
    Messaggi
    39,358
    Mentioned
    14 Post(s)
    Quoted
    1767 Post(s)
    Potenza rep
    42520191
    io uso borsaitaliana.it

  5. #5

    Data Registrazione
    Aug 2005
    Messaggi
    143
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)
    Potenza rep
    3666618
    Anche a me farebbe piacere

  6. #6
    L'avatar di pf.fin
    Data Registrazione
    Sep 2005
    Messaggi
    11,673
    Mentioned
    5 Post(s)
    Quoted
    8 Post(s)
    Potenza rep
    42949687
    Citazione Originariamente Scritto da TheOrbix
    ...Se qualcuno è interessato posso postare un foglio Excel di esempio con il codice della macro commentato...
    Eccone un altro interessato... grazie in anticipo

    Ciao

  7. #7
    L'avatar di cammello
    Data Registrazione
    Jan 2005
    Messaggi
    4,407
    Mentioned
    7 Post(s)
    Quoted
    534 Post(s)
    Potenza rep
    42949688
    Citazione Originariamente Scritto da TheOrbix
    Un pò di tempo fa ho scoperto (grazie ad un paio di voi del NG che mi hanno dato la dritta...) che Excel può recuperare dati dal web automaticamente o quasi, tramite la funzionalità di Query web.

    Al momento recupero i dati delle quotazioni con una query web dal sito di MSN MoneyCentral, che però non mi soddisfa molto (i dati a volte sono aggiornati con 4/5 giorni di ritardo, e la query restituisce la quotazione ma non la data di aggiornamento, il che non è l'ideale se uno vuole costruirsi un proprio database storico delle quotazioni).

    Quindi mi chiedevo: qualcuno ha creato delle proprie query web personalizzate e configurabili (pescando i dati da altri siti, non necessariamente da MSN)?

    Io ho fatto qualche prova provando a pescare dati da un pò di siti, ma il limite peggiore è che nella maggior parte dei casi la query importa nel foglio Excel anche parti di formattazione e layout della pagina web di uscita che non servono a un bel niente (se non a complicare inutilmente la vita di chi vuole poi pescare i dati in automatico, andandoli poi a copiare nelle celle "target"): grafica, banner, e fregnacce simili

    L'ideale sarebbe avere una query web su un sito che resituisca i dati delle quotazioni di un fondo o di un ETF in maniera "pulita" (ovvero solo i dati della quotazione)...

    Se qualcuno ha risolto il problema, vi va di condividere degli esempi, magari sotto forma di file Excel di "demo" che mostrano come è stata implementata la funzionalità?
    Guarda sul sito
    http://www.gummy-stuff.org/

    Simple Download

    se hai i settings in italiano puoi avere un prob con il separatore dei decimali

    modifica il vba con il seguente

    //----------------------
    //Inizio modifica
    'construct the URL for the query

    qurl = "http://chart.yahoo.com/table.csv?s=" & Symbol
    qurl = qurl & "&a=" & Month(StartDate) - 1 & "&b=" & Day(StartDate) & _
    "&c=" & Year(StartDate) & "&d=" & Month(EndDate) - 1 & "&e=" & _
    Day(EndDate) & "&f=" & Year(EndDate) & "&g=" & Range("E3") & "&q=q&y=0&z=" & _
    Symbol & "&x=.csv"
    Range("c5") = qurl

    QueryQuote:
    With ActiveSheet.QueryTables.Add(Connection:= "URL;" & qurl, Destination:=DataSheet.Range("C7"))
    .BackgroundQuery = True
    .TablesOnlyFromHTML = False
    .Refresh BackgroundQuery:=False
    .SaveData = True
    End With

    Range("C7").CurrentRegion.TextToColumns Destination:=Range("C7"), DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
    Semicolon:=False, Comma:=True, Space:=False, other:=False

    Range(Range("C7"), Range("C7").End(xlDown)).NumberFormat = "mmm d/yy"

    ' modified to transform "text" into "value";
    ' issue coming from the different decimal separators
    For Each c In DataSheet.Range("D8:G500")
    If Val(c.Value) <> 0 Then
    c.Value = Val(c.Value)
    End If
    Next c

    Range(Range("D7"), Range("G7").End(xlDown)).NumberFormat = "0.00"
    Range(Range("H7"), Range("H7").End(xlDown)).NumberFormat = "0,000"
    ' modified to transform "text" into "value";
    'issue coming from the different decimal separators
    For Each c In DataSheet.Range("I8:I500")
    If Val(c.Value) <> 0 Then
    c.Value = Val(c.Value)
    End If
    Next c

    //Fine modifica
    //----------------------

    C

  8. #8
    L'avatar di cammello
    Data Registrazione
    Jan 2005
    Messaggi
    4,407
    Mentioned
    7 Post(s)
    Quoted
    534 Post(s)
    Potenza rep
    42949688
    Citazione Originariamente Scritto da cammello
    Guarda sul sito
    http://www.gummy-stuff.org/

    Simple Download

    C
    m autoquoto solo per dire che il file modificato è troppo grande per essere allegato, pure in formato zip.


    C

  9. #9
    L'avatar di TheOrbix
    Data Registrazione
    Mar 2007
    Messaggi
    286
    Mentioned
    0 Post(s)
    Quoted
    8 Post(s)
    Potenza rep
    14610911
    Citazione Originariamente Scritto da pf.fin
    Eccone un altro interessato... grazie in anticipo

    Ciao
    Ok, a grande richiesta ecco il fogliettino Excel con la macro di esempio...

    Testato e funzionante su Excel 2003 (Win) e Excel 2004 (Mac).

    Quando si apre il foglio, Excel segnalerà che il foglio contiene una macro e chiederà se si vuole abilitare l'esecuzione della macro (il solito warning di prevenzione dai virus VBA). Ovviamente bisogna rispondere di sì... :-)

    Non ho ancora provato a scaricare e testare il foglio suggerito da Cammello, ma in effetti avevo visto dei vecchi post in cui parlava di quelle macro di esempio. Il principio delle query web è ovviamente lo stesso, però credo che l'output prodotto fosse decisamente diverso dal mio esempio.

    In ogni caso quando avrò un pò di tempo libero vedrò di fare qualche ulteriore esperimento...
    File Allegati File Allegati

  10. #10
    L'avatar di ghibli_70
    Data Registrazione
    Feb 2006
    Messaggi
    3,061
    Mentioned
    11 Post(s)
    Quoted
    892 Post(s)
    Potenza rep
    42949687
    Citazione Originariamente Scritto da cammello
    m autoquoto solo per dire che il file modificato è troppo grande per essere allegato, pure in formato zip.
    C
    Però è interessante il sito segnalato.
    E pieno di files excel da "studiare":
    http://www.gummy-stuff.org/Excel/

    Interessante ai fini del thread la pagina:
    http://www.gummy-stuff.org/macros.htm

    Ciao!

    Davide - Ghibli
    Ultima modifica di ghibli_70; 08-06-07 alle 13:51

Accedi