Scaricare dati storici da yahoo finanza L’argomento è risolto

Il software per la BI di Microsoft, leader nel mercato
Rispondi

Moroeno
Messaggi: 34 | Topic creati
Iscritto il: ven 19 nov 2021, 16:50

Scaricare dati storici da yahoo finanza

Messaggio da Moroeno »

Buongiorno
Ho creato la seguente funzione per scaricare i dati storici delle azioni da yahoo finanza

let
Origine = (Nomi_E_Codici as text) as table=>
let
Origine = try Csv.Document( Web.Contents("https://query1.finance.yahoo.com/v7/fin ... "?period1=" & Number.ToText (Startdate) & "&period2=" & Number.ToText (Enddate) & "&interval=1d&events=history&includeAdjustedClose=true"),[Delimiter=",", Columns=7, Encoding=65001, QuoteStyle=QuoteStyle.None]) otherwise "",
#"Intestazioni alzate di livello" = Table.PromoteHeaders(Origine, [PromoteAllScalars=true])
in
#"Intestazioni alzate di livello"
in
Origine

sbaglio con la funzione per la gestione degli errori "try"-"otherwise"?

non trovando il codice azionare "AF.MI" mi rimanda il seguente errore

Errore OLE DB o ODBC: [DataSource.Error] Impossibile per Web.Contents ottenere il contenuto da 'https://query1.finance.yahoo.com/v7/fin ... Close=true' (404): Not Found. Eccezione imprevista.

Grazie


Avatar utente

Andrea90
Messaggi: 2309 | Topic creati
Iscritto il: dom 28 giu 2020, 19:41
Luogo: Bologna
Ringraziato: 676 volte
Contatta:

Scaricare dati storici da yahoo finanza

Messaggio da Andrea90 »

Moroeno,

Il codice va inserito nei tag code.

Allega un file demo.

Prima di aprire nuove discussioni è necessario chiudere le precedenti per le quali hai ottenuto riscontro.

Andrea
Se hai gradito l'aiuto che hai ricevuto considera di contribuire alle spese per il mantenimento del forum facendo una libera DONAZIONE --> Link

Ricordarsi di segnare come "RISOLTE" le discussioni per le quali si è ricevuto un feedback positivo. Per vedere come fare --> Link

Autore del topic
Moroeno
Messaggi: 34 | Topic creati
Iscritto il: ven 19 nov 2021, 16:50

Scaricare dati storici da yahoo finanza

Messaggio da Moroeno »

Grazie Andrea
Intanto ho marcato come miglior risposta il post di ieri

Qui allego un file .zip contenente il file di Power BI e il file di excel riguardante la sorgente dei codici per yahoo (foglio "Nomi_E_Codici (2)")
Dati Borsa.zip
File Dati di Borsa
(822.4 KiB) Scaricato 44 volte
Avatar utente

Andrea90
Messaggi: 2309 | Topic creati
Iscritto il: dom 28 giu 2020, 19:41
Luogo: Bologna
Ringraziato: 676 volte
Contatta:

Scaricare dati storici da yahoo finanza

Messaggio da Andrea90 »

Moroeno,

Il codice va inserito nei tag code. Se non sai come fare leggi qui: viewtopic.php?p=5293#p5293

Andrea
Se hai gradito l'aiuto che hai ricevuto considera di contribuire alle spese per il mantenimento del forum facendo una libera DONAZIONE --> Link

Ricordarsi di segnare come "RISOLTE" le discussioni per le quali si è ricevuto un feedback positivo. Per vedere come fare --> Link

Autore del topic
Moroeno
Messaggi: 34 | Topic creati
Iscritto il: ven 19 nov 2021, 16:50

Scaricare dati storici da yahoo finanza

Messaggio da Moroeno »

OK grazie
qui il codice

Codice: Seleziona tutto

/
let
  Origine = (Nomi_E_Codici as text) as table=>
let
    Origine =  try Csv.Document( Web.Contents("https://query1.finance.yahoo.com/v7/finance/download/"&(Nomi_E_Codici)&"?period1=" & Number.ToText (Startdate)  & "&period2=" & Number.ToText (Enddate)  & "&interval=1d&events=history&includeAdjustedClose=true"),[Delimiter=",", Columns=7, Encoding=65001, QuoteStyle=QuoteStyle.None]) otherwise "",
    #"Intestazioni alzate di livello" = Table.PromoteHeaders(Origine, [PromoteAllScalars=true])
in
    #"Intestazioni alzate di livello"
in
    Origine
Avatar utente

Andrea90
Messaggi: 2309 | Topic creati
Iscritto il: dom 28 giu 2020, 19:41
Luogo: Bologna
Ringraziato: 676 volte
Contatta:

Scaricare dati storici da yahoo finanza

Messaggio da Andrea90 »

Moroeno,

Eviterei l'utilizzo della custom function (poiché si tratta di scrivere un unico passaggio e pertanto puoi utilizzare una normale colonna calcolata - inoltre ho pulito un po' di passaggi):

Codice: Seleziona tutto

let
    Origine = Excel.Workbook(File.Contents("C:\Users\Andrea Casadei\Downloads\Dati Borsa\CODICI ISIN E ALFANUMERICI PowerBI2.xlsx"), null, true),
    #"Nomi_E_Codici (2)_Sheet" = Origine{[Item="Nomi_E_Codici (2)",Kind="Sheet"]}[Data],
    #"Intestazioni alzate di livello" = Table.PromoteHeaders(#"Nomi_E_Codici (2)_Sheet", [PromoteAllScalars=true]),
    #"Added Custom" = Table.AddColumn(#"Intestazioni alzate di livello", "Data", each try Table.PromoteHeaders(Csv.Document( Web.Contents("https://query1.finance.yahoo.com/v7/finance/download/"&([Tickers])&"?period1=" & Number.ToText (Startdate)  & "&period2=" & Number.ToText (Enddate)  & "&interval=1d&events=history&includeAdjustedClose=true"),[Delimiter=",", Columns=7, Encoding=65001, QuoteStyle=QuoteStyle.None])) otherwise null),
    #"Expanded Data" = Table.ExpandTableColumn(#"Added Custom", "Data", {"Date", "Open", "High", "Low", "Close", "Adj Close", "Volume"}, {"Date", "Open", "High", "Low", "Close", "Adj Close", "Volume"})
in
    #"Expanded Data"
In questo modo le tabelle di cui non hai riscontro sul sito risulteranno vuote.

Andrea
Se hai gradito l'aiuto che hai ricevuto considera di contribuire alle spese per il mantenimento del forum facendo una libera DONAZIONE --> Link

Ricordarsi di segnare come "RISOLTE" le discussioni per le quali si è ricevuto un feedback positivo. Per vedere come fare --> Link

Autore del topic
Moroeno
Messaggi: 34 | Topic creati
Iscritto il: ven 19 nov 2021, 16:50

Scaricare dati storici da yahoo finanza

Messaggio da Moroeno »

ho inserito il codice ma mi rimanda il seguente messaggio

"Non è stato possibile salvare le modifiche nel server. Errore restituito: 'Errore OLE DB o ODBC: [Expression.Error] Non è possibile convertire un valore di tipo Table nel tipo Function..
Eccezione imprevista."

Dove sbaglio?
Avatar utente

Andrea90
Messaggi: 2309 | Topic creati
Iscritto il: dom 28 giu 2020, 19:41
Luogo: Bologna
Ringraziato: 676 volte
Contatta:

Scaricare dati storici da yahoo finanza

Messaggio da Andrea90 »

Moroeno,
Moroeno ha scritto: ven 14 apr 2023, 16:44 ho inserito il codice ma mi rimanda il seguente messaggio
Ho inserito il codice...dove?

Quello che ti ho passato è lo script per l'intera query, non devi usarlo come codice per calcolare delle colonne. Se non ti torna allega il file con il tentativo fatto.

Andrea
Se hai gradito l'aiuto che hai ricevuto considera di contribuire alle spese per il mantenimento del forum facendo una libera DONAZIONE --> Link

Ricordarsi di segnare come "RISOLTE" le discussioni per le quali si è ricevuto un feedback positivo. Per vedere come fare --> Link

Autore del topic
Moroeno
Messaggi: 34 | Topic creati
Iscritto il: ven 19 nov 2021, 16:50

Scaricare dati storici da yahoo finanza

Messaggio da Moroeno »

Scusami Andrea, non avevo letto attentamente

Grazie 1000 funziona benissimo
Rispondi