Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert sind; Die von diesem Forum gesetzten Cookies düfen nur auf dieser Website verwendet werden und stellen kein Sicherheitsrisiko dar. Cookies auf diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Kostenlose Historische EOD Daten
#61
Notiz 

RE: Kostenlose Historische EOD Daten

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


Angehängte Dateien    
#62
Notiz 

RE: Kostenlose Historische EOD Daten

python - Test auf Überschneidungen (intersections )

>Test von 2 Funktionen auf Überschneidungen (script mit Beispiel)
>>spätere Anwendung z.B. EMA10 mit EMA20 auf Tagesdaten (EOD timeseries); siehe Beispiel zuvor.
>>oder buy/sell Signale mit indiv. Berechnungen
(ich weiss, es gibt bereits viele Tools; meist können sie aber nicht angepasst werden auf die indiv. Forderungen eines traders oder jede Anpassung kostet und rechnet sich nicht für Private).

Ref: weitere Abhandlungen sind zu finden unter:
https://stackoverflow.com/questions/2067...-two-lines

script:  ....erstaunlich....es läuft auf anhieb :-))

import numpy as np
import matplotlib.pyplot as plt
"""
Sukhbinder
5 April 2017
Based on:   
"""

def _rect_inter_inner(x1,x2):
    n1=x1.shape[0]-1
    n2=x2.shape[0]-1
    X1=np.c_[x1[:-1],x1[1:]]
    X2=np.c_[x2[:-1],x2[1:]]   
    S1=np.tile(X1.min(axis=1),(n2,1)).T
    S2=np.tile(X2.max(axis=1),(n1,1))
    S3=np.tile(X1.max(axis=1),(n2,1)).T
    S4=np.tile(X2.min(axis=1),(n1,1))
    return S1,S2,S3,S4

def _rectangle_intersection_(x1,y1,x2,y2):
    S1,S2,S3,S4=_rect_inter_inner(x1,x2)
    S5,S6,S7,S8=_rect_inter_inner(y1,y2)

    C1=np.less_equal(S1,S2)
    C2=np.greater_equal(S3,S4)
    C3=np.less_equal(S5,S6)
    C4=np.greater_equal(S7,S8)

    ii,jj=np.nonzero(C1 & C2 & C3 & C4)
    return ii,jj

def intersection(x1,y1,x2,y2):
    """
INTERSECTIONS Intersections of curves.
  Computes the (x,y) locations where two curves intersect.  The curves
  can be broken with NaNs or have vertical segments.
usage:
x,y=intersection(x1,y1,x2,y2)
    Example:
    a, b = 1, 2
    phi = np.linspace(3, 10, 100)
    x1 = a*phi - b*np.sin(phi)
    y1 = a - b*np.cos(phi)
    x2=phi   
    y2=np.sin(phi)+2
    x,y=intersection(x1,y1,x2,y2)
    plt.plot(x1,y1,c='r')
    plt.plot(x2,y2,c='g')
    plt.plot(x,y,'*k')
    plt.show()
    """
    ii,jj=_rectangle_intersection_(x1,y1,x2,y2)
    n=len(ii)

    dxy1=np.diff(np.c_[x1,y1],axis=0)
    dxy2=np.diff(np.c_[x2,y2],axis=0)

    T=np.zeros((4,n))
    AA=np.zeros((4,4,n))
    AA[0:2,2,:]=-1
    AA[2:4,3,:]=-1
    AA[0::2,0,:]=dxy1[ii,:].T
    AA[1::2,1,:]=dxy2[jj,:].T

    BB=np.zeros((4,n))
    BB[0,:]=-x1[ii].ravel()
    BB[1,:]=-x2[jj].ravel()
    BB[2,:]=-y1[ii].ravel()
    BB[3,:]=-y2[jj].ravel()

    for i in range(n):
        try:
            T[:,i]=np.linalg.solve(AA[:,:,i],BB[:,i])
        except:
            T[:,i]=np.NaN


    in_range= (T[0,:] >=0) & (T[1,:] >=0) & (T[0,:] <=1) & (T[1,:] <=1)

    xy0=T[2:,in_range]
    xy0=xy0.T
    return xy0[:,0],xy0[:,1]


if __name__ == '__main__':

    # a piece of a prolate cycloid, and am going to find
    a, b = 1, 2
    phi = np.linspace(3, 10, 100)
    x1 = a*phi - b*np.sin(phi)
    y1 = a - b*np.cos(phi)

    x2=phi
    y2=np.sin(phi)+2
    x,y=intersection(x1,y1,x2,y2)
    plt.plot(x1,y1,c='r')
    plt.plot(x2,y2,c='g')
    plt.plot(x,y,'*k')
    plt.show()


