Jump to content
mc-fly

Aktienkurse im Excel automatisch aktualisieren

Recommended Posts

albr
Posted

ich bin auch am überlegen von PC auf iMac umzusteigen... kann man Office365 iMac auch die ganzen Programmierungen (VBA oder Skripte) genauso nutzen wie bei Office365 Windows ?

klar, 1:1 wird es vlt. nicht gehen (z.B. sind die Dateipfade anders...) ?

 

hat schonmal jemand Python und Office365 (speziell Excel) genutzt ?? Bin auch weiters am überlegen, mich noch stärker/mehr in Python einzuarbeiten...

 

Share this post


Link to post
Malvolio
Posted
vor 48 Minuten von leoluchs:

Beim iMac und Office365 funktioniert die Funktion (zahlreiche Börsenplätze zur Auswahl).

568224200_Bildschirmfoto2021-04-22um10_08_14.png.81a0e401648aba65555dac7e09abff86.png 

Super. Vielen Dank für die Info!!! :thumbsup:

Share this post


Link to post
smarttrader
Posted

Nach dem es doch einige Probleme gab und immer wieder ändernde Aufrufe bzw. Abfragen bin ich einfach von Excel weg gegangen für Werte etc. abfragen.

 

Quick and Dirty mit Python.

 

In C# ebenfalls umgesetzt, müsste theoretisch sogar direkt als VBA realisierbar sein. Ich konnte nur kein erhöhten Nutzen sehen, der den Aufwand zum implemntieren rechtfertigt.

 

 

Share this post


Link to post
Mittemeier
Posted

Hi zusammen,

 

benutzt jemand Excel 2010 + Google Docs (Tabelle + "Fianz-Formeln") um sich die Aktienkurse zu ziehen?

Seit 2 Tagen klappt das bei mir nicht mehr, wird Excel 2010 ggf. nicht mehr supportet?

Hat jemand auch die Erfahrung gemacht?

 

Share this post


Link to post
Oli Garch
Posted
vor 4 Stunden von Mittemeier:

benutzt jemand Excel 2010 + Google Docs (Tabelle + "Fianz-Formeln") um sich die Aktienkurse zu ziehen?

Seit 2 Tagen klappt das bei mir nicht mehr, wird Excel 2010 ggf. nicht mehr supportet?

Ich glaube nicht, dass sich da irgend etwas grundsätzlich geändert hat, habe hier allerdings nur Excel 2019.
Um sicher zu gehen: Du lädst eine in Google-Sheets erstellte Tabelle in deine Excel-Datei?
Dann prüfe auf jeden Fall mal, ob die Google-Tabelle für dich noch freigegeben ist.

Share this post


Link to post
Malvolio
Posted
Am 25.12.2020 um 17:03 von Oli Garch:

Hallo Max,

willkommen im Forum und ebenfalls frohe Weihnachten (auch an @paradox82, @Gekko1964). Vielen Dank für deinen Hinweis. Bei einer größeren Anzahl von Kursabrufen hat sich der Fehler bei mir ebenfalls gezeigt.

Deshalb nun eine weitere Variante, die auch mit 20 Kursen funktioniert. Hierbei wird der Kurs von der eigentlichen ARD-Webseite des jeweiligen Wertpapiers ausgelesen und nicht von der Suchergebnisliste wie bisher. Leider dauert der Abruf dadurch deutlich länger.

 

ardKurs.v6.0.xlsm 23 kB · 68 Downloads ardKurs.v6.0.txt 1 kB · 66 Downloads

Ich habe seit jetzt seit einigen Tagen einen iMac auf dem Schreibtisch stehen und habe jetzt mal meine Excel-Portfoliodatei mit Kursaktualisierungen unter Mac-OS ausprobiert.

 

Die Abfrage über den MS-Datentyp "Aktien" funktioniert prima. Allerdings funktioniert das Makro mit der ARD-Kursabfrage anscheinend nicht. Ich kriege keine Fehlermeldung, aber die Schaltfläche funktioniert nicht und das Makro wird nicht ausgeführt. Ich bin leider kein Makro-Fuchs und kenne mich auch mit Office auf dem Mac noch nicht gut aus .... hat vielleicht jemand einen Tipp für mich?  ;)

 

Share this post


Link to post
Oli Garch
Posted
vor 2 Stunden von Malvolio:

Ich kriege keine Fehlermeldung, aber die Schaltfläche funktioniert nicht und das Makro wird nicht ausgeführt.

Ich habe keine Ahnung von Excel auf dem iMac. 

Das Verhalten ist aber so, als wäre die Ausführung von Makros deaktiviert. Das ist wohl gewöhnlich erst einmal so voreingestellt.

