advanced_math 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,3 +1,13 @@
1
+ === 0.0.7 2011-08-28
2
+
3
+ * 1 major enhancement:
4
+ * Enhanced RSI (Relative Strength Indicator) support
5
+
6
+ === 0.0.6 2011-08-28
7
+
8
+ * 1 major enhancement:
9
+ * Added RSI (Relative Strength Indicator) support
10
+
1
11
  === 0.0.5 2011-08-28
2
12
 
3
13
  * 1 major enhancement:
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{advanced_math}
8
- s.version = "0.0.7"
8
+ s.version = "0.0.8"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = [%q{Glenn Nagel}]
data/gem_publish.sh CHANGED
@@ -2,5 +2,7 @@
2
2
 
3
3
  rm *.gem;
4
4
  rake gemspec:generate &&
5
- gem build ./*gemspec &&
6
- gem push ./*gemspec
5
+ gem build ./*.gemspec &&
6
+ gem push ./*.gem
7
+ rm *.gem;
8
+ ls *.gemspec | sed 's/.gemspec$//g' | xargs gem install
data/lib/advanced_math.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module AdvancedMath
2
- VERSION = '0.0.7'
2
+ VERSION = '0.0.8'
3
3
  end
4
4
 
5
5
  require File.dirname(__FILE__) + "/advanced_math/sma.rb"
@@ -6,12 +6,15 @@ module AdvancedMath
6
6
  # Created: 2011-08-28
7
7
  # Author: G Nagel
8
8
  # Company: Mercury Wireless Software LLC
9
+ #
10
+ # Source: http://www.tradingmarkets.com/.site/stocks/commentary/editorial/2-Period-RSI.cfm
11
+ #
9
12
  # Source: http://en.wikipedia.org/wiki/Relative_Strength_Index#Cutler.27s_RSI
10
13
  # Source: http://www.aspenres.com/Documents/AspenGraphics4.0/Aspen_Graphics_4.htm#CutlersRSI.htm
11
14
  # Source: http://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:relative_strength_index_rsi
12
15
  ###
13
16
  class RelativeStrengthIndex
14
- attr_accessor :values_up, :values_down, :range, :last_value
17
+ attr_accessor :values_up, :values_down, :range, :last_value, :count
15
18
  attr_accessor :verbose
16
19
  ###
17
20
  # Initialize the members
@@ -25,6 +28,7 @@ module AdvancedMath
25
28
  @values_down = []
26
29
  @range = range.to_i()
27
30
  @last_value = nil
31
+ @count = 0
28
32
  end
29
33
 
30
34
  ###
@@ -49,14 +53,14 @@ module AdvancedMath
49
53
  diff = value.to_f - @last_value
50
54
  @last_value = value.to_f()
51
55
  if (0 > diff)
52
- @values_up << 0
53
- @values_down << diff.abs()
56
+ @values_up << 0
57
+ @values_down << diff.abs()
54
58
  elsif (0 < diff)
55
- @values_up << diff
56
- @values_down << 0
59
+ @values_up << diff
60
+ @values_down << 0
57
61
  else
58
- @values_up << 0
59
- @values_down << 0
62
+ @values_up << 0
63
+ @values_down << 0
60
64
  end
61
65
  puts "diff = #{diff}, values_up = #{@values_up.inspect()}, values_down = #{@values_down.inspect()}" if verbose()
62
66
 
@@ -73,8 +77,17 @@ module AdvancedMath
73
77
  end
74
78
 
75
79
  sum = {:up => 0, :down => 0, :i_up => 0, :i_down => 0}
76
- @values_up.each() { |value| sum[:up] = sum[:up] + value }
77
- @values_down.each() { |value| sum[:down] = sum[:down] + value }
80
+
81
+ @values_up.slice(0, range()-1).each() { |value| sum[:up] = sum[:up] + value }
82
+ @values_down.slice(0, range()-1).each() { |value| sum[:down] = sum[:down] + value }
83
+ if (count() == 0)
84
+ sum[:up] = sum[:up] + @values_up[range()-1]
85
+ sum[:down] = sum[:down] + @values_down[range()-1]
86
+ else
87
+ sum[:up] = sum[:up]/(range()-1) + @values_up[range()-1]
88
+ sum[:down] = sum[:down]/(range()-1) + @values_down[range()-1]
89
+ end
90
+ @count = count() + 1
78
91
 
79
92
  rs = (0 == sum[:down]) ? 100.0 : (sum[:up] / sum[:down])
80
93
  puts "rs = #{rs}" if verbose()
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: advanced_math
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
4
+ hash: 15
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 7
10
- version: 0.0.7
9
+ - 8
10
+ version: 0.0.8
11
11
  platform: ruby
12
12
  authors:
13
13
  - Glenn Nagel