cryptum 0.0.427 → 0.0.429

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e6727655e4af558dbafa2b01ee20190a20f7833f8a6a3ee62382b209710e4697
4
- data.tar.gz: a5fdae6874f69f4dd5bbb1d5901d6e5f0666ff60f56afdfda78a842b09b71d90
3
+ metadata.gz: 2380db0865bfa954a012a595702a708c13fe6bf18cfd0958d510239addf00186
4
+ data.tar.gz: fc72a86ba6f45138bf5171e766581ccf3e0fc970eb3eeda90c456d9aaecc9306
5
5
  SHA512:
6
- metadata.gz: 3eec879f5b3ae0351a274b58c70e931ed987a2e62c94706928e450d9a0308fffdeb283ac53c0ea05c6fcf7102d806969a51d3e829b6aeb0c344c9ec767dd74b4
7
- data.tar.gz: 05eb5192d9d556c621db29ffdf71cabbf4189595bccaed77b42ed2877f027a74a5649bee19ac4a4a8b49d036bd8fb9d9d44c7fa2ffbbe8793376f0bc5e020874
6
+ metadata.gz: c76b40bba10f43ff918eae4f8fce19368a92d2e20e3c4baf7b29da3a0165f4c8a8c05bb2ef45a34d088c0f1ae7ca28acc09c1538cd211a70c6c774d3db1ed5a1
7
+ data.tar.gz: 4394275cfa271f7cace9ed98b905fedf42eabafba11a292a2eb23af927f184c095c08ce487fbf0aacc22fb029a3ada517468bebe08090390613347b744e027a3
data/.rubocop.yml CHANGED
@@ -6,7 +6,7 @@ Layout/LineLength:
6
6
  Lint/UselessRescue:
7
7
  Enabled: false
8
8
  Metrics/AbcSize:
9
- Max: 410
9
+ Max: 417.7
10
10
  Metrics/BlockLength:
11
11
  Max: 138
12
12
  Metrics/BlockNesting:
data/Gemfile CHANGED
@@ -28,8 +28,8 @@ gem 'rest-client', '2.1.0'
28
28
  gem 'rspec', '3.12.0'
29
29
  gem 'rubocop', '1.50.2'
30
30
  gem 'rubocop-rake', '0.6.0'
31
- gem 'rubocop-rspec', '2.19.0'
32
- gem 'ruby-prof', '1.6.1'
31
+ gem 'rubocop-rspec', '2.20.0'
32
+ gem 'ruby-prof', '1.6.3'
33
33
  gem 'rvm', '1.11.3.9'
34
34
  gem 'sinatra', '3.0.6'
35
35
  gem 'thin', '1.8.2'
@@ -62,57 +62,38 @@ module Cryptum
62
62
  Cryptum::Log.append(level: :error, msg: e, which_self: self, event_history: event_history)
63
63
  end
64
64
 
