cryptum 0.0.267 → 0.0.268
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 +15 -24
- data/lib/cryptum/event/history.rb +5 -1
- data/lib/cryptum/event.rb +41 -19
- data/lib/cryptum/ui/order_execute_details.rb +167 -0
- data/lib/cryptum/ui/order_execution.rb +8 -1
- data/lib/cryptum/ui/order_plan.rb +12 -5
- data/lib/cryptum/ui/order_plan_details.rb +112 -5
- data/lib/cryptum/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d384463e4c37155226e6cedb4a2156b77d7a9df8660f420acb15fc04de7875f0
|
|
4
|
+
data.tar.gz: 82e3e395beb272f6634ae1335093cee1ffa10504229720fe5a5821c5d811d6e9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d60b522b67253efd740f0fb41943f3fcdc9c76ec0441c0880c0e409b9769d5d30544857573fe42411bf4e0ebac89808348e8ba34b9d274521dfb75e16c93edc6
|
|
7
|
+
data.tar.gz: a4edd8b79853a7d59135b4e9d136a2f4556a8de663adf9c926f1bd7f1491aa1a655095216845543e5d0d9c0996155f525b3659b236c460de54dfc97e23e65695
|
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-
|
|
3
|
+
# on 2022-12-05 18:21:06 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
|
|
@@ -41,13 +41,6 @@ Layout/EmptyLines:
|
|
|
41
41
|
Exclude:
|
|
42
42
|
- 'lib/cryptum/api.rb'
|
|
43
43
|
|
|
44
|
-
# Offense count: 1
|
|
45
|
-
# This cop supports safe autocorrection (--autocorrect).
|
|
46
|
-
# Configuration parameters: AllowForAlignment, AllowBeforeTrailingComments, ForceEqualSignAlignment.
|
|
47
|
-
Layout/ExtraSpacing:
|
|
48
|
-
Exclude:
|
|
49
|
-
- 'lib/cryptum/ui/order_plan.rb'
|
|
50
|
-
|
|
51
44
|
# Offense count: 1
|
|
52
45
|
# This cop supports safe autocorrection (--autocorrect).
|
|
53
46
|
# Configuration parameters: EnforcedStyle, IndentationWidth.
|
|
@@ -82,14 +75,6 @@ Layout/MultilineOperationIndentation:
|
|
|
82
75
|
- 'lib/cryptum/ui/order_execution.rb'
|
|
83
76
|
- 'lib/cryptum/ui/ticker.rb'
|
|
84
77
|
|
|
85
|
-
# Offense count: 1
|
|
86
|
-
# This cop supports safe autocorrection (--autocorrect).
|
|
87
|
-
# Configuration parameters: AllowForAlignment, EnforcedStyleForExponentOperator.
|
|
88
|
-
# SupportedStylesForExponentOperator: space, no_space
|
|
89
|
-
Layout/SpaceAroundOperators:
|
|
90
|
-
Exclude:
|
|
91
|
-
- 'lib/cryptum/ui/order_plan.rb'
|
|
92
|
-
|
|
93
78
|
# Offense count: 13
|
|
94
79
|
# This cop supports safe autocorrection (--autocorrect).
|
|
95
80
|
# Configuration parameters: AllowInHeredoc.
|
|
@@ -102,14 +87,14 @@ Layout/TrailingWhitespace:
|
|
|
102
87
|
- 'lib/cryptum/ui/order_plan.rb'
|
|
103
88
|
- 'lib/cryptum/ui/order_timer.rb'
|
|
104
89
|
|
|
105
|
-
# Offense count:
|
|
90
|
+
# Offense count: 81
|
|
106
91
|
Lint/UselessAssignment:
|
|
107
92
|
Enabled: false
|
|
108
93
|
|
|
109
|
-
# Offense count:
|
|
94
|
+
# Offense count: 49
|
|
110
95
|
# Configuration parameters: AllowedMethods, AllowedPatterns, IgnoredMethods, CountRepeatedAttributes.
|
|
111
96
|
Metrics/AbcSize:
|
|
112
|
-
Max:
|
|
97
|
+
Max: 405
|
|
113
98
|
|
|
114
99
|
# Offense count: 7
|
|
115
100
|
# Configuration parameters: CountComments, CountAsOne, ExcludedMethods, AllowedMethods, AllowedPatterns, IgnoredMethods.
|
|
@@ -122,22 +107,22 @@ Metrics/BlockLength:
|
|
|
122
107
|
Metrics/BlockNesting:
|
|
123
108
|
Max: 4
|
|
124
109
|
|
|
125
|
-
# Offense count:
|
|
110
|
+
# Offense count: 20
|
|
126
111
|
# Configuration parameters: AllowedMethods, AllowedPatterns, IgnoredMethods.
|
|
127
112
|
Metrics/CyclomaticComplexity:
|
|
128
113
|
Max: 73
|
|
129
114
|
|
|
130
|
-
# Offense count:
|
|
115
|
+
# Offense count: 68
|
|
131
116
|
# Configuration parameters: CountComments, CountAsOne, ExcludedMethods, AllowedMethods, AllowedPatterns, IgnoredMethods.
|
|
132
117
|
Metrics/MethodLength:
|
|
133
|
-
Max:
|
|
118
|
+
Max: 389
|
|
134
119
|
|
|
135
|
-
# Offense count:
|
|
120
|
+
# Offense count: 17
|
|
136
121
|
# Configuration parameters: CountComments, CountAsOne.
|
|
137
122
|
Metrics/ModuleLength:
|
|
138
123
|
Max: 538
|
|
139
124
|
|
|
140
|
-
# Offense count:
|
|
125
|
+
# Offense count: 19
|
|
141
126
|
# Configuration parameters: AllowedMethods, AllowedPatterns, IgnoredMethods.
|
|
142
127
|
Metrics/PerceivedComplexity:
|
|
143
128
|
Max: 76
|
|
@@ -194,6 +179,12 @@ Style/RedundantAssignment:
|
|
|
194
179
|
Exclude:
|
|
195
180
|
- 'lib/cryptum/api.rb'
|
|
196
181
|
|
|
182
|
+
# Offense count: 1
|
|
183
|
+
# This cop supports unsafe autocorrection (--autocorrect-all).
|
|
184
|
+
Style/RedundantInterpolation:
|
|
185
|
+
Exclude:
|
|
186
|
+
- 'lib/cryptum/ui/order_execute_details.rb'
|
|
187
|
+
|
|
197
188
|
# Offense count: 1
|
|
198
189
|
# This cop supports safe autocorrection (--autocorrect).
|
|
199
190
|
# Configuration parameters: AllowMultipleReturnValues.
|
|
@@ -29,11 +29,13 @@ module Cryptum
|
|
|
29
29
|
:order_plan_index_offset,
|
|
30
30
|
:order_plan_max_rows_to_display,
|
|
31
31
|
:order_plan_row_to_select,
|
|
32
|
+
:order_plan_selected_data,
|
|
32
33
|
:order_execute_win_active,
|
|
33
34
|
:order_execute_details_win_active,
|
|
34
35
|
:order_execute_index_offset,
|
|
35
36
|
:order_execute_max_rows_to_display,
|
|
36
|
-
:order_execute_row_to_select
|
|
37
|
+
:order_execute_row_to_select,
|
|
38
|
+
:order_execute_selected_data
|
|
37
39
|
|
|
38
40
|
def initialize(opts = {})
|
|
39
41
|
# option_choice = opts[:option_choice]
|
|
@@ -55,11 +57,13 @@ module Cryptum
|
|
|
55
57
|
self.order_plan_index_offset = 0
|
|
56
58
|
self.order_plan_max_rows_to_display = 6
|
|
57
59
|
self.order_plan_row_to_select = order_plan_index_offset
|
|
60
|
+
self.order_plan_selected_data = { color: :white }
|
|
58
61
|
self.order_execute_win_active = false
|
|
59
62
|
self.order_execute_details_win_active = false
|
|
60
63
|
self.order_execute_index_offset = 0
|
|
61
64
|
self.order_execute_max_rows_to_display = 6
|
|
62
65
|
self.order_execute_row_to_select = order_execute_index_offset
|
|
66
|
+
self.order_execute_selected_data = { color: :white }
|
|
63
67
|
|
|
64
68
|
# TODO: Implement market_trend_reset / 144
|
|
65
69
|
# Default = 10 minutes
|
data/lib/cryptum/event.rb
CHANGED
|
@@ -112,26 +112,48 @@ module Cryptum
|
|
|
112
112
|
fiat_portfolio_file: fiat_portfolio_file
|
|
113
113
|
)
|
|
114
114
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
115
|
+
unless event_history.order_plan_details_win_active
|
|
116
|
+
Cryptum::UI::OrderPlan.refresh(
|
|
117
|
+
option_choice: option_choice,
|
|
118
|
+
order_plan_win: terminal_win.order_plan_section,
|
|
119
|
+
event_history: event_history,
|
|
120
|
+
key_press_event: terminal_win.key_press_event,
|
|
121
|
+
indicator_status: indicator_status,
|
|
122
|
+
bot_conf: bot_conf,
|
|
123
|
+
fiat_portfolio_file: fiat_portfolio_file
|
|
124
|
+
)
|
|
125
|
+
end
|
|
124
126
|
|
|
125
|
-
event_history
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
127
|
+
if event_history.order_plan_details_win_active
|
|
128
|
+
Cryptum::UI::OrderPlanDetails.refresh(
|
|
129
|
+
option_choice: option_choice,
|
|
130
|
+
order_plan_details_win: terminal_win.order_plan_details_section,
|
|
131
|
+
event_history: event_history,
|
|
132
|
+
key_press_event: terminal_win.key_press_event
|
|
133
|
+
)
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
unless event_history.order_execute_details_win_active
|
|
137
|
+
event_history = Cryptum::UI::OrderExecution.refresh(
|
|
138
|
+
option_choice: option_choice,
|
|
139
|
+
order_execute_win: terminal_win.order_execute_section,
|
|
140
|
+
env: env,
|
|
141
|
+
event_history: event_history,
|
|
142
|
+
key_press_event: terminal_win.key_press_event,
|
|
143
|
+
indicator_status: indicator_status,
|
|
144
|
+
bot_conf: bot_conf,
|
|
145
|
+
fiat_portfolio_file: fiat_portfolio_file
|
|
146
|
+
)
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
if event_history.order_execute_details_win_active
|
|
150
|
+
Cryptum::UI::OrderExecuteDetails.refresh(
|
|
151
|
+
option_choice: option_choice,
|
|
152
|
+
order_execute_details_win: terminal_win.order_execute_details_section,
|
|
153
|
+
event_history: event_history,
|
|
154
|
+
key_press_event: terminal_win.key_press_event
|
|
155
|
+
)
|
|
156
|
+
end
|
|
135
157
|
|
|
136
158
|
# Refresh Command Section for Cryptum Session Usage
|
|
137
159
|
Cryptum::UI::Command.refresh(
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'logger'
|
|
4
|
+
|
|
5
|
+
module Cryptum
|
|
6
|
+
module UI
|
|
7
|
+
# This plugin is used to Display Order Execute Details
|
|
8
|
+
# selected from the Order Execute Window Pane.
|
|
9
|
+
module OrderExecuteDetails
|
|
10
|
+
# Supported Method Parameters::
|
|
11
|
+
# Cryptum::UI::OrderExecuteDetails.refresh(
|
|
12
|
+
# )
|
|
13
|
+
|
|
14
|
+
public_class_method def self.refresh(opts = {})
|
|
15
|
+
option_choice = opts[:option_choice]
|
|
16
|
+
event_history = opts[:event_history]
|
|
17
|
+
order_execute_details_win = opts[:order_execute_details_win]
|
|
18
|
+
indicator_status = opts[:indicator_status]
|
|
19
|
+
key_press_event = opts[:key_press_event]
|
|
20
|
+
|
|
21
|
+
order = event_history.order_execute_selected_data
|
|
22
|
+
tpm = order[:tpm]
|
|
23
|
+
autotrade_percent = order[:autotrade_percent]
|
|
24
|
+
order_color = order[:color]
|
|
25
|
+
|
|
26
|
+
# UI
|
|
27
|
+
col_just1 = (Curses.cols - Cryptum::UI.col_first) - 1
|
|
28
|
+
col_just3 = (Curses.cols - Cryptum::UI.col_third) - 1
|
|
29
|
+
col_just4 = Curses.cols - Cryptum::UI.col_fourth
|
|
30
|
+
|
|
31
|
+
# ROW 1
|
|
32
|
+
out_line_no = 0
|
|
33
|
+
line_color = order_color
|
|
34
|
+
header_color = order_color
|
|
35
|
+
header_style = :bold
|
|
36
|
+
style = :bold
|
|
37
|
+
header_style = :reverse if event_history.order_execute_details_win_active
|
|
38
|
+
|
|
39
|
+
Cryptum::UI.line(
|
|
40
|
+
ui_win: order_execute_details_win,
|
|
41
|
+
out_line_no: out_line_no,
|
|
42
|
+
color: line_color
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
# ROW 2
|
|
46
|
+
out_line_no += 1
|
|
47
|
+
order_execute_details_win.setpos(out_line_no, Cryptum::UI.col_first)
|
|
48
|
+
order_execute_details_win.clrtoeol
|
|
49
|
+
Cryptum::UI.colorize(
|
|
50
|
+
ui_win: order_execute_details_win,
|
|
51
|
+
color: header_color,
|
|
52
|
+
style: header_style,
|
|
53
|
+
string: ''.ljust(col_just1, ' ')
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
header_str = "- ##{order[:plan_no]} ORDER HISTORY DETAILS -"
|
|
57
|
+
order_execute_details_win.setpos(
|
|
58
|
+
out_line_no,
|
|
59
|
+
Cryptum::UI.col_center(str: header_str)
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
Cryptum::UI.colorize(
|
|
63
|
+
ui_win: order_execute_details_win,
|
|
64
|
+
color: order_color,
|
|
65
|
+
style: :bold,
|
|
66
|
+
string: header_str
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
# ROW 3
|
|
70
|
+
out_line_no += 1
|
|
71
|
+
order_execute_details_win.setpos(out_line_no, Cryptum::UI.col_first)
|
|
72
|
+
order_execute_details_win.clrtoeol
|
|
73
|
+
|
|
74
|
+
risk_alloc_out = Cryptum.beautify_large_number(
|
|
75
|
+
value: order[:risk_alloc]
|
|
76
|
+
)
|
|
77
|
+
invest_out = Cryptum.beautify_large_number(
|
|
78
|
+
value: order[:invest]
|
|
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]
|
|
91
|
+
)
|
|
92
|
+
plan_no = "#{order[:plan_no]}|"
|
|
93
|
+
|
|
94
|
+
created_at = order[:created_at]
|
|
95
|
+
|
|
96
|
+
invest = "$#{invest_out} @ "
|
|
97
|
+
tick = "$#{price_out} = "
|
|
98
|
+
size = "*#{size_out} + "
|
|
99
|
+
tpm_out = "#{order[:tpm]}% = "
|
|
100
|
+
targ_tick = "$#{target_price_out}"
|
|
101
|
+
profit = "|Profit: $#{order[:profit]}"
|
|
102
|
+
|
|
103
|
+
order_exec_ln = "#{created_at}|#{invest}#{tick}#{size}#{tpm_out}#{targ_tick}#{profit}"
|
|
104
|
+
|
|
105
|
+
Cryptum::UI.colorize(
|
|
106
|
+
ui_win: order_execute_details_win,
|
|
107
|
+
color: order_color,
|
|
108
|
+
style: style,
|
|
109
|
+
string: order_exec_ln.ljust(col_just1, '.')
|
|
110
|
+
)
|
|
111
|
+
|
|
112
|
+
# Clear to OK ROW
|
|
113
|
+
ok_row = 9
|
|
114
|
+
out_line_no += 1
|
|
115
|
+
to_ok_row = ok_row - 1
|
|
116
|
+
(out_line_no..to_ok_row).each do |clr_line|
|
|
117
|
+
order_execute_details_win.setpos(clr_line, Cryptum::UI.col_first)
|
|
118
|
+
Cryptum::UI.colorize(
|
|
119
|
+
ui_win: order_execute_details_win,
|
|
120
|
+
color: order_color,
|
|
121
|
+
style: :normal,
|
|
122
|
+
string: ''.ljust(col_just1, ' ')
|
|
123
|
+
)
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
# OK ROW
|
|
127
|
+
out_line_no = ok_row
|
|
128
|
+
order_execute_details_win.setpos(out_line_no, Cryptum::UI.col_first)
|
|
129
|
+
order_execute_details_win.clrtoeol
|
|
130
|
+
Cryptum::UI.colorize(
|
|
131
|
+
ui_win: order_execute_details_win,
|
|
132
|
+
color: order_color,
|
|
133
|
+
string: ''.ljust(col_just1, ' ')
|
|
134
|
+
)
|
|
135
|
+
|
|
136
|
+
header_str = '- OK -'
|
|
137
|
+
order_execute_details_win.setpos(
|
|
138
|
+
out_line_no,
|
|
139
|
+
Cryptum::UI.col_center(str: header_str)
|
|
140
|
+
)
|
|
141
|
+
|
|
142
|
+
Cryptum::UI.colorize(
|
|
143
|
+
ui_win: order_execute_details_win,
|
|
144
|
+
color: order_color,
|
|
145
|
+
style: :reverse,
|
|
146
|
+
string: header_str
|
|
147
|
+
)
|
|
148
|
+
|
|
149
|
+
order_execute_details_win.refresh
|
|
150
|
+
rescue Interrupt
|
|
151
|
+
# Exit Gracefully if CTRL+C is Pressed During Session
|
|
152
|
+
Cryptum.exit_gracefully(which_self: self)
|
|
153
|
+
rescue StandardError => e
|
|
154
|
+
raise e
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
# Display Usage for this Module
|
|
158
|
+
|
|
159
|
+
public_class_method def self.help
|
|
160
|
+
puts "USAGE:
|
|
161
|
+
#{self}.refresh(
|
|
162
|
+
)
|
|
163
|
+
"
|
|
164
|
+
end
|
|
165
|
+
end
|
|
166
|
+
end
|
|
167
|
+
end
|
|
@@ -421,12 +421,18 @@ module Cryptum
|
|
|
421
421
|
end
|
|
422
422
|
|
|
423
423
|
if order_history_meta.any?
|
|
424
|
+
selected_order = event_history.order_execute_selected_data
|
|
424
425
|
order_history_meta.reverse[first_row..last_row].each do |meta|
|
|
425
426
|
out_line_no += 1
|
|
426
427
|
current_line = out_line_no - 2
|
|
427
428
|
|
|
428
429
|
style = :normal
|
|
429
|
-
|
|
430
|
+
if event_history.order_execute_row_to_select == current_line
|
|
431
|
+
style = :highlight
|
|
432
|
+
selected_order = meta
|
|
433
|
+
selected_order[:color] = meta[:color]
|
|
434
|
+
end
|
|
435
|
+
|
|
430
436
|
risk_alloc_out = Cryptum.beautify_large_number(
|
|
431
437
|
value: meta[:risk_alloc]
|
|
432
438
|
)
|
|
@@ -476,6 +482,7 @@ module Cryptum
|
|
|
476
482
|
string: order_exec_ln.ljust(col_just1, '.')
|
|
477
483
|
)
|
|
478
484
|
end
|
|
485
|
+
event_history.order_execute_selected_data = selected_order
|
|
479
486
|
end
|
|
480
487
|
|
|
481
488
|
# ROW 10
|
|
@@ -321,12 +321,20 @@ module Cryptum
|
|
|
321
321
|
event_history.order_plan_index_offset = first_row
|
|
322
322
|
end
|
|
323
323
|
|
|
324
|
+
selected_order = event_history.order_plan_selected_data
|
|
324
325
|
order_plan[first_row..last_row].each do |order|
|
|
325
326
|
out_line_no += 1
|
|
326
327
|
current_line = out_line_no - 2
|
|
327
328
|
|
|
328
329
|
style = :normal
|
|
329
|
-
|
|
330
|
+
if event_history.order_plan_row_to_select == current_line
|
|
331
|
+
style = :highlight
|
|
332
|
+
selected_order = order
|
|
333
|
+
selected_order[:tpm] = tpm
|
|
334
|
+
selected_order[:autotrade_percent] = autotrade_percent
|
|
335
|
+
selected_order[:color] = plan_color
|
|
336
|
+
end
|
|
337
|
+
|
|
330
338
|
fiat_avail_out = Cryptum.beautify_large_number(
|
|
331
339
|
value: order[:fiat_available]
|
|
332
340
|
)
|
|
@@ -348,11 +356,11 @@ module Cryptum
|
|
|
348
356
|
alloc = "$#{risk_alloc_out} @ #{order[:allocation_percent]}% = "
|
|
349
357
|
invest = "$#{invest_out} + #{tpm_out}% = "
|
|
350
358
|
|
|
351
|
-
returns
|
|
359
|
+
returns = "$#{return_out}|"
|
|
352
360
|
profit = "Profit: $#{profit_out}"
|
|
353
361
|
|
|
354
362
|
order_plan_invest = "#{plan_no}#{fiat}#{alloc}#{invest}"
|
|
355
|
-
order_plan_return
|
|
363
|
+
order_plan_return = "#{returns}#{profit}"
|
|
356
364
|
|
|
357
365
|
order_plan_win.setpos(out_line_no, Cryptum::UI.col_first)
|
|
358
366
|
order_plan_win.clrtoeol
|
|
@@ -363,6 +371,7 @@ module Cryptum
|
|
|
363
371
|
string: "#{order_plan_invest}#{order_plan_return}".ljust(col_just1, '.')
|
|
364
372
|
)
|
|
365
373
|
end
|
|
374
|
+
event_history.order_plan_selected_data = selected_order
|
|
366
375
|
|
|
367
376
|
if order_plan.length < 9
|
|
368
377
|
lines_to_clear = 9 - order_plan.length
|
|
@@ -407,8 +416,6 @@ module Cryptum
|
|
|
407
416
|
)
|
|
408
417
|
|
|
409
418
|
order_plan_win.refresh
|
|
410
|
-
|
|
411
|
-
# event_history
|
|
412
419
|
rescue Interrupt
|
|
413
420
|
# Exit Gracefully if CTRL+C is Pressed During Session
|
|
414
421
|
Cryptum.exit_gracefully(which_self: self)
|
|
@@ -18,21 +18,128 @@ module Cryptum
|
|
|
18
18
|
indicator_status = opts[:indicator_status]
|
|
19
19
|
key_press_event = opts[:key_press_event]
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
order = event_history.order_plan_selected_data
|
|
22
|
+
tpm = order[:tpm]
|
|
23
|
+
autotrade_percent = order[:autotrade_percent]
|
|
24
|
+
order_color = order[:color]
|
|
22
25
|
|
|
23
26
|
# UI
|
|
24
|
-
|
|
27
|
+
col_just1 = (Curses.cols - Cryptum::UI.col_first) - 1
|
|
28
|
+
col_just3 = (Curses.cols - Cryptum::UI.col_third) - 1
|
|
29
|
+
col_just4 = Curses.cols - Cryptum::UI.col_fourth
|
|
25
30
|
|
|
26
31
|
# ROW 1
|
|
27
|
-
# COLUMN 1
|
|
28
32
|
out_line_no = 0
|
|
33
|
+
line_color = order_color
|
|
34
|
+
header_color = order_color
|
|
35
|
+
header_style = :bold
|
|
36
|
+
style = :bold
|
|
37
|
+
header_style = :reverse if event_history.order_plan_details_win_active
|
|
38
|
+
|
|
39
|
+
Cryptum::UI.line(
|
|
40
|
+
ui_win: order_plan_details_win,
|
|
41
|
+
out_line_no: out_line_no,
|
|
42
|
+
color: line_color
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
# ROW 2
|
|
46
|
+
out_line_no += 1
|
|
29
47
|
order_plan_details_win.setpos(out_line_no, Cryptum::UI.col_first)
|
|
30
48
|
order_plan_details_win.clrtoeol
|
|
31
49
|
Cryptum::UI.colorize(
|
|
32
50
|
ui_win: order_plan_details_win,
|
|
33
|
-
color:
|
|
51
|
+
color: header_color,
|
|
52
|
+
style: header_style,
|
|
53
|
+
string: ''.ljust(col_just1, ' ')
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
header_str = "- ##{order[:plan_no]} ORDER SLICE DETAILS -"
|
|
57
|
+
order_plan_details_win.setpos(
|
|
58
|
+
out_line_no,
|
|
59
|
+
Cryptum::UI.col_center(str: header_str)
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
Cryptum::UI.colorize(
|
|
63
|
+
ui_win: order_plan_details_win,
|
|
64
|
+
color: order_color,
|
|
34
65
|
style: :bold,
|
|
35
|
-
string:
|
|
66
|
+
string: header_str
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
# ROW 3
|
|
70
|
+
out_line_no += 1
|
|
71
|
+
order_plan_details_win.setpos(out_line_no, Cryptum::UI.col_first)
|
|
72
|
+
order_plan_details_win.clrtoeol
|
|
73
|
+
|
|
74
|
+
fiat_avail_out = Cryptum.beautify_large_number(
|
|
75
|
+
value: order[:fiat_available]
|
|
76
|
+
)
|
|
77
|
+
risk_alloc_out = Cryptum.beautify_large_number(
|
|
78
|
+
value: order[:risk_alloc]
|
|
79
|
+
)
|
|
80
|
+
invest_out = Cryptum.beautify_large_number(
|
|
81
|
+
value: order[:invest]
|
|
82
|
+
)
|
|
83
|
+
profit_out = Cryptum.beautify_large_number(
|
|
84
|
+
value: order[:profit]
|
|
85
|
+
)
|
|
86
|
+
tpm_out = format('%0.2f', tpm)
|
|
87
|
+
return_out = Cryptum.beautify_large_number(
|
|
88
|
+
value: order[:return]
|
|
89
|
+
)
|
|
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
|
+
|
|
95
|
+
returns = "$#{return_out}|"
|
|
96
|
+
profit = "Profit: $#{profit_out}"
|
|
97
|
+
|
|
98
|
+
order_plan_invest = "#{plan_no}#{fiat}#{alloc}#{invest}"
|
|
99
|
+
order_plan_return = "#{returns}#{profit}"
|
|
100
|
+
|
|
101
|
+
Cryptum::UI.colorize(
|
|
102
|
+
ui_win: order_plan_details_win,
|
|
103
|
+
color: order_color,
|
|
104
|
+
style: style,
|
|
105
|
+
string: "#{order_plan_invest}#{order_plan_return}".ljust(col_just1, '.')
|
|
106
|
+
)
|
|
107
|
+
|
|
108
|
+
# Clear to OK ROW
|
|
109
|
+
ok_row = 9
|
|
110
|
+
out_line_no += 1
|
|
111
|
+
to_ok_row = ok_row - 1
|
|
112
|
+
(out_line_no..to_ok_row).each do |clr_line|
|
|
113
|
+
order_plan_details_win.setpos(clr_line, Cryptum::UI.col_first)
|
|
114
|
+
Cryptum::UI.colorize(
|
|
115
|
+
ui_win: order_plan_details_win,
|
|
116
|
+
color: order_color,
|
|
117
|
+
style: :normal,
|
|
118
|
+
string: ''.ljust(col_just1, ' ')
|
|
119
|
+
)
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
# OK ROW
|
|
123
|
+
out_line_no = ok_row
|
|
124
|
+
order_plan_details_win.setpos(out_line_no, Cryptum::UI.col_first)
|
|
125
|
+
order_plan_details_win.clrtoeol
|
|
126
|
+
Cryptum::UI.colorize(
|
|
127
|
+
ui_win: order_plan_details_win,
|
|
128
|
+
color: order_color,
|
|
129
|
+
string: ''.ljust(col_just1, ' ')
|
|
130
|
+
)
|
|
131
|
+
|
|
132
|
+
header_str = '- OK -'
|
|
133
|
+
order_plan_details_win.setpos(
|
|
134
|
+
out_line_no,
|
|
135
|
+
Cryptum::UI.col_center(str: header_str)
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
Cryptum::UI.colorize(
|
|
139
|
+
ui_win: order_plan_details_win,
|
|
140
|
+
color: order_color,
|
|
141
|
+
style: :reverse,
|
|
142
|
+
string: header_str
|
|
36
143
|
)
|
|
37
144
|
|
|
38
145
|
order_plan_details_win.refresh
|
data/lib/cryptum/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: cryptum
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.268
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- 0day Inc.
|
|
@@ -409,6 +409,7 @@ files:
|
|
|
409
409
|
- lib/cryptum/ui/command.rb
|
|
410
410
|
- lib/cryptum/ui/key_press_event.rb
|
|
411
411
|
- lib/cryptum/ui/market_trend.rb
|
|
412
|
+
- lib/cryptum/ui/order_execute_details.rb
|
|
412
413
|
- lib/cryptum/ui/order_execution.rb
|
|
413
414
|
- lib/cryptum/ui/order_plan.rb
|
|
414
415
|
- lib/cryptum/ui/order_plan_details.rb
|