matplotlib / mplfinance

Financial Markets Data Visualization using Matplotlib
https://pypi.org/project/mplfinance/
Other
3.71k stars 635 forks source link

How do I create a buy indicator using mplfinance? #660

Open CamTheMyth opened 8 months ago

CamTheMyth commented 8 months ago

Ask anything you want about mplfinance usage, project philosophy and/or priorities, or anything else related to mplfinance. How do I create a buy indicator using mplfinance that displays an arrow under a candle where the short and long term moving averages meet? Screenshot 2024-02-24 000308 download

DanielGoldfarb commented 8 months ago

mplfinance presently does not contain any code to find and indicate where moving averages are meeting or crossing.

You will need to access the moving average data, and write some code yourself to find where they meet, and then use mpf.make_addplot(...type='scatter'...) to plot markers where you want them.

There are two ways to access the moving average data:

  1. Call mpf.plot() twice. The first time, as above, but using the return_calculated_values kwarg. This will give you the moving averages that mplfinance calculated. You can then use that data to find where they cross, and then call mpf.plot() again with the additional mpf.make_addplot(...type='scatter'...) to plot markers to highlight where the moving averages meet.

  2. Calculate the moving averages yourself, find where they meet, and then call mpf.plot() with the appropriate mpf.make_addplot(...type='scatter'...) to highlight where the moving averages meet.

I recommend method 2, because it is simpler.
Using Pandas, the code to calculate a simple moving average is easy and can be seen here.
(or, if you want an exponential moving average, see here).