Hier (Link auf eine Microsoft-Supportseite) steht, wie es geht.

Share this post


Link to post
Malvolio
Posted
Gerade eben von Oli Garch:

 

Das Verhalten ist aber so, als wäre die Ausführung von Makros deaktiviert. Das ist wohl gewöhnlich erst einmal so voreingestellt.

 

Sowas vermute ich auch .... danke für den Link. Das ist alles noch ganz neu für mich. ;)

 

Share this post


Link to post
Cornwallis
Posted

Guten Abend,

 

ich bilde mir ein, dass Wechselkurse, die ich über finance.yahoo.com lade, nicht mehr aktualisieren.

 

Der Befehl "=WERT(WECHSELN(TEIL(WEBDIENST("https://query1.finance.yahoo.com/v7/finance/quote?symbols="&$E9);SUCHEN("regularMarketPrice";WEBDIENST("https://query1.finance.yahoo.com/v7/finance/quote?symbols="&$E9)"

 

mit "EURCHF=x" (oder auch "EURRUB=x" u. v. w.) in der entsprechenden Zelle liefert mir aktuell bspw. 1,0425 als Ergebnis. Zellbezug ist korrekt.

 

Kurs zur Stunde ist lt. comdirect.de jedoch 1,0341. Dieser Kurs wird auch auf yahoo.finance.com angezeigt. Aber nicht in meine LibreOffice Calc Datei übernommen.

 

Habt Ihr das Problem auch? Weiß jemand, wie ich das lösen kann?

 

Vielen Dank!

 

Gruß

 

Share this post


Link to post
Oli Garch
Posted

zunächst mal würde deine Formel wie oben angegeben nicht funktionieren. Ich denke das ist jetzt nur ein Kopierfehler. (Bearbeitungsleiste beim Kopieren nicht weit genug aufgezogen) Die vollständige Formel wäre:
 =WERT(WECHSELN(TEIL(WEBDIENST("https://query1.finance.yahoo.com/v7/finance/quote?symbols="&$A1);SUCHEN("regularMarketPrice";WEBDIENST("https://query1.finance.yahoo.com/v7/finance/quote?symbols="&$A1))+20;SUCHEN(",";TEIL(WEBDIENST("https://query1.finance.yahoo.com/v7/finance/quote?symbols="&$A1);SUCHEN("regularMarketPrice";WEBDIENST("https://query1.finance.yahoo.com/v7/finance/quote?symbols="&$A1))+20;18))-1);".";","))
wenn das Währungssymbol in Zelle A1 steht.
Ich hab das mal getestet und das Ergebnis ist 1,03411 - wie es sein soll. Also müsste es eigentlich auch bei dir funktionieren.
Wo der Fehler liegt, ist schwer zu ermitteln.
Überprüfe mal:
- Einstellungen an der Makrosicherheit geändert?
- Manchmal muss man bei neu angelegten Dateien trotz niedrig eingestellter Makrosicherheit erst einen gelben Warnhinweis im Tabellenkopf bestätigen.
- Neue Version von LibreOffice installiert? Dann kommen die beiden ersten Punkte auch in Betracht.

Share this post


Link to post
Cornwallis
Posted

Das war peinlich. Vielen Dank und Entschuldigung!

Ich habe die Formel in eine neue Datei kopiert, hier zeigt sie ganz wunderbar das an, was ich sehen möchte.

Einmal Datei speichern, schließen, neu starten; Problem gelöst.

Schönen Sonntag!

Share this post


Link to post
Oli Garch
Posted

Sponge over wie die Engländer wohl sagen würden.

Oli

Share this post


Link to post
Laser12
Posted
Am 23.1.2022 um 19:17 von Oli Garch:

wenn das Währungssymbol in Zelle A1 steht.

und das wäre jetzt was?

Share this post


Link to post
Oli Garch
Posted

Ich gestehe, dass ich meine Ausführungen nicht sonderlich übersichtlich dargestellt habe.

Der Satz beginnt mit:

"Die vollständige Formel wäre:"

Dann kommt die vollständige Formel

und der oben angefangene Satz wird anschließend mit dem von dir zitierten Teil:

"wenn das Währungssymbol in Zelle A1 steht."

beendet.

Ich hoffe, das war mit der Frage gemeint.

Gruß Oli

Share this post


Link to post
Laser12
Posted

oh sorry, da war meine Frage wohl zu ungenau.

 

Was soll in Zelle A1 stehen, damit

