| 25.04.2020, 22:25 (Dieser Beitrag wurde zuletzt bearbeitet: 25.04.2020, 22:27 von Noni-Binder.
Bearbeitungsgrund: Ergänzung
)
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)
[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
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).
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)
| 10.08.2020, 13:23 (Dieser Beitrag wurde zuletzt bearbeitet: 10.08.2020, 13:24 von Noni-Binder.
Bearbeitungsgrund: Ergänzung
)
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
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
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
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()
#-------------------------------------------------
| 30.08.2020, 21:54 (Dieser Beitrag wurde zuletzt bearbeitet: 30.08.2020, 22:10 von Noni-Binder.
Bearbeitungsgrund: Ergänzung
)
(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
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
....