askoo
Toukokuu 10, 2023, 8.40am
449
GoogleFinance on toiminut hyvin, mutta nyt ei hae enää Sievin kurssia eikä kurssia DBXW -ETF:lle.
Sen sijaan Inderesin kurssin löytää nykyisin.
=GOOGLEFINANCE(“HEL:INDERES”)
Muita Titaniumeja löytyy, mutta kotimaisen kurssia ei löyty.
Ongelmia siis seuraavien kanssa: Sievi, DBXW ja Titanium, joista kaksi ensimmäistä toimivat aiemmin ok.
Onko joku onnistunut em. kanssa?
SamiK
Toukokuu 10, 2023, 8.48am
450
Mulla on ollut samaa ongelmaa muutaman osakkeen kanssa, toki eri lapuilla, mutta ongelma toistuu pari kertaa vuodessa.
Olen kiertänyt ongelman käyttämällä YahooFinance -funktiota, siihen löytyy ohjeet tästä ketjusta.
2 tykkäystä
askoo
Toukokuu 10, 2023, 9.15am
451
Just ehdin kirjoittaa tänne, ilmeisesti lukevat näitä viestejä, hehheh, kun nyt seuraavat toimivat:
=GOOGLEFINANCE(“HEL:SIEVI”)
=GOOGLEFINANCE(“HEL:TITAN”)
1 tykkäys
Mikä olisi kattavin palvelu vanhojen rahasto-omistusten historiallisten nav-hintojen hakemiseen? Yritän laskea takautuvasti salkkuni twr-tuottoja, mutta historiatietojen hakeminen ei olekaan täysin yksinkertaista kaikille vanhoille omistuksille.
Mikäköhän siinä on, että sheetsin yahoofinance -funktio näyttäisikin hakevan modella “price” moden “change”. Onko nuo yahoo financen sivut muuttuneet jotenkin?
Esim. RAIVV.HE ja EXXXpisteDE tekevät näin.
Sama ongelma. Ilmeisesti on muuttunut. En ainakaan vielä osannut itse korjata koodia.
Vaihdoin yahoofinancen googlefinance-funktioksi niin lähti toimimaan normaalisti.
SamiK
Toukokuu 25, 2023, 8.32am
456
Niin näyttää olevan. @Prophier ?
Tässä jonkinlainen fiksaus. Toimii ainakin minulla nyt.
if (mode === "price") return Number($('fin-streamer[data-field="regularMarketPrice"]').attr('value')) || 0;
else if (mode === "name") return nameArr[0].split(" (")[0] || "N/A";
else if (mode === "change") return Number($('fin-streamer[data-field="regularMarketChange"]').attr('value')) || 0;
else if (mode === "changepct") return Number($('fin-streamer[data-field="regularMarketChangePercent"]').attr('value')) || 0;
else if (mode === "high") return Number(summaryArr[4].split(" ")[3].replace(/\,/g, "")) || "N/A";
else if (mode === "low") return Number(summaryArr[4].split("e")[1].split(" ")[0].replace(/\,/g, "")) || "N/A";
else if (mode === "high52") return Number(summaryArr[5].split(" ")[4].replace(/\,/g, "")) || "N/A";
else if (mode === "low52") return Number(summaryArr[5].split("ge")[1].split(" ")[0].replace(/\,/g, "")) || "N/A";
else if (mode === "open") return Number(summaryArr[1].split("n")[1].replace(/\,/g, "")) || "N/A";
else if (mode === "volume") return Number(summaryArr[6].split("e")[1].replace(/\,/g, "")) || "N/A";
else if (mode === "volumeavg") return Number(summaryArr[7].split("e")[1].replace(/\,/g, "")) || "N/A";
else if (mode === "beta") return Number(summaryArr[9].split(")")[1]) || "N/A";
else if (mode === "pe") return Number(summaryArr[10].split(")")[1].replace(/\,/g, "")) || "N/A";
else if (mode === "eps") return Number(summaryArr[11].split(")")[1].replace(/\,/g, "")) || "N/A";
else if (mode === "edate") return summaryArr[12].split("Date")[1] || "N/A";
else if (mode === "divdate") return summaryArr[14].split("Date")[1] || "N/A";
else if (mode === "target") return Number(summaryArr[15].split("st")[1].replace(/\,/g, "")) || "N/A";
else if (mode === "div") return Number(summaryArr[13].split("ld")[1].split(" ")[0].replace(/\,/g, "")) || "N/A";
else if (mode === "yield") return Number(summaryArr[13].split("(")[1].split("%")[0]) || "N/A";
else return Number($('fin-streamer[data-field="regularMarketPrice"]').attr('value')) || 0;
}
9 tykkäystä
Myöhäiset propsit tälle kaavalle… Tein pienen modauksen. " , " vs. " ; " riippunee kaavassa siitä millä “kielellä” googlesheettiä käyttää. Ja yhtälailla oma tulos korvaa . → ,
SUBSTITUTE(INDEX(IMPORTXML("https://markets.ft.com/data/funds/tearsheet/summary?s=SE0005993102:EUR";"//span[@class='mod-ui-data-list__value']");1;1);".";","
Näin esmes. Nordnet indeksisuomi ESG, joka päätyi hetki sitten omiin rahastoihin
1 tykkäys
Alla oleva @Prophier :in scripti toimii muuten paitsi osakkeen hintaa en saa näkyviin. Näyttää osakkeen päiväkohtaisen hinnanmuutoksen prosentteina sen sijaan. Onko muilla ollut samoja ongelmia?
Prophier:
function yahoofinance(symbol, mode) {
const content = UrlFetchApp.fetch("https://finance.yahoo.com/quote/"+symbol).getContentText();
const $ = Cheerio.load(content);
var arr = $("div#quote-market-notice").parent().children().toArray().map((element) => { return $(element).text()});
var summaryArr = $("div#quote-summary").children().children().children().children().toArray().map((element) => { return $(element).text()});
if (mode === "price") return Number(arr[0].replace(/\,/g, ""));
else if (mode === "change") return Number(arr[1].split("(")[0].replace(/\+/g, "").replace(/\,/g, "")) || "N/A";
else if (mode === "changepct") return Number(arr[1].split("(")[1].split(")")[0].replace(/\+/g, "").replace(/\%/g, "")) || "N/A";
else if (mode === "high") return Number(summaryArr[4].split(" ")[3].replace(/\,/g, "")) || "N/A";
else if (mode === "low") return Number(summaryArr[4].split("e")[1].split(" ")[0].replace(/\,/g, "")) || "N/A";
else if (mode === "high52") return Number(summaryArr[5].split(" ")[4].replace(/\,/g, "")) || "N/A";
else if (mode === "low52") return Number(summaryArr[5].split("ge")[1].split(" ")[0].replace(/\,/g, "")) || "N/A";
else if (mode === "open") return Number(summaryArr[1].split("n")[1].replace(/\,/g, "")) || "N/A";
else if (mode === "volume") return Number(summaryArr[6].split("e")[1].replace(/\,/g, "")) || "N/A";
else if (mode === "volumeavg") return Number(summaryArr[7].split("e")[1].replace(/\,/g, "")) || "N/A";
else if (mode === "beta") return Number(summaryArr[9].split(")")[1]) || "N/A";
else if (mode === "pe") return Number(summaryArr[10].split(")")[1].replace(/\,/g, "")) || "N/A";
else if (mode === "eps") return Number(summaryArr[11].split(")")[1].replace(/\,/g, "")) || "N/A";
else if (mode === "edate") return summaryArr[12].split("Date")[1];
else if (mode === "divdate") return summaryArr[14].split("Date")[1];
else if (mode === "target") return Number(summaryArr[15].split("st")[1].replace(/\,/g, "")) || "N/A";
else if (mode === "div") return Number(summaryArr[13].split("ld")[1].split(" ")[0].replace(/\,/g, "")) || "N/A";
else if (mode === "yield") return Number(summaryArr[13].split("(")[1].split("%")[0]) || "N/A";
else return Number(arr[0]);
}
Copium
Kesäkuu 12, 2023, 1.49pm
463
2 viestiä ylempää löytyy tällä hetkellä toimiva koodi.
1 tykkäys
Aivan, kiitoksia! En ollut huomannutkaan tuota.
Alwar
Kesäkuu 22, 2023, 7.37am
466
Prophier:
Näin pitäisi taas toimia:
function marketscreenertargets(symbol) {
const content = UrlFetchApp.fetch("https://www.marketscreener.com/quote/stock/"+symbol+"/consensus/").getContentText();
const $ = Cheerio.load(content);
const arr = $("table.Bord").children().children().children().toArray().map((element) => { return $(element).text()});
arr.shift();
const result = [];
while(arr.length) result.push(arr.splice(0,2));
result.forEach((element, index) => {
if (index != 0) element[1] = Number(element[1].replace(/\,/g, ".").replace(/[^0-9\-.]+/g,""));
});
return result;
}
Oli tuo marketscreenerin sivu muuttunut. Tällä muutoksella sain toimimaan:
//const arr = $("table.Bord").children().children().children().toArray().map((element) => { return $(element).text()});
//arr.shift();
const arr = $('#consensusdetail').find('.grid').find('div').toArray().map((element) => { return $(element).text()});
Pari rivä siis pois ja yksi uusi tilalle. @Prophier varmaan katselmoi kelpaako muutos yleiseen jakeluun?
1 tykkäys
Hyvä vaan, kun joku pitää näitä ajan tasalla. Ei mulla ole valittamista
3 tykkäystä
Kirjoittelin jokin aika sitten kahvihuoneelle mutta laitanpa tännekkin ihan infona mikäli jotakuta kiinnostaa testailla selainpohjaista salkun seuranta-alustaa Stockle (Beta versio). Näitähän toki on tehty aiemminkin mutta uskoisin että testatessa huomaa eroavaisuudet moneen muuhun. Tällä hetkellä ollaan kehittämässä softaan allokaatiosivua, parannusta mobiiliin ja positiotauluihin osinkokolumnia josta näkee saadut osingot kullekkin avoimelle/suljetulle positiolle. Ilmaisessa versiossa rajoitetut määrät portfolioita/transaktioita.
4 tykkäystä
A112
Heinäkuu 14, 2023, 12.37pm
469
Olisiko PP:n käyttäjillä vinkkejä kuinka yhtiöiden yhdistymiset/jakautumiset ja nimenmuutokset voisi merkitä fiksusti ja informatiivisesti? Olen toistaiseksi vaihtanut nimen ISIN-koodia vasten, mutta tämä hiukan haittaa vanhojen salkkutapahtumien luettavuutta, kun nimi valuu vanhoihin tapahtumiin. Käytännön ongelmakeissinä mulla on nyt Metso/Valmet/Outotec/Neles, joissa on käänteitä riittänyt viime vuosina.
SamiK
Heinäkuu 14, 2023, 2.58pm
470
Toimiiko tuo ihan kunnolla? Ainakaan itse en pääse kirjautumaan sisään. Kertakäyttöinen koodi kyllä tulee (roskapostikansioon), mutta koodin syöttämisen jälkeen ei tapahdu mitään. Tai tiimalasi pyörähtää kerran, mutta muuten ei mitään. Kokeilin eri selaimiakin, mutta silti sama juttu. @Vanhalla
Morjens! parilla käyttäjällä ilmaantunut samaa ongelmaa. Laitoin sinulle viestiä täällä jotta päästään pureutumaan tuohon bugiin.
1 tykkäys
Google Sheetsin Yahoo-kikkula antaa itselleni aika metkoja arvoja arvopapereiden hinnoille. Oletteko tehneet samanlaisia havaintoja?
2 tykkäystä