Sha256: 7ecf3ae6a3d4d31acda874ad02750e6525ba268be08b18f1d631f7081da2e47f

Contents?: true

Size: 1.07 KB

Versions: 1

Compression:

Stored size: 1.07 KB

Contents

# frozen_string_literal: true

module CossBot
  class BuyLowSellHigh < Basic
    private

    def tick
      puts '=== Start of trading cycle ==='
      balances = exchange.account_balances
      currency_to_sell = pair.split('_').last
      current_balance = balances.detect { |c| c['currency_code'] == currency_to_sell }['available'].to_f
      pair_depth = exchange.pair_depth(pair)
      current_price = pair_depth['asks'].first.first.to_f
      return if current_balance <= trade_limit.to_f
      return if current_balance <= current_price * lot_size

      price_with_profit = (current_price + (current_price / 100 * profit)).round(6)
      puts "Placing BUY order for #{current_price}. Lot size: #{lot_size}"
      buy_response = exchange.place_limit_order(pair, current_price, 'BUY', lot_size)
      puts "Placing SELL order for #{price_with_profit}. Lot size: #{lot_size}"
      sell_response = exchange.place_limit_order(pair, price_with_profit, 'SELL', lot_size)
      yield(buy_response['order_id'], sell_response['order_id'])
      puts '=== End of trading cycle ==='
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
coss_bot-0.1.1 lib/coss_bot/buy_low_sell_high.rb