=WERT(WECHSELN(TEIL(WEBDIENST("https://query1.finance.yahoo.com/v7/finance/quote?symbols="&$A1);SUCHEN("regularMarketPrice";WEBDIENST("https://query1.finance.yahoo.com/v7/finance/quote?symbols="&$A1))+20;SUCHEN(",";TEIL(WEBDIENST("https://query1.finance.yahoo.com/v7/finance/quote?symbols="&$A1);SUCHEN("regularMarketPrice";WEBDIENST("https://query1.finance.yahoo.com/v7/finance/quote?symbols="&$A1))+20;18))-1);".";","))

funktioniert?

Share this post


Link to post
Oli Garch
Posted

In der ursprünglichen Anfrage ging es um Währungskurse. Für Abrufe bei Yahoo  steht dann in Zelle A1 also z.B. EURCHF=x oder EURRUB=x.

Wenn bei dir diese Angabe nicht in Zelle A1 steht, musst du A1 in der Formel durch deinen Zellbezug ersetzen, in der Formel also vier mal.

Oder man verwendet in der Formel gleich statt des Zellbezugs das Yahoo-Symbol für den gewünschten Wechselkurs (EURCHF=x).

 

Ich hab das gerade noch mal in LibreOffice mit einer neuen Datei getestet. Da erschien statt des Kurses Fehler 540 (Passiert, wenn eine Funktion auftritt, die das (erneute) Laden externer Quellen erfordert, und der Benutzer das erneute Laden externer Quellen noch nicht bestätigt hat). Es gab aber keine Möglichkeit, das Laden zu bestätigen. Nach dem Schließen und wieder Öffnen war dann alles ok.

In Excel gab es da kein Problem.

 

Ich schreibe hier so ausführlich über Dinge die du vielleicht gar nicht wissen willst, damit andere Leser, die das irgendwann nachvollziehen, nicht gleich an solchen Kleinigkeiten scheitern.

 

Share this post


Link to post
Laser12
Posted

danke, jetzt müsste ich nur noch Die Symbole für die relevanten Börsen finden

Tradegate

Lang&Schwarz

Share this post


Link to post
Oli Garch
Posted

Yahoo liefert keine Kurse von Tradegate oder L&S. Yahoo kennt von den deutschen Börsen nur Xetra, Frankfurt, Stuttgart usw.

Share this post


Link to post
smarttrader
Posted

Tradegate habe ich über Webrequest und VBA gelöst. 

Share this post


Link to post
driller
laurooon
Posted

Hallo. Das Thema ist zwar schon älter, aber kann mir jemand die Excel so umbauen, dass Sie die Daten von GETTEX abruft? Ich bin bei Scalable Capital, daher wären die GETTEX Kurse für mich ausschlaggebend. Leider kann ich das nicht selbst.

Share this post


Link to post
driller
Posted

laurooon....poste die gettex webseite, von der die Daten via excel abgerufen werden sollen
oder den weblink zur webseite

Share this post


Link to post
Oli Garch
Posted
Am 31.3.2022 um 15:23 von laurooon:

kann mir jemand die Excel so umbauen, dass Sie die Daten von GETTEX abruft?

@lauroon,
ich habe mich mal am Wochenende mit deinem Thema beschäftigt. Es ist nicht ganz einfach und etwas umständlich, die Kurse bei gettex herauszuziehen. Das liegt an der recht kompliziert aufgebauten gettex-URL auf der die Kurse angezeigt werden (deshalb hat vielleicht auch @driller im Vorpost nach der URL gefragt).
Du benötigst neben der ISIN den Klarnamen, so wie er bei gettex angezeigt wird. Außerdem endet die URL mit einem für jedes Wertpapier individuellen "token", das aber scheinbar dauerhaft gleich bleibt und nicht immer wieder neu generiert wird (so war es jedenfalls von Freitag bis Montag).
Die VBA-Funktion, die ich daraus gebastelt habe benötigt also 3 Parameter. Die ISIN sowie Name und token die du vorher bei gettex ermitteln musst (in dieser Reihenfolge). In deine Tabelle trägst du dann einfach als Funktion =getKurs(B3;A3;C3) oder auch ganz oder teilweise die Werte in Gänsefüßchen =getKurs(B3;A3;"be89f5b6c64ba633f5ea85ec88f9f73b") ein.
Im Anhang befinden sich eine Textdatei mit den VBA-Funktionen für den letzten Kurs (getKurs) sowie bid- (getBid) und ask-Kurs (getAsk). Wenn du alle Funktionen einbaust, bedenke, dass bei vielen Werten der Abruf auch etwas länger dauert.
Der zweite Anhang enthält eine Excel-Beispieldatei.

gettex.txt Gettex.v1.0.xlsm

Share this post


Link to post
laurooon
Posted

Hallo Oli-Garch,

 

vielen Dank für die Mühe die du dir gemacht hast. Ich werde schauen, ob ich es hinbekomme. :)

 

LG

laurooon

Share this post


