鍖椾含婀跨柟鍖婚櫌缃戠珯 http://pf.39.net/bdfyy/bdfyw/210426/8890895.html前言
在股票的交易中,我们最常使用的图其实是K线图,比如什么十字星,什么乌鸦等都是比较常用的参考指标,这些形态在我们判断市场运行趋势时,起到了非常重要的作用。所以,本篇将详细讲解TA-Lib库识别K线的各种形态。
两只乌鸦首先,我们将介绍最简单的K线形态:两只乌鸦(TwoCrows),也就是以3日K线为参考,第一日长阳,第二日高开收阴,第三日再次高开收阴,同时收盘比前一日收盘价低,出现该形态预示着股价将要下跌。
判断两只乌鸦形态,我们使用TA-Lib库的talib.CDL2CROWS()方法。下面,我们来获取通过一个股票标记两只乌鸦的K线形态,具体代码如下:
importpandasaspdimporttalibimportmatplotlib.pyplotaspltimportmatplotlib.tickerastickerimportmpl_financeasmpffig=plt.figure(figsize=(12,8))plt.rcParams[font.sans-serif]=[SimHei]ax=fig.add_subplot()df=pd.read_excel("歌尔股份year.xlsx")df[date]=pd.to_datetime(df[date])df[date]=df[date].apply(lambdax:x.strftime(%Y-%m-%d))df[tow_crows]=talib.CDL2CROWS(df[open].values,df[high].values,df[low].values,df[close].values)pattern=df[(df[tow_crows]==)
(df[tow_crows]==-)]mpf.candlestick2_ochl(ax,df["open"],df["close"],df["high"],df["low"],width=0.6,colorup=r,colordown=green,alpha=1.0)forkey,valindf.items():forindex,todayinpattern.iterrows():x_posit=df.index.get_loc(index)ax.annotate("{}\n{}".format("两只乌鸦",today["date"]),xy=(x_posit,today["high"]),xytext=(0,pattern["close"].mean()),xycoords="data",fontsize=18,textcoords="offsetpoints",arrowprops=dict(arrowstyle="simple",color="r"))ax.xaxis.set_major_locator(ticker.MaxNLocator(20))defformat_date(x,pos=None):ifx0orxlen(df[date])-1:returnreturndf[date][int(x)]ax.xaxis.set_major_formatter(ticker.FuncFormatter(format_date))plt.setp(plt.gca().get_xticklabels(),rotation=45,horizontalalignment=right)plt.show()
运行之后,显示的效果如下图所示:
在这里插入图片描述当然,这个图是歌尔股份的K线图,两只乌鸦形态后既然是涨的,哈哈哈,这可能是对股市看技术指标的人莫大的讽刺。这里,博主只是教会大家使用工具,如果工具都准确肯定没有亏损的人了。说个题外话,其实博主不看指标,在这里教大家看指标,总感觉把你们带坑里去了。
三只乌鸦我们的K线图的乌鸦并不只有两只,还有三只的。三只乌鸦(ThreeBlackCrows)的定义,也是看三日的K线,也就是连续三根阴线,而且每日收盘价都下跌且接近最低价,同时每日开盘价都在上根K线实体内,同样预示股价下跌。
TA-Lib库提供给我们判断三只乌鸦的方法为talib.CDL3BLACKCROWS(),使用方法只需要将两只乌鸦的方法替换成CDL3BLACKCROWS即可,具体如下:
df[three_crows]=talib.CDL3BLACKCROWS(df[open].values,df[high].values,df[low].values,df[close].values)pattern=df[(df[three_crows]==)
(df[three_crows]==-)]
当前还有标记的文字“两只乌鸦”改为“三只乌鸦”。运行之后,显示的效果如下图所示:
在这里插入图片描述需要注意的是,这里获取股票改为sz万年青,因为大多数股票很少有三只乌鸦的形态,博主测试了20个股票才找到一个三只乌鸦形态的股票。
乌云压顶TA-Lib库提供给我们的乌云压顶形态的计算方法:talib.CDLDARKCLOUDCOVER()。它是二日K线指标,定义为第一日长阳,第二日开盘价高于前一日最高价,同时收盘价处于前一日实体中部以下,预示着股票下跌。
同样的这里也只需要替换方法,改二行代码即可:
df[dark_cloud]=talib.CDLDARKCLOUDCOVER(df[open].values,df[high].values,df[low].values,df[close].values)pattern=df[(df[dark_cloud]==)
(df[dark_cloud]==-)]
同样的,也需要将标记的文字“三只乌鸦”替换成“乌云压顶”。运行之后,显示的效果如下图所示:
在这里插入图片描述这里测试更换为歌尔股份,前面的万年青最近几年没有该形态。
十字星TA-Lib库提供给我们的十字星方法为talib.CDLDOJISTAR()。它是一日K线模式,定义为开盘价与收盘价基本相等,同时上下影线不会很长,预示着当前趋势反转。
同样的这里也只需要替换方法,改二行代码即可:
df[star]=talib.CDLDOJISTAR(df[open].values,df[high].values,df[low].values,df[close].values)pattern=df[(df[star]==)
(df[star]==-)]
这里也用歌尔股份进行绘制,也需要将上面文字“乌云压顶”改为“十字星”。运行之后,显示的效果如下图所示:
在这里插入图片描述预览时标签不可点收录于话题#个上一篇下一篇