在統計上,要看一個數列的趨勢是否成型,我們可以畫一條線性回歸線,這條線的意義是,過去一段期間,每個價位到這條線同一天的那個點的距離,比其他所有每一條線的距離都短。
有了線性回線後,我們用R平方來衡量這段期間每一點跟線性迴歸的相關系數,R平方愈高,代表股價與線性回歸的相關係數愈高
input: Indep(numericseries), Dep(numericseries), Length(numericsimple); RSquare = Square(CoefficientR(Indep, Dep, Length));
coefficientR是相關係數
上面這公式代表R平方的值是兩個數字相關係數的平方
也就是線性回歸值與股價之間的相關修數
這個數字愈高,代表股價貼著線性回歸走,代表趨勢成形。
知道趨勢成形後,我們想知道現在是上昇趨勢還是下降趨勢,那就看線性回歸的斜率,斜率是正的,代表上昇趨勢,是負的,代表下跌趨勢
所以
1.如果R平方在0.2之上且線性回歸斜率是正的,那代表目前是處於上昇趨勢
2.如果R平方在0.2之上且線性回歸斜率是負的,那代表目前是處於下降趨勢
3.如果R平方在0.2以下那就代表無明顯趨勢
下圖為例,我們目前的加權指數是在超明顯的下降趨勢中
根據這個算法,我們可以找出處於上昇趨勢的股票及處於下降趨勢的股票
我們可以寫一個選股腳本如下:
input:Length(20); //"計算期間" LinearReg(close, Length, 0, value1, value2, value3, value4); //做收盤價20天線性回歸 {value1:斜率,value4:預期值} value5=rsquare(close,value4,20);//算收盤價與線性回歸值的R平方 if value1>0 and value5>0.2 then ret=1;
我們只要把斜率改成小於零,也可以寫出一個下降趨勢明確的腳本,
透過這個方法,我們就可以很清楚的界定出那些股票在上昇趨勢,那些在下降趨勢,而那些並沒有明顯趨勢了。