mini yo
Hola
Me gustaría poder consultar a través de una lista de símbolos de acciones y obtener los precios históricos de las acciones (más el símbolo en una columna adicional). Por un solo stock funciona, pero estoy en una pérdida de cómo podría hacer que pase por el resto.
Por favor, encuentre aquí https://gofile.io/d/Xs1mGd el PBIX, donde traté de jugar con los parámetros e invocar la función. Tal vez alguien sabría cómo hacerlo funcionar, se lo agradecería. Probablemente sólo faltan los últimos 5%.
¡Muchas gracias!
mahoneypat
Puede obtener datos de varias acciones si primero crea una función a partir de su consulta de Yahoo con código como el siguiente:
(symboltoget)=>
let
Source = Csv.Document(Web.Contents("https://query1.finance.yahoo.com/v7/finance/download/" & symboltoget & "?period1=" & "1119916800" & "&period2=" & "1593302400" & "&interval=1d&events=history"),[Delimiter=",", Columns=7, Encoding=1252, QuoteStyle=QuoteStyle.None]),
#"Promoted Headers" = Table.PromoteHeaders(Source, [PromoteAllScalars=true]),
#"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Date", type date}, {"Open", type number}, {"High", type number}, {"Low", type number}, {"Close", type number}, {"Adj Close", type number}, {"Volume", Int64.Type}})
in
#"Changed Type"
Llamé a la función anterior fxYahoo. A continuación, puede comenzar con una tabla de símbolos de stock y, en la opción Agregar columna, elija Invocar función personalizada, seleccione fxYahoo y la columna de símbolo de stock como entrada. A continuación se muestra una consulta de ejemplo que extrae datos de 3 símbolos de stock como ejemplo. Para ver cómo funciona, simplemente cree una consulta en blanco, vaya a Editor avanzado y reemplace el texto allí con el código M a continuación. Esto conserva la columna Símbolo de material, por lo que puede utilizarla en sus análisis / imágenes.
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WcvR1UYrVAdIhIWAaSMYCAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [StockSymbol = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"StockSymbol", type text}}),
#"Invoked Custom Function" = Table.AddColumn(#"Changed Type", "fxYahoo", each fxYahoo([StockSymbol])),
#"Expanded fxYahoo" = Table.ExpandTableColumn(#"Invoked Custom Function", "fxYahoo", {"Date", "Open", "High", "Low", "Close", "Adj Close", "Volume"}, {"Date", "Open", "High", "Low", "Close", "Adj Close", "Volume"})
in
#"Expanded fxYahoo"
Si esto funciona para usted, márquelo como la solución. Los elogios también son apreciados. Por favor, avísame si no.
saludos
palmadita
mini yo
En respuesta a mahoneypat
Estimado @mahoneypat,
Eso parece muy prometedor, pero necesito un poco más de mano sosteniendo, disculpas. Estoy un poco perdido cómo y dónde introducir su código. Si creo la función y voy a «Editor avanzado» veo el siguiente presente:
let
Source = (#"Stock Symbol" as any) => let
Source = Csv.Document(Web.Contents("https://query1.finance.yahoo.com/v7/finance/download/" & #"Stock Symbol" & "?period1=" & "1119916800" & "&period2=" & "1593302400" & "&interval=1d&events=history"),[Delimiter=",", Columns=7, Encoding=1252, QuoteStyle=QuoteStyle.None]),
#"Promoted Headers" = Table.PromoteHeaders(Source, [PromoteAllScalars=true]),
#"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Date", type date}, {"Open", type number}, {"High", type number}, {"Low", type number}, {"Close", type number}, {"Adj Close", type number}, {"Volume", Int64.Type}})
in
#"Changed Type"
in
Source
¿Necesito reemplazar esto con su código o necesito agregarlo allí?
A continuación, para el segundo código está escribiendo que este ejemplo extrae los datos de 3 acciones. ¿Dónde puedo ver el límite de 3 acciones? ¿No debería tomar sólo todos los símbolos de la referencia «NASDAQ» o «NYSE»?
No quiero molestarte demasiado aquí, pero siento que estoy tan cerca de una solución y por lo tanto agradecería si pudieras ayudarme un poco más. Si es más rápido para usted, también estaría contento con un PBIX por lo que podría comprobar cómo lo ha hecho en el lugar de escribirlo.
¡Muchas gracias!
mahoneypat
En respuesta a mini yo
Sus consultas de Nasdaq y NYSE apuntaban a un local en su computadora, así que no pude agregar la función en esas tablas yo mismo (así que hice una tabla ficticia con tres símbolos). En las consultas DE NYSE y Nasdaq, en la pestaña Agregar columna, elija Invoke Custom function, elija la función (creo que nuestras dos funciones son básicamente las mismas) y elija el nombre de la columna con el símbolo de stock como entrada. A continuación, verá una columna de Tablas con los datos devueltos para cada símbolo. Simplemente expanda esa columna para combinar todas las tablas.
Si esto funciona para usted, márquelo como la solución. Los elogios también son apreciados. Por favor, avísame si no.
saludos
palmadita
mini yo
En respuesta a mahoneypat
Estimado @mahoneypat,
Muchas gracias. ¡Ahora funciona perfectamente!
aj1973
Hola @minime
Creo que el problema es el Modelo, no hay relación entre sus tablas y la fuente
Busca los símbolos de la unidad yahoo.finance y añádalos a la tabla Yahoo finance y, a continuación, conecta la columna a tu unidad Tables of the One.
Este es un ejemplo que es exactamente como su informe, pero estoy usando Países en lugar de acciones
https: //app.powerbi.com/view? r = eyJrIjoiMjc2N2ZkZmYtMTNjYi00N2Q0LWE4MmUtYjhiY2E4NTQxZGM1IiwidCI6IjgzN …
saludos
mini yo
En respuesta a aj1973
Hola @ aj1973,
Muchas gracias por su tiempo y respuesta.
No estoy muy seguro de si es realmente la relación entre las tablas como la tabla «NASDAQ» y «NYSE» sólo están enumerando los símbolos que me gustaría utilizar como parámetros. Si nos fijamos en la fuente de «Yahoo finanzas» se puede ver que estoy utilizando el parámetro «‘Símbolo de stock’ como marcador de posición para el símbolo de stock. Para el» valor actual «establecido en el parámetro funciona bien, pero me quisiera que ahora pasa por el resto de la «NASDAQ» o las entradas «NYSE».
https://query1.finance.yahoo.com/v7/finance/download/¿Símbolo de acciones? period1-1119916800 & period2-1593302400 & interval-1d & events-history
Consulte la configuración de origen de «Yahoo Finance» aquí: https://gofile.io/d/C5RlcZ
¿Tal vez me equivoque y me he perdido tu punto?
¡Muchas gracias!
aj1973
En respuesta a mini yo
@mini yo
La relación entre las tablas es definitivamente necesaria si desea filtrar a través de los símbolos.
Además, echa un vistazo a su tabla ‘Yahoo Finanzas’ y dime si puedes decir que cada fila pertenece a qué símbolo o stock!
Estoy seguro de que hay una columna para las acciones en la fuente, sin embargo, no soy capaz de abrirlo https://query1.finance.yahoo.com/v7/finance/download/%7BStock
la fuente debe parecerse a esta https://ca.finance.yahoo.com/most-active
Conécteme con una buena fuente donde pueda ver los símbolos para ayudarte
saludos
mini yo
En respuesta a aj1973
Sí, puedo invocar el símbolo si comprueba el último paso de esa tabla. Creo que el problema realmente es que el resultado de la búsqueda de URL le da sólo los números sin el símbolo. Por lo tanto, esperaba que hubiera una manera de analizar la lista de símbolos como parámetro y en segundo lugar agregar el parámetro en cada una de las filas procesadas. Para un solo stock todo funciona según lo esperado.
No estoy seguro de que tenga sentido para usted, pero no tengo otra fuente, ya que este es exactamente el desafío aquí …
Muchas gracias por su tiempo!
aj1973
En respuesta a mini yo
Entendido
Creo que la búsqueda de URL está devolviendo un valor por eso solo obtienes una acción.
De todos modos, aquí es lo que consigue cuando se intenta conectarse a su fuente
Lo siento, hice todo lo posible.
Buena suerte
mini yo
En respuesta a aj1973
Prueba esto
De todos modos, gracias por tratar de ayudarme, ¡muy apreciado!