class Binance::Api::Margin::Order
Public Class Methods
cancel!(symbol: nil, isIsolated: false, orderId: nil, origClientOrderId: nil, newClientOrderId: nil, recvWindow: nil, api_key: nil, api_secret_key: nil)
click to toggle source
# File lib/binance/api/margin/order.rb, line 6 def cancel!(symbol: nil, isIsolated: false, orderId: nil, origClientOrderId: nil, newClientOrderId: nil, recvWindow: nil, api_key: nil, api_secret_key: nil) timestamp = Configuration.timestamp params = { symbol: symbol, isIsolated: isIsolated, orderId: orderId, origClientOrderId: origClientOrderId, newClientOrderId: newClientOrderId, recvWindow: recvWindow, timestamp: timestamp, }.delete_if { |_, value| value.nil? } ensure_required_cancel_keys!(params: params) path = "/sapi/v1/margin/order" Request.send!(api_key_type: :trading, method: :delete, path: path, params: params, security_type: :margin, tld: Configuration.tld, api_key: api_key, api_secret_key: api_secret_key) end
create!(symbol: nil, isIsolated: false, side: nil, type: nil, quantity: nil, quoteOrderQty: nil, price: nil, stopPrice: nil, newClientOrderId: nil, icebergQty: nil, newOrderRespType: nil, sideEffectType: nil, timeInForce: nil, recvWindow: nil, api_key: nil, api_secret_key: nil)
click to toggle source
# File lib/binance/api/margin/order.rb, line 20 def create!(symbol: nil, isIsolated: false, side: nil, type: nil, quantity: nil, quoteOrderQty: nil, price: nil, stopPrice: nil, newClientOrderId: nil, icebergQty: nil, newOrderRespType: nil, sideEffectType: nil, timeInForce: nil, recvWindow: nil, api_key: nil, api_secret_key: nil) timestamp = Configuration.timestamp params = { symbol: symbol, isIsolated: isIsolated, side: side, type: type, quantity: quantity, quoteOrderQty: quoteOrderQty, price: price, stopPrice: stopPrice, newClientOrderId: newClientOrderId, icebergQty: icebergQty, newOrderRespType: newOrderRespType, sideEffectType: sideEffectType, timeInForce: timeInForce, recvWindow: recvWindow, timestamp: timestamp, }.delete_if { |_, value| value.nil? } ensure_required_create_keys!(params: params) path = "/sapi/v1/margin/order" Request.send!(api_key_type: :trading, method: :post, path: path, params: params, security_type: :margin, 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/margin/order.rb, line 41 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_cancel_keys!(params:)
click to toggle source
# File lib/binance/api/margin/order.rb, line 66 def ensure_required_cancel_keys!(params:) keys = required_cancel_keys.dup missing_keys = keys.select { |key| params[key].nil? } raise Error.new(message: "required keys are missing: #{missing_keys.join(", ")}") unless missing_keys.empty? end
ensure_required_create_keys!(params:)
click to toggle source
# File lib/binance/api/margin/order.rb, line 56 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_cancel_keys()
click to toggle source
# File lib/binance/api/margin/order.rb, line 72 def required_cancel_keys [:symbol, :timestamp].freeze end
required_create_keys()
click to toggle source
# File lib/binance/api/margin/order.rb, line 62 def required_create_keys [:symbol, :side, :type, :timestamp].freeze end