!pip install git+https://github.com/fxhuhn/mplfinance.git@master
Collecting git+https://github.com/fxhuhn/mplfinance.git@master
Cloning https://github.com/fxhuhn/mplfinance.git (to revision master) to /tmp/pip-req-build-bqv44p9y
Running command git clone -q https://github.com/fxhuhn/mplfinance.git /tmp/pip-req-build-bqv44p9y
Requirement already satisfied: matplotlib in /shared-libs/python3.7/py/lib/python3.7/site-packages (from mplfinance==0.12.7a18) (3.4.2)
Requirement already satisfied: pandas in /shared-libs/python3.7/py/lib/python3.7/site-packages (from mplfinance==0.12.7a18) (1.2.4)
Requirement already satisfied: python-dateutil>=2.7 in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from matplotlib->mplfinance==0.12.7a18) (2.8.1)
Requirement already satisfied: pillow>=6.2.0 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from matplotlib->mplfinance==0.12.7a18) (8.2.0)
Requirement already satisfied: cycler>=0.10 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from matplotlib->mplfinance==0.12.7a18) (0.10.0)
Requirement already satisfied: kiwisolver>=1.0.1 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from matplotlib->mplfinance==0.12.7a18) (1.3.1)
Requirement already satisfied: numpy>=1.16 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from matplotlib->mplfinance==0.12.7a18) (1.19.5)
Requirement already satisfied: pyparsing>=2.2.1 in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from matplotlib->mplfinance==0.12.7a18) (2.4.7)
Requirement already satisfied: six in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from cycler>=0.10->matplotlib->mplfinance==0.12.7a18) (1.16.0)
Requirement already satisfied: pytz>=2017.3 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from pandas->mplfinance==0.12.7a18) (2021.1)
import pandas as pd
import mplfinance as mpf
import requests
df = pd.read_csv('final_aapl_us.csv',sep = ';', parse_dates = ['Date'], decimal = '.')
df = df.rename(columns={'Datum': 'Date', 'Erster': 'Open', 'Hoch': 'High', 'Tief': 'Low', 'Schlusskurs': 'Close','Volumen': 'Volume'})
df.sort_values(by='Date', ascending=True, inplace=True)
df = df[-200:].copy()
df.set_index('Date', inplace=True)
offset = 0.016 *(df.High.max() - df.Low.min())
#day
for bull_signal in ['bull_rot', 'bull_or', 'bull_blau', 'bull_grau','bull_t', 'bull_braun', 'bull_gruen', 'bull_kreuz']:
df['signal_' + bull_signal] = df.loc[(df[bull_signal] == 1), 'Low']
for bear_signal in ['bear_rot', 'bear_or', 'bear_blau', 'bear_grau','bear_t', 'bear_braun', 'bear_gruen','bear_kreuz']:
df['signal_' + bear_signal] = df.loc[(df[bear_signal] == 1), 'High']
day_signals = [
{'signal': 'signal_bull_rot', 'size': 40, 'color': 'red', 'edgecolors': 'black', 'linewidths' : 1, 'position': -2, 'alpha': 0.3},
{'signal': 'signal_bear_rot', 'size': 40, 'color': 'red', 'edgecolors': 'black', 'linewidths' : 0, 'position': 2, 'alpha': 0.3},
{'signal': 'signal_bull_or', 'size': 40, 'color': 'orange', 'linewidths' : 0, 'position': -3},
{'signal': 'signal_bear_or', 'size': 40, 'color': 'orange', 'linewidths' : 0, 'position': 3},
{'signal': 'signal_bull_grau', 'size': 40, 'color': 'silver', 'position': -4},
{'signal': 'signal_bear_grau', 'size': 40, 'color': 'silver', 'position': 4},
{'signal': 'signal_bull_t', 'size': 10, 'color': 'grey', 'position': -4},
{'signal': 'signal_bear_t', 'size': 10, 'color': 'grey', 'position': 4},
{'signal': 'signal_bull_braun', 'size': 5, 'color': 'brown', 'position': -4},
{'signal': 'signal_bear_braun', 'size': 5, 'color': 'brown', 'position': 4},
{'signal': 'signal_bull_blau', 'size': 20, 'color': 'blue', 'position': -6},
{'signal': 'signal_bear_blau', 'size': 20, 'color': 'blue', 'position': 6},
{'signal': 'signal_bull_gruen', 'size': 20, 'color': 'green', 'position': -7},
{'signal': 'signal_bear_gruen', 'size': 20, 'color': 'green', 'position': 7},
{'signal': 'signal_bull_kreuz', 'size': 20, 'marker': 'P', 'color': 'green', 'position': -7},
{'signal': 'signal_bear_kreuz', 'size': 20, 'marker': 'P', 'color': 'red', 'position': 7},
]
add_plots = []
for day_signal in day_signals:
if df[day_signal['signal']].notna().sum() > 0:
new_signal = mpf.make_addplot( df[day_signal['signal']] + day_signal['position'] * offset,
scatter = True,
markersize = day_signal['size'],
marker = day_signal.get('marker','o'),
edgecolors = day_signal.get('edgecolors',None),
linewidths = day_signal.get('linewidths',0),
alpha = day_signal.get('alpha',1),
color=day_signal['color'])
add_plots.append(new_signal)
mpf.plot(df,type='candle',
addplot=add_plots,
figratio=(16, 7),
figscale=1.2,
datetime_format = '%d.%m.%y')