class Market::Exchange::Trades
Public Class Methods
new(exchange)
click to toggle source
# File lib/exchange/trades.rb, line 3 def initialize(exchange) @currency = exchange.currency @commodity = exchange.commodity self.update end
Public Instance Methods
add(trade_data)
click to toggle source
# File lib/exchange/trades.rb, line 46 def add(trade_data) begin unless trade_data.has_key?("currency") trade_data.merge!({"currency" => @currency, "commodity" => @commodity}) end self.insert(0, Excoin::Market::Exchange::Trade.new(trade_data)) rescue puts "Error in Excoin::Market::Exchange::Trades.add" puts trade_data end end
buys()
click to toggle source
# File lib/exchange/trades.rb, line 22 def buys self.select{|trade| trade.type == "BUY"} end
highest(type = nil)
click to toggle source
# File lib/exchange/trades.rb, line 30 def highest(type = nil) unless type self.max_by{|trade| trade.price} else self.select{|trade| trade.type == type.upcase}.max_by{|trade| trade.price} end end
lowest(type = nil)
click to toggle source
# File lib/exchange/trades.rb, line 38 def lowest(type = nil) unless type self.min_by{|trade| trade.price} else self.select{|trade| trade.type == type.upcase}.min_by{|trade| trade.price} end end
sells()
click to toggle source
# File lib/exchange/trades.rb, line 26 def sells self.select{|trade| trade.type == "SELL"} end
trim(number)
click to toggle source
# File lib/exchange/trades.rb, line 58 def trim(number) self.pop(number) end
update(limit_type = "count", limit = 100)
click to toggle source
# File lib/exchange/trades.rb, line 9 def update(limit_type = "count", limit = 100) self.clear trade_data = self.get_recent(@currency, @commodity, limit_type, limit) begin trade_data['trades'].each do |trade| self.push(Excoin::Market::Exchange::Trade.new(trade)) end rescue puts "Error in Excoin::Market::Exchange::Trades.update" puts trade_data end end
Protected Instance Methods
get_recent(currency, commodity, limit_type = "count", limit = 100)
click to toggle source
# File lib/exchange/trades.rb, line 64 def get_recent(currency, commodity, limit_type = "count", limit = 100) Excoin.api.exchange_recent_trades(currency, commodity, limit_type, limit) end