cryptum 0.0.355 → 0.0.356

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. checksums.yaml +4 -4
  2. metadata +13 -116
  3. data/.github/workflows/main.yml +0 -16
  4. data/.gitignore +0 -30
  5. data/.rspec +0 -3
  6. data/.rspec_status +0 -0
  7. data/.rubocop.yml +0 -31
  8. data/.rubocop_todo.yml +0 -32
  9. data/.ruby-gemset +0 -1
  10. data/.ruby-version +0 -1
  11. data/CODE_OF_CONDUCT.md +0 -84
  12. data/Gemfile +0 -38
  13. data/LICENSE +0 -674
  14. data/README.md +0 -87
  15. data/Rakefile +0 -19
  16. data/bin/cryptum +0 -73
  17. data/bin/cryptum-forecast +0 -200
  18. data/bin/cryptum-repl +0 -73
  19. data/bin/cryptum_autoinc_version +0 -38
  20. data/build_cryptum_gem.sh +0 -58
  21. data/cryptum.gemspec +0 -52
  22. data/cryptum_container.sh +0 -1
  23. data/docker/cryptum.json +0 -60
  24. data/docker/cryptum_container.sh +0 -59
  25. data/docker/packer_secrets.json.EXAMPLE +0 -7
  26. data/docker/provisioners/cryptum.sh +0 -11
  27. data/docker/provisioners/docker_bashrc.sh +0 -2
  28. data/docker/provisioners/docker_rvm.sh +0 -22
  29. data/docker/provisioners/init_image.sh +0 -28
  30. data/docker/provisioners/post_install.sh +0 -6
  31. data/docker/provisioners/ruby.sh +0 -16
  32. data/docker/provisioners/upload_globals.sh +0 -49
  33. data/etc/bot_confs/.gitkeep +0 -0
  34. data/etc/bot_confs/BOT_CONF.TEMPLATE +0 -10
  35. data/etc/coinbase_pro.yaml.EXAMPLE +0 -8
  36. data/etc/open_ai.yaml.EXAMPLE +0 -1
  37. data/git_commit.sh +0 -22
  38. data/lib/cryptum/api.rb +0 -688
  39. data/lib/cryptum/bot_conf.rb +0 -197
  40. data/lib/cryptum/event/bot_conf.rb +0 -34
  41. data/lib/cryptum/event/buy.rb +0 -145
  42. data/lib/cryptum/event/cancel.rb +0 -35
  43. data/lib/cryptum/event/exit.rb +0 -35
  44. data/lib/cryptum/event/gtfo.rb +0 -36
  45. data/lib/cryptum/event/history.rb +0 -105
  46. data/lib/cryptum/event/key_press.rb +0 -64
  47. data/lib/cryptum/event/order_book.rb +0 -34
  48. data/lib/cryptum/event/pane.rb +0 -65
  49. data/lib/cryptum/event/parse.rb +0 -181
  50. data/lib/cryptum/event/scroll.rb +0 -200
  51. data/lib/cryptum/event/sell.rb +0 -124
  52. data/lib/cryptum/event.rb +0 -27
  53. data/lib/cryptum/log.rb +0 -34
  54. data/lib/cryptum/matrix.rb +0 -181
  55. data/lib/cryptum/open_ai.rb +0 -156
  56. data/lib/cryptum/option/choice.rb +0 -28
  57. data/lib/cryptum/option.rb +0 -206
  58. data/lib/cryptum/order_book/generate.rb +0 -114
  59. data/lib/cryptum/order_book/indicator.rb +0 -15
  60. data/lib/cryptum/order_book/market_trend.rb +0 -137
  61. data/lib/cryptum/order_book/profit_margin.rb +0 -55
  62. data/lib/cryptum/order_book.rb +0 -19
  63. data/lib/cryptum/portfolio/balance.rb +0 -123
  64. data/lib/cryptum/portfolio.rb +0 -15
  65. data/lib/cryptum/ui/command.rb +0 -314
  66. data/lib/cryptum/ui/key_press_event.rb +0 -33
  67. data/lib/cryptum/ui/market_trend.rb +0 -74
  68. data/lib/cryptum/ui/order_execute_details.rb +0 -297
  69. data/lib/cryptum/ui/order_execution.rb +0 -573
  70. data/lib/cryptum/ui/order_plan.rb +0 -503
  71. data/lib/cryptum/ui/order_plan_details.rb +0 -240
  72. data/lib/cryptum/ui/order_timer.rb +0 -121
  73. data/lib/cryptum/ui/portfolio.rb +0 -221
  74. data/lib/cryptum/ui/signal_engine.rb +0 -109
  75. data/lib/cryptum/ui/terminal_window.rb +0 -111
  76. data/lib/cryptum/ui/ticker.rb +0 -319
  77. data/lib/cryptum/ui.rb +0 -343
  78. data/lib/cryptum/version.rb +0 -5
  79. data/lib/cryptum/web_sock/coinbase.rb +0 -102
  80. data/lib/cryptum/web_sock/event_machine.rb +0 -274
  81. data/lib/cryptum/web_sock.rb +0 -16
  82. data/lib/cryptum.rb +0 -120
  83. data/order_books/.gitkeep +0 -0
  84. data/reinstall_cryptum_gemset.sh +0 -29
  85. data/spec/lib/cryptum/api_spec.rb +0 -10
  86. data/spec/lib/cryptum/event_spec.rb +0 -10
  87. data/spec/lib/cryptum/log_spec.rb +0 -10
  88. data/spec/lib/cryptum/option_spec.rb +0 -10
  89. data/spec/lib/cryptum/order_book/generate_spec.rb +0 -10
  90. data/spec/lib/cryptum/order_book/market_trend_spec.rb +0 -10
  91. data/spec/lib/cryptum/order_book_spec.rb +0 -10
  92. data/spec/lib/cryptum/ui/command_spec.rb +0 -10
  93. data/spec/lib/cryptum/ui/ticker_spec.rb +0 -10
  94. data/spec/lib/cryptum/ui_spec.rb +0 -10
  95. data/spec/lib/cryptum/web_sock_spec.rb +0 -10
  96. data/spec/lib/cryptum_spec.rb +0 -10
  97. data/spec/spec_helper.rb +0 -3
  98. data/upgrade_Gemfile_gems.sh +0 -20
  99. data/upgrade_cryptum.sh +0 -13
  100. data/upgrade_gem.sh +0 -4
  101. data/upgrade_ruby.sh +0 -45
@@ -1,240 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'logger'
4
-
5
- module Cryptum
6
- module UI
7
- # This plugin is used to Display Order Plan Details
8
- # selected from the Order Plan Window Pane.
9
- module OrderPlanDetails
10
- # Supported Method Parameters::
11
- # Cryptum::UI::OrderPlanDetails.refresh(
12
- # )
13
-
14
- public_class_method def self.refresh(opts = {})
15
- event_history = opts[:event_history]
16
- order_plan_details_win = opts[:order_plan_details_win]
17
-
18
- order = event_history.order_plan_selected_data
19
- tpm = order[:tpm]
20
- autotrade_percent = order[:autotrade_percent]
21
- order_color = order[:color]
22
-
23
- fiat_avail_out = Cryptum.beautify_large_number(
24
- value: order[:fiat_available]
25
- )
26
- risk_alloc_out = Cryptum.beautify_large_number(
27
- value: order[:risk_alloc]
28
- )
29
- slice_alloc_out = Cryptum.beautify_large_number(
30
- value: order[:slice_alloc]
31
- )
32
- previous_slice_invest_out = Cryptum.beautify_large_number(
33
- value: order[:previous_slice_invest]
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_ln1_details = "1. Autotrade is set to #{autotrade_percent}% of $#{fiat_avail_out}, making $#{risk_alloc_out} available for this slice in"
46
- autotrade_ln2_details = ' the order plan.'
47
- if order[:last_slice]
48
- slice_alloc_ln1_details = "2. Since $#{risk_alloc_out} is the remaining amount within the criteria defined in the Autotrade % above,"
49
- slice_alloc_ln2_details = " $#{invest_out} will be allocated for this slice."
50
- else
51
- slice_alloc_ln1_details = "2. With $#{risk_alloc_out} available and a slice allocation of #{order[:allocation_percent]}%, $#{slice_alloc_out} plus the previous"
52
- slice_alloc_ln2_details = " slice of $#{previous_slice_invest_out} results in $#{invest_out} being allocated for this slice."
53
- end
54
- profit_ln1_details = "3. With a slice allocation of $#{invest_out}, plus a TPM equal to #{tpm_out}%, $#{return_out} will be returned"
55
- profit_ln2_details = " once sold. With $#{invest_out} invested, the gross profit equals $#{profit_out}, minus any Maker &"
56
- profit_ln3_details = ' Taker (transaction) fees.'
57
-
58
- # UI
59
- col_just1 = (Curses.cols - Cryptum::UI.col_first) - 1
60
-
61
- # ROW 1
62
- out_line_no = 0
63
- line_color = order_color
64
- header_color = order_color
65
- header_style = :bold
66
- style = :bold
67
- header_style = :reverse if event_history.order_plan_details_win_active
68
-
69
- Cryptum::UI.line(
70
- ui_win: order_plan_details_win,
71
- out_line_no: out_line_no,
72
- color: line_color
73
- )
74
-
75
- # ROW 2
76
- out_line_no += 1
77
- order_plan_details_win.setpos(out_line_no, Cryptum::UI.col_first)
78
- order_plan_details_win.clrtoeol
79
- Cryptum::UI.colorize(
80
- ui_win: order_plan_details_win,
81
- color: header_color,
82
- style: header_style,
83
- string: ''.ljust(col_just1, ' ')
84
- )
85
-
86
- header_str = "- ORDER SLICE ##{order[:plan_no]} DETAILS -"
87
- order_plan_details_win.setpos(
88
- out_line_no,
89
- Cryptum::UI.col_center(str: header_str)
90
- )
91
-
92
- Cryptum::UI.colorize(
93
- ui_win: order_plan_details_win,
94
- color: order_color,
95
- style: header_style,
96
- string: header_str
97
- )
98
-
99
- # ROW 3
100
- out_line_no += 1
101
- order_plan_details_win.setpos(out_line_no, Cryptum::UI.col_first)
102
- order_plan_details_win.clrtoeol
103
-
104
- Cryptum::UI.colorize(
105
- ui_win: order_plan_details_win,
106
- color: order_color,
107
- style: style,
108
- string: autotrade_ln1_details.ljust(col_just1, ' ')
109
- )
110
-
111
- # ROW 4
112
- out_line_no += 1
113
- order_plan_details_win.setpos(out_line_no, Cryptum::UI.col_first)
114
- order_plan_details_win.clrtoeol
115
-
116
- Cryptum::UI.colorize(
117
- ui_win: order_plan_details_win,
118
- color: order_color,
119
- style: style,
120
- string: autotrade_ln2_details.ljust(col_just1, ' ')
121
- )
122
-
123
- # ROW 5
124
- out_line_no += 1
125
- order_plan_details_win.setpos(out_line_no, Cryptum::UI.col_first)
126
- order_plan_details_win.clrtoeol
127
-
128
- Cryptum::UI.colorize(
129
- ui_win: order_plan_details_win,
130
- color: order_color,
131
- style: style,
132
- string: slice_alloc_ln1_details.ljust(col_just1, ' ')
133
- )
134
-
135
- # ROW 6
136
- out_line_no += 1
137
- order_plan_details_win.setpos(out_line_no, Cryptum::UI.col_first)
138
- order_plan_details_win.clrtoeol
139
-
140
- Cryptum::UI.colorize(
141
- ui_win: order_plan_details_win,
142
- color: order_color,
143
- style: style,
144
- string: slice_alloc_ln2_details.ljust(col_just1, ' ')
145
- )
146
-
147
- # ROW 7
148
- out_line_no += 1
149
- order_plan_details_win.setpos(out_line_no, Cryptum::UI.col_first)
150
- order_plan_details_win.clrtoeol
151
-
152
- Cryptum::UI.colorize(
153
- ui_win: order_plan_details_win,
154
- color: order_color,
155
- style: style,
156
- string: profit_ln1_details.ljust(col_just1, ' ')
157
- )
158
-
159
- # ROW 8
160
- out_line_no += 1
161
- order_plan_details_win.setpos(out_line_no, Cryptum::UI.col_first)
162
- order_plan_details_win.clrtoeol
163
-
164
- Cryptum::UI.colorize(
165
- ui_win: order_plan_details_win,
166
- color: order_color,
167
- style: style,
168
- string: profit_ln2_details.ljust(col_just1, ' ')
169
- )
170
-
171
- # ROW 9
172
- out_line_no += 1
173
- order_plan_details_win.setpos(out_line_no, Cryptum::UI.col_first)
174
- order_plan_details_win.clrtoeol
175
-
176
- Cryptum::UI.colorize(
177
- ui_win: order_plan_details_win,
178
- color: order_color,
179
- style: style,
180
- string: profit_ln3_details.ljust(col_just1, ' ')
181
- )
182
-
183
- # Clear to OK ROW
184
- ok_row = 9
185
- out_line_no += 1
186
- to_ok_row = ok_row - 1
187
- (out_line_no..to_ok_row).each do |clr_line|
188
- order_plan_details_win.setpos(clr_line, Cryptum::UI.col_first)
189
- Cryptum::UI.colorize(
190
- ui_win: order_plan_details_win,
191
- color: order_color,
192
- style: :normal,
193
- string: ''.ljust(col_just1, ' ')
194
- )
195
- end
196
-
197
- # OK ROW
198
- out_line_no = ok_row
199
- order_plan_details_win.setpos(out_line_no, Cryptum::UI.col_first)
200
- order_plan_details_win.clrtoeol
201
- Cryptum::UI.colorize(
202
- ui_win: order_plan_details_win,
203
- color: order_color,
204
- string: ''.ljust(col_just1, ' ')
205
- )
206
-
207
- header_str = '- OK -'
208
- order_plan_details_win.setpos(
209
- out_line_no,
210
- Cryptum::UI.col_center(str: header_str)
211
- )
212
-
213
- Cryptum::UI.colorize(
214
- ui_win: order_plan_details_win,
215
- color: order_color,
216
- style: :reverse,
217
- string: header_str
218
- )
219
-
220
- order_plan_details_win.refresh
221
-
222
- event_history
223
- rescue Interrupt
224
- # Exit Gracefully if CTRL+C is Pressed During Session
225
- Cryptum.exit_gracefully(which_self: self)
226
- rescue StandardError => e
227
- raise e
228
- end
229
-
230
- # Display Usage for this Module
231
-
232
- public_class_method def self.help
233
- puts "USAGE:
234
- #{self}.refresh(
235
- )
236
- "
237
- end
238
- end
239
- end
240
- end
@@ -1,121 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'logger'
4
-
5
- module Cryptum
6
- module UI
7
- # This plugin is used to Refresh the Cryptum Status Section UI
8
- module OrderTimer
9
- # Supported Method Parameters::
10
- # Cryptum::UI::Timer.refresh(
11
- # )
12
-
13
- public_class_method def self.refresh(opts = {})
14
- option_choice = opts[:option_choice]
15
- event_history = opts[:event_history]
16
- order_timer_win = opts[:order_timer_win]
17
- indicator_status = opts[:indicator_status]
18
-
19
- last_trend_reset_time = event_history.order_book[:last_trend_reset]
20
- last_order_exec_time = event_history.order_book[:last_order_exec]
21
-
22
- # Market Trend Reset Timer
23
- time_between_trend_reset = option_choice.market_trend_reset
24
- trend_timer_begin = Time.parse(last_trend_reset_time)
25
- trend_timer_end = trend_timer_begin + time_between_trend_reset
26
- trend_time_remaining = trend_timer_end - Time.now
27
- trend_countdown = Cryptum.beautify_large_number(
28
- value: format('%0.2f', trend_time_remaining)
29
- )
30
-
31
- # Market Trend Reset Timer
32
- time_between_order_exec = event_history.time_between_orders
33
- time_between_order_exec_out = Cryptum.beautify_large_number(
34
- value: format('%0.2f', time_between_order_exec)
35
- )
36
- order_begin_time = Time.parse(last_order_exec_time)
37
- order_end_time = order_begin_time + time_between_order_exec
38
- order_exec_time_remaining = order_end_time - Time.now
39
- order_countdown = Cryptum.beautify_large_number(
40
- value: format('%0.2f', order_exec_time_remaining)
41
- )
42
-
43
- buy_total = event_history.order_book[:market_trend][:buy].to_i
44
- sell_total = event_history.order_book[:market_trend][:sell].to_i
45
-
46
- color = :white
47
- color = indicator_status.market_trend[:color] if indicator_status.market_trend
48
- case color
49
- when :green
50
- # TODO: add condition to check if open sell orders exist.
51
- # If so intent should be something like, "- SEE ORDER HISTORY -"
52
- # Otherwise, intent should be something like, "- WAIT FOR MARKET TREND SHIFT -"
53
- intent = "- SEE ORDER HISTORY #{Cryptum.down_arrow} -"
54
- else
55
- speed = 'FAST'
56
- speed = 'SLOW' if buy_total >= sell_total
57
-
58
- intent = "- #{speed} BUY: #{order_countdown} of #{time_between_order_exec_out} -"
59
- intent = '- BUYING PAUSED -' if event_history.red_pill
60
- end
61
-
62
- # Have a Clock
63
- clock = Time.now.strftime('%Y-%m-%d %H:%M:%S%z')
64
-
65
- # UI
66
- col_just4 = (Curses.cols - Cryptum::UI.col_fourth) - 1
67
-
68
- # ROW 1
69
- # COLUMN 1
70
- out_line_no = 0
71
- order_timer_win.setpos(out_line_no, Cryptum::UI.col_first)
72
- order_timer_win.clrtoeol
73
- Cryptum::UI.colorize(
74
- ui_win: order_timer_win,
75
- color: :white,
76
- style: :bold,
77
- string: "#{option_choice.market_trend_reset_label} M. Trend Rst: #{trend_countdown}"
78
- )
79
-
80
- # COLUMN 2
81
- order_timer_win.setpos(
82
- out_line_no,
83
- Cryptum::UI.col_center(str: intent)
84
- )
85
- Cryptum::UI.colorize(
86
- ui_win: order_timer_win,
87
- color: :white,
88
- style: :bold,
89
- string: intent
90
- )
91
-
92
- # COLUMN 3
93
- order_timer_win.setpos(out_line_no, Cryptum::UI.col_fourth)
94
- Cryptum::UI.colorize(
95
- ui_win: order_timer_win,
96
- color: :white,
97
- style: :bold,
98
- string: clock.rjust(col_just4)
99
- )
100
-
101
- order_timer_win.refresh
102
-
103
- order_countdown.to_f
104
- rescue Interrupt
105
- # Exit Gracefully if CTRL+C is Pressed During Session
106
- Cryptum.exit_gracefully(which_self: self)
107
- rescue StandardError => e
108
- raise e
109
- end
110
-
111
- # Display Usage for this Module
112
-
113
- public_class_method def self.help
114
- puts "USAGE:
115
- #{self}.refresh(
116
- )
117
- "
118
- end
119
- end
120
- end
121
- end
@@ -1,221 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'logger'
4
-
5
- module Cryptum
6
- # This plugin is used to Refresh the Cryptum console UI
7
- module UI
8
- module Portfolio
9
- # Supported Method Parameters::
10
- # Cryptum::UI::Candle.refresh(
11
- # order_book: 'required - Order Book Data Structure',
12
- # event: 'required - Event from Coinbase Web Socket'
13
- # )
14
-
15
- public_class_method def self.refresh(opts = {})
16
- option_choice = opts[:option_choice]
17
- portfolio_win = opts[:portfolio_win]
18
- event_history = opts[:event_history]
19
- bot_conf = opts[:bot_conf]
20
-
21
- ticker_price = event_history.order_book[:ticker_price].to_f
22
- this_product = event_history.order_book[:this_product]
23
- symbol_out = this_product[:id]
24
- base_increment = this_product[:base_increment]
25
-
26
- crypto_smallest_decimal = base_increment.to_s.split('.')[-1].length
27
-
28
- autotrade_percent = format(
29
- '%0.2f',
30
- bot_conf[:autotrade_portfolio_percent].to_f
31
- )
32
-
33
- tpm = format(
34
- '%0.2f',
35
- bot_conf[:target_profit_margin_percent]
36
- )
37
-
38
- crypto_currency = option_choice.symbol.to_s.upcase.split('_').first.to_sym
39
- portfolio = event_history.order_book[:portfolio]
40
- this_account = portfolio.select do |account|
41
- account[:currency] == crypto_currency.to_s
42
- end
43
- raise "ID for Crypto Currency, #{crypto_currency} Not Found" if this_account.empty?
44
-
45
- balance = format("%0.#{crypto_smallest_decimal}f", this_account.first[:balance])
46
- balance_out = Cryptum.beautify_large_number(
47
- value: balance
48
- )
49
- avail_for_trade = format("%0.#{crypto_smallest_decimal}f", this_account.first[:available])
50
- avail_for_trade_out = Cryptum.beautify_large_number(
51
- value: avail_for_trade
52
- )
53
-
54
- fiat_portfolio = event_history.order_book[:fiat_portfolio]
55
- fiat = option_choice.symbol.to_s.upcase.split('_').last.to_sym
56
- total_holdings = format('%0.2f', fiat_portfolio.first[:total_holdings])
57
- total_holdings_out = Cryptum.beautify_large_number(
58
- value: total_holdings
59
- )
60
- fiat_balance = format('%0.2f', fiat_portfolio.first[:balance])
61
- fiat_balance_out = Cryptum.beautify_large_number(
62
- value: fiat_balance
63
- )
64
- fiat_avail_for_trade = format('%0.2f', fiat_portfolio.first[:available])
65
- fiat_avail_for_trade_out = Cryptum.beautify_large_number(
66
- value: fiat_avail_for_trade
67
- )
68
-
69
- fees = event_history.order_book[:fees]
70
- maker_fee = format('%0.2f', fees[:maker_fee_rate].to_f * 100)
71
- taker_fee = format('%0.2f', fees[:taker_fee_rate].to_f * 100)
72
- volume_tier = format('%0.2f', fees[:usd_volume].to_f)
73
- volume_tier_out = Cryptum.beautify_large_number(
74
- value: volume_tier
75
- )
76
-
77
- current_crypto_fiat_value = format(
78
- '%0.2f',
79
- balance.to_f * ticker_price
80
- )
81
- current_crypto_fiat_value_out = Cryptum.beautify_large_number(
82
- value: current_crypto_fiat_value
83
- )
84
-
85
- fiat_budget = fiat_avail_for_trade.to_f
86
- current_fiat_invested_percent = format(
87
- '%0.2f',
88
- (1 - (fiat_budget / total_holdings.to_f)) * 100
89
- )
90
-
91
- crypto_invested_percent = format(
92
- '%0.2f',
93
- current_crypto_fiat_value.to_f.fdiv(total_holdings.to_f) * 100
94
- )
95
- # TODO: Everything Above this Line Needs to be Indicators ^
96
-
97
- # UI
98
- col_just3 = (Curses.cols - Cryptum::UI.col_third) - 1
99
-
100
- # ROW 1
101
- out_line_no = 0
102
- Cryptum::UI.line(
103
- ui_win: portfolio_win,
104
- out_line_no: out_line_no
105
- )
106
-
107
- # ROW 2
108
- out_line_no += 1
109
- portfolio_win.setpos(out_line_no, Cryptum::UI.col_first)
110
- portfolio_win.clrtoeol
111
- Cryptum::UI.colorize(
112
- ui_win: portfolio_win,
113
- color: :white,
114
- style: :bold,
115
- string: "Portfolio | % Tied Up | % #{symbol_out}:"
116
- )
117
-
118
- portfolio_win.setpos(out_line_no, Cryptum::UI.col_third)
119
- Cryptum::UI.colorize(
120
- ui_win: portfolio_win,
121
- color: :white,
122
- string: "$#{total_holdings_out} | #{current_fiat_invested_percent}% | #{crypto_invested_percent}%".rjust(col_just3, '.')
123
- )
124
-
125
- # ROW 3
126
- out_line_no += 1
127
- portfolio_win.setpos(out_line_no, Cryptum::UI.col_first)
128
- portfolio_win.clrtoeol
129
- Cryptum::UI.colorize(
130
- ui_win: portfolio_win,
131
- color: :cyan,
132
- string: 'TPM % | Autotrade %:'
133
- )
134
-
135
- portfolio_win.setpos(out_line_no, Cryptum::UI.col_third)
136
- Cryptum::UI.colorize(
137
- ui_win: portfolio_win,
138
- color: :cyan,
139
- string: "#{tpm}% | #{autotrade_percent}%".rjust(col_just3, '.')
140
- )
141
-
142
- # ROW 4
143
- out_line_no += 1
144
- portfolio_win.setpos(out_line_no, Cryptum::UI.col_first)
145
- portfolio_win.clrtoeol
146
- Cryptum::UI.colorize(
147
- ui_win: portfolio_win,
148
- color: :green,
149
- style: :bold,
150
- string: "#{fiat} Bal | Tradeable:"
151
- )
152
-
153
- portfolio_win.setpos(out_line_no, Cryptum::UI.col_third)
154
- Cryptum::UI.colorize(
155
- ui_win: portfolio_win,
156
- color: :green,
157
- string: "$#{fiat_balance_out} | $#{fiat_avail_for_trade_out}".rjust(
158
- col_just3,
159
- '.'
160
- )
161
- )
162
-
163
- # ROW 5
164
- out_line_no += 1
165
- portfolio_win.setpos(out_line_no, Cryptum::UI.col_first)
166
- portfolio_win.clrtoeol
167
- Cryptum::UI.colorize(
168
- ui_win: portfolio_win,
169
- color: :yellow,
170
- style: :bold,
171
- string: 'Crypto Val | Bal | Tradeable:'
172
- )
173
-
174
- portfolio_win.setpos(out_line_no, Cryptum::UI.col_third)
175
- Cryptum::UI.colorize(
176
- ui_win: portfolio_win,
177
- color: :yellow,
178
- string: "$#{current_crypto_fiat_value_out} | *#{balance_out} | *#{avail_for_trade_out}".rjust(col_just3, '.')
179
- )
180
-
181
- # ROW 6
182
- out_line_no += 1
183
- portfolio_win.setpos(out_line_no, Cryptum::UI.col_first)
184
- portfolio_win.clrtoeol
185
- Cryptum::UI.colorize(
186
- ui_win: portfolio_win,
187
- color: :red,
188
- style: :bold,
189
- string: 'Maker & Taker Fees | My Volume:'
190
- )
191
-
192
- portfolio_win.setpos(out_line_no, Cryptum::UI.col_third)
193
- Cryptum::UI.colorize(
194
- ui_win: portfolio_win,
195
- color: :red,
196
- string: "#{maker_fee}% & #{taker_fee}% | $#{volume_tier_out}".rjust(col_just3, '.')
197
- )
198
-
199
- portfolio_win.refresh
200
-
201
- event_history
202
- rescue Interrupt
203
- # Exit Gracefully if CTRL+C is Pressed During Session
204
- Cryptum.exit_gracefully(which_self: self)
205
- rescue StandardError => e
206
- raise e
207
- end
208
-
209
- # Display Usage for this Module
210
-
211
- public_class_method def self.help
212
- puts "USAGE:
213
- #{self}.refresh(
214
- order_book: 'required - Order Book Data Structure',
215
- event: 'required - Event from Coinbase Web Socket'
216
- )
217
- "
218
- end
219
- end
220
- end
221
- end
@@ -1,109 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'logger'
4
-
5
- module Cryptum
6
- # This plugin is used to Refresh the Cryptum console UI
7
- module UI
8
- module SignalEngine
9
- # Supported Method Parameters::
10
- # Cryptum::UI::Candle.refresh(
11
- # order_book: 'required - Order Book Data Structure',
12
- # event: 'required - Event from Coinbase Web Socket'
13
- # )
14
-
15
- public_class_method def self.refresh(opts = {})
16
- signal_engine_win = opts[:signal_engine_win]
17
- indicator_status = opts[:indicator_status]
18
-
19
- color = :white
20
- color = indicator_status.market_trend[:color] if indicator_status.market_trend
21
-
22
- indicator_status.last_action_signal = indicator_status.action_signal
23
-
24
- case color
25
- when :green
26
- signal_color = :green
27
- action_signal = :sell
28
- when :yellow
29
- signal_color = :yellow
30
- action_signal = :hold
31
- when :red
32
- signal_color = :cyan
33
- action_signal = :buy
34
- else
35
- signal_color = :white
36
- action_signal = :skip
37
- end
38
-
39
- action_signal_out = "SIGNAL >>> #{action_signal.to_s.upcase} <<< ENGINE"
40
- # TODO: Everything Above this Line Needs to be Indicators ^
41
-
42
- # UI
43
- col_just1 = (Curses.cols - Cryptum::UI.col_first) - 1
44
- col_just4 = Curses.cols - Cryptum::UI.col_fourth
45
-
46
- # ROW 1
47
- out_line_no = 0
48
- Cryptum::UI.line(
49
- ui_win: signal_engine_win,
50
- out_line_no: out_line_no
51
- )
52
-
53
- # ROW 2
54
- out_line_no += 1
55
- signal_engine_win.setpos(out_line_no, Cryptum::UI.col_first)
56
- signal_engine_win.clrtoeol
57
-
58
- Cryptum::UI.colorize(
59
- ui_win: signal_engine_win,
60
- color: signal_color,
61
- style: :reverse,
62
- string: ''.ljust(col_just1, ' ')
63
- )
64
-
65
- signal_engine_win.setpos(
66
- out_line_no,
67
- Cryptum::UI.col_center(str: action_signal_out)
68
- )
69
-
70
- Cryptum::UI.colorize(
71
- ui_win: signal_engine_win,
72
- color: signal_color,
73
- style: :reverse,
74
- string: action_signal_out
75
- )
76
-
77
- signal_engine_win.setpos(out_line_no, Cryptum::UI.col_fourth)
78
- Cryptum::UI.colorize(
79
- ui_win: signal_engine_win,
80
- color: signal_color,
81
- style: :reverse,
82
- string: ''.ljust(col_just4, ' ')
83
- )
84
-
85
- signal_engine_win.refresh
86
-
87
- indicator_status.action_signal = action_signal
88
-
89
- indicator_status
90
- rescue Interrupt
91
- # Exit Gracefully if CTRL+C is Pressed During Session
92
- Cryptum.exit_gracefully(which_self: self)
93
- rescue StandardError => e
94
- raise e
95
- end
96
-
97
- # Display Usage for this Module
98
-
99
- public_class_method def self.help
100
- puts "USAGE:
101
- #{self}.refresh(
102
- order_book: 'required - Order Book Data Structure',
103
- event: 'required - Event from Coinbase Web Socket'
104
- )
105
- "
106
- end
107
- end
108
- end
109
- end