class CossBot::Basic

Attributes

exchange[R]
interval[RW]
logger[RW]
lot_size[RW]
pair[RW]
profit[RW]
trade_limit[RW]

Public Class Methods

new(public_key:, private_key:, logger: Logger.new(STDOUT)) click to toggle source
# File lib/coss_bot/basic.rb, line 8
def initialize(public_key:, private_key:, logger: Logger.new(STDOUT))
  @exchange = CossApiRubyWrapper::Exchange.new(public_key: public_key, private_key: private_key)
  @logger = logger
end

Public Instance Methods

call(&block) click to toggle source
# File lib/coss_bot/basic.rb, line 13
def call(&block)
  validate_params!
  loop do
    time = Benchmark.measure { tick(&block) }.real
    wait_time = time > interval ? 0 : interval - time
    sleep(wait_time)
  end
end

Private Instance Methods

validate_params!() click to toggle source
# File lib/coss_bot/basic.rb, line 24
def validate_params!
  return if !trade_limit.nil? &&
            pair.to_s =~ /\A\w+_\w+\Z/ &&
            profit.to_f.positive? &&
            lot_size.to_f.positive? &&
            interval.to_i > 1

  raise ArgumentError, 'Some params are invalid'
end