均線模型量化股票交易_第1頁(yè)
均線模型量化股票交易_第2頁(yè)
均線模型量化股票交易_第3頁(yè)
均線模型量化股票交易_第4頁(yè)
均線模型量化股票交易_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、仰軍15 金融專碩均線模型量化股票交易摘要:移動(dòng)平均線(MA)是股市中最常用的一種分析技術(shù),用于在大行情的波動(dòng)段找到有效的交易信號(hào)。移動(dòng)平均線簡(jiǎn)單、有效,對(duì)股市操作具有較好的指導(dǎo)作用。均線模型能有效地 打敗了大部分的主觀策略,成為炒股,炒期貨的必備基本工具。本文選用阿里巴巴 2014 年 9 月至今的股票數(shù)據(jù),對(duì)其每日收盤價(jià)進(jìn)行了 5 日、20 日和 60 日移動(dòng)平均。先用每日收盤價(jià)和 20 日平均分析一條均線的交易策略,通過找出交易信號(hào) 并模擬交易,發(fā)現(xiàn)一條均線交易策略會(huì)有些許的虧損,但通過圖表分析,此策略能夠較好的 預(yù)測(cè)股價(jià)走勢(shì),相對(duì)主觀投資更為合理;然后用 5 日平均和 20 日平均做兩

2、條均線的交易策 略,這是對(duì)一條均線模型的優(yōu)化,模擬交易后發(fā)現(xiàn)此交易能夠盈利。關(guān)鍵詞:股票 移動(dòng)平均 均線交易策略 模擬交易 II1. 均線模型的簡(jiǎn)單介紹移動(dòng)平均線本文采用統(tǒng)計(jì)學(xué)中”移動(dòng)平均”的原理,計(jì)算一股票每日收盤價(jià)的簡(jiǎn)單移動(dòng)平均,將一 段時(shí)期內(nèi)的股票價(jià)格平均值連成曲線,來顯示股價(jià)的歷史波動(dòng)情況,進(jìn)而反映股價(jià)指數(shù)未來 發(fā)展趨勢(shì)。均線的特性(1)平滑性。通過均線的平滑移動(dòng)來修復(fù)股價(jià)的不規(guī)則偶然變動(dòng)。(2)靈敏性、穩(wěn)定性。均線參數(shù)取值不同,其特性也不同。參數(shù)越小,靈敏性越強(qiáng), 穩(wěn)定性越差;參數(shù)越大,穩(wěn)定性越強(qiáng),靈敏性越差。(3)助漲性、助跌性。上升趨勢(shì)線有助漲的特性,下降趨勢(shì)線有助跌的特性。均線

3、模型在日K線圖中除了標(biāo)準(zhǔn)的價(jià)格K線以外,另外還有4條線,分別是白線、黃線、紫線、綠線依次分別表示:5日、10日、20日和60日移動(dòng)平均線,通過這 4條線與價(jià)格K線的交 叉,就可以形成不同的均線模型StocH BZXBA利用均線平滑的特點(diǎn),可以發(fā)現(xiàn)均線與價(jià)格K線會(huì)有叉,各均線之間也有交叉,我們可以通過這些交叉點(diǎn)判斷交易信號(hào):黃金交叉,當(dāng)10日均線由下往上穿越30日均線,10日均線在上,30日均線在下,其交叉點(diǎn)就是黃金交叉,黃金交叉是多頭的表現(xiàn),出現(xiàn)黃金交叉 后,后市會(huì)有一定的漲幅空間,這是進(jìn)場(chǎng)的最佳時(shí)機(jī);死亡交叉,當(dāng)30日均線與10日平均線交叉時(shí),30日均線由下住上穿越10日平均線,形成30日平

4、均線在上,10日均線在下時(shí),其交點(diǎn)稱之為”死亡交叉”,”死亡交叉”預(yù)示空頭市場(chǎng) 來臨,股市將下跌此時(shí)是出場(chǎng)的最佳時(shí)機(jī)。2. 用R語(yǔ)言實(shí)現(xiàn)模型建立從互聯(lián)網(wǎng)下載股票數(shù)據(jù)利用quantmod包的getSymbols()函數(shù),默認(rèn)會(huì)通過 Yahoo的金融開放 API下載數(shù)據(jù), 我們選擇阿里巴巴的股票數(shù)據(jù),從2014-09-19至今的1年多的日間交易數(shù)據(jù)。數(shù)據(jù)類型為xts格式的時(shí)間序列,數(shù)據(jù)包括 7個(gè)列,以日期做索引列,其他 6列分別為 開盤價(jià)(Open), 最高價(jià)(High), 最低價(jià)(Low),收盤價(jià)(Close), 交易量(Volume),調(diào)整價(jià)(Adjusted)。自定義均線圖自定義均線指標(biāo):以

