henrydatei / wikifolio-api

A Python API-Wrapper for the unofficial wikifolio API
GNU General Public License v3.0
17 stars 4 forks source link

wf.buy error #17

Open JoeGithub53 opened 9 months ago

JoeGithub53 commented 9 months ago

Hello, have got following error on executing wf.buy script from classes.wikifolio import Wikifolio

wf = Wikifolio("email", "password", "wikifolioID") wf.buy_limit(amount=1, isin="US0378331005", limit_price=170) # buy 1 apple share, order is valid for 1 day PS

D:\python_script_depot> python buy-apple.py ... {"success":false,"needsTfaReAuth":true,"needsPasswordReAuth":false} Traceback (most recent call last): File "D:\python_script_depot\buy-apple.py", line 4, in wf.buy_limit(amount=1, isin="US0378331005", limit_price=170) # buy 1 apple share, order is valid for 1 day ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\python_script_depot\classes\wikifolio.py", line 579, in buy_limit return OrderResponse(**raw_json) ^^^^^^^^^^^^^^^^^^^^^^^^^ TypeError: OrderResponse.init() got an unexpected keyword argument 'needsTfaReAuth'

regards, Josef

JoeGithub53 commented 4 months ago

HTML_Trading_Masters.txt Das wäre der kopierte HTML Teil, bei dem ich das Feld suche, über das man in das Depot gelangen kann.

henrydatei commented 4 months ago

Keine Ahnung, schon mal mit XPath probiert? Selenium hat eine Funktion mit der man Elemente per XPath finden kann und dann darauf klicken kann. Den XPath kann man im Browser in den Developer Tools bekommen: Dazu im Inspector das Element auswählen und dann sowas in der Richtung Kopieren -> Copy Full XPath

Wenn das nicht geht, keine Ahnung

JoeGithub53 commented 4 months ago

@henrydatei: danke, hat mit XPath funktioniert. Nun habe ich noch ein weiteres Problem. Bei meinem Wikifolio: https://www.wikifolio.com/de/de/meine-wikifolios/trade/wf00wtop15 sind auch zwei ETF's enthalten. Wenn ich mir die Portfolio Details hole (portfolio_details = wf.get_portfolio_details()), bekomme ich nur die ETF's und keine Aktien. Siehst Du eine Möglichkeit, wie ich sowohl die Aktien, als auch die ETF's in den Details bekommen kann?

henrydatei commented 4 months ago

Bitte sowas immer als neues Issue erstellen, da kann ich (und andere User) besser die Übersicht behalten

JoeGithub53 commented 2 months ago

Hallo henrydatei, ich habe nun meine Flask Server Anwendung auf die Momentum Strategie umgebaut. Man kann nun die Aktien nach Momentum auswählen. Dabei werden diese nach Rangliste angezeigt. Ausgeschlossen werden Aktien die unter ihrer 100Tg Linie liegen. Weiters alle die in den letzten 90 Tagen ein Gap von höher 15% haben. Beim Kauf werden die Aktien nach dem ATR20 nach ihrem Risiko gekauft. Wenn eine Aktie an einem Tag nach ihrer Schwankungsbreite maximal 100€ verlieren darf, dann wird die Anzahl Aktien durch teilen der 100€ durch den ATR20 ermittelt. So werden bei riskanteren weniger und bei weniger riskanten mehr gekauft. Also man kann jetzt kaufen. Dann kann man einmal im Monat ein Rebalance auf die Rangliste durchführen. Und weil sich das Risiko ändert kann man ebenfalls eine Risiko Rebalance durchführen. Nun hoffe ich, daß das System auch gute Ergebnisse liefert. Zumindest hat die Momentum Strategie einen Nobelpreis bekommen. Es würde mich freuen, wenn Du es Dir mal anschauen könntest und mir Tipps gibst, wie ich es noch verbessern kann. Hier nochmal der Link: https://e21fa77.online-server.cloud/

henrydatei commented 1 month ago

Sieht doch ganz gut aus, ein paar Dinge sind mir noch aufgefallen:

JoeGithub53 commented 1 month ago

Hallo Henrydatei, vielen Dank für Deine konstruktiven Vorschläge. Ich habe nun die Buttons in einen ohne Registrierung notwendigen Teil und in ein Wikifolio Management aufgeteilt und auch die Farbe der Buttons angepasst. Bitte schaue nochmals drauf, ob es so passt. Ein kleines Problem habe ich noch, beim holen der historischen Kurse. Dort muß ich ein Startdatum einstellen. Wenn ich Octoparse pausiere und das Datum manuell eingebe klappte es. Will ich aber das Datum ber Script eingebn blockiert die Seite die Eingabe. Ist Dir zu diesem Problem was bekannt, daß der Server bei Eingabe in ein Feld erkennen kann, ob es manuell erfolgt, oder maschinell?. Manchmal reagiert der Server auch mit einer Fehlermeldung, als wenn das Format nicht stimmen würde. Z.B.: tt.mm.jjjj Manuell gebe ich z.B. für heute 16052024 und es wird aktzeptiert. Maschinell bleibt der vorgegebene Wert entweder unverändert, oder es kommt die Fehlermeldung tt.mm.jjjj. Momentan klappt die Risikoverteilung, wenn mit Aktien aus meinem Bestand verwendet wurden. Kommt aber jemand mit seinem Wikifolio und will er eine Neugewichtung nach Risiko machen, kommt es vor, daß ich den ATR20 Wert für manche Aktien nicht habe. Dann müßte ich diesen anhand historischer Kurse erst errechnen und könnte jedem Wikifolio Benutzer diese Neuausrichtung ermöglichen. Letzte Woche habe ich bereits Interessierten unsere Lösung vorgestellt. Hier der Komentar der ersten Teilnehmerin zu unserer Lösung: "Danke Dir von Herzen lieber Josef, ich finde Deine Arbeit großartig und bleibe dran". Die Ergebnisse unserer Anwandung mit dem ersten Testwikifolio haben mit 30% Gewinn auch meine Erwartung erfüllt. Ich würde auch gerne dem Inhaber von Wikifolio Hr. Kramer unsere Lösung vorstellen, sobald das ATR20 Problem gelöst ist. Vielleicht publiziert er es dann an seine Kunden und alle hätten was davon. Ich glaube nämlich die meisten Wikifolios haben die Anzahl Ihrer Aktien nich nach Risiko ausgerichtet und das würde ihrer Performance sicherlich gut tun. Danke nochmal für Deine hervorragende Hilfe!

JoeGithub53 commented 3 weeks ago

Hallo Henrydatei, das Startdatum Problem war so trivial, daß ich es am liebsten nicht erwähnen würde. Es war lediglich eine Clear Angabe vor der Eingabe notwendig. Das ATR20 Problem ist nun auch gelöst, da mußte ich auf die Onvista Seite wechseln. Damit kann nun jeder sein Wikifolio auf ein ausgeglichenes Risiko prüfen und umschichten lassen. Du hast vor langer Zeit geschrieben, daß Du Dir die Berechtigung für offizielle Wikifolio API beschafft hast. Wie ist da der Status?. Kannst Du Dich bereits darüber in Deinem produktive Wikifolio über das Zertifikat einwählen?. Ich habe nun auch die Genehmigung zur Nutzung angefordert und möchte mein produktives Wikifolio damit über unsere Software TopRoboFolio pflegen. Kannst Du mir kurz beschreiben wie das abläuft. Ich nehme an ich bekomme ein Zertifikat, daß ich in meinem Vault Server implementieren muß. Über dieses sollte dann mein Server eine Authentifizierung beim Wikifolio Server über das offizielle Wikifolio API schaffen. Und über diese Verbindung sollten dann Limit Käufe/Verkäufe möglich sein ?. Freue mich, wieder was von Dir zu hören,

JoeGithub53 commented 4 days ago

Hallo Henrydatei, habe über Wikifolio die Schlüssel für die Nutzung der offiziellen API bekommen. Kannst Du mir ein paar Tipps geben, wie ich mich über diese API bei Wikifolio anmelden kann?

henrydatei commented 3 days ago

https://github.com/henrydatei/wikifolio-trading-api