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: 'NATR'
|
3
|
+
# Description: 'Normalized Average True Range'
|
4
|
+
# This file has been autogenerated - Do Not Edit.
|
5
|
+
class Indicator::AutoGen::Natr < 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("NATR")
|
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,44 @@
|
|
1
|
+
# Ta-Lib function mapping class
|
2
|
+
# Function: 'OBV'
|
3
|
+
# Description: 'On Balance Volume'
|
4
|
+
# This file has been autogenerated - Do Not Edit.
|
5
|
+
class Indicator::AutoGen::Obv < Indicator::Base
|
6
|
+
|
7
|
+
def initialize(*args)
|
8
|
+
|
9
|
+
@func = TaLib::Function.new("OBV")
|
10
|
+
end
|
11
|
+
|
12
|
+
# Is price data required as an input
|
13
|
+
def self.price_input?
|
14
|
+
true
|
15
|
+
end
|
16
|
+
|
17
|
+
# The list of arguments
|
18
|
+
def self.arguments
|
19
|
+
[ ]
|
20
|
+
end
|
21
|
+
|
22
|
+
# The minimum set of inputs required
|
23
|
+
def self.inputs
|
24
|
+
[ :open, :high, :low, :close, :volume ]
|
25
|
+
end
|
26
|
+
|
27
|
+
# The outputs generated by this function
|
28
|
+
def self.outputs
|
29
|
+
[ :out_real ]
|
30
|
+
end
|
31
|
+
|
32
|
+
def run(*args)
|
33
|
+
o, h, l, c, v, len = map_ohlcv(true, *args)
|
34
|
+
@func.in_price(0, o, h, l, c, v, nil)
|
35
|
+
|
36
|
+
|
37
|
+
out_real = Array.new(len)
|
38
|
+
@func.out_real(0, out_real)
|
39
|
+
|
40
|
+
@func.call(0, len - 1)
|
41
|
+
|
42
|
+
out_real
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# Ta-Lib function mapping class
|
2
|
+
# Function: 'PLUS_DI'
|
3
|
+
# Description: 'Plus Directional Indicator'
|
4
|
+
# This file has been autogenerated - Do Not Edit.
|
5
|
+
class Indicator::AutoGen::PlusDI < 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("PLUS_DI")
|
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: 'PLUS_DM'
|
3
|
+
# Description: 'Plus Directional Movement'
|
4
|
+
# This file has been autogenerated - Do Not Edit.
|
5
|
+
class Indicator::AutoGen::PlusDM < 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("PLUS_DM")
|
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,63 @@
|
|
1
|
+
# Ta-Lib function mapping class
|
2
|
+
# Function: 'PPO'
|
3
|
+
# Description: 'Percentage Price Oscillator'
|
4
|
+
# This file has been autogenerated - Do Not Edit.
|
5
|
+
class Indicator::AutoGen::Ppo < Indicator::Base
|
6
|
+
# Fast Period <Integer>
|
7
|
+
attr_accessor :fast_period
|
8
|
+
# Slow Period <Integer>
|
9
|
+
attr_accessor :slow_period
|
10
|
+
# MA Type <MA Type>
|
11
|
+
attr_accessor :ma_type
|
12
|
+
|
13
|
+
def initialize(*args)
|
14
|
+
if args.first.is_a? Hash
|
15
|
+
h = args.first
|
16
|
+
@fast_period = h[:fast_period] || 12
|
17
|
+
@slow_period = h[:slow_period] || 26
|
18
|
+
@ma_type = h[:ma_type] || 0
|
19
|
+
else
|
20
|
+
@fast_period = args[0] || 12
|
21
|
+
@slow_period = args[1] || 26
|
22
|
+
@ma_type = args[2] || 0
|
23
|
+
end
|
24
|
+
|
25
|
+
@func = TaLib::Function.new("PPO")
|
26
|
+
end
|
27
|
+
|
28
|
+
# Is price data required as an input
|
29
|
+
def self.price_input?
|
30
|
+
false
|
31
|
+
end
|
32
|
+
|
33
|
+
# The list of arguments
|
34
|
+
def self.arguments
|
35
|
+
[ :fast_period, :slow_period, :ma_type ]
|
36
|
+
end
|
37
|
+
|
38
|
+
# The minimum set of inputs required
|
39
|
+
def self.inputs
|
40
|
+
[ :in_real ]
|
41
|
+
end
|
42
|
+
|
43
|
+
# The outputs generated by this function
|
44
|
+
def self.outputs
|
45
|
+
[ :out_real ]
|
46
|
+
end
|
47
|
+
|
48
|
+
def run(in_real)
|
49
|
+
len = in_real.length
|
50
|
+
@func.in_real(0, map(in_real))
|
51
|
+
|
52
|
+
@func.opt_int(0, @fast_period)
|
53
|
+
@func.opt_int(1, @slow_period)
|
54
|
+
@func.opt_int(2, @ma_type)
|
55
|
+
|
56
|
+
out_real = Array.new(len)
|
57
|
+
@func.out_real(0, out_real)
|
58
|
+
|
59
|
+
@func.call(0, len - 1)
|
60
|
+
|
61
|
+
out_real
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# Ta-Lib function mapping class
|
2
|
+
# Function: 'ROC'
|
3
|
+
# Description: 'Rate of change : ((price/prevPrice)-1)*100'
|
4
|
+
# This file has been autogenerated - Do Not Edit.
|
5
|
+
class Indicator::AutoGen::Roc < 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] || 10
|
13
|
+
else
|
14
|
+
@time_period = args[0] || 10
|
15
|
+
end
|
16
|
+
|
17
|
+
@func = TaLib::Function.new("ROC")
|
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,53 @@
|
|
1
|
+
# Ta-Lib function mapping class
|
2
|
+
# Function: 'ROCP'
|
3
|
+
# Description: 'Rate of change Percentage: (price-prevPrice)/prevPrice'
|
4
|
+
# This file has been autogenerated - Do Not Edit.
|
5
|
+
class Indicator::AutoGen::RocP < 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] || 10
|
13
|
+
else
|
14
|
+
@time_period = args[0] || 10
|
15
|
+
end
|
16
|
+
|
17
|
+
@func = TaLib::Function.new("ROCP")
|
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,53 @@
|
|
1
|
+
# Ta-Lib function mapping class
|
2
|
+
# Function: 'ROCR'
|
3
|
+
# Description: 'Rate of change ratio: (price/prevPrice)'
|
4
|
+
# This file has been autogenerated - Do Not Edit.
|
5
|
+
class Indicator::AutoGen::RocR < 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] || 10
|
13
|
+
else
|
14
|
+
@time_period = args[0] || 10
|
15
|
+
end
|
16
|
+
|
17
|
+
@func = TaLib::Function.new("ROCR")
|
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,53 @@
|
|
1
|
+
# Ta-Lib function mapping class
|
2
|
+
# Function: 'ROCR100'
|
3
|
+
# Description: 'Rate of change ratio 100 scale: (price/prevPrice)*100'
|
4
|
+
# This file has been autogenerated - Do Not Edit.
|
5
|
+
class Indicator::AutoGen::RocR100 < 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] || 10
|
13
|
+
else
|
14
|
+
@time_period = args[0] || 10
|
15
|
+
end
|
16
|
+
|
17
|
+
@func = TaLib::Function.new("ROCR100")
|
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
|