Angehängte Dateien    
#63

RE: Kostenlose Historische EOD Daten

Kostenberechnung Aktien- und / Optionen
bei Comdirect -->mit excel VBA
bei TWS --> muss nach der Formel suchen ?
--------------------------------------------
Case 1: ' comdirect
'---------------------------------------------------
baseCost = 4.9: max1 = 59.9: min1 = 9.9
costActual = baseCost + 0.0025 * (Cells(35, ActiveCell.Column) * Cells(36, ActiveCell.Column))

If costActual < min1 Then costActual = 9.9
If costActual > max1 Then costActual = 59.9
If costActual > min1 And costActual < max1 Then cost = costActual

costRabatt = costActual * 0.85 'bei 15 % Rabatt

breakEven = ActiveCell.Offset(-1, 0) + 2 * (costRabatt / ActiveCell.Offset(-2, 0)) ' KK + 2 x costRabatt = B/E
msgStr = "comdirect"

Case 2: ' TWS
Kauf heute HEI1 (Heidelbergcement) 500 stk (smart) Kosten 35.76 € + Option 5 Kontrakte 10 €
--> muss noch nach der Berechnungsmethode suchen
- kann gerne auch gepostet werden thx
#64
Notiz 

RE: Kostenlose Historische EOD Daten

CBOE Daten als download in excel csv file
und mit Python auswerten,.....
läuft in IDLE und notebook jupyter

Anmerkung:
nach dem download der script müssen diese umbenannt werden
für python:  CBOE_VIX_Graph_180820.py
für jupyter Notebook:  CBOE_VIX_Graph_180820.ipynb

Grafik ist dazu bei bimbes (Stillhalter....) 18.8.20 abgebildet


Angehängte Dateien
.txt   CBOE_VIX_Graph_180820py.txt (Größe: 1,77 KB / Downloads: 8)
.txt   CBOE_VIX_Graph_180820.ipynb.txt (Größe: 48,46 KB / Downloads: 8)
#65
Notiz 

RE: Kostenlose Historische EOD Daten

EOD data von ALV (Dax30)
---------------------------------
dieses Beispiel als scriplet erzeugt aus Datenreihen buy/sell Signale
mit grafischer Darstellung.
Lauffähiges file für Python IDLE oder Notebook jupyter im Anhang:
Charts ebenso
---------------------------------
Hat jemand im Forum py script für Optmierungsläufe der Parameter ?
feedback jeder Art wäre hilfreich 
---------------------------------

py_macd_buy_sell_signal.txt   -->  *.txt  in  *.py umbenennen
(file ist virenfrei)
 
-------------------------------------------------------------------- 
Besprechung zur Generierung von crossover Signalen 
-------------------------------------------------------------------- 
für Datenreihen aus: --High, Low, Close, Adj Close, Volume
für Indikator-Reihen z.B. : -- macd, sma, ema, etc.....
--------------------------------------------------------------------
scriplet:
erzeugen eines macd buy/sell signals :
###-------------------------------------------------------
sma12 = df['Adj Close'].rolling(12).mean()
sma26 = df['Adj Close'].rolling(26).mean()
MACD = sma12 -sma26
signal = MACD.ewm(span=9, adjust=False).mean()
###-------------------------------------------------------
# create new columns
df['MACD'] = MACD
df['Signal Line'] = signal
#-----------------------------
### generate buy sell signal from macd crossover
def buy_sell(signal):
    Buy=[]
    Sell=[]
    flag=-1
    for i in range(0,len(signal)):
        if signal['MACD'][i] > signal['Signal Line'][i]:
            Sell.append(np.nan)
            if flag != 1:
                Buy.append(signal['Close'][i])
                flag = 1
            else:
                Buy.append(np.nan)
        #------------------------------------------------
        elif signal['MACD'][i] < signal['Signal Line'][i]:
            Buy.append(np.nan)
            if flag != 0:
                Sell.append(signal['Close'][i])
                flag = 0
            else:
                Sell.append(np.nan)
        else:
            Buy.append(np.nan)
            Sell.append(np.nan)
    return(Buy, Sell)
