habe zwar schon einige kurse (automate the boring stuff , etc ) mehr oder weniger durch aber hänge immer wieder mal an einem thema deshalb dieser thread ..
kurzer überblick ich arbeite an meinem ersten richtigen projekt, eine webapp (StockScreener) ..
sprich die webapp zieht aktien kurse über die API von einem anbieter und speichert sie in eine pandas dataframe , danach wird eine funktion ausgeführt die die relative stärke der einzelnen sektoren(technologie,immobilien,finanz,etc) mit dem gesamt markt indemfall dem SP500 index abgleicht und dann vom stärksten zum schwächsten hin sortiert wird ,
dass selbe spiel dannochmal mit den einzelnen aktien pro sektor ... die ausgabe der daten werden dann in einer dashapp mit grafiken und tabellen dargestellt.
was bereits schon funktioniert also jetzt skript technisch noch nicht als webapp.. also rein das ausführen der funktionen klappt schonmal
Code: Alles auswählen
def get_ticker(tickers):
'die daten werden von der API gelesen und in pandas dataframes abgespeichert'
def rsc_algo(dataframe,timeframe):
'algorithmus zur berechnung der relativen stärke in zeitraum xy spuckt eine sortierte tupleliste aus'
def df_to_sql(dataframe,name):
'legt eine sqlite datenbank mit den aktien werten an'
def sql_to_df(name):
'zieht die daten aus der sql und wandelt sie in pandas dataframe um zur späteren weiterverarbeitung'
und wenn die funktion dann erfolgreich abgeschlossen ist mit den weitern funktionen die daten verarbeite also voll automatisch... tappe da ziemlich im dunklen
würde am liebsten mit der Apscheduler https://apscheduler.readthedocs.io/en/stable/ library arbeiten da diese auch von heroku empfohlen wird ?
bin momentan im jupyter notebook am herumdoktorn umzu verstehen wie ich eine funktion schedulen kann und den nächsten schritt im code zb. eine andere funktion aufgerufen wird nachdem die scheduled
funktion erfolgreich ausgeführt worden ist...
was zumindest so im trockenen funktioniert ist wenn ich eine funktion einfach in die @sched funktion dranhänge , aber da meine funktionen variablen brauchen bzw. ich diese
auch gerne in variablen speichern will denke ich ist dass keine lösung ?
Code: Alles auswählen
from apscheduler.schedulers.blocking import BlockingScheduler
from apscheduler.schedulers.background import BackgroundScheduler
@sched.scheduled_job('interval', minutes=1)
def once_per_min():
print('test')
test() # einfach die funktion unten anbinden ist sicher nicht die beste lösung bzw. wird warscheinlich zu neune problemen führen....
def test():
print('done')
nochmal kurz der ablauf des codes sollte so sein:
1. API Daten ziehen (an jedem wochentag zur Uhrzeit X)
2. Daten in sql speichern
3. Daten von Sql ziehen und berechnen
4. berechnete daten in dashapp anzeigen (grafiken/tables)