25.04.2020, 22:25
EOD Daten download ..sind meisten kostenlos abrufbar;
Ich selbst verwende den bezahlten datenfeed von IB + Agenatrader Andromeda, sowie die TWS. Python for finance als Einsatz im Beispiel.
Python in Anwendung mit etwas script als Beispiel:
Darstellung mit EMA(10), EMA(20) + Adj Close Daten + Grafik
Erfahrung Python und IDLE interpreter mit diesen script Zeilen:
----------------------------------------------------------------------
# C:\Python27\Tools\Scripts\filename.py
import datetime as dt
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
from matplotlib import style
#from matplotlib.finance import candlestick_ohlc
from pandas.plotting import register_matplotlib_converters
register_matplotlib_converters()
import pandas as pd
import pandas_datareader as web
style.use('ggplot')
###--------------------------------------
### read symbols from file DaxSymb.csv
###--------------------------------------
tickers= pd.read_csv(file, parse_dates=True, index_col=0)
tickers1= pd.read_csv(file)
print(tickers,'\n','----------')
print(tickers1)
###--------------------------------------
start = dt.datetime(2019,1,1)
end = dt.datetime(2020,4,24)
###--------------------------------------
fName='ALV.DE'
###--------------------------------------
df = web.DataReader(fName,'yahoo',start,end)
df.to_csv(fName +'.csv')
###--------------------------------------
###print(df)
###print(fName + '.csv')
###--------------------------------------
df = pd.read_csv(fName+'.csv', parse_dates=True, index_col =0)
df['20ma'] = df['Adj Close'].rolling(window=20, min_periods=0).mean()
df['10ma'] = df['Adj Close'].rolling(window=10, min_periods=0).mean()
###--------------------------------------
print(df)
ax1 = plt.subplot2grid((6,1),(0,0),rowspan=5,colspan=1)
ax2 = plt.subplot2grid((6,1),(5,0),rowspan=1,colspan=1, sharex=ax1)
ax1.plot(df.index, df['Adj Close'])
ax1.plot(df.index, df['10ma'])
ax1.plot(df.index, df['20ma'])
ax2.bar(df.index, df['Volume'])
df.plot()
plt.show()
#----------------------------------------------------------------------
print: das sind die EOD Daten 5 lines start, 5 lines end EOD
High Low ... 20ma 10ma
Date ...
2019-01-02 175.559998 171.960007 ... 167.464111 167.464111
2019-01-03 175.220001 172.539993 ... 166.583733 166.583733
2019-01-04 178.020004 172.960007 ... 167.629985 167.629985
2019-01-07 178.240005 174.600006 ... 167.808613 167.808613
2019-01-08 178.179993 175.440002 ... 167.950241 167.950241
... ... ... ... ... ...
2020-04-20 168.179993 163.160004 ... 155.817002 161.374001
2020-04-21 165.259995 160.679993 ... 157.145002 162.572000
2020-04-22 164.339996 160.279999 ... 158.611002 162.842000
2020-04-23 162.580002 158.740005 ... 158.948002 162.508000
2020-04-24 159.139999 155.139999 ... 158.888001 161.986000
[331 rows x 8 columns]
Diese Daten stehen als csv file für weitere Auswertungen zur Verfügung.
Python liefert weitere Funktionen fürs trading.
Die Grafik zeigt die ausgewählten Daten.
Zur Vertiefung gibts auf youtube Erweiterungen von Sentdex
Ich selbst verwende den bezahlten datenfeed von IB + Agenatrader Andromeda, sowie die TWS. Python for finance als Einsatz im Beispiel.
Python in Anwendung mit etwas script als Beispiel:
Darstellung mit EMA(10), EMA(20) + Adj Close Daten + Grafik
Erfahrung Python und IDLE interpreter mit diesen script Zeilen:
----------------------------------------------------------------------
# C:\Python27\Tools\Scripts\filename.py
import datetime as dt
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
from matplotlib import style
#from matplotlib.finance import candlestick_ohlc
from pandas.plotting import register_matplotlib_converters
register_matplotlib_converters()
import pandas as pd
import pandas_datareader as web
style.use('ggplot')
###--------------------------------------
### read symbols from file DaxSymb.csv
###--------------------------------------
tickers= pd.read_csv(file, parse_dates=True, index_col=0)
tickers1= pd.read_csv(file)
print(tickers,'\n','----------')
print(tickers1)
###--------------------------------------
start = dt.datetime(2019,1,1)
end = dt.datetime(2020,4,24)
###--------------------------------------
fName='ALV.DE'
###--------------------------------------
df = web.DataReader(fName,'yahoo',start,end)
df.to_csv(fName +'.csv')
###--------------------------------------
###print(df)
###print(fName + '.csv')
###--------------------------------------
df = pd.read_csv(fName+'.csv', parse_dates=True, index_col =0)
df['20ma'] = df['Adj Close'].rolling(window=20, min_periods=0).mean()
df['10ma'] = df['Adj Close'].rolling(window=10, min_periods=0).mean()
###--------------------------------------
print(df)
ax1 = plt.subplot2grid((6,1),(0,0),rowspan=5,colspan=1)
ax2 = plt.subplot2grid((6,1),(5,0),rowspan=1,colspan=1, sharex=ax1)
ax1.plot(df.index, df['Adj Close'])
ax1.plot(df.index, df['10ma'])
ax1.plot(df.index, df['20ma'])
ax2.bar(df.index, df['Volume'])
df.plot()
plt.show()
#----------------------------------------------------------------------
print: das sind die EOD Daten 5 lines start, 5 lines end EOD
High Low ... 20ma 10ma
Date ...
2019-01-02 175.559998 171.960007 ... 167.464111 167.464111
2019-01-03 175.220001 172.539993 ... 166.583733 166.583733
2019-01-04 178.020004 172.960007 ... 167.629985 167.629985
2019-01-07 178.240005 174.600006 ... 167.808613 167.808613
2019-01-08 178.179993 175.440002 ... 167.950241 167.950241
... ... ... ... ... ...
2020-04-20 168.179993 163.160004 ... 155.817002 161.374001
2020-04-21 165.259995 160.679993 ... 157.145002 162.572000
2020-04-22 164.339996 160.279999 ... 158.611002 162.842000
2020-04-23 162.580002 158.740005 ... 158.948002 162.508000
2020-04-24 159.139999 155.139999 ... 158.888001 161.986000
[331 rows x 8 columns]
Diese Daten stehen als csv file für weitere Auswertungen zur Verfügung.
Python liefert weitere Funktionen fürs trading.
Die Grafik zeigt die ausgewählten Daten.
Zur Vertiefung gibts auf youtube Erweiterungen von Sentdex