advanced_math 0.0.7 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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