R平方語法的介紹

By | 2015-08-18

在統計上,要看一個數列的趨勢是否成型,我們可以畫一條線性回歸線,這條線的意義是,過去一段期間,每個價位到這條線同一天的那個點的距離,比其他所有每一條線的距離都短。

有了線性回線後,我們用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以下那就代表無明顯趨勢

下圖為例,我們目前的加權指數是在超明顯的下降趨勢中

081802

根據這個算法,我們可以找出處於上昇趨勢的股票及處於下降趨勢的股票

我們可以寫一個選股腳本如下:

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;

我們只要把斜率改成小於零,也可以寫出一個下降趨勢明確的腳本,

 

透過這個方法,我們就可以很清楚的界定出那些股票在上昇趨勢,那些在下降趨勢,而那些並沒有明顯趨勢了。