5、日期時(shí)間序列為索引,收盤價(jià)做為價(jià)格指標(biāo),不考慮成交量及其他維度字段。取2014-09-19至今,形成趨勢(shì)的數(shù)據(jù),畫出價(jià)格曲線,5日均線,20日均線, 60日均線。20Stock BABA1008 £ao -2014-10 2014-12 2015-02 2015-0斗 201 5-06 2015-08 2015-1060 Scrtosma5ma 20 maGOK線圖和多條通過自己封裝的移動(dòng)平均函數(shù)和可視化函數(shù),就實(shí)現(xiàn)了與交易軟件中類似的日 均線結(jié)合的可視化輸出。一條均線的交易策略模型設(shè)計(jì)思路:1. 以股價(jià)和20日均線的交叉,進(jìn)行交易信號(hào)的判斷。2. 當(dāng)股價(jià)上穿20日均線則買入(紅色)

6、,下穿20日均線賣出(藍(lán)色)。 首先畫出股價(jià)和20日均線圖1以散點(diǎn)覆蓋20日均線,紅色點(diǎn)為買入持有,藍(lán)色點(diǎn)為賣出空倉(cāng)。Stock BABAStock_BABASono adown廠mnOup用股價(jià)和20日均線價(jià)格做比較,把股價(jià)大于均線的部分用藍(lán)色表示,股價(jià)小于均線的部分 用紅色表示。我們看到圖中,藍(lán)色點(diǎn)和紅色點(diǎn)在20日均線上交替出現(xiàn),我們可以在每次紅色出現(xiàn)的第一個(gè)點(diǎn)買入股票,然后在藍(lán)色的第一個(gè)點(diǎn)賣出股票。找出交易信號(hào)點(diǎn),并以100000本金做模擬交易。為簡(jiǎn)化操作假定在信號(hào)點(diǎn)滿倉(cāng)買入或賣出,手續(xù)費(fèi)為0。運(yùn)算結(jié)果顯示,虧損的有11筆而盈利的只有3筆,一年下來一共虧損了 17038元。似乎 一條均線

7、模型是失敗的,因?yàn)樗粌H沒能盈利反而帶來的虧損。下面就從股價(jià)和模擬現(xiàn)金投 入來進(jìn)行簡(jiǎn)單的分析虧損原因。1V XH%n a120 -1QO -60 -fsc 1 Jvariablea> 77v"呂clQ9ecash心1ooooo -90000 -iI2014-102014-122D1S-O22015 Q42O1 5-062015-082015-10Stock BABA該圖示,上半紅色部分為日收盤價(jià),下半藍(lán)色部分為模擬交易的現(xiàn)金流,對(duì)比可見,阿 里股價(jià)在14年年底開始走低,而根據(jù)一條均線模型進(jìn)行的投資策略比較合理的預(yù)測(cè)了股市的 走勢(shì)并進(jìn)行了股票的買入賣出,在一定程度上是減少了虧損。

8、兩條均線的交易策略一條均線模型,在大的趨勢(shì)下是可以進(jìn)行穩(wěn)定投資的,但由于一條均線對(duì)于波動(dòng)非常敏 感性,如果小波動(dòng)過于頻繁,不僅會(huì)增加交易次數(shù),而且會(huì)讓模型失效。然后,就有二條均 線的策略模型,可以減低對(duì)波動(dòng)的敏感性。二條均線策略模型,與一條均線模型思路類似,以5日均線價(jià)格替換股價(jià),是通過5日均線和20日均線交叉來進(jìn)行信號(hào)交易的。畫出股價(jià)、5日均線和20日均線圖: 307StocK BABAiTTi ESS以散點(diǎn)覆蓋20日均線,紅色點(diǎn)為買入持有,藍(lán)色點(diǎn)為賣出空倉(cāng)Stock 曰 AB A1 O 20 1 4 1i S 20 1 & 02 20 1 H亠口埠2 0 1 & O<

