cryptum 0.0.269 → 0.0.271
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/.rubocop_todo.yml +4 -3
- data/lib/cryptum/ui/order_execute_details.rb +72 -30
- data/lib/cryptum/ui/order_plan.rb +11 -7
- data/lib/cryptum/ui/order_plan_details.rb +81 -22
- data/lib/cryptum/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a2a99684100eded0f7b6ca6e94cd2b7afa4f1a46f4d173fcf8f6d23929f412ed
|
4
|
+
data.tar.gz: d01f3f8a7de3c65f295785f5fb38d781e0e3f2c4694eb8fe90e9a9e792442bf7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3323a2fd4c747bb7daf655eff588ab7bf2e5010eb9cc707e1f44157f62b328a9ee3866beb4785e1423eae08ff82adb8dfb0771c3fc733ce6f3baf775948d4e12
|
7
|
+
data.tar.gz: c6de579395b53f951f12ef615aca7540b647d7d13a5bab05a27115ec88c8636a47b13df6e44edce7b8fd908ab81e889aeee6611e32529df9d0f2a8cbcebc0826
|
data/.rubocop_todo.yml
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# This configuration was generated by
|
2
2
|
# `rubocop --auto-gen-config`
|
3
|
-
# on 2022-12-05
|
3
|
+
# on 2022-12-05 23:34:03 UTC using RuboCop version 1.39.0.
|
4
4
|
# The point is for the user to remove these configuration records
|
5
5
|
# one by one as the offenses are removed from the code base.
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
@@ -127,7 +127,7 @@ Metrics/ModuleLength:
|
|
127
127
|
Metrics/PerceivedComplexity:
|
128
128
|
Max: 76
|
129
129
|
|
130
|
-
# Offense count:
|
130
|
+
# Offense count: 4
|
131
131
|
# This cop supports safe autocorrection (--autocorrect).
|
132
132
|
# Configuration parameters: EnforcedStyle, SingleLineConditionsOnly, IncludeTernaryExpressions.
|
133
133
|
# SupportedStyles: assign_to_condition, assign_inside_condition
|
@@ -135,6 +135,7 @@ Style/ConditionalAssignment:
|
|
135
135
|
Exclude:
|
136
136
|
- 'lib/cryptum/event/pane.rb'
|
137
137
|
- 'lib/cryptum/option.rb'
|
138
|
+
- 'lib/cryptum/ui/order_execute_details.rb'
|
138
139
|
|
139
140
|
# Offense count: 1
|
140
141
|
# Configuration parameters: AllowedConstants.
|
@@ -217,7 +218,7 @@ Style/TrailingCommaInArrayLiteral:
|
|
217
218
|
Exclude:
|
218
219
|
- 'lib/cryptum/matrix.rb'
|
219
220
|
|
220
|
-
# Offense count:
|
221
|
+
# Offense count: 22
|
221
222
|
# This cop supports safe autocorrection (--autocorrect).
|
222
223
|
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns, IgnoredPatterns.
|
223
224
|
# URISchemes: http, https
|
@@ -21,7 +21,56 @@ module Cryptum
|
|
21
21
|
order = event_history.order_execute_selected_data
|
22
22
|
tpm = order[:tpm]
|
23
23
|
autotrade_percent = order[:autotrade_percent]
|
24
|
-
order_color = order[:color]
|
24
|
+
order_color = order[:color].to_sym
|
25
|
+
|
26
|
+
order_plan_no = order[:plan_no]
|
27
|
+
case order_color
|
28
|
+
when :cyan, :red
|
29
|
+
order_id = order[:buy_order_id]
|
30
|
+
order_type = 'Buy'
|
31
|
+
when :green, :magenta, :yellow
|
32
|
+
order_id = order[:sell_order_id]
|
33
|
+
order_type = 'Sell'
|
34
|
+
when :black
|
35
|
+
order_id = 'Expired'
|
36
|
+
order_type = 'Expired'
|
37
|
+
else
|
38
|
+
order_id = 'N/A'
|
39
|
+
order_type = 'N/A'
|
40
|
+
end
|
41
|
+
|
42
|
+
risk_alloc_out = Cryptum.beautify_large_number(
|
43
|
+
value: order[:risk_alloc]
|
44
|
+
)
|
45
|
+
invest_out = Cryptum.beautify_large_number(
|
46
|
+
value: order[:invest]
|
47
|
+
)
|
48
|
+
price_out = Cryptum.beautify_large_number(
|
49
|
+
value: order[:price]
|
50
|
+
)
|
51
|
+
size_out = Cryptum.beautify_large_number(
|
52
|
+
value: order[:size]
|
53
|
+
)
|
54
|
+
target_price_out = Cryptum.beautify_large_number(
|
55
|
+
value: order[:target_price]
|
56
|
+
)
|
57
|
+
profit_out = Cryptum.beautify_large_number(
|
58
|
+
value: order[:profit]
|
59
|
+
)
|
60
|
+
plan_no = "#{order[:plan_no]}|"
|
61
|
+
|
62
|
+
created_at = order[:created_at]
|
63
|
+
|
64
|
+
invest = "$#{invest_out} @ "
|
65
|
+
tick = "$#{price_out} = "
|
66
|
+
size = "*#{size_out} + "
|
67
|
+
tpm_out = "#{order[:tpm]}% = "
|
68
|
+
targ_tick = "$#{target_price_out}"
|
69
|
+
profit = "|Profit: $#{order[:profit]}"
|
70
|
+
|
71
|
+
order_id_details = "#{order_type} Order ID: #{order_id}"
|
72
|
+
order_plan_details = "Order Slice #: #{order_plan_no}"
|
73
|
+
order_exec_ln = "Details: #{created_at}|#{invest}#{tick}#{size}#{tpm_out}#{targ_tick}#{profit}"
|
25
74
|
|
26
75
|
# UI
|
27
76
|
col_just1 = (Curses.cols - Cryptum::UI.col_first) - 1
|
@@ -53,7 +102,7 @@ module Cryptum
|
|
53
102
|
string: ''.ljust(col_just1, ' ')
|
54
103
|
)
|
55
104
|
|
56
|
-
header_str = "- ##{order[:plan_no]}
|
105
|
+
header_str = "- ORDER ##{order[:plan_no]} DETAILS -"
|
57
106
|
order_execute_details_win.setpos(
|
58
107
|
out_line_no,
|
59
108
|
Cryptum::UI.col_center(str: header_str)
|
@@ -62,7 +111,7 @@ module Cryptum
|
|
62
111
|
Cryptum::UI.colorize(
|
63
112
|
ui_win: order_execute_details_win,
|
64
113
|
color: order_color,
|
65
|
-
style:
|
114
|
+
style: header_style,
|
66
115
|
string: header_str
|
67
116
|
)
|
68
117
|
|
@@ -71,42 +120,35 @@ module Cryptum
|
|
71
120
|
order_execute_details_win.setpos(out_line_no, Cryptum::UI.col_first)
|
72
121
|
order_execute_details_win.clrtoeol
|
73
122
|
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
)
|
80
|
-
price_out = Cryptum.beautify_large_number(
|
81
|
-
value: order[:price]
|
82
|
-
)
|
83
|
-
size_out = Cryptum.beautify_large_number(
|
84
|
-
value: order[:size]
|
85
|
-
)
|
86
|
-
target_price_out = Cryptum.beautify_large_number(
|
87
|
-
value: order[:target_price]
|
88
|
-
)
|
89
|
-
profit_out = Cryptum.beautify_large_number(
|
90
|
-
value: order[:profit]
|
123
|
+
Cryptum::UI.colorize(
|
124
|
+
ui_win: order_execute_details_win,
|
125
|
+
color: order_color,
|
126
|
+
style: style,
|
127
|
+
string: order_id_details.ljust(col_just1, ' ')
|
91
128
|
)
|
92
|
-
plan_no = "#{order[:plan_no]}|"
|
93
129
|
|
94
|
-
|
130
|
+
# ROW 5
|
131
|
+
out_line_no += 1
|
132
|
+
order_execute_details_win.setpos(out_line_no, Cryptum::UI.col_first)
|
133
|
+
order_execute_details_win.clrtoeol
|
95
134
|
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
135
|
+
Cryptum::UI.colorize(
|
136
|
+
ui_win: order_execute_details_win,
|
137
|
+
color: order_color,
|
138
|
+
style: style,
|
139
|
+
string: order_plan_details.ljust(col_just1, ' ')
|
140
|
+
)
|
102
141
|
|
103
|
-
|
142
|
+
# ROW 4
|
143
|
+
out_line_no += 1
|
144
|
+
order_execute_details_win.setpos(out_line_no, Cryptum::UI.col_first)
|
145
|
+
order_execute_details_win.clrtoeol
|
104
146
|
|
105
147
|
Cryptum::UI.colorize(
|
106
148
|
ui_win: order_execute_details_win,
|
107
149
|
color: order_color,
|
108
150
|
style: style,
|
109
|
-
string: order_exec_ln.ljust(col_just1, '
|
151
|
+
string: order_exec_ln.ljust(col_just1, ' ')
|
110
152
|
)
|
111
153
|
|
112
154
|
# Clear to OK ROW
|
@@ -109,9 +109,6 @@ module Cryptum
|
|
109
109
|
|
110
110
|
next unless fiat_investing > min_market_funds.to_f
|
111
111
|
|
112
|
-
# fiat_investing = min_market_funds.to_f
|
113
|
-
# allocation_decimal = fiat_investing / ticker_price
|
114
|
-
|
115
112
|
risk_alloc = fiat_budget * autotrade_cast_as_decimal
|
116
113
|
allocation_percent = allocation_decimal * 100
|
117
114
|
fiat_returning = fiat_investing + (
|
@@ -119,12 +116,14 @@ module Cryptum
|
|
119
116
|
)
|
120
117
|
profit = fiat_returning - fiat_investing
|
121
118
|
|
122
|
-
# Implemented a bugfix here to avoid a bogus single order when Tradeable
|
123
|
-
# Balances are low. Ensure everything still works as expected when
|
124
|
-
# balances are higher.
|
125
119
|
break if order_plan.map { |op| op[:invest].to_f }.sum > risk_target ||
|
126
120
|
allocation_percent > 100
|
127
121
|
|
122
|
+
# Avoid a bogus single order at the end when tradeable balances are low.
|
123
|
+
# TODO: Add remaining amount to last order
|
124
|
+
next unless fiat_budget >= min_market_funds.to_f
|
125
|
+
|
126
|
+
slice_alloc = risk_alloc * allocation_decimal
|
128
127
|
order_slice = {}
|
129
128
|
order_slice[:plan_no] = "#{plan_no}.#{plan_no_slice}"
|
130
129
|
order_slice[:fiat_available] = format('%0.2f', fiat_budget)
|
@@ -137,6 +136,8 @@ module Cryptum
|
|
137
136
|
'%0.2f',
|
138
137
|
allocation_percent
|
139
138
|
)
|
139
|
+
order_slice[:slice_alloc] = format('%0.2f', slice_alloc)
|
140
|
+
order_slice[:risk_target] = format('%0.2f', risk_target)
|
140
141
|
order_slice[:invest] = format('%0.2f', fiat_investing)
|
141
142
|
order_slice[:return] = format('%0.2f', fiat_returning)
|
142
143
|
order_slice[:profit] = format('%0.2f', profit)
|
@@ -341,6 +342,9 @@ module Cryptum
|
|
341
342
|
risk_alloc_out = Cryptum.beautify_large_number(
|
342
343
|
value: order[:risk_alloc]
|
343
344
|
)
|
345
|
+
slice_alloc_out = Cryptum.beautify_large_number(
|
346
|
+
value: order[:slice_alloc]
|
347
|
+
)
|
344
348
|
invest_out = Cryptum.beautify_large_number(
|
345
349
|
value: order[:invest]
|
346
350
|
)
|
@@ -354,7 +358,7 @@ module Cryptum
|
|
354
358
|
plan_no = "#{order[:plan_no]}|"
|
355
359
|
fiat = "#{autotrade_percent}% of $#{fiat_avail_out} = "
|
356
360
|
alloc = "$#{risk_alloc_out} @ #{order[:allocation_percent]}% = "
|
357
|
-
invest = "$#{invest_out} + #{tpm_out}% = "
|
361
|
+
invest = "$#{slice_alloc_out} OR MIN OF $#{invest_out} + #{tpm_out}% = "
|
358
362
|
|
359
363
|
returns = "$#{return_out}|"
|
360
364
|
profit = "Profit: $#{profit_out}"
|
@@ -23,6 +23,32 @@ module Cryptum
|
|
23
23
|
autotrade_percent = order[:autotrade_percent]
|
24
24
|
order_color = order[:color]
|
25
25
|
|
26
|
+
fiat_avail_out = Cryptum.beautify_large_number(
|
27
|
+
value: order[:fiat_available]
|
28
|
+
)
|
29
|
+
risk_alloc_out = Cryptum.beautify_large_number(
|
30
|
+
value: order[:risk_alloc]
|
31
|
+
)
|
32
|
+
slice_alloc_out = Cryptum.beautify_large_number(
|
33
|
+
value: order[:slice_alloc]
|
34
|
+
)
|
35
|
+
invest_out = Cryptum.beautify_large_number(
|
36
|
+
value: order[:invest]
|
37
|
+
)
|
38
|
+
profit_out = Cryptum.beautify_large_number(
|
39
|
+
value: order[:profit]
|
40
|
+
)
|
41
|
+
tpm_out = format('%0.2f', tpm)
|
42
|
+
return_out = Cryptum.beautify_large_number(
|
43
|
+
value: order[:return]
|
44
|
+
)
|
45
|
+
autotrade_details = "1. bot_conf[:autotrade_portfolio_percent] is set to #{autotrade_percent}% of $#{fiat_avail_out},"
|
46
|
+
risk_alloc_details = " making $#{risk_alloc_out} available for this slice in the order plan cycle."
|
47
|
+
slice_alloc_details = "2. With $#{risk_alloc_out} available and a slice allocation of #{order[:allocation_percent]}%, $#{slice_alloc_out} OR AN ORDER MINIMUM"
|
48
|
+
invest_details = " of $#{invest_out} will be allocated for this slice (whichever is highest)."
|
49
|
+
tpm_details = "3. With a slice allocation of $#{invest_out} plus bot_conf[:target_profit_margin_percent] (TPM)"
|
50
|
+
profit = " equal to #{tpm_out}% $#{return_out} will be returned. With $#{invest_out} invested the profit equals $#{profit_out}."
|
51
|
+
|
26
52
|
# UI
|
27
53
|
col_just1 = (Curses.cols - Cryptum::UI.col_first) - 1
|
28
54
|
col_just3 = (Curses.cols - Cryptum::UI.col_third) - 1
|
@@ -62,7 +88,7 @@ module Cryptum
|
|
62
88
|
Cryptum::UI.colorize(
|
63
89
|
ui_win: order_plan_details_win,
|
64
90
|
color: order_color,
|
65
|
-
style:
|
91
|
+
style: header_style,
|
66
92
|
string: header_str
|
67
93
|
)
|
68
94
|
|
@@ -71,38 +97,71 @@ module Cryptum
|
|
71
97
|
order_plan_details_win.setpos(out_line_no, Cryptum::UI.col_first)
|
72
98
|
order_plan_details_win.clrtoeol
|
73
99
|
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
100
|
+
Cryptum::UI.colorize(
|
101
|
+
ui_win: order_plan_details_win,
|
102
|
+
color: order_color,
|
103
|
+
style: style,
|
104
|
+
string: autotrade_details.ljust(col_just1, ' ')
|
79
105
|
)
|
80
|
-
|
81
|
-
|
106
|
+
|
107
|
+
# ROW 4
|
108
|
+
out_line_no += 1
|
109
|
+
order_plan_details_win.setpos(out_line_no, Cryptum::UI.col_first)
|
110
|
+
order_plan_details_win.clrtoeol
|
111
|
+
|
112
|
+
Cryptum::UI.colorize(
|
113
|
+
ui_win: order_plan_details_win,
|
114
|
+
color: order_color,
|
115
|
+
style: style,
|
116
|
+
string: risk_alloc_details.ljust(col_just1, ' ')
|
82
117
|
)
|
83
|
-
|
84
|
-
|
118
|
+
|
119
|
+
# ROW 5
|
120
|
+
out_line_no += 1
|
121
|
+
order_plan_details_win.setpos(out_line_no, Cryptum::UI.col_first)
|
122
|
+
order_plan_details_win.clrtoeol
|
123
|
+
|
124
|
+
Cryptum::UI.colorize(
|
125
|
+
ui_win: order_plan_details_win,
|
126
|
+
color: order_color,
|
127
|
+
style: style,
|
128
|
+
string: slice_alloc_details.ljust(col_just1, ' ')
|
85
129
|
)
|
86
|
-
|
87
|
-
|
88
|
-
|
130
|
+
|
131
|
+
# ROW 6
|
132
|
+
out_line_no += 1
|
133
|
+
order_plan_details_win.setpos(out_line_no, Cryptum::UI.col_first)
|
134
|
+
order_plan_details_win.clrtoeol
|
135
|
+
|
136
|
+
Cryptum::UI.colorize(
|
137
|
+
ui_win: order_plan_details_win,
|
138
|
+
color: order_color,
|
139
|
+
style: style,
|
140
|
+
string: invest_details.ljust(col_just1, ' ')
|
89
141
|
)
|
90
|
-
plan_no = "#{order[:plan_no]}|"
|
91
|
-
fiat = "#{autotrade_percent}% of $#{fiat_avail_out} = "
|
92
|
-
alloc = "$#{risk_alloc_out} @ #{order[:allocation_percent]}% = "
|
93
|
-
invest = "$#{invest_out} + #{tpm_out}% = "
|
94
142
|
|
95
|
-
|
96
|
-
|
143
|
+
# ROW 7
|
144
|
+
out_line_no += 1
|
145
|
+
order_plan_details_win.setpos(out_line_no, Cryptum::UI.col_first)
|
146
|
+
order_plan_details_win.clrtoeol
|
147
|
+
|
148
|
+
Cryptum::UI.colorize(
|
149
|
+
ui_win: order_plan_details_win,
|
150
|
+
color: order_color,
|
151
|
+
style: style,
|
152
|
+
string: tpm_details.ljust(col_just1, ' ')
|
153
|
+
)
|
97
154
|
|
98
|
-
|
99
|
-
|
155
|
+
# ROW 8
|
156
|
+
out_line_no += 1
|
157
|
+
order_plan_details_win.setpos(out_line_no, Cryptum::UI.col_first)
|
158
|
+
order_plan_details_win.clrtoeol
|
100
159
|
|
101
160
|
Cryptum::UI.colorize(
|
102
161
|
ui_win: order_plan_details_win,
|
103
162
|
color: order_color,
|
104
163
|
style: style,
|
105
|
-
string:
|
164
|
+
string: profit.ljust(col_just1, ' ')
|
106
165
|
)
|
107
166
|
|
108
167
|
# Clear to OK ROW
|
data/lib/cryptum/version.rb
CHANGED