[英]How to Add Candlestick Pattern Marker on Stock Close Price Data Chart using Python's Matplotlib?
#Importing Libraries
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import yfinance as yf
import talib
plt.style.use('fivethirtyeight')
#Collecting Data from Yahoo Finance
stock= 'COALINDIA.NS'
df= yf.download(stock,period='1mo', interval='1d')
#Using talib library to find instances where DOJI Candlestick Pattern showed up
doji = talib.CDLDOJI(df['Open'], df['High'], df['Low'], df['Close'])
df['Doji']= doji
#Using a variable to store all instances where the DOJI Candlestick Pattern was true (i.e. value > 0)
DojiSignal=[]
for i in range(0, len(df['Doji'])):
if df['Doji'][i] > 0:
DojiSignal.append(df['Doji'][i])
#Plotting Close price of the stock along with the days where DOJI Candlestick Pattern showed up (i.e. was TRUE)
figure, ax = plt.subplots(figsize=(13, 6))
plt.plot(df['Close'], markevery= DojiSignal)
plt.show()
你好,
我正在嘗試執行以下操作:
第 4 點和第 5 點是我認為我正在掙扎的地方。
如果您能幫我解釋一下需要改進的地方,我將不勝感激?
謝謝
完全披露:我是 python 庫mplfinance (MatPlotLib Finance) 的維護者,我建議使用該庫在股票市場數據上繪制信號標記。
要為上面的代碼示例使用 mplfinance 制作類似的圖:
將十字星信號的值設置為比信號當天的低價略低的價格。 這會導致信號標記出現在 OHLC 柱線或燭台下方(如上面的示例圖所示)。
df['Doji']
列中的所有非信號值都必須設置為float('nan')
以便這些日期的圖上不會出現信號標記。
通過df['Doji']
到mpf.make_addplot()
API和采取其輸出,並將它傳遞到addplot
kwarg在mpf.plot()
API如下:
mpf.make_addplot(df['Doji']) mpf.plot(df,addplot=ap)
你可以在這里找到基本用法,
以及有關如何在此處添加信號標記和其他研究的教程。
希望有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.