9、320 ISO以同樣的條件進(jìn)行兩條均線交易策略的模擬交易。根據(jù)運(yùn)算結(jié)果,雖然依舊虧損了11筆 盈利3筆,但最終帶來了總盈利7408元 兩種策略的簡(jiǎn)單分析 策略一在模擬交易中一共進(jìn)行了 30次交易,最終虧損10000元左右,而策略二只進(jìn)行了 20次交易,最終帶來盈利 7000左右。很明顯兩條均線的交易策略能更好的追蹤股價(jià)趨勢(shì), 帶給投資者回報(bào)??雌饋砭€模型是如此的簡(jiǎn)單,但實(shí)盤交易時(shí)真能在趨勢(shì)行情中跑贏雙均線(優(yōu)化)模型,也真不是一件容易的事情。參考文獻(xiàn):1常寧,徐國(guó)祥 . 金融高頻數(shù)據(jù)分析的現(xiàn)狀與問題研究. 財(cái)經(jīng)研究,2004,( 3): 31-392武振,鄭丕諤基于遺傳神經(jīng)網(wǎng)絡(luò)的股價(jià)波動(dòng)預(yù)測(cè)

10、天津大學(xué)學(xué)報(bào),2004 , 6(4)3103馬超群,張明良 .ACD 族計(jì)量模型的分類與比較分析 . 金融經(jīng)濟(jì),2005,( 8) 86-874蔣學(xué)雷,陳敏,王國(guó)明等 . 股票市場(chǎng)的流動(dòng)性度量的動(dòng)態(tài) ACD 模型 . 統(tǒng)計(jì)研究,2004,4):42-445王 晶 , 王玉玲 , 向東進(jìn) , 阮曙芬 . 自回歸條件持續(xù)期 (ACD) 模型研究 統(tǒng)計(jì)與決策20066)2007b.6Economist. 2007a. Ahead of the TapeDodgy Tickers7-Algorithmic . June 23, 2007.-Stock Excha nges. Econo mist. M

11、arch 10, 2007.M. Kearns and L. Ortiz. The PennLehman automatedtrading project.IEEE Intelligent Systems, 2003. To appear.8 Domowitz, I., and H. Yegerman. 2005.The Costof AlgorithmicTrading:A First Look at Comparative Performance. ”Edited byBrian R. Bruce,Algorithmic Trading: Precision,Control, Execut

12、ion. Institutional Investor.附表一: R 語(yǔ)言代碼#加載必須的函數(shù)包 library(plyr) library(quantmod)library(TTR)library(ggplot2) library(scales)library ( reshape2 )#設(shè)置存儲(chǔ)位置 setwd("E:/Statistical modeling/")#下載數(shù)據(jù)download<-function(stock,from="2013-01-01") df<- getSymbols(stock,from=from,env=envi

13、ronment(),=FALSE) #下 載 數(shù) 據(jù)names(df)<-c("Open","High","Low","Close","Volume","Adjusted") (df,file=paste(stock,".csv",sep=""),sep=",",quote=FALSE) # 保存到本地 #本地讀數(shù)據(jù)read<-function(stock)(file=paste(stock,"

14、.csv",sep=""),header = TRUE,sep=",", format="%Y-%m-%d")stock<-"BABA"download(stock,from='2013-01-01') BABA<-read(stock)#定義移動(dòng)平均函數(shù)ma<-function(cdata,mas=c(5,20,60)ldata<-cdata for(m inmas) ldata<-merge(ldata,SMA(cdata,m) ldata<(lda

