rirera 0.1.3 → 0.1.4
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.
- checksums.yaml +4 -4
- data/CHANGELOG +2 -0
- data/Gemfile +3 -0
- data/README.md +12 -1
- data/README.rdoc +11 -4
- data/bin/rirera +52 -10
- data/lib/rirera.rb +8 -33
- data/rirera.gemspec +15 -14
- metadata +4 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2d02a077e1539aa7fa2fc09811675b3bb2a70812
|
4
|
+
data.tar.gz: 34b3e8dc64c67cb757e1c05a980b2378c10f3c75
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2a40fe14a9fdf29772d94445a732f23166697ef4c5ca71af424bcad6a4164f8742d3ab86f05392914814badf23931716d479d2cb88a4915a996a1e190cf10e21
|
7
|
+
data.tar.gz: 23fc98e1d8989e4caba702a4045f738a28c3b541c94923c7b62ac054aee6a88bfc41891164bf624f52acb8fcf320ef04e1b6962d16f438d691102358fefa4f4c
|
data/CHANGELOG
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -18,4 +18,15 @@ Add your broker, and its specific commision rates to `conf/rirera.yml`
|
|
18
18
|
|
19
19
|
## Run
|
20
20
|
|
21
|
-
|
21
|
+
```
|
22
|
+
$ rirera -h
|
23
|
+
Options:
|
24
|
+
--broker, -b <s>: choose your broker
|
25
|
+
--volume, -v <f>: volume (amount of money)
|
26
|
+
--target, -t <f>: target price
|
27
|
+
--actual, -a <f>: actual price
|
28
|
+
--stop, -s <f>: stop loss
|
29
|
+
--loop, -l: start rirera in loop input mode (other options will be
|
30
|
+
discarded)
|
31
|
+
--help, -h: Show this message
|
32
|
+
```
|
data/README.rdoc
CHANGED
@@ -1,13 +1,11 @@
|
|
1
1
|
= rirera
|
2
2
|
|
3
|
-
*
|
3
|
+
* https://github.com/MaximilianMeister/rirera
|
4
4
|
|
5
5
|
== What is rirera?
|
6
6
|
|
7
7
|
A small ruby command line tool to calculate a risk reward ratio.
|
8
8
|
|
9
|
-

