# frozen_string_literal: true module Cryptum # This plugin is used to Track Event History module Event # Keep Last Event History When Terminal Resize Occuers class History attr_accessor :bullish_trend, :event, :event_notes, :event_type, :first_event, :market_trend_event, :open_sell_orders, :open_sell_orders_max, :open_sell_orders_merge, :order_book, :order_canceled, :order_execute_win_active, :order_execute_details_win_active, :order_execute_index_offset, :order_execute_max_rows_to_display, :order_execute_max_records_available_to_display, :order_execute_row_to_select, :order_execute_selected_data, :order_plan_win_active, :order_plan_details_win_active, :order_plan_index_offset, :order_plan_max_rows_to_display, :order_plan_max_records_available_to_display, :order_plan_row_to_select, :order_plan_selected_data, :order_ready, :order_submitted, :plan_no, :reconnected, :red_pill, :start_time, :ticker_event, :time_between_orders, :time_between_orders_max, :time_between_orders_min, :time_between_orders_reset, :recalculate_order_plan def initialize(opts = {}) option_choice = opts[:option_choice] start_time = opts[:start_time] order_book = opts[:order_book] self.bullish_trend = true self.first_event = true self.open_sell_orders = 0 self.open_sell_orders_max = 500 self.open_sell_orders_merge = false self.order_book = order_book self.order_canceled = false self.order_execute_win_active = false self.order_execute_details_win_active = false self.order_execute_index_offset = 0 self.order_execute_max_rows_to_display = 6 self.order_execute_max_records_available_to_display = 6 self.order_execute_row_to_select = order_execute_index_offset self.order_execute_selected_data = { color: :white } self.order_plan_win_active = true self.order_plan_details_win_active = false self.order_plan_index_offset = 0 self.order_plan_max_rows_to_display = 6 self.order_plan_max_records_available_to_display = 6 self.order_plan_row_to_select = order_plan_index_offset self.order_plan_selected_data = { color: :white } self.order_ready = false self.order_submitted = false self.plan_no = 1 self.reconnected = false self.red_pill = false self.recalculate_order_plan = false self.start_time = start_time # -------------------------------------------------- # # SAUCE 3 (SAUCE 4 RELATES TO SAUCE 3) case option_choice.market_trend_reset_label when '1W' # SLOW BUY = 1 day self.time_between_orders_max = 86_400 # FAST BUY = 4 hours self.time_between_orders = 14_400 self.time_between_orders_reset = time_between_orders # 1 hour self.time_between_orders_min = 3_600 when '1D' # SLOW BUY = 4 hours self.time_between_orders_max = 14_400 # FAST BUY = 3 hours self.time_between_orders = 10_800 self.time_between_orders_reset = time_between_orders # 45 minutes self.time_between_orders_min = 2_700 when '4h' # SLOW BUY = 3 hours self.time_between_orders_max = 10_800 # FAST BUY = 2 hours self.time_between_orders = 7_200 self.time_between_orders_reset = time_between_orders # 30 minutes self.time_between_orders_min = 1_800 when '3h' # SLOW BUY = 2 hours self.time_between_orders_max = 7_200 # FAST BUY = 1 hour self.time_between_orders = 3_600 self.time_between_orders_reset = time_between_orders # 15 minutes self.time_between_orders_min = 900 when '2h' # SLOW BUY = 1 hour self.time_between_orders_max = 3_600 # FAST BUY = 45 minutes self.time_between_orders = 2_700 self.time_between_orders_reset = time_between_orders # 5 minutes self.time_between_orders_min = 300 when '1h' # SLOW BUY = 45 minutes self.time_between_orders_max = 2_700 # FAST BUY = 30 minutes self.time_between_orders = 1_800 self.time_between_orders_reset = time_between_orders # 3 minutes self.time_between_orders_min = 180 when '45m' # SLOW BUY = 30 minutes self.time_between_orders_max = 1_800 # FAST BUY = 15 minutes self.time_between_orders = 900 self.time_between_orders_reset = time_between_orders # 1 minute self.time_between_orders_min = 60 when '30m' # SLOW BUY = 15 minutes self.time_between_orders_max = 900 # FAST BUY = 5 minutes self.time_between_orders = 300 self.time_between_orders_reset = time_between_orders # 1 minute self.time_between_orders_min = 60 when '15m' # SLOW BUY = 5 minutes self.time_between_orders_max = 300 # FAST BUY = 3 minutes self.time_between_orders = 180 self.time_between_orders_reset = time_between_orders # 1 minute self.time_between_orders_min = 60 when '5m' # SLOW BUY = 3 minutes self.time_between_orders_max = 180 # FAST BUY = 1 minute self.time_between_orders = 60 self.time_between_orders_reset = time_between_orders # 1 minute self.time_between_orders_min = 60 when '3m', '1m' # SLOW BUY = 1 minute self.time_between_orders_max = 60 # FAST BUY = 1 minute self.time_between_orders = 60 self.time_between_orders_reset = time_between_orders # 1 minute self.time_between_orders_min = 60 end # -------------------------------------------------- # end rescue Interrupt # Exit Gracefully if CTRL+C is Pressed During Session Cryptum.exit_gracefully(which_self: self) rescue StandardError => e # Produce a Stacktrace for anything else raise e end end end