mplfinance icon indicating copy to clipboard operation
mplfinance copied to clipboard

What is the most elegant way to implement ribbons?

Open fxhuhn opened this issue 9 months ago • 4 comments

I am currently thinking about the most elegant way to display 1-2 scatter lines below the chart. Are there any ideas from others who have already implemented this?

These are my first ideas: image

import mplfinance as mpf

output = sp_500 ['2021-01-01':].copy()

output["sma_above"] = np.where (output.Close > output.sma, output.sma, np.nan)
output["sma_below"] = np.where (output.Close < output.sma, output.sma, np.nan)

output["ribbon_above"] = np.where (output.Close > output.sma, 1, np.nan)
output["ribbon_below"] = np.where (output.Close < output.sma, 1, np.nan)



add_plt = [
    mpf.make_addplot(output["sma_above"],color="green"),
    mpf.make_addplot(output["sma_below"],color="red"),
    mpf.make_addplot(output["ribbon_above"], panel=1, color="g", type='scatter'),    
    mpf.make_addplot(output["ribbon_below"], panel=1, color="r", type='scatter'),    
    ]

mpf.plot(
    output,
    addplot=add_plt,
    figsize=(16, 9),
    style="charles",
    type="candle",
    title='S&P 500 - weekly',
    datetime_format='%d.%m.%y',xrotation=45,
)

fxhuhn avatar Apr 26 '24 07:04 fxhuhn

@fxhuhn Markus, I don't understand what you mean by ribbons here. Ribbons that I have seen are typically called "moving average ribbons" and look like this: Is this what you are talking about?

image

DanielGoldfarb avatar Apr 28 '24 01:04 DanielGoldfarb

oh @DanielGoldfarb sorry for the confusion. That's for me a rainbow ;-) I mean something similar to the bottom line from this chart: image

fxhuhn avatar Apr 28 '24 05:04 fxhuhn

I think what you've done makes a lot of sense, but perhaps try type='bar' instead of type='scatter'?

DanielGoldfarb avatar May 01 '24 20:05 DanielGoldfarb

You're right for the bars, although the circles also look quite good in the first attempt. Do you have any idea how to implement multiple stacked rows with these signals?

Is it possible to set the height of the panel so that the distances to the rows are minimal?

fxhuhn avatar May 03 '24 13:05 fxhuhn