Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,31 @@
|
|||
Object subclass: MovingAverage [
|
||||
|valueCollection period collectedNumber sum|
|
||||
MovingAverage class >> newWithPeriod: thePeriod [
|
||||
|r|
|
||||
r := super basicNew.
|
||||
^ r initWithPeriod: thePeriod
|
||||
]
|
||||
initWithPeriod: thePeriod [
|
||||
valueCollection := OrderedCollection new: thePeriod.
|
||||
period := thePeriod.
|
||||
collectedNumber := 0.
|
||||
sum := 0
|
||||
]
|
||||
sma [ collectedNumber < period
|
||||
ifTrue: [ ^ sum / collectedNumber ]
|
||||
ifFalse: [ ^ sum / period ] ]
|
||||
add: value [
|
||||
collectedNumber < period
|
||||
ifTrue: [
|
||||
sum := sum + value.
|
||||
valueCollection add: value.
|
||||
collectedNumber := collectedNumber + 1.
|
||||
]
|
||||
ifFalse: [
|
||||
sum := sum - (valueCollection removeFirst).
|
||||
sum := sum + value.
|
||||
valueCollection add: value
|
||||
].
|
||||
^ self sma
|
||||
]
|
||||
].
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
|sma3 sma5|
|
||||
|
||||
sma3 := MovingAverage newWithPeriod: 3.
|
||||
sma5 := MovingAverage newWithPeriod: 5.
|
||||
|
||||
#( 1 2 3 4 5 5 4 3 2 1 ) do: [ :v |
|
||||
('Next number %1, SMA_3 = %2, SMA_5 = %3' % {
|
||||
v . (sma3 add: v) asFloat . (sma5 add: v) asFloat
|
||||
}) displayNl
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue