class Binance::Api::Order
Public Class Methods
all!(limit: 500, orderId: nil, recvWindow: 5000, symbol: nil, api_key: nil, api_secret_key: nil)
click to toggle source
# File lib/binance/api/order.rb, line 5 def all!(limit: 500, orderId: nil, recvWindow: 5000, symbol: nil, api_key: nil, api_secret_key: nil) raise Error.new(message: "max limit is 500") unless limit <= 500 raise Error.new(message: "symbol is required") if symbol.nil? timestamp = Configuration.timestamp params = { limit: limit, orderId: orderId, recvWindow: recvWindow, symbol: symbol, timestamp: timestamp } Request.send!(api_key_type: :read_info, path: "/api/v3/allOrders", params: params.delete_if { |key, value| value.nil? }, security_type: :user_data, tld: Configuration.tld, api_key: api_key, api_secret_key: api_secret_key) end
all_open!(recvWindow: nil, symbol: nil, api_key: nil, api_secret_key: nil)
click to toggle source
Be careful when accessing without a symbol!
# File lib/binance/api/order.rb, line 17 def all_open!(recvWindow: nil, symbol: nil, api_key: nil, api_secret_key: nil) timestamp = Configuration.timestamp params = { recvWindow: recvWindow, symbol: symbol, timestamp: timestamp } Request.send!(api_key_type: :read_info, path: "/api/v3/openOrders", params: params, security_type: :user_data, tld: Configuration.tld, api_key: api_key, api_secret_key: api_secret_key) end
cancel!(orderId: nil, originalClientOrderId: nil, newClientOrderId: nil, recvWindow: nil, symbol: nil, api_key: nil, api_secret_key: nil)
click to toggle source
# File lib/binance/api/order.rb, line 25 def cancel!(orderId: nil, originalClientOrderId: nil, newClientOrderId: nil, recvWindow: nil, symbol: nil, api_key: nil, api_secret_key: nil) raise Error.new(message: "symbol is required") if symbol.nil? raise Error.new(message: "either orderid or originalclientorderid " \ "is required") if orderId.nil? && originalClientOrderId.nil? timestamp = Configuration.timestamp params = { orderId: orderId, origClientOrderId: originalClientOrderId, newClientOrderId: newClientOrderId, recvWindow: recvWindow, symbol: symbol, timestamp: timestamp }.delete_if { |key, value| value.nil? } Request.send!(api_key_type: :trading, method: :delete, path: "/api/v3/order", params: params, security_type: :trade, tld: Configuration.tld, api_key: api_key, api_secret_key: api_secret_key) end
create!(icebergQuantity: nil, newClientOrderId: nil, newOrderResponseType: nil, price: nil, quantity: nil, quoteOrderQty: nil, recvWindow: nil, stopPrice: nil, symbol: nil, side: nil, type: nil, timeInForce: nil, test: false, api_key: nil, api_secret_key: nil)
click to toggle source
# File lib/binance/api/order.rb, line 39 def create!(icebergQuantity: nil, newClientOrderId: nil, newOrderResponseType: nil, price: nil, quantity: nil, quoteOrderQty: nil, recvWindow: nil, stopPrice: nil, symbol: nil, side: nil, type: nil, timeInForce: nil, test: false, api_key: nil, api_secret_key: nil) timestamp = Configuration.timestamp params = { icebergQty: icebergQuantity, newClientOrderId: newClientOrderId, newOrderRespType: newOrderResponseType, price: price, quantity: quantity, quoteOrderQty: quoteOrderQty, recvWindow: recvWindow, stopPrice: stopPrice, symbol: symbol, side: side, type: type, timeInForce: timeInForce, timestamp: timestamp, }.delete_if { |key, value| value.nil? } ensure_required_create_keys!(params: params) path = "/api/v3/order#{"/test" if test}" Request.send!(api_key_type: :trading, method: :post, path: path, params: params, security_type: :trade, tld: Configuration.tld, api_key: api_key, api_secret_key: api_secret_key) end
status!(orderId: nil, originalClientOrderId: nil, recvWindow: nil, symbol: nil, api_key: nil, api_secret_key: nil)
click to toggle source
# File lib/binance/api/order.rb, line 56 def status!(orderId: nil, originalClientOrderId: nil, recvWindow: nil, symbol: nil, api_key: nil, api_secret_key: nil) raise Error.new(message: "symbol is required") if symbol.nil? raise Error.new(message: "either orderid or originalclientorderid " \ "is required") if orderId.nil? && originalClientOrderId.nil? timestamp = Configuration.timestamp params = { orderId: orderId, origClientOrderId: originalClientOrderId, recvWindow: recvWindow, symbol: symbol, timestamp: timestamp, }.delete_if { |key, value| value.nil? } Request.send!(api_key_type: :trading, path: "/api/v3/order", params: params, security_type: :user_data, tld: Configuration.tld, api_key: api_key, api_secret_key: api_secret_key) end
Private Class Methods
additional_required_create_keys(type:)
click to toggle source
# File lib/binance/api/order.rb, line 73 def additional_required_create_keys(type:) case type when :limit [:price, :timeInForce].freeze when :stop_loss, :take_profit [:stopPrice].freeze when :stop_loss_limit, :take_profit_limit [:price, :stopPrice, :timeInForce].freeze when :limit_maker [:price].freeze else [].freeze end end
ensure_required_create_keys!(params:)
click to toggle source
# File lib/binance/api/order.rb, line 88 def ensure_required_create_keys!(params:) keys = required_create_keys.dup.concat(additional_required_create_keys(type: params[:type])) missing_keys = keys.select { |key| params[key].nil? } raise Error.new(message: "required keys are missing: #{missing_keys.join(", ")}") unless missing_keys.empty? end
required_create_keys()
click to toggle source
# File lib/binance/api/order.rb, line 94 def required_create_keys [:symbol, :side, :type, :timestamp].freeze end