UOC即終極擺動指標未舟,百度一下站故,你會發(fā)現介紹里寫它的功能很強大,而且有一套很明確的買賣系統(tǒng),當然渺鹦,我這里只解讀它代碼的意思,至于它的買賣規(guī)則到底行不行的通舌稀,要是有人喜歡這個指標,就自己測試了聂儒。
至于它的算法,意思是這樣的硫痰, 先找出三個周期不同的振蕩指標衩婚,再將這些周期參數,按照反比例的方式效斑,制作成常數因子非春。然后,依照加權的方式缓屠,將三個周期不同的振蕩指標奇昙,分別乘以不同比例的常數,加以綜合制作成UOS指標敌完。
看這個具體代碼前储耐,先說下它涉及到的函數有四個,當然這四個我之前都已經解讀過一遍了滨溉,這里也不再重復了什湘,就是復制在下邊,方便大家看了理解晦攒。
第一個闽撤,求真實范圍函數TrueRange,代碼如下:
Begin
If(CurrentBar == 0)
Return High - Low;
Else
Return TrueHigh - TrueLow;
End
第二個脯颜,求真實高點函數TrueHigh哟旗,代碼如下:
Vars
Numeric THighValue;
Begin
THighValue = Close[1];
If(High >= Close[1])
THighValue = High;
Return THighValue;
End
第三個不用說了,就是求真實低點函數TrueLow栋操,如下:
Vars
Numeric TLowValue;
Begin
TLowValue = Close[1];
If(Low <= Close[1])
TLowValue = Low;
Return TLowValue;
End
第四個闸餐,快速求和函數SummationFC,如下:
Params
NumericSeries Price(1);
Numeric Length(10);
Vars
NumericSeries SumValue(0);
Numeric i;
Begin
If(CurrentBar < Length)
{
SumValue = 0;
for i = 0 to Length - 1
{
SumValue = SumValue + Price[i];
}
}Else
{
SumValue = SumValue[1] + Price - Price[Length];
}
Return SumValue;
End
有了這四個函數讼庇,我們看具體代碼時绎巨,只要一看到它們,就是返回到這個函數來求值了蠕啄,現在看UOC的具體代碼及解讀如下:
Params
Numeric FastLength( 7 );//聲明數值參數FastLength场勤,初值為7,即用來求快速移動了歼跟。//
Numeric MidLength( 14 );//聲明數值參數MidLength和媳,初值為14,即求中速移動哈街。//?
Numeric SlowLength( 28 ) ;//聲明數值參數SlowLength留瞳,初值為28,即求慢速移動骚秦。//
Vars
Numeric Factor1( 0 );??//聲明數值變量Factor1她倘,初值為0璧微,即系數因子1了。//
Numeric Factor2( 0 ) ;//聲明數值變量Factor2硬梁,初值為0前硫,即系數因子2。//
Numeric Value1;//聲明數值變量Value1荧止。//
Numeric Value2;//聲明數值變量Value2.//
Numeric Value3;//聲明數值變量Value3.//
Numeric Value4;//聲明數值變量Value4.//
Numeric Value5;?//聲明數值變量Value5.//
Numeric Value6;//聲明數值變量Value6.//
Numeric Value7;//聲明數值變量Value7.//
Numeric Value8;//聲明數值變量Value8.//
Numeric Value9;//聲明數值變量Value9.//
Numeric UOCValue;//聲明數值變量UOCValue屹电。//
Begin
Value1 = SummationFC( TrueRange, FastLength ) ;//意思就是快速求出5個周期內價格真實波動值的總和,把總和值賦值給變量Value1了跃巡。//
Value2 = SummationFC( TrueRange, MidLength ) ;//改變周期危号,同上解讀。//
Value3 = SummationFC( TrueRange, SlowLength ) ;//改變周期素邪,同上解讀外莲。//
Value4 = SummationFC( Close - TrueLow, FastLength ) ;//這個多了一步計算,但意思一樣的娘香,就是快速求出5個周期內以收盤價減去真實低點的波動值的總和苍狰,把總和賦值給變量Value4.//
Value5 = SummationFC( Close - TrueLow, MidLength ) ;//改變周期办龄,同上解讀烘绽。//
Value6 = SummationFC( Close - TrueLow, SlowLength ) ;//改變周期,同上解讀俐填。//
If( Value1 == 0 Or Value2 == 0 Or?Value3 == 0 )//假如變量Value1等于0安接,或者變量Value2等于0,或者變量Value3等于0英融,這三個中只要有一個條件成立盏檐,就立即執(zhí)行下列花括號代碼。//
{
UOCValue = 0;//變量UOCValue =0 //
}Else//就是上面三個條件都不成立的情況下驶悟,執(zhí)行下列代碼胡野。//
{
Factor1 = SlowLength / FastLength ;//代入相應參數,即系數因子Factor1 =28 / 7 了. //
Factor2 = SlowLength / MidLength ;//代入相應參數痕鳍,系數因子Factor2 = 28 / 14了硫豆。//
Value7 = ( Value4 / Value1 ) * ( Factor1 ) ;//根據上面求得的值,代入相應數值笼呆,即可求出變量Value7的值了熊响。//
Value8 = ( Value5 / Value2 ) * ( Factor2 ) ;//同上,代入相應值即可诗赌。//
Value9 = ( Value6 / Value3 ) ;//同上汗茄,代入相應值即可。//
UOCValue = ( Value7 + Value8 + Value9 ) / ( Factor1 + Factor2 + 1 ) ;//同理的铭若,把求得的三個變量與兩個系數因子代入洪碳,即可求得UOCValue值了递览。//
}
PlotNumeric("UOC",UOCValue);//畫線UOC線,值為UOCValue值了瞳腌。//
End
代碼其實不難的非迹,只要知道了算法,根據算法寫上相應代碼纯趋,一步步執(zhí)行下來憎兽,只要把相應的值先求出,后邊的也就一點點把值求出來了吵冒。