SI指標即為擺動指標,主要是試圖通過比較當期價格(也就是開盤價、最高價、最低價和收盤價)與前期價格之間的關係來分離出"真實的"證券價格。
擺動指標主要用做累積擺動指標(Accumulation Swing Index)的構成要素,當然兩者不是同一個東西,還是有很大的區別的。算法不難,直接看代碼就明白,我直接做代碼解讀如下了:
Vars
Numeric K( 0 );//聲明數值變量K,初值為0.//
Numeric R( 0 ); //聲明數值變量R,初值為0.//
Numeric H0C1( 0 ); //聲明數值變量HoC1,初值為0.//
Numeric L0C1( 0 ); //聲明數值變量LoC1,初值為0.//
Numeric H0L0( 0 ); //聲明數值變量HoLo,初值為0.//
Numeric C1O1( 0 ) ; //聲明數值變量C1O1,初值為0.//
Numeric SIValue;//聲明數值變量SIValue。//
Begin
H0C1 = Abs( High - Close[1] ) ;//函數Abs就是取絕對值了,即把當前最高價High - 前一根k線收盤價Close[1],不管結果正負,都變為正整數了,則可求得變量HoC1值。//
L0C1 = Abs( Low - Close[1] ) ;//同理的,代入相應值,取正整數,求得變量LoC1值。//
H0L0 = High - Low ;//代入當前最高價與最低價,求得變量HoLo值了。//
C1O1 = Abs( Close[1] - Open[1] ) ;//代入前一根k線的收盤價與開盤價,把結果取正整數,即求得變量C1O1值。//
If (H0C1 >= L0C1)//假如變量HoC1>=變量LoC1值。//
{
K = H0C1 ;//變量K=變量HoC1值。//
If(H0C1 >= H0L0)//假如HoC1>=變量HoLo值。//
{
R = H0C1 - 0.5 * L0C1 + 0.25 * C1O1;//代入上面求得的值,即變量R=變量HoC1 - 0.5 * 變量LoC1 + 0.25 * 變量C1O1//
}Else//這個針對的是假如變量HoC1
{
R = H0L0 + 0.25 * C1O1 ;//變量R=變量HoLo + 0.25 *變量C1O1//
}
}Else//這個針對的是假如變量HoC1
{
K = L0C1;//變量K=變量LoC1值。//
If (L0C1 >= H0L0)//假如變量LoC1>=變量HoLo。//
{
R = L0C1 - 0.5 * H0C1 + 0.25 * C1O1;//同上,代入求得的相應數值就行。//
}Else//這個針對的是假如變量LoC1
{
R = H0L0 + 0.25 * C1O1 ;//代入相應數值了,即得變量R值。//
}
}
If(R <> 0 )//根據上面求得的,假如變量R值不等於0.//
{
SIValue = 50 * ( ( ( Close - Close[1] ) + 0.50 * ( Close - Open ) + 0.25* ( Close[1] - Open[1] ) ) / R ) * K / 1000; //這一大串看著很長,其實就是代入相應的當前K線的開盤價與收盤價、及前一根k線的開盤價與收盤價,再代入變量R與變量K值就行,就可以求得變量SIValue值了。//
}Else//就是假如變量R等於0的。//
{
SIValue = 0 ;//變量SIValue=0.//
}
PlotNumeric("SI",SIValue);//畫線SI,值為SIValue值了。//
PlotNumeric("零線",0);//畫零線。//
End
我不知道這指標有沒有人用的,就是很簡單的給解讀一下了,要是能有一點幫助也是好的。
閱讀更多 依之翊 的文章