bitex_bot 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
data/bitex_bot.gemspec CHANGED
@@ -26,8 +26,8 @@ Gem::Specification.new do |spec|
26
26
  spec.add_dependency "activesupport"
27
27
  spec.add_dependency "sqlite3"
28
28
  spec.add_dependency "bitstamp"
29
- spec.add_dependency "bitex", "0.1.8"
30
- spec.add_dependency "itbit", "0.0.2"
29
+ spec.add_dependency "bitex", "0.1.9"
30
+ spec.add_dependency "itbit", "0.0.3"
31
31
  spec.add_dependency "mail"
32
32
  spec.add_dependency "hashie"
33
33
 
@@ -23,8 +23,18 @@ class BitstampApiWrapper
23
23
  # 'asks' =>
24
24
  # [['10', '2'], ['15', '3'], ['20', '1.5'], ['25', '3'], ['30', '3']]
25
25
  # }
26
- def self.order_book
27
- Bitstamp.order_book
26
+ def self.order_book(retries = 20)
27
+ begin
28
+ Bitstamp.order_book
29
+ rescue StandardError => e
30
+ if retries == 0
31
+ raise
32
+ else
33
+ Robot.logger.info("Bitstamp order_book failed, retrying #{retries} more times")
34
+ sleep 1
35
+ self.order_book(retries - 1)
36
+ end
37
+ end
28
38
  end
29
39
 
30
40
  # {"btc_balance"=> "10.0", "btc_reserved"=> "0", "btc_available"=> "10.0",
@@ -83,9 +83,9 @@ module BitexBot
83
83
  def self.sync_open_positions
84
84
  threshold = open_position_class
85
85
  .order('created_at DESC').first.try(:created_at)
86
- Bitex::Transaction.all.collect do |transaction|
86
+ Bitex::Trade.all.collect do |transaction|
87
87
  next unless transaction.is_a?(transaction_class)
88
- next if threshold && transaction.created_at < (threshold - 15.minutes)
88
+ next if threshold && transaction.created_at < (threshold - 30.minutes)
89
89
  next if open_position_class.find_by_transaction_id(transaction.id)
90
90
  next if transaction.specie != :btc
91
91
  next unless flow = find_by_order_id(transaction_order_id(transaction))
@@ -1,3 +1,3 @@
1
1
  module BitexBot
2
- VERSION = "0.2.2"
2
+ VERSION = "0.2.3"
3
3
  end
@@ -120,7 +120,7 @@ describe BitexBot::BuyOpeningFlow do
120
120
 
121
121
  it 'does not register litecoin buys' do
122
122
  flow.order_id.should == 12345
123
- Bitex::Transaction.stub(all: [build(:bitex_buy, id: 23456, specie: :ltc)])
123
+ Bitex::Trade.stub(all: [build(:bitex_buy, id: 23456, specie: :ltc)])
124
124
  expect do
125
125
  BitexBot::BuyOpeningFlow.sync_open_positions.should be_empty
126
126
  end.not_to change{ BitexBot::OpenBuy.count }
@@ -59,7 +59,7 @@ describe BitexBot::Robot do
59
59
  end
60
60
 
61
61
  it 'creates alternating opening flows' do
62
- Bitex::Transaction.stub(all: [])
62
+ Bitex::Trade.stub(all: [])
63
63
  bot.trade!
64
64
  BitexBot::BuyOpeningFlow.active.count.should == 1
65
65
  Timecop.travel 2.seconds.from_now
@@ -132,7 +132,7 @@ describe BitexBot::Robot do
132
132
  end
133
133
 
134
134
  it 'warns every 30 minutes when usd warn is reached' do
135
- Bitex::Transaction.stub(all: [])
135
+ Bitex::Trade.stub(all: [])
136
136
  other_bot = BitexBot::Robot.new
137
137
  other_bot.store.usd_warning = 11000
138
138
  other_bot.store.save!
@@ -150,7 +150,7 @@ describe BitexBot::Robot do
150
150
  end
151
151
 
152
152
  it 'warns every 30 minutes when btc warn is reached' do
153
- Bitex::Transaction.stub(all: [])
153
+ Bitex::Trade.stub(all: [])
154
154
  other_bot = BitexBot::Robot.new
155
155
  other_bot.store.btc_warning = 30
156
156
  other_bot.store.save!
@@ -122,7 +122,7 @@ describe BitexBot::SellOpeningFlow do
122
122
 
123
123
  it 'does not register litecoin buys' do
124
124
  flow.order_id.should == 12345
125
- Bitex::Transaction.stub(all: [build(:bitex_sell, id: 23456, specie: :ltc)])
125
+ Bitex::Trade.stub(all: [build(:bitex_sell, id: 23456, specie: :ltc)])
126
126
  expect do
127
127
  BitexBot::SellOpeningFlow.sync_open_positions.should be_empty
128
128
  end.not_to change{ BitexBot::OpenSell.count }
@@ -57,17 +57,8 @@ module BitexStubs
57
57
  end
58
58
 
59
59
  def stub_bitex_transactions(*extra_transactions)
60
- Bitex::Transaction.stub(all: extra_transactions + [
61
- build(:bitex_buy),
62
- build(:bitex_sell),
63
- Bitex::SpecieWithdrawal
64
- .from_json([6,Time.now.to_i,946685400,1,100.00000000,1,0]),
65
- Bitex::UsdWithdrawal
66
- .from_json([8,Time.now.to_i,946685400,100.00000000,1,0]),
67
- Bitex::UsdDeposit
68
- .from_json([7,Time.now.to_i,946685400,1000.00000000,1,1,0]),
69
- Bitex::SpecieDeposit
70
- .from_json([5,Time.now.to_i,946685400,1,100.00000000]),
60
+ Bitex::Trade.stub(all: extra_transactions + [
61
+ build(:bitex_buy), build(:bitex_sell)
71
62
  ])
72
63
  end
73
64
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bitex_bot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-11-20 00:00:00.000000000 Z
13
+ date: 2014-11-29 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: settingslogic
@@ -99,7 +99,7 @@ dependencies:
99
99
  requirements:
100
100
  - - '='
101
101
  - !ruby/object:Gem::Version
102
- version: 0.1.8
102
+ version: 0.1.9
103
103
  type: :runtime
104
104
  prerelease: false
105
105
  version_requirements: !ruby/object:Gem::Requirement
@@ -107,7 +107,7 @@ dependencies:
107
107
  requirements:
108
108
  - - '='
109
109
  - !ruby/object:Gem::Version
110
- version: 0.1.8
110
+ version: 0.1.9
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: itbit
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -115,7 +115,7 @@ dependencies:
115
115
  requirements:
116
116
  - - '='
117
117
  - !ruby/object:Gem::Version
118
- version: 0.0.2
118
+ version: 0.0.3
119
119
  type: :runtime
120
120
  prerelease: false
121
121
  version_requirements: !ruby/object:Gem::Requirement
@@ -123,7 +123,7 @@ dependencies:
123
123
  requirements:
124
124
  - - '='
125
125
  - !ruby/object:Gem::Version
126
- version: 0.0.2
126
+ version: 0.0.3
127
127
  - !ruby/object:Gem::Dependency
128
128
  name: mail
129
129
  requirement: !ruby/object:Gem::Requirement