rirera 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
-
![screenshot](http://ibin.co/1jv1nIeXZ8j9)
|
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
|