ta-indicator 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +10 -0
- data/LICENSE-ta-lib +32 -0
- data/README.rdoc +196 -0
- data/Rakefile +13 -0
- data/examples/mapping.rb +43 -0
- data/lib/indicator.rb +56 -0
- data/lib/indicator/auto_gen.rb +163 -0
- data/lib/indicator/auto_gen/acos.rb +44 -0
- data/lib/indicator/auto_gen/ad.rb +44 -0
- data/lib/indicator/auto_gen/ad_osc.rb +58 -0
- data/lib/indicator/auto_gen/add.rb +45 -0
- data/lib/indicator/auto_gen/adx.rb +53 -0
- data/lib/indicator/auto_gen/adxr.rb +53 -0
- data/lib/indicator/auto_gen/apo.rb +63 -0
- data/lib/indicator/auto_gen/aroon.rb +56 -0
- data/lib/indicator/auto_gen/aroon_osc.rb +53 -0
- data/lib/indicator/auto_gen/asin.rb +44 -0
- data/lib/indicator/auto_gen/atan.rb +44 -0
- data/lib/indicator/auto_gen/atr.rb +53 -0
- data/lib/indicator/auto_gen/avg_price.rb +44 -0
- data/lib/indicator/auto_gen/bbands.rb +74 -0
- data/lib/indicator/auto_gen/beta.rb +54 -0
- data/lib/indicator/auto_gen/bop.rb +44 -0
- data/lib/indicator/auto_gen/cci.rb +53 -0
- data/lib/indicator/auto_gen/cdl2_crows.rb +44 -0
- data/lib/indicator/auto_gen/cdl3_black_crows.rb +44 -0
- data/lib/indicator/auto_gen/cdl3_inside.rb +44 -0
- data/lib/indicator/auto_gen/cdl3_line_strike.rb +44 -0
- data/lib/indicator/auto_gen/cdl3_outside.rb +44 -0
- data/lib/indicator/auto_gen/cdl3_stars_in_south.rb +44 -0
- data/lib/indicator/auto_gen/cdl3_white_soldiers.rb +44 -0
- data/lib/indicator/auto_gen/cdl_abandoned_baby.rb +53 -0
- data/lib/indicator/auto_gen/cdl_advance_block.rb +44 -0
- data/lib/indicator/auto_gen/cdl_belt_hold.rb +44 -0
- data/lib/indicator/auto_gen/cdl_breakaway.rb +44 -0
- data/lib/indicator/auto_gen/cdl_closing_marubozu.rb +44 -0
- data/lib/indicator/auto_gen/cdl_conceal_babys_wall.rb +44 -0
- data/lib/indicator/auto_gen/cdl_counter_attack.rb +44 -0
- data/lib/indicator/auto_gen/cdl_dark_cloud_cover.rb +53 -0
- data/lib/indicator/auto_gen/cdl_doji.rb +44 -0
- data/lib/indicator/auto_gen/cdl_doji_star.rb +44 -0
- data/lib/indicator/auto_gen/cdl_dragonfly_doji.rb +44 -0
- data/lib/indicator/auto_gen/cdl_engulfing.rb +44 -0
- data/lib/indicator/auto_gen/cdl_evening_doji_star.rb +53 -0
- data/lib/indicator/auto_gen/cdl_evening_star.rb +53 -0
- data/lib/indicator/auto_gen/cdl_gap_side_side_white.rb +44 -0
- data/lib/indicator/auto_gen/cdl_gravestone_doji.rb +44 -0
- data/lib/indicator/auto_gen/cdl_hammer.rb +44 -0
- data/lib/indicator/auto_gen/cdl_hanging_man.rb +44 -0
- data/lib/indicator/auto_gen/cdl_harami.rb +44 -0
- data/lib/indicator/auto_gen/cdl_harami_cross.rb +44 -0
- data/lib/indicator/auto_gen/cdl_hign_wave.rb +44 -0
- data/lib/indicator/auto_gen/cdl_hikkake.rb +44 -0
- data/lib/indicator/auto_gen/cdl_hikkake_mod.rb +44 -0
- data/lib/indicator/auto_gen/cdl_homing_pigeon.rb +44 -0
- data/lib/indicator/auto_gen/cdl_identical3_crows.rb +44 -0
- data/lib/indicator/auto_gen/cdl_in_neck.rb +44 -0
- data/lib/indicator/auto_gen/cdl_inverted_hammer.rb +44 -0
- data/lib/indicator/auto_gen/cdl_kicking.rb +44 -0
- data/lib/indicator/auto_gen/cdl_kicking_by_length.rb +44 -0
- data/lib/indicator/auto_gen/cdl_ladder_bottom.rb +44 -0
- data/lib/indicator/auto_gen/cdl_long_legged_doji.rb +44 -0
- data/lib/indicator/auto_gen/cdl_long_line.rb +44 -0
- data/lib/indicator/auto_gen/cdl_marubozu.rb +44 -0
- data/lib/indicator/auto_gen/cdl_mat_hold.rb +53 -0
- data/lib/indicator/auto_gen/cdl_matching_low.rb +44 -0
- data/lib/indicator/auto_gen/cdl_morning_doji_star.rb +53 -0
- data/lib/indicator/auto_gen/cdl_morning_star.rb +53 -0
- data/lib/indicator/auto_gen/cdl_on_neck.rb +44 -0
- data/lib/indicator/auto_gen/cdl_piercing.rb +44 -0
- data/lib/indicator/auto_gen/cdl_rickshaw_man.rb +44 -0
- data/lib/indicator/auto_gen/cdl_rise_fall3_methods.rb +44 -0
- data/lib/indicator/auto_gen/cdl_seperating_lines.rb +44 -0
- data/lib/indicator/auto_gen/cdl_shooting_star.rb +44 -0
- data/lib/indicator/auto_gen/cdl_short_line.rb +44 -0
- data/lib/indicator/auto_gen/cdl_spinning_top.rb +44 -0
- data/lib/indicator/auto_gen/cdl_stalled_pattern.rb +44 -0
- data/lib/indicator/auto_gen/cdl_stick_sandwhich.rb +44 -0
- data/lib/indicator/auto_gen/cdl_takuri.rb +44 -0
- data/lib/indicator/auto_gen/cdl_tasuki_gap.rb +44 -0
- data/lib/indicator/auto_gen/cdl_thrusting.rb +44 -0
- data/lib/indicator/auto_gen/cdl_tristar.rb +44 -0
- data/lib/indicator/auto_gen/cdl_unique3_river.rb +44 -0
- data/lib/indicator/auto_gen/cdl_upside_gap2_crows.rb +44 -0
- data/lib/indicator/auto_gen/cdl_x_side_gap3_methods.rb +44 -0
- data/lib/indicator/auto_gen/ceil.rb +44 -0
- data/lib/indicator/auto_gen/cmo.rb +53 -0
- data/lib/indicator/auto_gen/correl.rb +54 -0
- data/lib/indicator/auto_gen/cos.rb +44 -0
- data/lib/indicator/auto_gen/cosh.rb +44 -0
- data/lib/indicator/auto_gen/dema.rb +53 -0
- data/lib/indicator/auto_gen/div.rb +45 -0
- data/lib/indicator/auto_gen/dx.rb +53 -0
- data/lib/indicator/auto_gen/ema.rb +53 -0
- data/lib/indicator/auto_gen/exp.rb +44 -0
- data/lib/indicator/auto_gen/floor.rb +44 -0
- data/lib/indicator/auto_gen/ht_dc_period.rb +44 -0
- data/lib/indicator/auto_gen/ht_dc_phase.rb +44 -0
- data/lib/indicator/auto_gen/ht_phasor.rb +47 -0
- data/lib/indicator/auto_gen/ht_sine.rb +47 -0
- data/lib/indicator/auto_gen/ht_trend_mode.rb +44 -0
- data/lib/indicator/auto_gen/ht_trendline.rb +44 -0
- data/lib/indicator/auto_gen/kama.rb +53 -0
- data/lib/indicator/auto_gen/linear_reg.rb +53 -0
- data/lib/indicator/auto_gen/linear_reg_angle.rb +53 -0
- data/lib/indicator/auto_gen/linear_reg_intercept.rb +53 -0
- data/lib/indicator/auto_gen/linear_reg_slope.rb +53 -0
- data/lib/indicator/auto_gen/ln.rb +44 -0
- data/lib/indicator/auto_gen/log10.rb +44 -0
- data/lib/indicator/auto_gen/macd.rb +69 -0
- data/lib/indicator/auto_gen/macd_ext.rb +84 -0
- data/lib/indicator/auto_gen/macd_fix.rb +59 -0
- data/lib/indicator/auto_gen/mama.rb +61 -0
- data/lib/indicator/auto_gen/max.rb +53 -0
- data/lib/indicator/auto_gen/max_index.rb +53 -0
- data/lib/indicator/auto_gen/med_price.rb +44 -0
- data/lib/indicator/auto_gen/mfi.rb +53 -0
- data/lib/indicator/auto_gen/mid_point.rb +53 -0
- data/lib/indicator/auto_gen/mid_price.rb +53 -0
- data/lib/indicator/auto_gen/min.rb +53 -0
- data/lib/indicator/auto_gen/min_index.rb +53 -0
- data/lib/indicator/auto_gen/min_max.rb +56 -0
- data/lib/indicator/auto_gen/min_max_index.rb +56 -0
- data/lib/indicator/auto_gen/minus_di.rb +53 -0
- data/lib/indicator/auto_gen/minus_dm.rb +53 -0
- data/lib/indicator/auto_gen/mom.rb +53 -0
- data/lib/indicator/auto_gen/moving_average.rb +58 -0
- data/lib/indicator/auto_gen/moving_average_variable_period.rb +64 -0
- data/lib/indicator/auto_gen/mult.rb +45 -0
- data/lib/indicator/auto_gen/natr.rb +53 -0
- data/lib/indicator/auto_gen/obv.rb +44 -0
- data/lib/indicator/auto_gen/plus_di.rb +53 -0
- data/lib/indicator/auto_gen/plus_dm.rb +53 -0
- data/lib/indicator/auto_gen/ppo.rb +63 -0
- data/lib/indicator/auto_gen/roc.rb +53 -0
- data/lib/indicator/auto_gen/roc_p.rb +53 -0
- data/lib/indicator/auto_gen/roc_r.rb +53 -0
- data/lib/indicator/auto_gen/roc_r100.rb +53 -0
- data/lib/indicator/auto_gen/rsi.rb +53 -0
- data/lib/indicator/auto_gen/sar.rb +58 -0
- data/lib/indicator/auto_gen/sar_ext.rb +88 -0
- data/lib/indicator/auto_gen/sin.rb +44 -0
- data/lib/indicator/auto_gen/sinh.rb +44 -0
- data/lib/indicator/auto_gen/sma.rb +53 -0
- data/lib/indicator/auto_gen/sqrt.rb +44 -0
- data/lib/indicator/auto_gen/std_dev.rb +58 -0
- data/lib/indicator/auto_gen/stoch.rb +76 -0
- data/lib/indicator/auto_gen/stoch_f.rb +66 -0
- data/lib/indicator/auto_gen/stoch_rsi.rb +71 -0
- data/lib/indicator/auto_gen/sub.rb +45 -0
- data/lib/indicator/auto_gen/sum.rb +53 -0
- data/lib/indicator/auto_gen/t3.rb +58 -0
- data/lib/indicator/auto_gen/tan.rb +44 -0
- data/lib/indicator/auto_gen/tanh.rb +44 -0
- data/lib/indicator/auto_gen/tema.rb +53 -0
- data/lib/indicator/auto_gen/trima.rb +53 -0
- data/lib/indicator/auto_gen/trix.rb +53 -0
- data/lib/indicator/auto_gen/true_range.rb +44 -0
- data/lib/indicator/auto_gen/tsf.rb +53 -0
- data/lib/indicator/auto_gen/typ_price.rb +44 -0
- data/lib/indicator/auto_gen/ult_osc.rb +63 -0
- data/lib/indicator/auto_gen/variance.rb +58 -0
- data/lib/indicator/auto_gen/wcl_price.rb +44 -0
- data/lib/indicator/auto_gen/will_r.rb +53 -0
- data/lib/indicator/auto_gen/wma.rb +53 -0
- data/lib/indicator/base.rb +19 -0
- data/lib/indicator/data_mapper.rb +93 -0
- data/lib/indicator/mixin.rb +15 -0
- data/lib/indicator/version.rb +3 -0
- data/test/data_mapper_test.rb +76 -0
- metadata +226 -0
@@ -0,0 +1,53 @@
|
|
1
|
+
# Ta-Lib function mapping class
|
2
|
+
# Function: 'WILLR'
|
3
|
+
# Description: 'Williams' %R'
|
4
|
+
# This file has been autogenerated - Do Not Edit.
|
5
|
+
class Indicator::AutoGen::WillR < Indicator::Base
|
6
|
+
# Time Period <Integer>
|
7
|
+
attr_accessor :time_period
|
8
|
+
|
9
|
+
def initialize(*args)
|
10
|
+
if args.first.is_a? Hash
|
11
|
+
h = args.first
|
12
|
+
@time_period = h[:time_period] || 14
|
13
|
+
else
|
14
|
+
@time_period = args[0] || 14
|
15
|
+
end
|
16
|
+
|
17
|
+
@func = TaLib::Function.new("WILLR")
|
18
|
+
end
|
19
|
+
|
20
|
+
# Is price data required as an input
|
21
|
+
def self.price_input?
|
22
|
+
true
|
23
|
+
end
|
24
|
+
|
25
|
+
# The list of arguments
|
26
|
+
def self.arguments
|
27
|
+
[ :time_period ]
|
28
|
+
end
|
29
|
+
|
30
|
+
# The minimum set of inputs required
|
31
|
+
def self.inputs
|
32
|
+
[ :open, :high, :low, :close ]
|
33
|
+
end
|
34
|
+
|
35
|
+
# The outputs generated by this function
|
36
|
+
def self.outputs
|
37
|
+
[ :out_real ]
|
38
|
+
end
|
39
|
+
|
40
|
+
def run(*args)
|
41
|
+
o, h, l, c, v, len = map_ohlcv(false, *args)
|
42
|
+
@func.in_price(0, o, h, l, c, v, nil)
|
43
|
+
|
44
|
+
@func.opt_int(0, @time_period)
|
45
|
+
|
46
|
+
out_real = Array.new(len)
|
47
|
+
@func.out_real(0, out_real)
|
48
|
+
|
49
|
+
@func.call(0, len - 1)
|
50
|
+
|
51
|
+
out_real
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# Ta-Lib function mapping class
|
2
|
+
# Function: 'WMA'
|
3
|
+
# Description: 'Weighted Moving Average'
|
4
|
+
# This file has been autogenerated - Do Not Edit.
|
5
|
+
class Indicator::AutoGen::Wma < Indicator::Base
|
6
|
+
# Time Period <Integer>
|
7
|
+
attr_accessor :time_period
|
8
|
+
|
9
|
+
def initialize(*args)
|
10
|
+
if args.first.is_a? Hash
|
11
|
+
h = args.first
|
12
|
+
@time_period = h[:time_period] || 30
|
13
|
+
else
|
14
|
+
@time_period = args[0] || 30
|
15
|
+
end
|
16
|
+
|
17
|
+
@func = TaLib::Function.new("WMA")
|
18
|
+
end
|
19
|
+
|
20
|
+
# Is price data required as an input
|
21
|
+
def self.price_input?
|
22
|
+
false
|
23
|
+
end
|
24
|
+
|
25
|
+
# The list of arguments
|
26
|
+
def self.arguments
|
27
|
+
[ :time_period ]
|
28
|
+
end
|
29
|
+
|
30
|
+
# The minimum set of inputs required
|
31
|
+
def self.inputs
|
32
|
+
[ :in_real ]
|
33
|
+
end
|
34
|
+
|
35
|
+
# The outputs generated by this function
|
36
|
+
def self.outputs
|
37
|
+
[ :out_real ]
|
38
|
+
end
|
39
|
+
|
40
|
+
def run(in_real)
|
41
|
+
len = in_real.length
|
42
|
+
@func.in_real(0, map(in_real))
|
43
|
+
|
44
|
+
@func.opt_int(0, @time_period)
|
45
|
+
|
46
|
+
out_real = Array.new(len)
|
47
|
+
@func.out_real(0, out_real)
|
48
|
+
|
49
|
+
@func.call(0, len - 1)
|
50
|
+
|
51
|
+
out_real
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Indicator
|
2
|
+
|
3
|
+
# Base Indicator
|
4
|
+
class Base
|
5
|
+
include Indicator::DataMapper
|
6
|
+
|
7
|
+
attr_accessor :name
|
8
|
+
|
9
|
+
class << self
|
10
|
+
attr_reader :indicators
|
11
|
+
end
|
12
|
+
|
13
|
+
@indicators = []
|
14
|
+
|
15
|
+
def self.inherited(subclass)
|
16
|
+
Base.indicators << subclass
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,93 @@
|
|
1
|
+
module Indicator
|
2
|
+
module DataMapper
|
3
|
+
|
4
|
+
class SourceMustBeEnumerable < StandardError
|
5
|
+
end
|
6
|
+
|
7
|
+
class InvalidMapping < StandardError
|
8
|
+
end
|
9
|
+
|
10
|
+
Map = Struct.new(:source, :getter)
|
11
|
+
|
12
|
+
def default_getter
|
13
|
+
@default_getter || :close
|
14
|
+
end
|
15
|
+
|
16
|
+
def default_getter= v
|
17
|
+
@default_getter = v
|
18
|
+
end
|
19
|
+
|
20
|
+
def map ds, getter=default_getter
|
21
|
+
|
22
|
+
return nil unless ds
|
23
|
+
|
24
|
+
# ds can be supplied as an array of [source, mapping] or simply
|
25
|
+
# the source
|
26
|
+
if ds.is_a? Map
|
27
|
+
source = ds.source
|
28
|
+
mapping = ds.getter
|
29
|
+
else
|
30
|
+
source = ds
|
31
|
+
end
|
32
|
+
|
33
|
+
raise SourceMustBeEnumerable unless source.is_a? Enumerable
|
34
|
+
raise ArgumentError unless getter
|
35
|
+
|
36
|
+
# Return nil straight away if the data source is empty. The
|
37
|
+
# downstream ta-lib functions can handle a nil argument.
|
38
|
+
return nil unless source.length > 0
|
39
|
+
|
40
|
+
# No need to go any further if no mapping was specified and
|
41
|
+
# the specified data source responds to 'to_f'.
|
42
|
+
element = source.first
|
43
|
+
return source if element.respond_to?(:to_f) and mapping.nil?
|
44
|
+
|
45
|
+
mapping ||= getter
|
46
|
+
mapping_sym = mapping.to_sym rescue nil
|
47
|
+
|
48
|
+
# Figure out how to use the mapping value.
|
49
|
+
# It can either be a directly callable mapping, a function name
|
50
|
+
# or a hash index.
|
51
|
+
map_proc =
|
52
|
+
if mapping.respond_to? :call
|
53
|
+
mapping
|
54
|
+
else
|
55
|
+
if not mapping_sym.nil? and element.respond_to?(mapping_sym)
|
56
|
+
mapping_sym.to_proc
|
57
|
+
elsif element.respond_to?(:[])
|
58
|
+
->(e) { e[mapping] }
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
raise InvalidMapping unless map_proc
|
63
|
+
|
64
|
+
# Returned the mapped data
|
65
|
+
source.collect { |e| map_proc.call(e) }
|
66
|
+
end
|
67
|
+
|
68
|
+
def map_ohlcv volume_required, *args
|
69
|
+
|
70
|
+
raise ArgumentError unless args.length > 0
|
71
|
+
first = args.first
|
72
|
+
|
73
|
+
types = [:open, :high, :low, :close]
|
74
|
+
types << :volume if volume_required
|
75
|
+
|
76
|
+
l = types.inject([]) do |lst, t|
|
77
|
+
a = args.shift
|
78
|
+
lst << (a ? map(a, t) : map(first, t))
|
79
|
+
end
|
80
|
+
|
81
|
+
# Push a nil in the place of the volume data series
|
82
|
+
# if it hasn't been requested
|
83
|
+
l << nil unless volume_required
|
84
|
+
|
85
|
+
# Push the length onto the end of the array
|
86
|
+
l << first.length
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
def new_map(ds, map)
|
92
|
+
Indicator::DataMapper::Map.new(ds, map)
|
93
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'indicator'
|
2
|
+
|
3
|
+
module Indicator
|
4
|
+
module Mixin
|
5
|
+
def indicator type, *args
|
6
|
+
i = Indicator.create_named type, *args
|
7
|
+
i.run self
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
# Extend the array class with the mixin
|
13
|
+
class Array
|
14
|
+
include Indicator::Mixin
|
15
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require 'indicator'
|
3
|
+
|
4
|
+
include Indicator
|
5
|
+
|
6
|
+
class DataMapperTest < MiniTest::Unit::TestCase
|
7
|
+
class Bar
|
8
|
+
attr_accessor :open, :high, :low, :close, :volume
|
9
|
+
|
10
|
+
def initialize seed
|
11
|
+
@open = seed
|
12
|
+
@high = seed + 1
|
13
|
+
@low = seed + 2
|
14
|
+
@close = seed + 3
|
15
|
+
@volume = seed + 4
|
16
|
+
end
|
17
|
+
|
18
|
+
def [] index
|
19
|
+
if index == :mid
|
20
|
+
return (@open + @close) / 2.0
|
21
|
+
elsif index == :offset
|
22
|
+
return @open + 100
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def to_s
|
27
|
+
"#{@open},#{@high},#{@low},#{@close},#{@volume}"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
class MapTest
|
32
|
+
include DataMapper
|
33
|
+
end
|
34
|
+
|
35
|
+
def setup
|
36
|
+
@mapper = MapTest.new
|
37
|
+
@default_getter = :open
|
38
|
+
@simple_ds = [1,2,3,4,5,6,7,8,9,10]
|
39
|
+
@simple_ds2 = [11,12,13,14,15,16,17,18,19,20]
|
40
|
+
|
41
|
+
@bars = (1..10).inject([]) { |list, i| list << Bar.new(i) }
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_simple
|
45
|
+
r = @mapper.map @simple_ds, @default_getter
|
46
|
+
|
47
|
+
assert_equal @simple_ds, r
|
48
|
+
end
|
49
|
+
|
50
|
+
def ensure_default_is_not_used
|
51
|
+
r = @mapper.map @simple_ds, lambda { |i| i * 10 }
|
52
|
+
assert_equal @simple_ds, r
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_with_lamda
|
56
|
+
m = DataMapper::Map.new @simple_ds, lambda { |i| i * 10 }
|
57
|
+
r = @mapper.map m, @default_getter
|
58
|
+
|
59
|
+
ds2 = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
|
60
|
+
assert_equal ds2, r
|
61
|
+
end
|
62
|
+
|
63
|
+
def test_double_with_symbol_map
|
64
|
+
m = DataMapper::Map.new @bars, :open
|
65
|
+
r = @mapper.map m, @default_getter
|
66
|
+
|
67
|
+
assert_equal [1,2,3,4,5,6,7,8,9,10], r
|
68
|
+
end
|
69
|
+
|
70
|
+
def test_double_with_hash_map
|
71
|
+
m = DataMapper::Map.new @bars, :mid
|
72
|
+
r = @mapper.map m, @default_getter
|
73
|
+
|
74
|
+
assert_equal [2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5,10.5,11.5], r
|
75
|
+
end
|
76
|
+
end
|
metadata
ADDED
@@ -0,0 +1,226 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ta-indicator
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.4
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Michael Lamb
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-09-29 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: talib_ruby
|
16
|
+
requirement: &17147904 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *17147904
|
25
|
+
description: Higher level wrapper around the talib_ruby project
|
26
|
+
email: mr.lamby@gmail.com
|
27
|
+
executables: []
|
28
|
+
extensions: []
|
29
|
+
extra_rdoc_files: []
|
30
|
+
files:
|
31
|
+
- LICENSE
|
32
|
+
- LICENSE-ta-lib
|
33
|
+
- README.rdoc
|
34
|
+
- Rakefile
|
35
|
+
- lib/indicator/auto_gen/acos.rb
|
36
|
+
- lib/indicator/auto_gen/ad.rb
|
37
|
+
- lib/indicator/auto_gen/add.rb
|
38
|
+
- lib/indicator/auto_gen/adx.rb
|
39
|
+
- lib/indicator/auto_gen/adxr.rb
|
40
|
+
- lib/indicator/auto_gen/ad_osc.rb
|
41
|
+
- lib/indicator/auto_gen/apo.rb
|
42
|
+
- lib/indicator/auto_gen/aroon.rb
|
43
|
+
- lib/indicator/auto_gen/aroon_osc.rb
|
44
|
+
- lib/indicator/auto_gen/asin.rb
|
45
|
+
- lib/indicator/auto_gen/atan.rb
|
46
|
+
- lib/indicator/auto_gen/atr.rb
|
47
|
+
- lib/indicator/auto_gen/avg_price.rb
|
48
|
+
- lib/indicator/auto_gen/bbands.rb
|
49
|
+
- lib/indicator/auto_gen/beta.rb
|
50
|
+
- lib/indicator/auto_gen/bop.rb
|
51
|
+
- lib/indicator/auto_gen/cci.rb
|
52
|
+
- lib/indicator/auto_gen/cdl2_crows.rb
|
53
|
+
- lib/indicator/auto_gen/cdl3_black_crows.rb
|
54
|
+
- lib/indicator/auto_gen/cdl3_inside.rb
|
55
|
+
- lib/indicator/auto_gen/cdl3_line_strike.rb
|
56
|
+
- lib/indicator/auto_gen/cdl3_outside.rb
|
57
|
+
- lib/indicator/auto_gen/cdl3_stars_in_south.rb
|
58
|
+
- lib/indicator/auto_gen/cdl3_white_soldiers.rb
|
59
|
+
- lib/indicator/auto_gen/cdl_abandoned_baby.rb
|
60
|
+
- lib/indicator/auto_gen/cdl_advance_block.rb
|
61
|
+
- lib/indicator/auto_gen/cdl_belt_hold.rb
|
62
|
+
- lib/indicator/auto_gen/cdl_breakaway.rb
|
63
|
+
- lib/indicator/auto_gen/cdl_closing_marubozu.rb
|
64
|
+
- lib/indicator/auto_gen/cdl_conceal_babys_wall.rb
|
65
|
+
- lib/indicator/auto_gen/cdl_counter_attack.rb
|
66
|
+
- lib/indicator/auto_gen/cdl_dark_cloud_cover.rb
|
67
|
+
- lib/indicator/auto_gen/cdl_doji.rb
|
68
|
+
- lib/indicator/auto_gen/cdl_doji_star.rb
|
69
|
+
- lib/indicator/auto_gen/cdl_dragonfly_doji.rb
|
70
|
+
- lib/indicator/auto_gen/cdl_engulfing.rb
|
71
|
+
- lib/indicator/auto_gen/cdl_evening_doji_star.rb
|
72
|
+
- lib/indicator/auto_gen/cdl_evening_star.rb
|
73
|
+
- lib/indicator/auto_gen/cdl_gap_side_side_white.rb
|
74
|
+
- lib/indicator/auto_gen/cdl_gravestone_doji.rb
|
75
|
+
- lib/indicator/auto_gen/cdl_hammer.rb
|
76
|
+
- lib/indicator/auto_gen/cdl_hanging_man.rb
|
77
|
+
- lib/indicator/auto_gen/cdl_harami.rb
|
78
|
+
- lib/indicator/auto_gen/cdl_harami_cross.rb
|
79
|
+
- lib/indicator/auto_gen/cdl_hign_wave.rb
|
80
|
+
- lib/indicator/auto_gen/cdl_hikkake.rb
|
81
|
+
- lib/indicator/auto_gen/cdl_hikkake_mod.rb
|
82
|
+
- lib/indicator/auto_gen/cdl_homing_pigeon.rb
|
83
|
+
- lib/indicator/auto_gen/cdl_identical3_crows.rb
|
84
|
+
- lib/indicator/auto_gen/cdl_inverted_hammer.rb
|
85
|
+
- lib/indicator/auto_gen/cdl_in_neck.rb
|
86
|
+
- lib/indicator/auto_gen/cdl_kicking.rb
|
87
|
+
- lib/indicator/auto_gen/cdl_kicking_by_length.rb
|
88
|
+
- lib/indicator/auto_gen/cdl_ladder_bottom.rb
|
89
|
+
- lib/indicator/auto_gen/cdl_long_legged_doji.rb
|
90
|
+
- lib/indicator/auto_gen/cdl_long_line.rb
|
91
|
+
- lib/indicator/auto_gen/cdl_marubozu.rb
|
92
|
+
- lib/indicator/auto_gen/cdl_matching_low.rb
|
93
|
+
- lib/indicator/auto_gen/cdl_mat_hold.rb
|
94
|
+
- lib/indicator/auto_gen/cdl_morning_doji_star.rb
|
95
|
+
- lib/indicator/auto_gen/cdl_morning_star.rb
|
96
|
+
- lib/indicator/auto_gen/cdl_on_neck.rb
|
97
|
+
- lib/indicator/auto_gen/cdl_piercing.rb
|
98
|
+
- lib/indicator/auto_gen/cdl_rickshaw_man.rb
|
99
|
+
- lib/indicator/auto_gen/cdl_rise_fall3_methods.rb
|
100
|
+
- lib/indicator/auto_gen/cdl_seperating_lines.rb
|
101
|
+
- lib/indicator/auto_gen/cdl_shooting_star.rb
|
102
|
+
- lib/indicator/auto_gen/cdl_short_line.rb
|
103
|
+
- lib/indicator/auto_gen/cdl_spinning_top.rb
|
104
|
+
- lib/indicator/auto_gen/cdl_stalled_pattern.rb
|
105
|
+
- lib/indicator/auto_gen/cdl_stick_sandwhich.rb
|
106
|
+
- lib/indicator/auto_gen/cdl_takuri.rb
|
107
|
+
- lib/indicator/auto_gen/cdl_tasuki_gap.rb
|
108
|
+
- lib/indicator/auto_gen/cdl_thrusting.rb
|
109
|
+
- lib/indicator/auto_gen/cdl_tristar.rb
|
110
|
+
- lib/indicator/auto_gen/cdl_unique3_river.rb
|
111
|
+
- lib/indicator/auto_gen/cdl_upside_gap2_crows.rb
|
112
|
+
- lib/indicator/auto_gen/cdl_x_side_gap3_methods.rb
|
113
|
+
- lib/indicator/auto_gen/ceil.rb
|
114
|
+
- lib/indicator/auto_gen/cmo.rb
|
115
|
+
- lib/indicator/auto_gen/correl.rb
|
116
|
+
- lib/indicator/auto_gen/cos.rb
|
117
|
+
- lib/indicator/auto_gen/cosh.rb
|
118
|
+
- lib/indicator/auto_gen/dema.rb
|
119
|
+
- lib/indicator/auto_gen/div.rb
|
120
|
+
- lib/indicator/auto_gen/dx.rb
|
121
|
+
- lib/indicator/auto_gen/ema.rb
|
122
|
+
- lib/indicator/auto_gen/exp.rb
|
123
|
+
- lib/indicator/auto_gen/floor.rb
|
124
|
+
- lib/indicator/auto_gen/ht_dc_period.rb
|
125
|
+
- lib/indicator/auto_gen/ht_dc_phase.rb
|
126
|
+
- lib/indicator/auto_gen/ht_phasor.rb
|
127
|
+
- lib/indicator/auto_gen/ht_sine.rb
|
128
|
+
- lib/indicator/auto_gen/ht_trendline.rb
|
129
|
+
- lib/indicator/auto_gen/ht_trend_mode.rb
|
130
|
+
- lib/indicator/auto_gen/kama.rb
|
131
|
+
- lib/indicator/auto_gen/linear_reg.rb
|
132
|
+
- lib/indicator/auto_gen/linear_reg_angle.rb
|
133
|
+
- lib/indicator/auto_gen/linear_reg_intercept.rb
|
134
|
+
- lib/indicator/auto_gen/linear_reg_slope.rb
|
135
|
+
- lib/indicator/auto_gen/ln.rb
|
136
|
+
- lib/indicator/auto_gen/log10.rb
|
137
|
+
- lib/indicator/auto_gen/macd.rb
|
138
|
+
- lib/indicator/auto_gen/macd_ext.rb
|
139
|
+
- lib/indicator/auto_gen/macd_fix.rb
|
140
|
+
- lib/indicator/auto_gen/mama.rb
|
141
|
+
- lib/indicator/auto_gen/max.rb
|
142
|
+
- lib/indicator/auto_gen/max_index.rb
|
143
|
+
- lib/indicator/auto_gen/med_price.rb
|
144
|
+
- lib/indicator/auto_gen/mfi.rb
|
145
|
+
- lib/indicator/auto_gen/mid_point.rb
|
146
|
+
- lib/indicator/auto_gen/mid_price.rb
|
147
|
+
- lib/indicator/auto_gen/min.rb
|
148
|
+
- lib/indicator/auto_gen/minus_di.rb
|
149
|
+
- lib/indicator/auto_gen/minus_dm.rb
|
150
|
+
- lib/indicator/auto_gen/min_index.rb
|
151
|
+
- lib/indicator/auto_gen/min_max.rb
|
152
|
+
- lib/indicator/auto_gen/min_max_index.rb
|
153
|
+
- lib/indicator/auto_gen/mom.rb
|
154
|
+
- lib/indicator/auto_gen/moving_average.rb
|
155
|
+
- lib/indicator/auto_gen/moving_average_variable_period.rb
|
156
|
+
- lib/indicator/auto_gen/mult.rb
|
157
|
+
- lib/indicator/auto_gen/natr.rb
|
158
|
+
- lib/indicator/auto_gen/obv.rb
|
159
|
+
- lib/indicator/auto_gen/plus_di.rb
|
160
|
+
- lib/indicator/auto_gen/plus_dm.rb
|
161
|
+
- lib/indicator/auto_gen/ppo.rb
|
162
|
+
- lib/indicator/auto_gen/roc.rb
|
163
|
+
- lib/indicator/auto_gen/roc_p.rb
|
164
|
+
- lib/indicator/auto_gen/roc_r.rb
|
165
|
+
- lib/indicator/auto_gen/roc_r100.rb
|
166
|
+
- lib/indicator/auto_gen/rsi.rb
|
167
|
+
- lib/indicator/auto_gen/sar.rb
|
168
|
+
- lib/indicator/auto_gen/sar_ext.rb
|
169
|
+
- lib/indicator/auto_gen/sin.rb
|
170
|
+
- lib/indicator/auto_gen/sinh.rb
|
171
|
+
- lib/indicator/auto_gen/sma.rb
|
172
|
+
- lib/indicator/auto_gen/sqrt.rb
|
173
|
+
- lib/indicator/auto_gen/std_dev.rb
|
174
|
+
- lib/indicator/auto_gen/stoch.rb
|
175
|
+
- lib/indicator/auto_gen/stoch_f.rb
|
176
|
+
- lib/indicator/auto_gen/stoch_rsi.rb
|
177
|
+
- lib/indicator/auto_gen/sub.rb
|
178
|
+
- lib/indicator/auto_gen/sum.rb
|
179
|
+
- lib/indicator/auto_gen/t3.rb
|
180
|
+
- lib/indicator/auto_gen/tan.rb
|
181
|
+
- lib/indicator/auto_gen/tanh.rb
|
182
|
+
- lib/indicator/auto_gen/tema.rb
|
183
|
+
- lib/indicator/auto_gen/trima.rb
|
184
|
+
- lib/indicator/auto_gen/trix.rb
|
185
|
+
- lib/indicator/auto_gen/true_range.rb
|
186
|
+
- lib/indicator/auto_gen/tsf.rb
|
187
|
+
- lib/indicator/auto_gen/typ_price.rb
|
188
|
+
- lib/indicator/auto_gen/ult_osc.rb
|
189
|
+
- lib/indicator/auto_gen/variance.rb
|
190
|
+
- lib/indicator/auto_gen/wcl_price.rb
|
191
|
+
- lib/indicator/auto_gen/will_r.rb
|
192
|
+
- lib/indicator/auto_gen/wma.rb
|
193
|
+
- lib/indicator/auto_gen.rb
|
194
|
+
- lib/indicator/base.rb
|
195
|
+
- lib/indicator/data_mapper.rb
|
196
|
+
- lib/indicator/mixin.rb
|
197
|
+
- lib/indicator/version.rb
|
198
|
+
- lib/indicator.rb
|
199
|
+
- examples/mapping.rb
|
200
|
+
- test/data_mapper_test.rb
|
201
|
+
homepage: https://github.com/mlamby/indicator
|
202
|
+
licenses: []
|
203
|
+
post_install_message:
|
204
|
+
rdoc_options: []
|
205
|
+
require_paths:
|
206
|
+
- lib
|
207
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
208
|
+
none: false
|
209
|
+
requirements:
|
210
|
+
- - ! '>='
|
211
|
+
- !ruby/object:Gem::Version
|
212
|
+
version: '0'
|
213
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
214
|
+
none: false
|
215
|
+
requirements:
|
216
|
+
- - ! '>='
|
217
|
+
- !ruby/object:Gem::Version
|
218
|
+
version: '0'
|
219
|
+
requirements: []
|
220
|
+
rubyforge_project:
|
221
|
+
rubygems_version: 1.8.10
|
222
|
+
signing_key:
|
223
|
+
specification_version: 3
|
224
|
+
summary: Technical Analysis library
|
225
|
+
test_files:
|
226
|
+
- test/data_mapper_test.rb
|