rbtc_arbitrage 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -7
- data/lib/rbtc_arbitrage/clients/mtgox_client.rb +11 -0
- data/lib/rbtc_arbitrage/version.rb +1 -1
- data/lib/rbtc_arbitrage.rb +7 -1
- data/spec/rbtc_arbitrage_spec.rb +11 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a1ae715eb30b67673c7fb9efa9cd6a9d7fcbc786
|
4
|
+
data.tar.gz: ac76073648c581650bece469ab13d79af0034653
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6ef2161031e005cf0b32454b61b2737fe1af44319aa78486e79878fb7af461af21a91411437d8e110fc080496b7095e3dda5b3c95ac1343a0b0e514f62b7d162
|
7
|
+
data.tar.gz: b140bab5a24e2df05e6314df2f06826cd14144982bf561afe57e1f544d2d4705e3efe19d0e86aa530c7732e9c338f76a503acfe087fa57f9ddf6a210fd8fe779
|
data/README.md
CHANGED
@@ -40,7 +40,7 @@ After installing the gem, simply run `rbtc` in the command line.
|
|
40
40
|
- **Cutoff**: the minimum profit percentage required to execute a trade. Defaults to **%2.00**.
|
41
41
|
- **Volume**: The amount of bitcoins to trade per transaction. Defaults to **0.01** (the minimum transaction size).
|
42
42
|
- **Buyer**: The exchange you'd like to buy bitcoins from during arbitrage. `"mtgox"` or `"bitstamp"`. Default is `bitstamp`
|
43
|
-
- **Seller**: The exchange you'd like to sell bitcoins from during arbitrage. `"mtgox"` or `"bitstamp"`. Default is `
|
43
|
+
- **Seller**: The exchange you'd like to sell bitcoins from during arbitrage. `"mtgox"` or `"bitstamp"`. Default is `mtgox`
|
44
44
|
|
45
45
|
#### Examples
|
46
46
|
|
@@ -62,12 +62,7 @@ The output will look like this:
|
|
62
62
|
|
63
63
|
## Changelog
|
64
64
|
|
65
|
-
|
66
|
-
|
67
|
-
- full refactor
|
68
|
-
- 100% test coverage
|
69
|
-
- Modularized exchange-specific code to allow for easier extension.
|
70
|
-
- CLI `buyer` and `seller` option.
|
65
|
+
See [releases](https://github.com/hstove/rbtc_arbitrage/releases).
|
71
66
|
|
72
67
|
## Contributing
|
73
68
|
|
@@ -88,5 +83,6 @@ Right now there is support for only MtGox and Bitstamp, but adding support for o
|
|
88
83
|
- `price`
|
89
84
|
- `trade`
|
90
85
|
- `exchange`
|
86
|
+
- `transfer`
|
91
87
|
|
92
88
|
Make sure that the methods accept the same arguments and return similar objects. At the same time, make sure you copy the [mtgox_cient_spec](https://github.com/hstove/rbtc_arbitrage/blob/master/spec/clients/mtgox_client_spec.rb) and change it to test your client.
|
@@ -3,12 +3,19 @@ module RbtcArbitrage
|
|
3
3
|
class MtGoxClient
|
4
4
|
include RbtcArbitrage::Client
|
5
5
|
|
6
|
+
##
|
7
|
+
# Returns an array of Floats.
|
8
|
+
# The first element is the balance in BTC;
|
9
|
+
# The second is in USD.
|
6
10
|
def balance
|
7
11
|
return @balance if @balance
|
8
12
|
balances = MtGox.balance
|
9
13
|
@balance = [balances[0].amount.to_f, balances[1].amount.to_f]
|
10
14
|
end
|
11
15
|
|
16
|
+
##
|
17
|
+
# Configures the MtGox
|
18
|
+
# client's API keys.
|
12
19
|
def validate_env
|
13
20
|
validate_keys
|
14
21
|
MtGox.configure do |config|
|
@@ -22,6 +29,7 @@ module RbtcArbitrage
|
|
22
29
|
end
|
23
30
|
|
24
31
|
# `action` is :buy or :sell
|
32
|
+
# Returns a Numeric type.
|
25
33
|
def price action
|
26
34
|
return @price if @price
|
27
35
|
action = {
|
@@ -37,6 +45,9 @@ module RbtcArbitrage
|
|
37
45
|
MtGox.send(action, @options[:volume], :market)
|
38
46
|
end
|
39
47
|
|
48
|
+
##
|
49
|
+
# Transfers BTC to the address of a different
|
50
|
+
# exchange.
|
40
51
|
def transfer other_client
|
41
52
|
MtGox.withdraw! @options[:volume], other_client.address
|
42
53
|
end
|
data/lib/rbtc_arbitrage.rb
CHANGED
@@ -2,8 +2,14 @@ require 'thor'
|
|
2
2
|
require 'mtgox'
|
3
3
|
require_relative 'rbtc_arbitrage/campbx.rb'
|
4
4
|
require 'bitstamp'
|
5
|
-
require 'btce'
|
5
|
+
# require 'btce'
|
6
|
+
require_relative 'rbtc_arbitrage/client.rb'
|
6
7
|
Dir["#{File.dirname(__FILE__)}/rbtc_arbitrage/**/*.rb"].each { |f| require(f) }
|
7
8
|
|
8
9
|
module RbtcArbitrage
|
10
|
+
def self.clients
|
11
|
+
RbtcArbitrage::Clients.constants.collect do |c|
|
12
|
+
RbtcArbitrage::Clients.const_get(c)
|
13
|
+
end
|
14
|
+
end
|
9
15
|
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe RbtcArbitrage do
|
4
|
+
describe ".clients" do
|
5
|
+
it "includes clients" do
|
6
|
+
clients = RbtcArbitrage.clients
|
7
|
+
clients.should include(RbtcArbitrage::Clients::MtGoxClient)
|
8
|
+
clients.should include(RbtcArbitrage::Clients::BitstampClient)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbtc_arbitrage
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hank Stoever
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-12-
|
11
|
+
date: 2013-12-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -167,6 +167,7 @@ files:
|
|
167
167
|
- spec/client_spec.rb
|
168
168
|
- spec/clients/bitstamp_client_spec.rb
|
169
169
|
- spec/clients/mtgox_client_spec.rb
|
170
|
+
- spec/rbtc_arbitrage_spec.rb
|
170
171
|
- spec/spec_helper.rb
|
171
172
|
- spec/support/cassettes/RbtcArbitrage_Clients_BitstampClient/_balance/fetches_the_balance_correctly.yml
|
172
173
|
- spec/support/cassettes/RbtcArbitrage_Clients_BitstampClient/_price/fetches_price_for_buy_correctly.yml
|
@@ -213,6 +214,7 @@ test_files:
|
|
213
214
|
- spec/client_spec.rb
|
214
215
|
- spec/clients/bitstamp_client_spec.rb
|
215
216
|
- spec/clients/mtgox_client_spec.rb
|
217
|
+
- spec/rbtc_arbitrage_spec.rb
|
216
218
|
- spec/spec_helper.rb
|
217
219
|
- spec/support/cassettes/RbtcArbitrage_Clients_BitstampClient/_balance/fetches_the_balance_correctly.yml
|
218
220
|
- spec/support/cassettes/RbtcArbitrage_Clients_BitstampClient/_price/fetches_price_for_buy_correctly.yml
|