|
10
|
-
|
11
9
|
== Configuration
|
12
10
|
|
13
11
|
Add your broker, and its specific commision rates to `conf/rirera.yml`
|
@@ -18,4 +16,13 @@ Add your broker, and its specific commision rates to `conf/rirera.yml`
|
|
18
16
|
|
19
17
|
== Run
|
20
18
|
|
21
|
-
rirera
|
19
|
+
$ rirera -h
|
20
|
+
Options:
|
21
|
+
--broker, -b <s>: choose your broker
|
22
|
+
--volume, -v <f>: volume (amount of money)
|
23
|
+
--target, -t <f>: target price
|
24
|
+
--actual, -a <f>: actual price
|
25
|
+
--stop, -s <f>: stop loss
|
26
|
+
--loop, -l: start rirera in loop input mode (other options will be
|
27
|
+
discarded)
|
28
|
+
--help, -h: Show this message
|
data/bin/rirera
CHANGED
@@ -1,17 +1,59 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
3
|
require 'rirera'
|
4
|
+
require 'trollop'
|
4
5
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
6
|
+
def input
|
7
|
+
begin
|
8
|
+
while true do
|
9
|
+
system "clear"
|
10
|
+
rrr = Rirera.new
|
11
|
+
rrr.broker = rrr.get_broker(@opts[:broker])
|
12
|
+
print "volume: "
|
13
|
+
rrr.volume = rrr.sanity_check($stdin.gets)
|
14
|
+
print "target price: "
|
15
|
+
rrr.target = rrr.sanity_check($stdin.gets)
|
16
|
+
print "actual price: "
|
17
|
+
rrr.actual = rrr.sanity_check($stdin.gets)
|
18
|
+
loop do
|
19
|
+
print "stop loss: "
|
20
|
+
rrr.stop = rrr.stop_loss(rrr.actual, rrr.sanity_check($stdin.gets))
|
21
|
+
puts "stop loss has to be lower than actual price" if rrr.stop.nil?
|
22
|
+
break unless rrr.stop.nil?
|
23
|
+
end
|
24
|
+
rrr.print_result
|
25
|
+
puts ""
|
26
|
+
puts "Again? (y/n)"
|
27
|
+
exit if $stdin.gets.chomp == "n"
|
28
|
+
@opts.delete_if {|key,value| key != :broker }
|
29
|
+
end
|
30
|
+
rescue Interrupt => e
|
31
|
+
puts ""
|
32
|
+
abort "Exit..."
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def main
|
37
|
+
@opts = Trollop::options do
|
38
|
+
opt :broker, "choose your broker", :short => 'b', :required => true, :type => String
|
39
|
+
opt :volume, "volume (amount of money)", :short => 'v', :type => Float
|
40
|
+
opt :target, "target price", :short => 't', :type => Float
|
41
|
+
opt :actual, "actual price", :short => 'a', :type => Float
|
42
|
+
opt :stop, "stop loss", :short => 's', :type => Float
|
43
|
+
opt :loop, "start rirera in loop input mode (other options will be discarded)", :short => 'l'
|
44
|
+
end
|
45
|
+
|
46
|
+
if @opts[:loop_given]
|
47
|
+
input
|
48
|
+
else
|
49
|
+
rrr = Rirera.new
|
50
|
+
rrr.broker = rrr.get_broker(@opts[:broker])
|
51
|
+
rrr.volume = @opts[:volume_given] ? @opts[:volume] : abort("missing volume")
|
52
|
+
rrr.target = @opts[:target_given] ? @opts[:target] : abort("missing target")
|
53
|
+
rrr.actual = @opts[:actual_given] ? @opts[:actual] : abort("missing actual")
|
54
|
+
rrr.stop = @opts[:stop_given] ? rrr.stop_loss(rrr.actual,@opts[:stop]) : abort("missing stop")
|
55
|
+
abort("stop loss has to be lower than actual price") if rrr.stop.nil?
|
9
56
|
rrr.print_result
|
10
|
-
puts ""
|
11
|
-
puts "Again? (y/n)"
|
12
|
-
exit if $stdin.gets.chomp == "n"
|
13
57
|
end
|
14
|
-
rescue Interrupt => e
|
15
|
-
puts ""
|
16
|
-
puts "Exit..."
|
17
58
|
end
|
59
|
+
main
|
data/lib/rirera.rb
CHANGED
@@ -2,25 +2,17 @@ require 'colorize'
|
|
2
2
|
require 'yaml'
|
3
3
|
|
4
4
|
class Rirera
|
5
|
-
attr_accessor :volume, :target, :actual, :stop
|
5
|
+
attr_accessor :broker, :volume, :target, :actual, :stop
|
6
6
|
|
7
|
-
def initialize
|
8
|
-
print_title
|
7
|
+
def initialize
|
9
8
|
@conf = load_config
|
10
|
-
@broker = get_broker(broker)
|
11
|
-
@volume, @target, @actual, @stop = input
|
12
|
-
end
|
13
|
-
|
14
|
-
def usage
|
15
|
-
"Usage: ./rirera broker_name"
|
16
9
|
end
|
17
10
|
|
18
11
|
def get_broker(broker)
|
19
12
|
unless @conf['broker'][broker].nil?
|
20
13
|
broker
|
21
14
|
else
|
22
|
-
|
23
|
-
abort usage
|
15
|
+
abort "Not a valid broker"
|
24
16
|
end
|
25
17
|
end
|
26
18
|
|
@@ -41,8 +33,6 @@ class Rirera
|
|
41
33
|
puts "|_/ "
|
42
34
|
puts "L___________________ "
|
43
35
|
puts ""
|
44
|
-
sleep 1
|
45
|
-
system "clear"
|
46
36
|
end
|
47
37
|
|
48
38
|
def print_rrr
|
@@ -69,16 +59,16 @@ class Rirera
|
|
69
59
|
YAML.load_file(File.join(File.expand_path("..", File.dirname(__FILE__)),"conf/rirera.yml"))
|
70
60
|
end
|
71
61
|
|
72
|
-
def
|
73
|
-
if stop_loss
|
74
|
-
|
75
|
-
false
|
62
|
+
def stop_loss(actual_price, stop_loss)
|
63
|
+
if stop_loss >= actual_price
|
64
|
+
nil
|
76
65
|
else
|
77
|
-
|
66
|
+
stop_loss
|
78
67
|
end
|
79
68
|
end
|
80
69
|
|
81
70
|
def sanity_check(num)
|
71
|
+
num.chomp!.gsub!(",",".")
|
82
72
|
# only allow int and float
|
83
73
|
unless is_numeric?(num)
|
84
74
|
puts "Wrong input"
|
@@ -136,19 +126,4 @@ class Rirera
|
|
136
126
|
((@volume + get_total_commission) / get_amount).round(2)
|
137
127
|
end
|
138
128
|
|
139
|
-
def input
|
140
|
-
print "Volume: "
|
141
|
-
volume = sanity_check($stdin.gets.chomp)
|
142
|
-
print "Target price: "
|
143
|
-
target = sanity_check($stdin.gets.chomp.gsub(",","."))
|
144
|
-
print "Price: "
|
145
|
-
actual = sanity_check($stdin.gets.chomp.gsub(",","."))
|
146
|
-
stop = 0.0
|
147
|
-
loop do
|
148
|
-
print "Stop Loss: "
|
149
|
-
stop = sanity_check($stdin.gets.chomp.gsub(",","."))
|
150
|
-
break if test_input(actual.to_f, stop.to_f)
|
151
|
-
end
|
152
|
-
[volume, target, actual, stop]
|
153
|
-
end
|
154
129
|
end
|
data/rirera.gemspec
CHANGED
@@ -1,16 +1,17 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
|
-
s.name
|
3
|
-
s.version
|
4
|
-
s.date
|
5
|
-
s.summary
|
6
|
-
s.description
|
7
|
-
s.authors
|
8
|
-
s.email
|
9
|
-
s.rubyforge_project
|
10
|
-
s.files
|
11
|
-
s.executables
|
12
|
-
s.
|
13
|
-
s.
|
14
|
-
s.
|
15
|
-
s.
|
2
|
+
s.name = 'rirera'
|
3
|
+
s.version = '0.1.4'
|
4
|
+
s.date = Time.now.strftime('%Y-%m-%d')
|
5
|
+
s.summary = "Risk Reward Ratio"
|
6
|
+
s.description = "A simple Risk Reward Ratio calculator"
|
7
|
+
s.authors = ["Maximilian Meister"]
|
8
|
+
s.email = 'mmeister@suse.de'
|
9
|
+
s.rubyforge_project = 'rirera'
|
10
|
+
s.files = `git ls-files`.split("\n")
|
11
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
12
|
+
s.bindir = 'bin'
|
13
|
+
s.require_paths = ["lib"]
|
14
|
+
s.homepage = 'http://github.com/MaximilianMeister/rirera'
|
15
|
+
s.license = 'MIT'
|
16
|
+
s.post_install_message = 'Happy trading!'
|
16
17
|
end
|
metadata
CHANGED
@@ -1,35 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rirera
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maximilian Meister
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-12-
|
12
|
-
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: colorize
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 0.7.3
|
20
|
-
- - ">="
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: 0.7.3
|
23
|
-
type: :runtime
|
24
|
-
prerelease: false
|
25
|
-
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
requirements:
|
27
|
-
- - "~>"
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: 0.7.3
|
30
|
-
- - ">="
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: 0.7.3
|
11
|
+
date: 2014-12-20 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
33
13
|
description: A simple Risk Reward Ratio calculator
|
34
14
|
email: mmeister@suse.de
|
35
15
|
executables:
|
@@ -50,7 +30,7 @@ homepage: http://github.com/MaximilianMeister/rirera
|
|
50
30
|
licenses:
|
51
31
|
- MIT
|
52
32
|
metadata: {}
|
53
|
-
post_install_message:
|
33
|
+
post_install_message: Happy trading!
|
54
34
|
rdoc_options: []
|
55
35
|
require_paths:
|
56
36
|
- lib
|