布林线与macd结合使用,布林线做t和macd做t
背景介绍:
搭建程序化交易平台的过程需要研究技术指标。
环境:
操作系统:mac
PYTHON: 3.8
IDE: pycharm
步骤:
第一步:加载库
将熊猫作为警察局导入熊猫_datareader作为网从日期时间导入日期时间,时间增量导入talibimport matplotlib.pyplot作为血小板计数从mplfinance.original_flavor导入烛台_ohlcimport matplotlib.ticker作为股票熊猫:处理股票数据
熊猫_datareader:行情数据获取api,也可以用图沙雷或者从新浪等网站获取
日期时间:获取日期
塔利班:生成技术指标
烛台_ohlc:绘制蜡烛图
matplotlib.ticker:设置x轴刻度,如果不设置,matplotlib会将没有交易的日期也显示出来
第二步:获取数据
定义股票(股票代码):#股票代码是股票代码,例子:上市 600036.ss ,深市000001 .SZ start _ date= 2019-12-01 #起始日期今天=日期时间。日期(日期时间。现在())#截止日期stock _ info=web.get _ data _雅虎(股票代码,开始日期,今天)#获取行情数据,返回数据框架股票信息=股票信息。重置索引()#默认指数是日期,这里要重置一下,为后面绘图做准备股票信息=股票信息。astype({ Date :str })#将日期列的类型设置为str,为绘图做准备返回股票_信息以下是获取招商银行(股票代码600036 .ss’)的返回结果,一共6列,日期,最高价,最低价,开盘,收盘,成交量,调整收盘
第三步:获取技术指标数据
定义获取指示符(股票代码):#创建数据帧数据=股票(股票代码)#获取macd数据[macd],数据[macd_signal],数据[macd_hist]=talib .MACD(数据[关闭]) #获取10日均线和30日均线data[ma10]=talib .MA(data[Close],time period=10)data[ ma30 ]=talib .马(数据[关闭],时间周期=30) #获取适当规模集成电路数据[rsi]=塔利班.RSI(数据[收盘])返回数据塔利卜有各种各样的技术指标,这里只获取了均线,macd和rsi,返回数据帧。
第四步:绘图
def plot_chart(data,title): fig=plt.figure() #创建绘图区,包含四个子图fig.set_size_inches((20,16)) ax_candle=fig.add_axes((0,0.72,1,0.32)) #蜡烛图子图ax_macd=fig.add_axes((0,0.48,1,0.2),sharex=ax_candle) #macd子图ax_rsi=fig.add_axes((0,0.24,1,0.2),sharex=ax_candle) #rsi子图ax_vol=fig.add_axes((0,0,1,0.2),sharex=ax_candle) #成交量子图ohlc=[] #存放行情数据,烛台_ohlc需要传入固定格式的数据row_number=0表示date,row in data.iterrows(): date,highp,lowp,openp,closep=row[:5]ohlc。append([row _ number,openp,highp,lowp,closep])row _ number=row _ number 1 date _ tickers=data .日期。值#获取日期数据定义格式_日期(x,位置=无):#由于前面股票数据在日期这个位置传入的都是int #因此x=0,1,2,#日期_报价机是所有日期的字符串形式列表如果x 0或x len(date _ tickers)-1:return return date _ tickers[int(x)]#绘制蜡烛图ax_candle.plot(data.index,data[ma7],label= MA7 )ax _ candle。绘图(数据。index,data[ma8],label= MA8 )ax _ candle。绘图(数据。索引,数据[ma25],标签=MA25 )烛台_ohlc(ax_candle,ohlc,colorup=g ,colordown=r ,width=0.8)ax _ candle。xaxis。set _ major _ formatter(ticker .func格式化程序(format _ date))ax _ candle。xaxis。set _ major _ locator(ticker .多重定位器(6)) #设置间隔为6个交易日ax _ candle。网格(True)ax _ candle。set _ title(title,font size=20)ax _ candle。图例()#绘制MACD ax_macd.plot(data.index,data[macd],label= MACD )ax _ MACD。酒吧(数据。index,data[macd_hist] * 3,label= hist )ax _ MACD。绘图(数据。index,data[macd_signal],label= signal )ax _ MACD。set _ title( MACD )ax _ MACD。图例()#绘制RSI ax _ RSI。set _ y label((%))ax _ RSI . plot(data . index,[70] * len(data.index),label=超买)ax_rsi.plot(data.index,[30] * len(data.index),label=超卖)ax _ RSI。绘图(数据。index,data[rsi],label= RSI )ax _ RSI。set _ title( KDJ )ax _ RSI图例()#绘制成交量ax_vol.bar(data.index,data[ Volume ]/1000000)ax _ vol . set _ y label((百万))#保存图片到本地图保存图(/用户/答案/桌面/投资/照片/标题)。png ,bbox_inches=tight) #这里个人选择不要plt.show(),因为保存图片到本地的#plt.show()第五步:批量绘制
def industry(dict): for key,dict中的value。items():# d . ITER物品:对(键,值)项的迭代器stock _ info=get _ indicators(key)plot _ chart(stock _ info,value)这里传进去的参数是字典,预先定义了目标股票代码。用字典的好处是,能够把股票名称也传进去。
finance_list={ 600036.ss :招商尹航, 002142.sz :宁波尹航, 000001.sz :平安尹航, 601318.ss :中国平安 }下面是恒瑞医药的绘制效果。几个指标清晰可见。
其它:
绘图的时候最好把绘图独立窗口关掉
Reference:
那未必, 2017,使用绘制精美的图表绘制k线图(去掉空白日期),https://www。金淑。com/p/c 10 e 57 CCC 7 ba
MelinaMackey,2020年,用计算机编程语言构建技术分析图表,https://中等。com/analytics-vid hya/Building-a-Technical-Analysis-Chart-with-Python-17107 b78b 297
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。