Link to post
driller
Posted
import asyncio

import PyQt5.QtWidgets as qt
# import PySide6.QtWidgets as qt

from ib_insync import IB, util
from ib_insync.contract import *  # noqa


class TickerTable(qt.QTableWidget):

    headers = [
        'symbol', 'bidSize', 'bid', 'ask', 'askSize',
        'last', 'lastSize', 'close']

    def __init__(self, parent=None):
        qt.QTableWidget.__init__(self, parent)
        self.conId2Row = {}
        self.setColumnCount(len(self.headers))
        self.setHorizontalHeaderLabels(self.headers)
        self.setAlternatingRowColors(True)

    def __contains__(self, contract):
        assert contract.conId
        return contract.conId in self.conId2Row

    def addTicker(self, ticker):
        row = self.rowCount()
        self.insertRow(row)
        self.conId2Row[ticker.contract.conId] = row
        for col in range(len(self.headers)):
            item = qt.QTableWidgetItem('-')
            self.setItem(row, col, item)
        item = self.item(row, 0)
        item.setText(ticker.contract.symbol + (
            ticker.contract.currency if ticker.contract.secType == 'CASH'
            else ''))
        self.resizeColumnsToContents()

    def clearTickers(self):
        self.setRowCount(0)
        self.conId2Row.clear()

    def onPendingTickers(self, tickers):
        for ticker in tickers:
            row = self.conId2Row[ticker.contract.conId]
            for col, header in enumerate(self.headers):
                if col == 0:
                    continue
                item = self.item(row, col)
                val = getattr(ticker, header)
                item.setText(str(val))


class Window(qt.QWidget):

    def __init__(self, host, port, clientId):
        qt.QWidget.__init__(self)
        self.edit = qt.QLineEdit('', self)
        self.edit.editingFinished.connect(self.add)
        self.table = TickerTable()
        self.connectButton = qt.QPushButton('Connect')
        self.connectButton.clicked.connect(self.onConnectButtonClicked)
        layout = qt.QVBoxLayout(self)
        layout.addWidget(self.edit)
        layout.addWidget(self.table)
        layout.addWidget(self.connectButton)

        self.connectInfo = (host, port, clientId)
        self.ib = IB()
        self.ib.pendingTickersEvent += self.table.onPendingTickers

    def add(self, text=''):
        text = text or self.edit.text()
        if text:
            contract = eval(text)
            if (contract and self.ib.qualifyContracts(contract)
                    and contract not in self.table):
                ticker = self.ib.reqMktData(contract, '', False, False, None)
                self.table.addTicker(ticker)
            self.edit.setText(text)

    def onConnectButtonClicked(self, _):
        if self.ib.isConnected():
            self.ib.disconnect()
            self.table.clearTickers()
            self.connectButton.setText('Connect')
        else:
            self.ib.connect(*self.connectInfo)
            self.ib.reqMarketDataType(2)
            self.connectButton.setText('Disonnect')
            #for symbol in (
            #        'EURUSD', 'USDJPY', 'EURGBP', 'USDCAD',
            #       'EURCHF', 'AUDUSD', 'NZDUSD'):
            #    self.add(f"Forex('{symbol}')")
            self.add("Stock('BAS', 'SMART', 'EUR')")
            self.add("Stock('CON', 'SMART', 'EUR')")
            self.add("Stock('FME', 'SMART', 'EUR')")
            self.add("Stock('MRK', 'SMART', 'EUR')")
            self.add("Stock('SAP', 'SMART', 'EUR')")
            self.add("Stock('SIE', 'SMART', 'EUR')")
            self.add("Stock('VAR1', 'SMART', 'EUR')")
            self.add("Stock('VOW3', 'SMART', 'EUR')")
            self.add("Stock('MUV2', 'SMART', 'EUR')")
            self.add("Stock('ALV', 'SMART', 'EUR')")

    def closeEvent(self, ev):
        asyncio.get_event_loop().stop()


if __name__ == '__main__':
    util.patchAsyncio()
    util.useQt()
    # util.useQt('PySide6')
    window = Window('127.0.0.1', 7496, 1)
    window.resize(600, 400)
    window.show()
    IB.run()

Task:            RT data von TWS in Fenster darstellen

Platform:     win10
Program:     python 3.9.7 getestet
Test:            ok
Erweiterung:  mit python  talib können indikatoren MACD..., und candlstick Muster  erkannt, Strategien ausgetestet werden, etc..
stösst dieses Thema auf Interesse ?

python ...suche script mit    websocket zum Auslesen der Daten einer webseite
Hinweise.. wären sehr hilfreich

die gelesenen webseiten daten können als csv files gespeichert

und als csv files in excel eingelesen werden, etc

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...