class Livermore::SimpleStrategy
Public Instance Methods
trade()
click to toggle source
# File lib/livermore/strategies/simple_strategy.rb, line 3 def trade loop do fetch_top_tier set_goals adjust_orders tick and sleep config[:tact] end end
Private Instance Methods
adjust_orders()
click to toggle source
# File lib/livermore/strategies/simple_strategy.rb, line 44 def adjust_orders fetch_orders mark_to_cancel cancel_orders populate_asks populate_bids create_orders end
funds()
click to toggle source
# File lib/livermore/strategies/simple_strategy.rb, line 78 def funds base_name, quote_name = context.market.split('-') [ "#{base_name}: #{context.base_fund}", "#{quote_name}: #{context.quote_fund}" ] end
info()
click to toggle source
# File lib/livermore/strategies/simple_strategy.rb, line 87 def info funds + [best_ask, best_bid].concat(open_orders).sort_by(&:price).reverse end
mark_to_cancel()
click to toggle source
# File lib/livermore/strategies/simple_strategy.rb, line 53 def mark_to_cancel context.orders_to_cancel = open_orders.select do |order| case order.type when Order::ASK then order.price < ask.price when Order::BID then order.price > bid.price end end end
populate_asks()
click to toggle source
# File lib/livermore/strategies/simple_strategy.rb, line 62 def populate_asks prevent = open_orders.any? do |order| break true if order.type == Order::ASK && order.price >= ask.price end context.orders_to_create << ask unless prevent end
populate_bids()
click to toggle source
# File lib/livermore/strategies/simple_strategy.rb, line 70 def populate_bids prevent = open_orders.any? do |order| break true if order.type == Order::BID && order.price <= bid.price end context.orders_to_create << bid unless prevent end
set_ask()
click to toggle source
# File lib/livermore/strategies/simple_strategy.rb, line 20 def set_ask price = best_ask.price + (best_ask.price * config[:ask_delta].to_f / 100) context.ask = Order.new( market: context.market, price: price, amount: config[:ask_amount], type: Order::ASK, operation: :limit_order ) end
set_bid()
click to toggle source
# File lib/livermore/strategies/simple_strategy.rb, line 32 def set_bid price = best_bid.price - (best_bid.price * config[:bid_delta].to_f / 100) context.bid = Order.new( market: context.market, price: price, amount: config[:bid_amount], type: Order::BID, operation: :limit_order ) end
set_goals()
click to toggle source
# File lib/livermore/strategies/simple_strategy.rb, line 15 def set_goals set_ask set_bid end