#-------------------------------------------------
#  store macd buy and sell signal
a = buy_sell(df)
df['Buy_Signal']= a[0]
df['Sell_Signal']= a[1]
#-------------------------------------------------
# visually show stock buy sell data
plt.figure(figsize=(10,4.5))
plt.scatter(df.index,df['Buy_Signal'], color='green',label='macd Buy', marker='^',alpha=1)
plt.scatter(df.index,df['Sell_Signal'], color='red',label='macd Sell', marker='v',alpha=1)
plt.plot(df['MACD'], label='SMA26', alpha = 0.9)
plt.plot(df['Signal Line'], label='Close Price', alpha = 0.9)
plt.plot(df['Close'], label='Close Price', alpha = 0.9)
titel = symb1 + '  Price ' + '( Dax30 )' + '  \n' + 'macd buy/sell signal on close '
plt.title(titel)
plt.xlabel('Date as index -> 2.1.20 - 28.8.20')
plt.ylabel('Close Price')
plt.legend(loc='upper left')
plt.show()
#-------------------------------------------------


Angehängte Dateien    

.txt   py_macd_buy_sell_signal.txt (Größe: 3,33 KB / Downloads: 1)
#66

RE: Kostenlose Historische EOD Daten

EOD backtesting link gefunden
im Chartfenster ist die Zeitachse verschiebbar
(sind Daten 2004 - 2012 hinterlegt)

py file--> in jupyter ausprobiert >> sehr impressive <<

Garfik : bt.plot()
Ausdruck (Auswertung): print(stats)

https://pypi.org/project/Backtesting/
#67

RE: Kostenlose Historische EOD Daten

Ich habe Jupiter laufen. Aber wenig Zeit momentan. Ist das Python 3 oder noch 2?
#68
Notiz 

RE: Kostenlose Historische EOD Daten

Ich verstehe das hier nicht.
Hier werden wild code snippets gepostet um was zu tun oder zu erreichen?  

@rienneva: laut Doku will das Projekt python 3.4  oder höher.

__________________
Forum-Besserwisser und Wissenschafts-Faschist
#69
Notiz 

RE: Kostenlose Historische EOD Daten

(30.08.2020, 16:35)rienneva schrieb: Ich habe Jupiter laufen. Aber wenig Zeit momentan. Ist das Python 3 oder noch 2?


----------------------------------------------------------
die scripts + lets laufen bei mir mit
Python 3.7.6 aktuelle Version - 64 bit auf win10 -
'3.7.6 (default, Jan 8 2020, 20:23:39) [MSC v.1916 64 bit (AMD64)]'
------------------------------
IDLE
------
jupyter Notebook aktuell
zum Prüfen von script Teilen gut zum testen :-)
----------------------------------------------------------

Absicht: für Privatanwender
EOD Daten Abruf
zur Auswertung nach eigenen Vorstellungen
mit excel oder python
---------------------------
scripts für diese apps austauschenen / erweitern / ändern jederzeit (selbst)

es gibt Profi-Apps:
TWS(IB), ProRealtime, TradingDesk Boerse Stuttgart,
Agenatrader, u.a.......um nur einige zu nennen
#70

RE: Kostenlose Historische EOD Daten

info update für multi symbol data:
EOD Daten free über yahoo (Open,High,Low,Close,Volume)
------------------------------------------------------------------
Ref: https://pypi.org/project/yfinance/
------------------------------------------------------------------
Ziel:.............eigene Strategien ausprobieren
Zeitrahmen:..getestet 1-1-2000 bis 4-3-21
Tool:.............jupyter
Sprache:.......python
code:...........3-zeilig
--------------------------------------
import yfinance as yf
data = yf.download("SPY AAPL MSFT", start="2000-01-01", end="2021-03-04")
print(data)
--------------------------------------
Beispiel Extrakt
*********************100%***********************] 3 of 3 completed
Adj Close Close \
AAPL MSFT SPY AAPL MSFT
Date
1999-12-31 0.790705 37.076923 99.116180 0.917969 58.375000
....


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
Notiz Open Source Tools und Daten Lancelot 43 10.505 09.01.2024, 15:08
Letzter Beitrag: Lancelot
Notiz suche historische Leitzinsen der Bundesbank seit 1965 frank 2 2.475 22.09.2020, 19:55
Letzter Beitrag: muchmoney
Notiz EOD Daten Feeds atze2000 7 8.675 08.02.2019, 12:59
Letzter Beitrag: Noni-Binder
Notiz Historische Indexzusammensetzung atze2000 4 5.361 31.01.2019, 10:31
Letzter Beitrag: pjf
Notiz Free Future Daten atze2000 0 2.119 11.01.2019, 13:27
Letzter Beitrag: atze2000
Notiz Cot Daten atze2000 2 3.444 10.01.2019, 19:46
Letzter Beitrag: atze2000

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste