免責聲明:
任何投資行為均有其風險,作為一名投資者,應為自己任何投資決策行為承擔所有風險。
本網站當盡力提供正確之資訊,所載資料均來自或本諸我們相信可靠之來源,但對其完整性、即時性和正確性不做任何擔保,如有錯誤或疏漏,本網站所有人及關係人,並不負任何法律責任。
本文非任何形式之投資建議,不保證所提供之資訊可以創造獲利、減少投資損失,亦不會鼓吹任何具體之投資行動。本網站所有人及關係人,對於本網站資訊使用者直接或間接依賴並參考相關資訊後,採取任何投資行為所導致之直接或間接損失,或因此產生之一切責任,均不負任何損害賠償及其他法律上之責任。
任何投資行為均有其風險,作為一名投資者,應為自己任何投資決策行為承擔所有風險。
本網站當盡力提供正確之資訊,所載資料均來自或本諸我們相信可靠之來源,但對其完整性、即時性和正確性不做任何擔保,如有錯誤或疏漏,本網站所有人及關係人,並不負任何法律責任。
本文非任何形式之投資建議,不保證所提供之資訊可以創造獲利、減少投資損失,亦不會鼓吹任何具體之投資行動。本網站所有人及關係人,對於本網站資訊使用者直接或間接依賴並參考相關資訊後,採取任何投資行為所導致之直接或間接損失,或因此產生之一切責任,均不負任何損害賠償及其他法律上之責任。
說明
本文說明利用 R 對單一股票進行描述性統計的方法。
在投資網站可以看到一些描述性統計的東西,像是 52 週高點、52 週低點、平均交易量等。但投資網站給予的統計項目有限,無法客製化。會一點 R 語言的話,就可以自己下載原始股票資料,從中取得想看的統計項目。
前置作業
vt <- read.csv("C:/Users/user/Downloads/VT-20230702.csv", header=TRUE, stringsAsFactors=FALSE)
vt$Date <- as.Date(vt$Date)
VT
是全球巿場的典型實例。很多被動投資者把 VT
當成其投資工具。
去除用不到的欄位 (出處):
vt2 <- subset(vt, select=-c(Open, High, Low, Adj.Close))
只取近三年多的資料:
vt3 <- vt2[2019 <= as.numeric(format(vt2$Date, "%Y")), ]
要取多長時距的資料沒有一定的做法,視當下的分析需求而定。
最大值 (Maximum) 和最小值 (Minimum)
用 max
函式取得波段高點 (最大值):
> max(vt3$Close)
[1] 109.23
用 min
函式取得波段低點 (最小值):
> min(vt3$Close)
[1] 54.48
五分位數 (Quantile)
承上,用 quantile
函式取得波段的相對高低點 (五分位數):
> quantile(vt3$Close)
0% 25% 50% 75% 100%
54.4800 76.2775 87.7050 97.1050 109.2300
取得這些數據後,就可以和當前股價比對,得知目前是在高點還是低點。
平均數 (Mean) 和標準差 (Standard Deviation)
用 mean
函式取得波段股價的平均值:
> mean(vt3$Close)
[1] 87.28086
注意平均值不代表真正的股價,只是那段時間內巿場投入資金的平均價格。移動平均線 (moving average) 也是用到平均數的概念。
用 sd
函式取得波段股價的標準差:
> sd(vt3$Close)
[1] 12.08036
用當前股價、平均股價、標準差三個數字結合,就可以推估目前巿場是否有超買或超賣。這就是布林通道 (Bollinger Bands) 的計算原理。
用平均數和標準差,也可以觀察股價區間:
> vt3mean <- mean(vt3$Close)
> vt3sd <- sd(vt3$Close)
> vt3vec <- numeric()
> for (x in -2:2) { vt3vec <- c(vt3vec, vt3mean + x * vt3sd) }
> vt3vec
[1] 63.12014 75.20050 87.28086 99.36122 111.44158
但是用這種方式推估出來的價格和五分位數運算出來的不一樣,有可能會出現巿場上不存在的價格。不要把計算結果當成目標價。
注意事項
本文所展示的計算方式不代表買賣點。因為股票有可能創新高、破新低,仍然要以當前的巿場情勢做評估。