VIMA是 variable-interval moving average 的簡稱,由R.G. Boomers所發明,是一條根據近期價格區間的變動大小所演變出來的移動平均線,有別於一般簡單移動均線只有計算到價格,從指標的公式來研究,VIMA隱含了波動率的概念,讓均線的變化程度更加靈敏
原理是先求出當根收盤價距離前N根收盤價的差值,然後找出近期的最高MaxDiff和最低差距MinDiff;計算當根的收盤價-前N根的收盤價 是落在(Maxdiff-MinDiff)的相對位置
直接從powerlanguage的公式解讀
inputs: MaxLength1(numericsimple), Length2(numericsimple),ShortestVIMALength(numericsimple), LongestVIMALength(numericsimple);
variables: VIMAOsc( 0 ),Length1( 0 ),MaxDiff( 0 ),MinDiff( 0 ),NormDiff( 0 ),VIMAOscMax( 0 ),VIMAOscMin( 0 ),VIMAOscNorm( 0),VIMALengthRange(LongestVIMALength - ShortestVIMALength);
VIMAOsc = 0;
for Length1 = 1 to MaxLength1
begin
MaxDiff = Highest(Close - Close[Length1], Length2); 計算近期最高的收盤價和前N根收盤價差距
MinDiff = Lowest(Close - Close[Length1], Length2); 計算近期最低的收盤價和前N根收盤價差距
if (MaxDiff - MinDiff)>0 then NormDiff = (Close - Close[Length1] - MinDiff) / (MaxDiff - MinDiff); 取百分比相對位置
VIMAOsc = VIMAOsc + NormDiff; VIMA的差值變化
end;
VIMAOscMax = Highest(VIMAOsc, Length2); 根據差值的變化 取一段時間的最高位置
VIMAOscMin = Lowest(VIMAOsc, Length2); 根據差值的變化 取一段時間的最低位置
VIMAOscNorm = (VIMAOsc - VIMAOscMin) / (VIMAOscMax - VIMAOscMin); 取相對位置
VIMA = ShortestVIMALength + Round(VIMAOscNorm * VIMALengthRange, 0);
相較於一般的移動平均線 VIMA相對貼近K棒的變動,利用VIMA的斜率變化當做依據寫成可以買進賣出的訊號似乎不錯,周末來研究看看,有心得再補充
留言列表