Salkkujen seuranta: excel-taulukot

Jihaa, tämä toimi niin että vaihdoin pilkut puolipilkuiksi, kuten @SamiK, mutta mulla kieliasetuksissa suomi, johtuisko siitä?

1 tykkäys

Tällainenkin vinkki löytyi googlettelemalla, ja tuntuu pelittävän etenkin ruotsalaisten lafkojen kohdalla.

KOODI:
=MID(importXml(“skrivadressenhär”; “(//span[@class=‘pushBox roundCorners3’])[1]”);1;6)

Koodin kohtaan “skrivadressenhär” laitetaan avanzan sivujen osoitekentän koko osoite. Esim Allarity therapeutics:in sivujen osoite eli Om Aktien | Avanza

1 tykkäys

…tosin heti kun kokeilin tätä kopioimalla nämä itse liittämäni koodit, se ei toiminut. Ikäänkuin tänne laitettu postaus muuttaisi jotain. Hmmm…

Miten koodi postataan koodina?

ainakin noi yläpilkut muuttuu yleensä vääränlaisiksi ja ne pitää itse kirjoittaa exceliin uusiksi.

siltikään en saa tätä toimimaan google sheetsissäni… onkohan tossa pushBox-sanan jälkeen tuo välilyönti oikein?

Kyl siinä on. Tässä on tää alkuperäinen kirjoitus, josta sain avun: Sparsamt leverne: Importera aktiekurser till Google kalkylark

1 tykkäys

Muun tekstin jälkeen pitää olla yksi tyhjä rivi välissä, sitten koodirivin alkuun neljä välilyöntiä, sen perään koodit.

1 tykkäys

Hieman tuntuu että pitää joka osakkeelle keksiä omanlainen loitsu että saa luettua oikein. Esim. englanninkielisellä sheetsillä viimeaikojen suosikit SE ja Cara vaatii ihan erilaiset lausekkeet:

=IMPORTXML(“SEYE | Smart Eye AB Osakkeet - Investing.com”, “//span[@id=‘last_last’]”)/10000*GOOGLEFINANCE(“Currency:SEKEUR”)

vs.

=VALUE(REPLACE(IMPORTXML(“CARAC | Carasent ASA Osakkeet - Investing.com”, “//span[@id=‘last_last’]”), 3, 1, “.”))*GOOGLEFINANCE(“Currency:NOKEUR”)

Helpommalla pääsee kun lukee koko taulukon vaikka taulukon loppuun ja sitten sopivaan kohtaan komennon lukea tietty solu. Eli koko rimpsusta luetaan vain haluttu arvo toisella komennolla.

Ongelma ratkaistu sheetsissä: eli yläpilkut ja lainausmerkit muuttuvat täältä kopioitaessa vääränlaisiksi. Noi kun kirjoittaa uusiksi sheetsiin niin toimii ja lisäksi yhden tavallisen pisteen vaihto puolipilkuksi (mulla engl. google sheets)

1 tykkäys

Jos haluaa lopettaa noiden import-komentojen ja epävarman investing.comin kanssa puuhailun, niin tein illan ratoksi tällaisen palikan joka hakee hinnan Yahoon palvelusta. Ainakin lyhyellä testailulla toimii. Asentaminen menee seuraavasti:

  1. Avaa Google Sheetsin portfoliotaulukkosi ja sitten valikosta Tools / Script Editor

  2. Avaa Script Editorin valikosta Resources / Libraries

  3. Hae library avaimella: 1ReeQ6WO8kKNxoaA_O0XEQ589cIrRvEBA9qcWpNqdOP17i47u6N9M5Xh0

  4. Pitäisi löytyä cheerio, jota tarvitaan funktion toimintaan. Tallenna

  5. Liitä Script Editorin editorisivulle seuraava koodi:

    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]);
    }
    
  6. Tallenna

Nyt pystyt taulukon puolella käyttämään =yahoofinance() -funktiota seuraavasti:

=yahoofinance("FORTUM.HE") - hinta
=yahoofinance("FORTUM.HE", "change") - päivämuutos
=yahoofinance("FORTUM.HE", "changepct") - päivämuutos prosentteina
=yahoofinance("FORTUM.HE", "high") - päivän ylin
=yahoofinance("FORTUM.HE", "low") - päivän alin
=yahoofinance("FORTUM.HE", "high52") - 52 viikon ylin
=yahoofinance("FORTUM.HE", "low52") - 52 viikon alin
=yahoofinance("FORTUM.HE", "open") - päivän avaushinta
=yahoofinance("FORTUM.HE", "volume") - päivän volyymi
=yahoofinance("FORTUM.HE", "volumeavg") - keskimääräinen volyymi
=yahoofinance("FORTUM.HE", "beta") - beta, 5 vuodelta
=yahoofinance("FORTUM.HE", "pe") - P/E-luku
=yahoofinance("FORTUM.HE", "eps") - osakekohtainen tulos
=yahoofinance("FORTUM.HE", "edate") - seuraava tulosjulkistus
=yahoofinance("FORTUM.HE", "divdate") - seuraavan osingon irtoaminen
=yahoofinance("FORTUM.HE", "target") - konsensustavoitehinta
=yahoofinance("FORTUM.HE", "div") - 12kk osinkoennuste
=yahoofinance("FORTUM.HE", "yield") - 12kk osinkotuottoennuste

Ja tuohon luonnollisesti täytyy käyttää osakkeiden tikkereitä siinä muodossa jossa finance.yahoo.com ne näyttää, eli .HE pitää laittaa suomalaisten osakkeiden perään.

Toivottavasti tästä on jollekin apua. Jos löytyy selviä vikoja niin voidaan koittaa korjata.

edit: pari bugia
edit: lisätty featureita

43 tykkäystä

Apua on runsaasti, mutta lisää tarvitaan.
Löytyisikö vielä apua seuraaviin:
Päivän ylin
Päivän alin
52 vko ylin
52 vko alin

Suuri kiitos

Kiitos tästä. Saatko lisättyä vielä changepct-kohtaan muunnon numeroksi? Vaikuttaa että tuo sama Number()-ei toimi, ja tällöin raportin päässä pitää käyttää VALUE().

EDIT: Ja tuo VALUE() ei toimi siinä tapauksessa, kun muutos on positiivinen. Eli pitäisi tehdä IF-lause, missä tarkistetaan muutoksen ensimmäinen merkki, ja jos se on “+” niin jätetään ensimmäinen merkki huomioimatta.

Tällä pitäisi toimia muunnos.
=Value(substitute(yahoofinance(“xxx.he”, “changepct”),“+”,“”))

Auttaisiko joku atk-velho atk-tumpeloa ja kertoisi, kuinka Investingistä saadaan Google Sheets taulukkoon seuraavat tiedot First North osakkeista:
Muutos %
Muutos
Päivän ylin
Päivän alin
52 vko ylin
52 vko alin

Päivitin aiemman postauksen, nyt on reilummin komentoja.

4 tykkäystä

Hyvin pelittää!

Kiitos

1 tykkäys

Haluaisin taulukkooni kaiken funda-osaston oheen vähän teknisiä indikaattoreita laajemman kuvan saamiseksi yhdestä paikasta. RSI:n ja annualisoidun volatiliteetin äpästin mutta tarvisin jonkin nopeasti reagoivan alennusmyynti-indikaattorin. Mietin esim. kurssin vertaamista edeltävän kuukauden kolmen korkeimman päivän keskiarvoon. Onko parempia ideoita tai vaikka nettisivuja/kirjallisuutta mihin kannattaisi perehtyä?

Hölmö kysymys, kysyn silti. HB:n kestävä energia-rahastossa on 1.5% kulu/v. Miten merkitsisitte sen exceliin? Tuohon exceliin, missä on se histograafi esim.

Sanotaan vaikka, että ostan sitä 100eurolla. Merkitsisinkö kuluiksi 1.5euroa?

Ymmärrys ei täysin riitä hahmottamaan vuosikulun merkintätapaa.

Nuo kuluthan otetaan suoraan huomioon jo rahaston arvossa. Ellei tämä ole jokin hyvin erikoinen rahasto.

3 tykkäystä