Advertisement
Guest User

Untitled

a guest
Apr 19th, 2015
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. # 本程式目的為分析0050在不同天數均線策略下的報酬率
  2.  
  3. # 載入quantmod
  4. library(quantmod)
  5.  
  6. # 取得0050的股價資料,預設從2007-12-31到本日
  7. getSymbols("0050.TW", auto.assign=FALSE)
  8. # 台股代號必需先轉成字串
  9. taiwanIndex<-get("0050.TW")
  10. # 看一下表格內容
  11. View(`0050.TW`)
  12. # 畫圖
  13. chartSeries(taiwanIndex, theme = "white")
  14.  
  15. # 定義均線,在問過領域專家後只留10、20、60、240
  16. # 收盤價放在第四行
  17. # 10日均線強勢股交易者常用
  18. ma_10 <- runMean(taiwanIndex[,4],n = 10)
  19. # 20日均線短線交易者常用
  20. ma_20 <- runMean(taiwanIndex[,4],n = 20)
  21. # 60日均線中線交易者常用
  22. ma_60 <- runMean(taiwanIndex[,4],n = 60)
  23. # 240日均線長線交易者常用
  24. ma_240 <- runMean(taiwanIndex[,4],n = 240)
  25.  
  26. # 策略回測:當20ma > 60ma,全壓;當20ma < 60ma,空手
  27. # position為一個時間序列,以日為單位,如果20ma大於60ma,設值為1;否則設值為0。由於我們是日資料,訊號發生時只能隔天做交易,故將這向量全部往後遞延一天。
  28. position<-Lag(ifelse(ma_20>ma_60, 1,0))
  29. # ROC計算:log(今天收盤價/昨天收盤價),乘上poistion代表。若1則持有,若0則空手。
  30. return<-ROC(Cl(taiwanIndex))*position
  31. # 回測多少時間,可再改
  32. return<-return['2007-1-1/2015-2-26']
  33. # cumsum計算累計值,即將每一分量之前的值累加起來。取exp函數是要計算累計報酬率。
  34. return<-exp(cumsum(return))
  35. # 累計報酬率畫出圖表
  36. plot(return)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement