stock_price_imitation 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +7 -8
- data/lib/stock_price_imitation/generator.rb +14 -6
- data/lib/stock_price_imitation/version.rb +1 -1
- data/test/test_generator.rb +9 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 22da3c52d9a592e41a0bbb03ab3653413c77bc69
|
4
|
+
data.tar.gz: 4534e896315946b7753629e306002166e080d366
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 51e2555a8bc20f208132fa83fe00b124b8967f0b45d11519f6f90896730e15a658e588631a492d0cc6428e55e94c13276965e3d3573637569400b642c86bba99
|
7
|
+
data.tar.gz: 1f4a74c8f96d605f607e4e630ec848ba1f2f90aab86fa90134fb8eeae22a5c22f608436247b3e7a65108260e7e40936522c840cbe37f1629d4ef8afaa6407bcd
|
data/README.md
CHANGED
@@ -24,16 +24,15 @@ Or install it yourself as:
|
|
24
24
|
require 'stock_price_imitation'
|
25
25
|
|
26
26
|
step = 100
|
27
|
-
|
28
|
-
volatility = 0.2
|
27
|
+
first_seed_price = 10000
|
29
28
|
|
30
|
-
StockPriceImitation::Generator.new(step,
|
29
|
+
StockPriceImitation::Generator.new(step, first_seed_price).execute
|
31
30
|
#=>
|
32
31
|
# [
|
33
|
-
# {opening_price:
|
34
|
-
# {opening_price
|
35
|
-
# {opening_price:
|
36
|
-
# {opening_price
|
37
|
-
#
|
32
|
+
# {:opening_price=>4159.493944357897, :closing_price=>4569.307745093309, :low_price=>3505.808433389255, :high_price=>5912.357228503945},
|
33
|
+
# {:opening_price=>3541.7376008768974, :closing_price=>3887.9262834566866, :low_price=>3328.361828447127, :high_price=>5535.742136147374},
|
34
|
+
# {:opening_price=>9048.18367848711, :closing_price=>8573.694158336206, :low_price=>8082.212918461541, :high_price=>9735.473910738032},
|
35
|
+
# {:opening_price=>5117.8471523358085, :closing_price=>7558.560742729045, :low_price=>3466.6265172827384, :high_price=>8218.548256191063},
|
36
|
+
# ...
|
38
37
|
# ]
|
39
38
|
```
|
@@ -4,7 +4,7 @@ class StockPriceImitation::Generator
|
|
4
4
|
def initialize(step_count, first_seed_price=1000)
|
5
5
|
@step_count = step_count
|
6
6
|
@first_seed_price = first_seed_price
|
7
|
-
@bell = RandomBell.new(mu:
|
7
|
+
@bell = RandomBell.new(mu: 0.0, range: 0.0..2.0)
|
8
8
|
|
9
9
|
@steps = []
|
10
10
|
end
|
@@ -23,7 +23,7 @@ class StockPriceImitation::Generator
|
|
23
23
|
@seeds << @first_seed_price
|
24
24
|
else
|
25
25
|
previous = @seeds[i-1]
|
26
|
-
@seeds << previous * @bell.rand
|
26
|
+
@seeds << previous + (@first_seed_price * @bell.rand * [-1,1].sample)
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
@@ -47,19 +47,27 @@ class StockPriceImitation::Generator
|
|
47
47
|
end
|
48
48
|
|
49
49
|
def low_price
|
50
|
-
@low_price
|
50
|
+
to_zero_if_negative @low_price
|
51
51
|
end
|
52
52
|
|
53
53
|
def high_price
|
54
|
-
@high_price
|
54
|
+
to_zero_if_negative @high_price
|
55
55
|
end
|
56
56
|
|
57
57
|
def opening_price
|
58
|
-
(rand low_price..high_price)
|
58
|
+
to_zero_if_negative (rand low_price..high_price)
|
59
59
|
end
|
60
60
|
|
61
61
|
def closing_price
|
62
|
-
(rand low_price..high_price)
|
62
|
+
to_zero_if_negative (rand low_price..high_price)
|
63
|
+
end
|
64
|
+
|
65
|
+
def to_zero_if_negative(number)
|
66
|
+
if number < 0
|
67
|
+
return 0
|
68
|
+
end
|
69
|
+
|
70
|
+
number
|
63
71
|
end
|
64
72
|
|
65
73
|
def to_hash
|
data/test/test_generator.rb
CHANGED
@@ -50,5 +50,14 @@ describe StockPriceImitation::Generator do
|
|
50
50
|
assert (price[:low_price]..price[:high_price]).include? price[:closing_price]
|
51
51
|
end
|
52
52
|
end
|
53
|
+
|
54
|
+
it 'price is not negative number' do
|
55
|
+
generator = StockPriceImitation::Generator.new(1000, 10)
|
56
|
+
price_movement = generator.execute
|
57
|
+
|
58
|
+
price_movement.each do |price|
|
59
|
+
assert price.values.all?{|v| v >= 0 }
|
60
|
+
end
|
61
|
+
end
|
53
62
|
end
|
54
63
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stock_price_imitation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shinya131
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|