class Stockfighter::Api
Public Class Methods
new(key:, account:, symbol:, venue:, base_url: "https://api.stockfighter.io/ob/api")
click to toggle source
# File lib/stockfighter/api.rb, line 5 def initialize(key:, account:, symbol:, venue:, base_url: "https://api.stockfighter.io/ob/api") @base_url = base_url @api_key = key @account = account @symbol = symbol @venue = venue end
Public Instance Methods
cancel_order(order_id)
click to toggle source
# File lib/stockfighter/api.rb, line 30 def cancel_order(order_id) perform_request("delete", "#{@base_url}/venues/#{@venue}/stocks/#{@symbol}/orders/#{order_id}") end
get_quote()
click to toggle source
# File lib/stockfighter/api.rb, line 13 def get_quote perform_request("get", "#{@base_url}/venues/#{@venue}/stocks/#{@symbol}/quote") end
order_book()
click to toggle source
# File lib/stockfighter/api.rb, line 38 def order_book perform_request("get", "#{@base_url}/venues/#{@venue}/stocks/#{@symbol}") end
order_status(order_id)
click to toggle source
# File lib/stockfighter/api.rb, line 34 def order_status(order_id) perform_request("get", "#{@base_url}/venues/#{@venue}/stocks/#{@symbol}/orders/#{order_id}") end
place_order(price:, quantity:, direction:, order_type:)
click to toggle source
# File lib/stockfighter/api.rb, line 17 def place_order(price:, quantity:, direction:, order_type:) order = { "account" => @account, "venue" => @venue, "stock" => @symbol, "price" => price, "qty" => quantity, "direction" => direction, "orderType" => order_type } perform_request("post", "#{@base_url}/venues/#{@venue}/stocks/#{@symbol}/orders", body: JSON.dump(order)) end
status_all()
click to toggle source
# File lib/stockfighter/api.rb, line 47 def status_all perform_request("get", "#{@base_url}/venues/#{@venue}/accounts/#{@account}/orders") end
venue_up?()
click to toggle source
# File lib/stockfighter/api.rb, line 42 def venue_up? response = perform_request("get", "#{@base_url}/venues/#{@venue}/heartbeat") response["ok"] end
Private Instance Methods
perform_request(action, url, body:nil)
click to toggle source
# File lib/stockfighter/api.rb, line 51 def perform_request(action, url, body:nil) options = { :headers => {"X-Starfighter-Authorization" => @api_key}, :format => :json } if body != nil options[:body] = body end response = HTTParty.method(action).call(url, options) if response.code == 200 and response["ok"] response elsif not response["ok"] raise "Error response received from #{url}: #{response['error']}" else raise "HTTP error response received from #{url}: #{response.code}" end end