65
- # public_class_method def self.reset(opts = {})
66
- # # IT IS ABSOLUTELY CRITICAL THIS METHOD IS AS FAST AS POSSIBLE
67
- # # TO AVOID TICKER PRICE SYNCING ISSUES.
68
- # event_history = opts[:event_history]
69
-
70
- # # order_history = event_history.order_book[:order_history]
71
- # # order_history_meta = event_history.order_book[:order_history_meta]
72
-
73
- # # Only retain past 24 hours of
74
- # # order history meta for bought, sold, and expired
75
- # # keep open limit sell orders indefintely
76
- # # before_twenty_four_hrs_ago = Time.now - 86_400
77
- # # order_history_meta.delete_if do |ohm|
78
- # # order_history.find do |oh|
79
- # # next unless oh[:done_at]
80
-
81
- # # Time.parse(oh[:done_at]) < before_twenty_four_hrs_ago && (
82
- # # oh[:id] == ohm[:buy_order_id] ||
83
- # # oh[:id] == ohm[:sell_order_id]
84
- # # ) && (
85
- # # ohm[:color].to_sym == :white ||
86
- # # ohm[:color].to_sym == :green ||
87
- # # ohm[:color].to_sym == :cyan ||
88
- # # ohm[:color].to_sym == :red
89
- # # )
90
- # # end
91
- # # end
92
-
93
- # # Only keep order history meta for those
94
- # # hashes that exist in the last order history
95
- # # response
96
- # # order_history_meta.keep_if do |ohm|
97
- # # order_history.find do |oh|
98
- # # (oh[:id] == ohm[:buy_order_id] || oh[:id] == ohm[:sell_order_id]) && (
99
- # # ohm[:color].to_sym == :white ||
100
- # # ohm[:color].to_sym == :green ||
101
- # # ohm[:color].to_sym == :yellow
102
- # # )
103
- # # end
104
- # # end
105
- # # event_history.order_book[:order_history_meta] = order_history_meta
106
-
107
- # # Reset Market Trend Counter
108
- # event_history.order_book[:market_trend][:buy] = 0
109
- # event_history.order_book[:market_trend][:sell] = 0
110
- # event_history.order_book[:last_trend_reset] = Time.now.strftime(
111
- # '%Y-%m-%d %H:%M:%S.%N%z'
112
- # )
113
- # rescue Interrupt, StandardError => e
114
- # Cryptum::Log.append(level: :error, msg: e, which_self: self)
115
- # end
65
+ public_class_method def self.reset(opts = {})
66
+ # IT IS ABSOLUTELY CRITICAL THIS METHOD IS AS FAST AS POSSIBLE
67
+ # TO AVOID TICKER PRICE SYNCING ISSUES.
68
+ event_history = opts[:event_history]
69
+
70
+ # order_history = event_history.order_book[:order_history]
71
+ order_history_meta = event_history.order_book[:order_history_meta]
72
+
73
+ # Only retain past 24 hours of
74
+ # order history meta for expired
75
+ # keep open limit sell orders indefintely
76
+ before_twenty_four_hrs_ago = Time.now - 86_400
77
+ order_history_meta.delete_if do |ohm|
78
+ next unless ohm[:color] == 'white'
79
+
80
+ Time.parse(ohm[:done_at]) < before_twenty_four_hrs_ago
81
+ end
82
+
83
+ # Write order_history_meta back to event_history object
84
+ event_history.order_book[:order_history_meta] = order_history_meta
85
+
86
+ # Reset Market Trend Counter
87
+ event_history.order_book[:market_trend][:buy] = 0
88
+ event_history.order_book[:market_trend][:sell] = 0
89
+ event_history.order_book[:last_trend_reset] = Time.now.strftime(
90
+ '%Y-%m-%d %H:%M:%S.%N%z'
91
+ )
92
+
93
+ event_history
94
+ rescue Interrupt, StandardError => e
95
+ Cryptum::Log.append(level: :error, msg: e, which_self: self)
96
+ end
116
97
 
117
98
  # Display Usage for this Module
118
99
 
@@ -95,10 +95,17 @@ module Cryptum
95
95
 
96
96
  limit_price = last_purchase_price - quote_increment.to_f if last_purchase_price.positive? && last_purchase_price < limit_price
97
97
 
98
+ price = format(
99
+ "%0.#{fiat_smallest_decimal}f",
100
+ limit_price
101
+ )
102
+
98
103
  # Debug last order -------------------------------#
99
- debug_last_order = "Last Order: #{last_order}"
100
- debug_last_order += "Last Purchase Price: #{last_purchase_price}"
101
- debug_last_order += "Limit Price (Should be <= quote_increment-- ^): #{limit_price}"
104
+ # TODO: if the order attempt is unsucessful at the adjusted price,
105
+ # the order plan needs to be reset.
106
+ debug_last_order = "Last Order: #{last_order}\n"
107
+ debug_last_order += "Last Purchase Price: #{last_purchase_price}\n"
108
+ debug_last_order += "Limit Price (Should be <= #{last_purchase_price}): #{price}"
102
109
  debug_last_order += "\n\n\n"
