module OandaApiV20::Positions

Public Instance Methods

open_positions() click to toggle source

GET /v3/accounts/:account_id/openPositions

# File lib/oanda_api_v20/positions.rb, line 22
def open_positions
  Client.send(http_verb, "#{base_uri}/accounts/#{account_id}/openPositions", headers: headers)
end
position(*args) click to toggle source

GET /v3/accounts/:account_id/positions/:instrument PUT /v3/accounts/:account_id/positions/:instrument/close

# File lib/oanda_api_v20/positions.rb, line 6
def position(*args)
  instrument = args.shift
  options = args.shift unless args.nil? || args.empty?

  url = "#{base_uri}/accounts/#{account_id}/positions/#{instrument}"
  url = position_url_for_put(url, options) if http_verb == :put

  options ? Client.send(http_verb, url, headers: headers, body: options.to_json) : Client.send(http_verb, url, headers: headers)
end
positions() click to toggle source

GET /v3/accounts/:account_id/positions

# File lib/oanda_api_v20/positions.rb, line 17
def positions
  Client.send(http_verb, "#{base_uri}/accounts/#{account_id}/positions", headers: headers)
end

Private Instance Methods

position_url_for_put(url, options = nil) click to toggle source
# File lib/oanda_api_v20/positions.rb, line 28
def position_url_for_put(url, options = nil)
  return "#{url}/close" unless options
  return "#{url}/close" if options['longUnits'] || options['longClientExtensions'] || options['shortUnits'] || options['shortClientExtensions']
  return url
end