文章目录
下载Apple,Microsoft,Oracle。Google公司2011-2012年交易行情数据,分别画出蜡烛图以及ADX子图 1 试对ADX指标进行技术分析,指出某段时间里根据ADX及相关指标研读出来的走势预测 2 求出每种股票在上述年份内ADX指标同时低于DI+和DI-的时间段
其实每个公司的股票的作图方法类似,下文所说的解法,主要是以Apple的股票为例,其他的股票只给出结果。上述4个公司的股票代码分别是:AAPL,MSFT,ORCL,GOOGL。 先获取AAPL股票2011~2012年的交易数据,并画出蜡烛图及ADX子图
1 2 3 4 5
| > myenv<-new.env() > getSymbols("AAPL",env=myenv,src="yahoo",from="2011-01-01",to="2012-12-31") [1] "AAPL" > chartSeries(get("AAPL",myenv),name="AAPL",type="candlesticks") > addADX()
|
AAPL的蜡烛图和ADX图如下,
可以自己计算一下ADX数值,和图中的数据做一下对比,代码如下,
1 2 3 4 5 6 7 8 9
| > tail(ADX(cbind(Hi(AAPL),Lo(AAPL),Cl(AAPL)))) DIp DIn DX ADX 2012-12-21 16.88240 39.55387 40.17181 34.88767 2012-12-24 18.53606 38.55965 35.07022 34.90071 2012-12-26 17.75111 40.47830 39.03043 35.19569 2012-12-27 16.77158 41.32034 42.25847 35.70018 2012-12-28 16.19529 39.90052 42.25847 36.16863 2012-12-31 23.97504 34.97697 18.66251 34.91819 > AAPL_ADX<-ADX(cbind(Hi(AAPL),Lo(AAPL),Cl(AAPL)))
|
同样的方法可以应用在MSFT,ORCL,GOOGL上,代码如下,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| > getSymbols("MSFT",env=myenv,src="yahoo",from="2011-01-01",to="2012-12-31") [1] "MSFT" > chartSeries(get("MSFT",myenv),name="MSFT",type="candlesticks") > addADX() > MSFT<-get("MSFT",myenv) > MSFT_ADX<-ADX(cbind(Hi(MSFT),Lo(MSFT),Cl(MSFT))) > getSymbols("ORCL",env=myenv,src="yahoo",from="2011-01-01",to="2012-12-31") [1] "ORCL" > chartSeries(get("ORCL",myenv),name="ORCL",type="candlesticks") > addADX() > ORCL<-get("ORCL",myenv) > ORCL_ADX<-ADX(cbind(Hi(ORCL),Lo(ORCL),Cl(ORCL))) > getSymbols("GOOGL",env=myenv,src="yahoo",from="2011-01-01",to="2012-12-31") [1] "GOOGL" > chartSeries(get("GOOGL",myenv),name="GOOGL",type="candlesticks") > addADX() > GOOGL<-get("GOOGL",myenv) > GOOGL_ADX<-ADX(cbind(Hi(GOOGL),Lo(GOOGL),Cl(GOOGL)))
|
MSFT,ORCL,GOOGL的蜡烛图和ADX子图如下,
问题1 试对ADX指标进行技术分析,指出某段时间里根据ADX及相关指标研读出来的走势预测
简单的理解:ADX线代表力量的强弱,+DI和-DI谁占优势随着力量一起上扬,那么就代表走势向哪个方向发展(from:百度百科)。 当ADX>30的时候认为趋势明显(也有说>25的),根据这个判定方法:AAPL,2011年7月中旬到8月上旬有一个较弱的上行行情,2012年1月中旬开始到4月上旬有一个长期的大牛行情,2012年10月下旬到11月底有一个明显的大熊市;MSFT,2011年2月中旬到3月中旬有一个明显缓慢下行的行情(ADX似乎不是很明显),2011年6月底到7月底有一个大牛行情,紧随上一个行情结尾到8月中下旬有一个明显的熊市(后期的熊市行情不明显),2012年1月上旬到3月下旬有一个长期的大牛行情(与AAPL几乎同时期),2012年5月下旬进入一个较弱的下行通道;ORCL,2011年7月下旬到8月中旬有一个明显的熊市,紧随其后到9月上旬有一个牛市行情;GOOGL,2011年3月底到6月下旬熊市氛围缓慢而显著,接着到7月底有一个明显的大牛行情,然后直到8月中下旬都是熊市,2012年7月底8月初到10月初进入一个长期的上行通道,随后反转进入熊市直到11月下旬。 从ADX的预测和现实的股市行情对比来看,明显的ADX指标基本是滞后行情的,而缓慢而长期的行情也并不是ADX指标的长项,可能要结合其他技术指标才能对当前的股市行情做一个比较全面的判定。
问题2 求出每种股票在上述年份内ADX指标同时低于DI+和DI-的时间段 在已经求出ADX指标的时候,求解这个问题就比较简单了,以AAPL为例,代码如下,
1 2 3 4 5 6 7 8 9 10
| > AAPL_ADX_period<-AAPL_ADX[AAPL_ADX[,4]<AAPL_ADX[,1] & AAPL_ADX[,4]<AAPL_ADX[,2]] > tail(AAPL_ADX_period) DIp DIn DX ADX 2012-09-27 28.40588 30.86653 4.151427 24.86085 2012-09-28 26.02906 28.28382 4.151427 23.38161 2012-10-01 23.13203 30.76953 14.169342 22.72359 2012-10-03 22.96569 29.50595 12.464360 21.76705 2012-10-04 23.18627 28.06141 9.512902 20.89175 2012-10-05 21.19300 33.55342 22.577594 21.01217 > plot(AAPL_ADX_period[,4], type="b",main="AAPL ADX<DI+,DI-")
|
列出了结尾的几个满足条件的日期,并将满足条件的日期和ADX在图上画出来,图如下,
同样,MSFT,ORCL,GOOGL的代码和图分别如下,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| > MSFT_ADX_period<-MSFT_ADX[MSFT_ADX[,4]<MSFT_ADX[,1] & MSFT_ADX[,4]<MSFT_ADX[,2]] > tail(MSFT_ADX_period) DIp DIn DX ADX 2012-12-20 22.19025 19.61291 6.1654296 17.12504 2012-12-21 20.16028 19.83666 0.8091086 15.95962 2012-12-24 18.92637 18.62256 0.8091086 14.87744 2012-12-26 17.63485 21.44612 9.7522376 14.51135 2012-12-27 16.38275 21.69845 13.9588500 14.47189 2012-12-28 15.45123 20.74204 14.6182251 14.48234 > plot(MSFT_ADX_period[,4], type="b",main="MSFT ADX<DI+,DI-") > ORCL_ADX_period<-ORCL_ADX[ORCL_ADX[,4]<ORCL_ADX[,1] & ORCL_ADX[,4]<ORCL_ADX[,2]] > tail(ORCL_ADX_period) DIp DIn DX ADX 2012-12-21 35.10695 23.37549 20.059808 16.86373 2012-12-24 33.64910 22.40480 20.059808 17.09203 2012-12-26 34.12230 20.99635 23.813987 17.57217 2012-12-27 31.52755 23.56981 14.443039 17.34866 2012-12-28 29.61108 22.13708 14.443039 17.14111 2012-12-31 26.84911 23.82747 5.962596 16.34265 > plot(ORCL_ADX_period[,4], type="b",main="ORCL ADX<DI+,DI-") > GOOGL_ADX_period<-GOOGL_ADX[GOOGL_ADX[,4]<GOOGL_ADX[,1] & GOOGL_ADX[,4]<GOOGL_ADX[,2]] > tail(GOOGL_ADX_period) DIp DIn DX ADX 2012-12-05 25.76255 25.58589 0.3440387 23.49066 2012-12-06 24.82402 24.06246 1.5578113 21.92403 2012-12-07 22.91028 23.32169 0.8898986 20.42159 2012-12-10 21.92102 22.31467 0.8898986 19.02647 2012-12-11 25.50702 20.33010 11.2941693 18.47416 2012-12-12 24.97585 19.21159 13.0450252 18.08637 > plot(GOOGL_ADX_period[,4], type="b",main="GOOGL ADX<DI+,DI-")
|