15、ta, fromLast=TRUE)names(ldata)<-c('Value',paste('ma',mas,sep='')return(ldata)#定義均線圖函數(shù)g<-drawLine<- function(ldata,titie="Stock_MA",sDate=min(index(ldata),eDate=max(index(ldata),out =FALSE) g<-ggplot(aes(x=Index, y=Value),data=fortify(ldata,1,melt=TRUE) g

16、+geom_line() g<-g+geom_line(aes(colour=Series),data=fortify(ldata,-1,melt=TRUE)g<-g+scale_x_date(labels=date_format("%Y-%m"),breaks=date_breaks("2months"),limitsc(sDate,eDate) g<-g+xlab("") +ylab("Price")+ggtitle(title)if(out)ggsave(g,file=paste(titie

17、,".png",sep="") else g#選取數(shù)據(jù)并運(yùn)行cdata<-BABA'2014/2015'$Close title<-"Stock_BABA" # 圖片標(biāo)題 sDate<("2014-9-19")#開始日期 eDate<("2015-10-23") #結(jié)束日期ldata<-ma(cdata,c(5,20,60) # 選擇滑動(dòng)平均指標(biāo)p0<-drawLine(ldata,title,sDate,eDate) # 畫圖ggsave(p

18、0,file=paste(title,".png",sep="")#存圖#畫出股價(jià)和 20 日均線圖ldata1<-ma(cdata,c(20) # 選擇滑動(dòng)平均指標(biāo)p11<-drawLine(ldata1,title,sDate,eDate) #畫圖#以散點(diǎn)覆蓋 20 日均線,紅色點(diǎn)為買入持有,藍(lán)色點(diǎn)為賣出空倉(cāng)# 定義均線圖 +散點(diǎn)函數(shù)drawPoint<-function(ldata,pdata,titie,sDate,eDate)ggplot(aes(x=Index, y=Value),data=fortify(ldata,1,m

19、elt=TRUE) g<-g+geom_line() g<-g+geom_line(aes(colour=Series),data=fortify(ldata,- 1,melt=TRUE) g+geom_point(aes(x=Index,y=pdata,3,colour=compare),data=pg<-g<-data)g<-g+scale_x_date(labels=date_format("%Y-%m"),breaks=date_breaks("2 months"),limits c(sDate,eDate) g&l

20、t;-g+xlab("") + ylab("Price")+ggtitle(title) g#定義獲取散點(diǎn)數(shù)據(jù)函數(shù)getPoint<-function(ldata) data<-fortify(ldata) n<-nrow(data)data<(data,compare=vector(length=n)v1<-data,2 v2<-data,3 dist<-(v2-v1)data$comparewhich(dist<0)<-c("down")data$comparewhich(di

21、st>=0)<-c("up")pdata<-data#運(yùn)行并獲取數(shù)據(jù)pdata<-getPoint(ldata1)p1<-drawPoint(ldata1,pdata,title,sDate,eDate)#定義找出交易信號(hào)點(diǎn)函數(shù)Signal<-function(cdata,pdata) n<-nrow(pdata) pdata1<(pdata,Sigs=vector(length=n),comp=vector(length=n),p=vector(length=n) pdata1$compwhich(pdata1$compar

22、e="up")<-1 pdata1$compwhich(pdata1$compare="down")<-0 for(i in 2:(n-1) pdata1$pi<-(pdata1$compi-pdata1$compi-1) pdata1$p1<-pdata1$p2pdata1$Sigswhich(pdata1$p<0)+1<-c("B")pdata1$Sigswhich(pdata1$p>0)+1<-c("S") temp<-pdata1-c(1,which(p

23、data1$p=0)+1), x<-c(4,6,7) Signals<-temp,-x#運(yùn)行并獲取數(shù)據(jù)tdata<-Signal(cdata,pdata)#模擬交易0, #利用交易信號(hào)數(shù)據(jù),進(jìn)行模擬交易。設(shè)定交易參數(shù),以$10W為本金,滿倉(cāng)買入或賣出,手續(xù)為傳入交易信號(hào)。#參數(shù):交易信號(hào) ,本金,持倉(cāng)比例 ,手續(xù)費(fèi)比例#規(guī)定數(shù)據(jù)格式以及小數(shù)點(diǎn)位數(shù)options(scipen=4)options(digits=4)#定義模擬交易函數(shù)trade<-function(tdata,capital) n=nrow(tdata) cash<-vector(length=n)a

24、mount<-vector(length=n)asset<-vector(length=n) diff<-vector(length=n)t<(tdata,cash,amount,asset,diff)if(t1,4="S")t1,5<-capitalelset1,5<-(capital%t1,2)if(t1,4="S")t1,6<-0 elset1,6<-floor(capital/t1,2)t1,7<-capitalt1,8<-0for(i in2:n) if(t$Sigsi="B

25、") t$amounti<-floor(t$cashi- 1/t,2i)+amounti-1 t$cashi<-t$cashi-1%t,2i t$asseti<-t$amounti*t,2i+t$cashi t$diffi<- t$asseti-t$asseti-1 else t$amounti<-0t$cashi<-t$amounti-1*t,2i+t$cashi-1 t$asseti<-t$cashit$diffi<-t$asseti-t$asseti-1t#定義數(shù)據(jù),運(yùn)行capital=100000result1<-trad

26、e(tdata,capital) rise<- length(which(result1$diff>0) fall<-length(which(result1$diff<0)#畫出資金曲線#定義畫出股價(jià) +現(xiàn)金流量對(duì)比函數(shù) drawCash<-function(result,ldata) n<-which(result1$Sigs='S') m<-c(1,5) xx<-resultn,mcolnames(xx)<-c("Time","cash") xx<- melt(xx,id=

27、"Time")yy<-fortify(ldata)k<-c(1,2) yy<-yy,kcolnames(yy)<-c("Time","close") yy<- melt(yy,id="Time") zz<-rbind(yy,xx) g<-ggplot(aes(Time,value),data=zz)g<-g+geom_line(aes(group=1,colour=variabl e)g<-g+facet_grid(variable.,scales="

28、free_y") g<-g+scale_x_date(labels=date_format("%Y-%m"),breaks=date_breaks("2 month"),limits=c(sDate,eDate) g<-g+xlab("")+ylab("Price")+ggtitle(title)g#運(yùn)行p2<-drawCash(result1,ldata1)ggsave(p2,file=paste("close+cash",".png",sep=

29、"")#存圖#一條均線模型,在大的趨勢(shì)下是可以穩(wěn)定賺錢的,但由于一條均線對(duì)于波動(dòng)非常敏感性,#5日均線#如果小波動(dòng)過于頻繁,不僅會(huì)增加交易次數(shù),而且會(huì)讓模型失效。然后,就有二條均線的 #策略模型,可以減低對(duì)波動(dòng)的敏感性。二條均線策略模型,與一條均線模型思路類似,以 價(jià)格替換股價(jià),是通過 5日均線和20日均線交叉來進(jìn)行信號(hào)交易的。#首先畫出股價(jià),5日均線和20日均線圖。#選擇5日和20日滑動(dòng)平均指標(biāo)ldata2<-ma(cdata,c(5,20)#畫圖p33<-drawLi ne(ldata2,title,sDate,eDate)#這步是為了將數(shù)據(jù)框與之前的函數(shù)格

30、式對(duì)應(yīng)ldata2<-ldata2,c(2,3)#獲取散點(diǎn)圖pdata2<-getPoi nt(ldata2)#畫出散點(diǎn)圖p3<-drawPoi nt(ldata2,pdata2,title,sDate,eDate)#找出交易信號(hào)tdata2<-Sig nal(cdata,pdata2)#模擬交易result2<-trade(tdata2,capital)rise2<-len gth(which(result2$diff>0)fall2<-len gth(which(result2$diff<0)#畫出股價(jià)現(xiàn)金圖p4<-drawCas

31、h(result2,ldata2)附表二:阿里股票數(shù)據(jù)IndexOpe nHighLowCloseVolumeAdjusted20141902014/9/222014/9/232014/9/242014/9/252014/9/262014/9/292014/9/30892014/10/12014/10/22014/10/32014/10/692684002014/10/72014/10/8882014/10/9882014/10/102014/10/132014/10/142014/10/152014/10/162014/10/172014/10/208898914002014/10/2120

32、14/10/222014/10/232014/10/24982014/10/27972014/10/282014/10/291002014/10/302014/10/312014/11/32014/11/42014/11/52014/11/62014/11/72014/11/102014/11/112014/11/122014/11/131202014/11/142014/11/172014/11/182014/11/192014/11/202014/11/212014/11/241122014/11/252014/11/262014/11/2880778002014/12/12014/12/

33、21102014/12/32014/12/42014/12/52014/12/82014/12/92014/12/102014/12/112014/12/122014/12/152014/12/162014/12/172014/12/182014/12/192014/12/222014/12/232014/12/2458704002014/12/2665291002014/12/2980686002014/12/302014/12/312015/1/22015/1/51011012015/1/62015/1/72015/1/82015/1/92015/1/1279972002015/1/132

34、015/1/142015/1/152015/1/162015/1/202015/1/212015/1/221041042015/1/2398738002015/1/262015/1/272015/1/282015/1/292015/1/30922015/2/22015/2/32015/2/490902015/2/587872015/2/62015/2/986862015/2/102015/2/1186862015/2/122015/2/132015/2/172015/2/1874223002015/2/1976041002015/2/2078217002015/2/2393679002015/

35、2/242015/2/252015/2/2687633002015/2/278583772002015/3/28584842015/3/32015/3/42015/3/52015/3/6862015/3/92015/3/102015/3/11832015/3/122015/3/132015/3/1684842015/3/172015/3/182015/3/19852015/3/202015/3/232015/3/242015/3/252015/3/262015/3/2797038002015/3/302015/3/312015/4/12015/4/2832015/4/62015/4/794430002015/4/82015/4/92015/4/102015/4/132015/4/1485852015/4/152015/4/162015/4/172015/4/202015/4/212015/4/222015/4/232015/4/242015/4/272015/4/282015/4/292015/4/302015/5/12015/5/42015/5/52015/5/680802015/5/786862015/5/82015/5/112015/5/122015/5/13872015/5/142015/5/152015/5/182015/5

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論