module RubyTrade::Client::ClassMethods
Public Instance Methods
buy(*args;)
click to toggle source
# File lib/client.rb, line 158 def buy *args; @@child.buy(*args); end
cash()
click to toggle source
# File lib/client.rb, line 160 def cash; @@child.cash; end
child=(child)
click to toggle source
hook so we can call child methods
# File lib/client.rb, line 146 def child= child @@child = child end
connect_to(server, args)
click to toggle source
# File lib/client.rb, line 163 def connect_to server, args feed_port = args[:feed_port] || DEFAULT_FEED_PORT order_port = args[:order_port] || DEFAULT_ORDER_PORT if not args[:as] raise "Need to specify a username: connect_to \"...\", as: \"username\"" end @zmq_context = EM::ZeroMQ::Context.new 1 EM.run do @feed = @zmq_context.socket ZMQ::SUB puts "Listening to feed on #{server}:#{feed_port}" @feed.connect "tcp://#{server}:#{feed_port}" @feed.subscribe @feed.on :message do |part| begin self.process_message JSON.parse part.copy_out_string ensure part.close end end ConnectionClient.setup args, self puts "Connecting to order server #{server}:#{order_port}" EM.connect server, order_port, ConnectionClient Signal.trap("INT") { EM.stop } Signal.trap("TERM") { EM.stop } end end
on_connect(*args;)
click to toggle source
# File lib/client.rb, line 139 def on_connect *args; end
on_dividend(*args;)
click to toggle source
# File lib/client.rb, line 143 def on_dividend *args; end
on_fill(*args;)
click to toggle source
# File lib/client.rb, line 141 def on_fill *args; end
on_partial_fill(*args;)
click to toggle source
# File lib/client.rb, line 142 def on_partial_fill *args; end
on_tick(*args;)
click to toggle source
# File lib/client.rb, line 140 def on_tick *args; end
process_message(data)
click to toggle source
Called when we receive feed data
# File lib/client.rb, line 151 def process_message data case data["action"] when "tick" self.on_tick data["level1"] end end
sell(*args;)
click to toggle source
# File lib/client.rb, line 159 def sell *args; @@child.sell(*args); end
stock()
click to toggle source
# File lib/client.rb, line 161 def stock; @@child.stock; end