CROA指標(biāo)磅崭,TB系統(tǒng)稱為相關(guān)分析指標(biāo),可百度找了半天瓦哎,也沒找到具體信息的砸喻,這個(gè)指標(biāo)我也不是很熟悉,但是依據(jù)它觀察過一段時(shí)間蒋譬,看著還不錯(cuò)的割岛。可它的算法犯助,我看代碼是理解的癣漆,說(shuō)出來(lái)也麻煩,我直接做代碼解讀吧剂买。
先看它用的求相關(guān)系數(shù)的函數(shù)Correlation惠爽,代碼如下:
Params
NumericSeries Price1(1); //聲明數(shù)值序列參數(shù)Price1,初值為1.//
NumericSeries Price2(1); //聲明數(shù)值序列參數(shù)Price2瞬哼,初值為1.//
Numeric Length(10); //聲明數(shù)值參數(shù)Length婚肆,初值為10.//
Vars
Numeric Matches(0); //聲明數(shù)值變量Matches,初值為0.//
BoolSeries Con; //聲明布爾型序列變量Con坐慰。//
Numeric i; //聲明數(shù)值變量i较性。//
Begin
Con = ( Price1 >= Price1[1] and Price2 >= Price2[1]) or ( Price1 < Price1[1] and Price2 < Price2[1]); //這括號(hào)里是用邏輯符合or連接,只要其中一個(gè)成立,就可以執(zhí)行下列代碼赞咙≡鹧看第一個(gè)括號(hào),假如當(dāng)前k線的價(jià)格Price1大于等于前一k線的價(jià)格Price1攀操,并且當(dāng)前k線價(jià)格Price2大于等于前一k線價(jià)格Price2的院仿。第二個(gè)括號(hào),假如當(dāng)前k線價(jià)格Price1小于前一k線的price1崔赌,并且當(dāng)前k線價(jià)格price2小于前一k線Price2的意蛀。兩個(gè)括號(hào),把成立的賦值給布爾型序列變量Con健芭,即為真县钥。//
if (CurrentBar < Length )//假如當(dāng)前k線索引值小于周期Length(初值10).//
{
Return 0;//返回值為0.//
}
Else//相當(dāng)于當(dāng)前k線索引值大于或等于周期10的,即第11根k線之后的慈迈,按下列執(zhí)行若贮。//
{
for i = 0 To Length - 1//循環(huán)語(yǔ)句,變量i從0到9依次循環(huán)執(zhí)行.//
{
if (Con[i])//布爾型序列變量Con[i],依變量i值改變的痒留。//
{
Matches = Matches + 1 ; //變量Matches自加1.再把值賦值回給變量Matches谴麦。//
}
}
Return? 2 * Matches / Length - 1 ;//返回值主函數(shù)的值等于2*Matches / Length - 1。//
}
End
它在超級(jí)圖表顯示的代碼如下:
Params
Numeric Length(10);//聲明數(shù)值參數(shù)Length伸头,初值為10匾效,其實(shí)就是周期了。//
Vars??
Numeric CORValue; //聲明數(shù)值變量CORValue恤磷。//
Begin
CORValue = Correlation(Close, Data1.Close,Length);//咱在Correlation聲明了三個(gè)參數(shù)吧面哼,這邊也對(duì)應(yīng)著把三個(gè)參數(shù)返回去求值,再把值反饋回來(lái)扫步,這個(gè)Data1.Close意思是第一個(gè)插入圖表的商品合約收盤價(jià)魔策。//
PlotNumeric("CORA",CORValue);//畫線CORA了,值就為CORValue值河胎。//
PlotNumeric("零線",0);//畫零線闯袒。//
PlotNumeric("1線",1);//畫1線,值為1了游岳。//
PlotNumeric("-1線",-1);//畫-1線政敢,值為-1了。//
End
這應(yīng)該能看得明白吧胚迫,這就是對(duì)比兩個(gè)價(jià)格喷户,看它們的相關(guān)系數(shù)是多少的,我們做成程序化就是依據(jù)這個(gè)相關(guān)系數(shù)來(lái)做的晌区,規(guī)則如下:
1摩骨、在均線200上的,而且相關(guān)系數(shù)是大于0的朗若,開多恼五。
2、在均線200下的哭懈,而且相關(guān)系數(shù)是小于0的灾馒,開空。
3遣总、有多單時(shí)候睬罗,當(dāng)相關(guān)系數(shù)小于等于-0.5的,平倉(cāng)旭斥。
4容达、有空單時(shí)候,當(dāng)相關(guān)系數(shù)大于等于0.5的垂券,平倉(cāng)花盐。
很簡(jiǎn)單的系統(tǒng)吧,我就直接附上代碼及結(jié)果如下了:
Params
Numeric Length(10);
Numeric DslowLength(200);
Vars??
NumericSeries CORValue;?
NumericSeries AvgValue3;
Begin
AvgValue3 = AverageFC(Close,DslowLength);
PlotNumeric("MA3",AvgValue3);
CORValue = Correlation(Close, Data1.Close,Length);
If(!CallAuctionFilter()) Return;
If(MarketPosition <>1 And CrossOver( CORValue[1],0) And AvgValue3[1] < Close[1] )
{
Buy(1,Open);
}
If(MarketPosition <> -1 And CrossUnder(CORValue[1] , 0) And AvgValue3[1] > Close[1])
{
SellShort(1,Open);
}
If(MarketPosition == 1 And CrossUnder(CORValue[1],-0.5))
{
Sell(1,Open);
}
If(MarketPosition == -1 And CrossOver(CORValue[1],0.5))
{
BuyToCover(1,Open);
}
End
這回也是把具體數(shù)據(jù)也附上了菇爪,看著喜不喜歡的算芯,就看個(gè)人了,反正我測(cè)試的也就這樣了凳宙,都是沒做什么優(yōu)化的參數(shù)熙揍,要是喜歡這個(gè)代碼的,自己優(yōu)化統(tǒng)計(jì)氏涩,找到合適的參數(shù)了届囚。