# 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 4 # TODO: develop algorithm to calculate # FAST BUY && SLOW BUY values taking # market_trend_reset values into account # FAST BUY = 10 minutes self.time_between_orders = 600 self.time_between_orders_reset = time_between_orders # SLOW BUY = 1 hour self.time_between_orders_max = 3_600 # 5 seconds self.time_between_orders_min = 5 # -------------------------------------------------- # 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