Algorithm 3. Oscillation Calculation. |
1: function OscillationCalc(indexVals[[], windowStart, winSize) |
2: lowestVal = getLowestVal(indexVals) |
3: movedZero = lowestVal–0.01*lowestVal |
4: oscillation = 0 |
5: for i between 1 and windowStart–1 do |
6: absDiff = ABS((indexVals[i]-indexVals[i-1])/(indexVals[i-1] -movedZero)) |
7: if absDiff ≥ 5.0 then oscillation += 1000 |
8: else if absDiff ≥ 1.0 then oscillation += 100 |
9: else if absDiff ≥ 0.5 then oscillation += 10 |
10: else if absDiff ≥ 0.25 then oscillation += 1 |
11: end if |
12: end for |
13: for i between windowStart+winSize and indexVals.size()-1 do |
14: absDiff = ABS((indexVals[i]-indexVals[i-1])/(indexVals[i-1] -movedZero)) |
15: if absDiff ≥ 5.0 then oscillation += 1000 |
16: else if absDiff ≥ 1.0 then oscillation += 100 |
17: else if absDiff ≥ 0.5 then oscillation += 10 |
18: else if absDiff ≥ 0.25 then oscillation += 1 |
19: end if |
20: end for |
21: return oscillation |
22: end function |