103
110
 
104
111
  Cryptum::Log.append(
@@ -109,11 +116,6 @@ module Cryptum
109
116
  )
110
117
  #-------------------------------------------------#
111
118
 
112
- price = format(
113
- "%0.#{fiat_smallest_decimal}f",
114
- limit_price
115
- )
116
-
117
119
  size = this_order[:invest].to_f / limit_price
118
120
 
119
121
  loop do
@@ -142,6 +144,8 @@ module Cryptum
142
144
  event_history: event_history,
143
145
  bot_conf: bot_conf
144
146
  )
147
+ order_history = event_history.order_book[:order_history]
148
+ order_history_meta = event_history.order_book[:order_history_meta]
145
149
  end
146
150
 
147
151
  # SAUCE 4 (SAUCE 3 RELATES TO SAUCE 4)
@@ -216,6 +220,8 @@ module Cryptum
216
220
  bot_conf: bot_conf,
217
221
  buy_order_id: buy_order_id
218
222
  )
223
+ order_history = event_history.order_book[:order_history]
224
+ order_history_meta = event_history.order_book[:order_history_meta]
219
225
  end
220
226
  end
221
227
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Cryptum
4
- VERSION = '0.0.427'
4
+ VERSION = '0.0.429'
5
5
  end
@@ -216,11 +216,12 @@ module Cryptum
216
216
  EM.add_periodic_timer(option_choice.market_trend_reset) do
217
217
  # NOTE: To ensure the integrity of event_history is maintained,
218
218
  # changes to its contents _MUST_ stay in this block.
219
- event_history.order_book[:market_trend][:buy] = 0
220
- event_history.order_book[:market_trend][:sell] = 0
221
- event_history.order_book[:last_trend_reset] = Time.now.strftime(
222
- '%Y-%m-%d %H:%M:%S.%N%z'
223
- )
219
+ # event_history.order_book[:market_trend][:buy] = 0
220
+ # event_history.order_book[:market_trend][:sell] = 0
221
+ # event_history.order_book[:last_trend_reset] = Time.now.strftime(
222
+ # '%Y-%m-%d %H:%M:%S.%N%z'
223
+ # )
224
+ event_history = Cryptum::OrderBook::MarketTrend.reset(event_history: event_history)
224
225
 
225
226
  # Reload Bot Conf (i.e. Risk Allocation)
226
227
  # Recalculate Order Plan, and Write to File
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cryptum
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.427
4
+ version: 0.0.429
5
5
  platform: ruby
6
6
  authors:
7
7
  - 0day Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-04-17 00:00:00.000000000 Z
11
+ date: 2023-04-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -254,28 +254,28 @@ dependencies:
254
254
  requirements:
255
255
  - - '='
256
256
  - !ruby/object:Gem::Version
257
- version: 2.19.0
257
+ version: 2.20.0
258
258
  type: :runtime
259
259
  prerelease: false
260
260
  version_requirements: !ruby/object:Gem::Requirement
261
261
  requirements:
262
262
  - - '='
263
263
  - !ruby/object:Gem::Version
264
- version: 2.19.0
264
+ version: 2.20.0
265
265
  - !ruby/object:Gem::Dependency
266
266
  name: ruby-prof
267
267
  requirement: !ruby/object:Gem::Requirement
268
268
  requirements:
269
269
  - - '='
270
270
  - !ruby/object:Gem::Version
271
- version: 1.6.1
271
+ version: 1.6.3
272
272
  type: :runtime
273
273
  prerelease: false
274
274
  version_requirements: !ruby/object:Gem::Requirement
275
275
  requirements:
276
276
  - - '='
277
277
  - !ruby/object:Gem::Version
278
- version: 1.6.1
278
+ version: 1.6.3
279
279
  - !ruby/object:Gem::Dependency
280
280
  name: rvm
281
281
  requirement: !ruby/object:Gem::Requirement