fixed:advanced config. added. feature: fill area between traces by advanced configuration.
This commit is contained in:
parent
b9f3410d8b
commit
ecadfdd98e
@ -236,12 +236,20 @@ def create_plotconfig(indicators1: List[str], indicators2: List[str],
|
||||
:param plot_config: Dict of Dicts containing advanced plot configuration
|
||||
:return: plot_config - eventually with indicators 1 and 2
|
||||
"""
|
||||
|
||||
if plot_config:
|
||||
if indicators1:
|
||||
plot_config['main_plot'] = {ind: {} for ind in indicators1}
|
||||
for ind in indicators1:
|
||||
#add indicators with no advanced plot_config.
|
||||
if ind not in plot_config['main_plot'].keys():
|
||||
plot_config['main_plot'][ind] = {}
|
||||
if indicators2:
|
||||
plot_config['subplots'] = {'Other': {ind: {} for ind in indicators2}}
|
||||
#'Other' key not provided in strategy.plot_config.
|
||||
if 'Other' not in plot_config['subplots'].keys():
|
||||
plot_config['subplots'] = {'Other': plot_config['subplots']}
|
||||
for ind in indicators2:
|
||||
#add indicators with no advanced plot_config
|
||||
if ind not in plot_config['subplots']['Other'].keys():
|
||||
plot_config['subplots']['Other'][ind] = {}
|
||||
|
||||
if not plot_config:
|
||||
# If no indicators and no plot-config given, use defaults.
|
||||
@ -255,6 +263,8 @@ def create_plotconfig(indicators1: List[str], indicators2: List[str],
|
||||
'main_plot': {ind: {} for ind in indicators1},
|
||||
'subplots': {'Other': {ind: {} for ind in indicators2}},
|
||||
}
|
||||
|
||||
#!!!NON SENSE - isnt it?
|
||||
if 'main_plot' not in plot_config:
|
||||
plot_config['main_plot'] = {}
|
||||
|
||||
@ -280,6 +290,7 @@ def generate_candlestick_graph(pair: str, data: pd.DataFrame, trades: pd.DataFra
|
||||
:return: Plotly figure
|
||||
"""
|
||||
plot_config = create_plotconfig(indicators1, indicators2, plot_config)
|
||||
print(plot_config)
|
||||
|
||||
rows = 2 + len(plot_config['subplots'])
|
||||
row_widths = [1 for _ in plot_config['subplots']]
|
||||
@ -370,6 +381,29 @@ def generate_candlestick_graph(pair: str, data: pd.DataFrame, trades: pd.DataFra
|
||||
del plot_config['main_plot']['bb_upperband']
|
||||
del plot_config['main_plot']['bb_lowerband']
|
||||
|
||||
#fill area betwenn traces i.e. for ichimoku
|
||||
if 'fill_area' in plot_config.keys():
|
||||
for area in plot_config['fill_area']:
|
||||
#!error: need exactly 2 trace
|
||||
traces = area['traces']
|
||||
color = area['color']
|
||||
if traces[0] in data and traces[1] in data:
|
||||
trace_b = go.Scatter(
|
||||
x=data.date,
|
||||
y=data.get(traces[0]),
|
||||
showlegend=False,
|
||||
line={'color': 'rgba(255,255,255,0)'},
|
||||
)
|
||||
trace_a = go.Scatter(
|
||||
x=data.date,
|
||||
y=data.get(traces[1]),
|
||||
name=f'{traces[0]} * {traces[1]}',
|
||||
fill="tonexty",
|
||||
fillcolor=color,
|
||||
line={'color': 'rgba(255,255,255,0)'},
|
||||
)
|
||||
fig.add_trace(trace_b)
|
||||
fig.add_trace(trace_a)
|
||||
# Add indicators to main plot
|
||||
fig = add_indicators(fig=fig, row=1, indicators=plot_config['main_plot'], data=data)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user