Class: SnapTrade::TradingApi

Inherits:
Object
  • Object
show all
Defined in:
lib/snaptrade/api/trading_api.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api_client = ApiClient.default) ⇒ TradingApi

Returns a new instance of TradingApi.



16
17
18
# File 'lib/snaptrade/api/trading_api.rb', line 16

def initialize(api_client = ApiClient.default)
  @api_client = api_client
end

Instance Attribute Details

#api_clientObject

Returns the value of attribute api_client.



14
15
16
# File 'lib/snaptrade/api/trading_api.rb', line 14

def api_client
  @api_client
end

Instance Method Details

#cancel_order(brokerage_order_id:, user_id:, user_secret:, account_id:, extra: {}) ⇒ Object

Cancel order

Cancels an order in the specified account. Accepts order IDs for all asset types.

Parameters:

  • brokerage_order_id (String)

    Order ID returned by brokerage. This is the unique identifier for the order in the brokerage system.

  • user_id (String)
  • user_secret (String)
  • account_id (String)
  • body (AccountInformationGetUserAccountOrderDetailRequest)
  • extra (Hash) (defaults to: {})

    additional parameters to pass along through :header_params, :query_params, or parameter name



30
31
32
33
34
35
36
# File 'lib/snaptrade/api/trading_api.rb', line 30

def cancel_order(brokerage_order_id:, user_id:, user_secret:, account_id:, extra: {})
  _body = {}
  _body[:brokerage_order_id] = brokerage_order_id if brokerage_order_id != SENTINEL
   = _body
  data, _status_code, _headers = cancel_order_with_http_info_impl(user_id, user_secret, , , extra)
  data
end

#cancel_order_with_http_info(brokerage_order_id:, user_id:, user_secret:, account_id:, extra: {}) ⇒ Object

Cancel order

Cancels an order in the specified account. Accepts order IDs for all asset types.

Parameters:

  • brokerage_order_id (String)

    Order ID returned by brokerage. This is the unique identifier for the order in the brokerage system.

  • user_id (String)
  • user_secret (String)
  • account_id (String)
  • body (AccountInformationGetUserAccountOrderDetailRequest)
  • extra (Hash) (defaults to: {})

    additional parameters to pass along through :header_params, :query_params, or parameter name



48
49
50
51
52
53
# File 'lib/snaptrade/api/trading_api.rb', line 48

def cancel_order_with_http_info(brokerage_order_id:, user_id:, user_secret:, account_id:, extra: {})
  _body = {}
  _body[:brokerage_order_id] = brokerage_order_id if brokerage_order_id != SENTINEL
   = _body
  cancel_order_with_http_info_impl(user_id, user_secret, , , extra)
end

#cancel_user_account_order(brokerage_order_id:, user_id:, user_secret:, account_id:, extra: {}) ⇒ Object

Cancel equity order

**This endpoint is deprecated. Please switch to [the new cancel order endpoint](/reference/Trading/Trading_cancelOrder) ** Attempts to cancel an open order with the brokerage. If the order is no longer cancellable, the request will be rejected.

Parameters:

  • brokerage_order_id (String)

    Order ID returned by brokerage. This is the unique identifier for the order in the brokerage system.

  • user_id (String)
  • user_secret (String)
  • account_id (String)
  • body (AccountInformationGetUserAccountOrderDetailRequest)
  • extra (Hash) (defaults to: {})

    additional parameters to pass along through :header_params, :query_params, or parameter name



155
156
157
158
159
160
161
# File 'lib/snaptrade/api/trading_api.rb', line 155

def (brokerage_order_id:, user_id:, user_secret:, account_id:, extra: {})
  _body = {}
  _body[:brokerage_order_id] = brokerage_order_id if brokerage_order_id != SENTINEL
   = _body
  data, _status_code, _headers = (user_id, user_secret, , , extra)
  data
end

#cancel_user_account_order_with_http_info(brokerage_order_id:, user_id:, user_secret:, account_id:, extra: {}) ⇒ Object

Cancel equity order

**This endpoint is deprecated. Please switch to [the new cancel order endpoint](/reference/Trading/Trading_cancelOrder) ** Attempts to cancel an open order with the brokerage. If the order is no longer cancellable, the request will be rejected.

Parameters:

  • brokerage_order_id (String)

    Order ID returned by brokerage. This is the unique identifier for the order in the brokerage system.

  • user_id (String)
  • user_secret (String)
  • account_id (String)
  • body (AccountInformationGetUserAccountOrderDetailRequest)
  • extra (Hash) (defaults to: {})

    additional parameters to pass along through :header_params, :query_params, or parameter name



174
175
176
177
178
179
# File 'lib/snaptrade/api/trading_api.rb', line 174

def (brokerage_order_id:, user_id:, user_secret:, account_id:, extra: {})
  _body = {}
  _body[:brokerage_order_id] = brokerage_order_id if brokerage_order_id != SENTINEL
   = _body
  (user_id, user_secret, , , extra)
end

#get_cryptocurrency_pair_quote(user_id:, user_secret:, account_id:, instrument_symbol:, extra: {}) ⇒ Object

Get crypto pair quote

Gets a quote for the specified account.

Parameters:

  • user_id (String)
  • user_secret (String)
  • account_id (String)
  • instrument_symbol (String)
  • extra (Hash) (defaults to: {})

    additional parameters to pass along through :header_params, :query_params, or parameter name



279
280
281
282
# File 'lib/snaptrade/api/trading_api.rb', line 279

def get_cryptocurrency_pair_quote(user_id:, user_secret:, account_id:, instrument_symbol:, extra: {})
  data, _status_code, _headers = get_cryptocurrency_pair_quote_with_http_info_impl(user_id, user_secret, , instrument_symbol, extra)
  data
end

#get_cryptocurrency_pair_quote_with_http_info(user_id:, user_secret:, account_id:, instrument_symbol:, extra: {}) ⇒ Object

Get crypto pair quote

Gets a quote for the specified account.

Parameters:

  • user_id (String)
  • user_secret (String)
  • account_id (String)
  • instrument_symbol (String)
  • extra (Hash) (defaults to: {})

    additional parameters to pass along through :header_params, :query_params, or parameter name



293
294
295
# File 'lib/snaptrade/api/trading_api.rb', line 293

def get_cryptocurrency_pair_quote_with_http_info(user_id:, user_secret:, account_id:, instrument_symbol:, extra: {})
  get_cryptocurrency_pair_quote_with_http_info_impl(user_id, user_secret, , instrument_symbol, extra)
end

#get_order_impact(account_id:, action:, universal_symbol_id:, order_type:, time_in_force:, user_id:, user_secret:, price: SENTINEL, stop: SENTINEL, units: SENTINEL, notional_value: SENTINEL, extra: {}) ⇒ Object

Check equity order impact

Simulates an order and its impact on the account. This endpoint does not place the order with the brokerage. If successful, it returns a ‘Trade` object and the ID of the object can be used to place the order with the brokerage using the [place checked order endpoint](/reference/Trading/Trading_placeOrder). Please note that the `Trade` object returned expires after 5 minutes. Any order placed using an expired `Trade` will be rejected.

Parameters:

  • account_id (String)

    Unique identifier for the connected brokerage account. This is the UUID used to reference the account in SnapTrade.

  • action (ActionStrict)

    The action describes the intent or side of a trade. This is either ‘BUY` or `SELL`.

  • universal_symbol_id (String)

    Unique identifier for the symbol within SnapTrade. This is the ID used to reference the symbol in SnapTrade API calls.

  • order_type (OrderTypeStrict)

    The type of order to place. - For ‘Limit` and `StopLimit` orders, the `price` field is required. - For `Stop` and `StopLimit` orders, the `stop` field is required.

  • time_in_force (TimeInForceStrict)

    The Time in Force type for the order. This field indicates how long the order will remain active before it is executed or expires. Here are the supported values: - ‘Day` - Day. The order is valid only for the trading day on which it is placed. - `GTC` - Good Til Canceled. The order is valid until it is executed or canceled. - `FOK` - Fill Or Kill. The order must be executed in its entirety immediately or be canceled completely. - `IOC` - Immediate Or Cancel. The order must be executed immediately. Any portion of the order that cannot be filled immediately will be canceled.

  • user_id (String)
  • user_secret (String)
  • price (Float) (defaults to: SENTINEL)

    The limit price for ‘Limit` and `StopLimit` orders.

  • stop (Float) (defaults to: SENTINEL)

    The price at which a stop order is triggered for ‘Stop` and `StopLimit` orders.

  • units (Float) (defaults to: SENTINEL)
  • notional_value (ManualTradeFormNotionalValue) (defaults to: SENTINEL)
  • body (ManualTradeForm)
  • extra (Hash) (defaults to: {})

    additional parameters to pass along through :header_params, :query_params, or parameter name



398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
# File 'lib/snaptrade/api/trading_api.rb', line 398

def get_order_impact(account_id:, action:, universal_symbol_id:, order_type:, time_in_force:, user_id:, user_secret:, price: SENTINEL, stop: SENTINEL, units: SENTINEL, notional_value: SENTINEL, extra: {})
  _body = {}
  _body[:account_id] =  if  != SENTINEL
  _body[:action] = action if action != SENTINEL
  _body[:universal_symbol_id] = universal_symbol_id if universal_symbol_id != SENTINEL
  _body[:order_type] = order_type if order_type != SENTINEL
  _body[:time_in_force] = time_in_force if time_in_force != SENTINEL
  _body[:price] = price if price != SENTINEL
  _body[:stop] = stop if stop != SENTINEL
  _body[:units] = units if units != SENTINEL
  _body[:notional_value] = notional_value if notional_value != SENTINEL
  manual_trade_form = _body
  data, _status_code, _headers = get_order_impact_with_http_info_impl(user_id, user_secret, manual_trade_form, extra)
  data
end

#get_order_impact_with_http_info(account_id:, action:, universal_symbol_id:, order_type:, time_in_force:, user_id:, user_secret:, price: SENTINEL, stop: SENTINEL, units: SENTINEL, notional_value: SENTINEL, extra: {}) ⇒ Object

Check equity order impact

Simulates an order and its impact on the account. This endpoint does not place the order with the brokerage. If successful, it returns a ‘Trade` object and the ID of the object can be used to place the order with the brokerage using the [place checked order endpoint](/reference/Trading/Trading_placeOrder). Please note that the `Trade` object returned expires after 5 minutes. Any order placed using an expired `Trade` will be rejected.

Parameters:

  • account_id (String)

    Unique identifier for the connected brokerage account. This is the UUID used to reference the account in SnapTrade.

  • action (ActionStrict)

    The action describes the intent or side of a trade. This is either ‘BUY` or `SELL`.

  • universal_symbol_id (String)

    Unique identifier for the symbol within SnapTrade. This is the ID used to reference the symbol in SnapTrade API calls.

  • order_type (OrderTypeStrict)

    The type of order to place. - For ‘Limit` and `StopLimit` orders, the `price` field is required. - For `Stop` and `StopLimit` orders, the `stop` field is required.

  • time_in_force (TimeInForceStrict)

    The Time in Force type for the order. This field indicates how long the order will remain active before it is executed or expires. Here are the supported values: - ‘Day` - Day. The order is valid only for the trading day on which it is placed. - `GTC` - Good Til Canceled. The order is valid until it is executed or canceled. - `FOK` - Fill Or Kill. The order must be executed in its entirety immediately or be canceled completely. - `IOC` - Immediate Or Cancel. The order must be executed immediately. Any portion of the order that cannot be filled immediately will be canceled.

  • user_id (String)
  • user_secret (String)
  • price (Float) (defaults to: SENTINEL)

    The limit price for ‘Limit` and `StopLimit` orders.

  • stop (Float) (defaults to: SENTINEL)

    The price at which a stop order is triggered for ‘Stop` and `StopLimit` orders.

  • units (Float) (defaults to: SENTINEL)
  • notional_value (ManualTradeFormNotionalValue) (defaults to: SENTINEL)
  • body (ManualTradeForm)
  • extra (Hash) (defaults to: {})

    additional parameters to pass along through :header_params, :query_params, or parameter name



431
432
433
434
435
436
437
438
439
440
441
442
443
444
# File 'lib/snaptrade/api/trading_api.rb', line 431

def get_order_impact_with_http_info(account_id:, action:, universal_symbol_id:, order_type:, time_in_force:, user_id:, user_secret:, price: SENTINEL, stop: SENTINEL, units: SENTINEL, notional_value: SENTINEL, extra: {})
  _body = {}
  _body[:account_id] =  if  != SENTINEL
  _body[:action] = action if action != SENTINEL
  _body[:universal_symbol_id] = universal_symbol_id if universal_symbol_id != SENTINEL
  _body[:order_type] = order_type if order_type != SENTINEL
  _body[:time_in_force] = time_in_force if time_in_force != SENTINEL
  _body[:price] = price if price != SENTINEL
  _body[:stop] = stop if stop != SENTINEL
  _body[:units] = units if units != SENTINEL
  _body[:notional_value] = notional_value if notional_value != SENTINEL
  manual_trade_form = _body
  get_order_impact_with_http_info_impl(user_id, user_secret, manual_trade_form, extra)
end

#get_user_account_quotes(user_id:, user_secret:, symbols:, account_id:, use_ticker: SENTINEL, extra: {}) ⇒ Object

Get equity symbol quotes

Returns quotes from the brokerage for the specified symbols and account.

The quotes returned can be delayed depending on the brokerage the account belongs to. It is highly recommended that you use your own market data provider for real-time quotes instead of relying on this endpoint.

This endpoint does not work for options quotes.

This endpoint is disabled for free plans by default. Please contact support to enable this endpoint if needed.

Parameters:

  • user_id (String)
  • user_secret (String)
  • symbols (String)

    List of Universal Symbol IDs or tickers to get quotes for. When providing multiple values, use a comma as separator

  • account_id (String)
  • use_ticker (Boolean) (defaults to: SENTINEL)

    Should be set to ‘True` if `symbols` are comprised of tickers. Defaults to `False` if not provided.

  • extra (Hash) (defaults to: {})

    additional parameters to pass along through :header_params, :query_params, or parameter name



545
546
547
548
549
# File 'lib/snaptrade/api/trading_api.rb', line 545

def (user_id:, user_secret:, symbols:, account_id:, use_ticker: SENTINEL, extra: {})
  extra[:use_ticker] = use_ticker if use_ticker != SENTINEL
  data, _status_code, _headers = (user_id, user_secret, symbols, , extra)
  data
end

#get_user_account_quotes_with_http_info(user_id:, user_secret:, symbols:, account_id:, use_ticker: SENTINEL, extra: {}) ⇒ Object

Get equity symbol quotes

Returns quotes from the brokerage for the specified symbols and account.

The quotes returned can be delayed depending on the brokerage the account belongs to. It is highly recommended that you use your own market data provider for real-time quotes instead of relying on this endpoint.

This endpoint does not work for options quotes.

This endpoint is disabled for free plans by default. Please contact support to enable this endpoint if needed.

Parameters:

  • user_id (String)
  • user_secret (String)
  • symbols (String)

    List of Universal Symbol IDs or tickers to get quotes for. When providing multiple values, use a comma as separator

  • account_id (String)
  • use_ticker (Boolean) (defaults to: SENTINEL)

    Should be set to ‘True` if `symbols` are comprised of tickers. Defaults to `False` if not provided.

  • extra (Hash) (defaults to: {})

    additional parameters to pass along through :header_params, :query_params, or parameter name



567
568
569
570
# File 'lib/snaptrade/api/trading_api.rb', line 567

def (user_id:, user_secret:, symbols:, account_id:, use_ticker: SENTINEL, extra: {})
  extra[:use_ticker] = use_ticker if use_ticker != SENTINEL
  (user_id, user_secret, symbols, , extra)
end

#place_bracket_order(action:, instrument:, order_type:, time_in_force:, stop_loss:, take_profit:, account_id:, user_id:, user_secret:, price: SENTINEL, stop: SENTINEL, units: SENTINEL, extra: {}) ⇒ Object

Place bracket order

Places a bracket order (entry order + OCO of stop loss and take profit). Disabled by default please contact support for use. Only supported on certain brokerages

Parameters:

  • action (ActionStrictWithOptions)

    The action describes the intent or side of a trade. This is either ‘BUY` or `SELL` for Equity symbols or `BUY_TO_OPEN`, `BUY_TO_CLOSE`, `SELL_TO_OPEN` or `SELL_TO_CLOSE` for Options.

  • instrument (TradingInstrument)
  • order_type (OrderTypeStrict)

    The type of order to place. - For ‘Limit` and `StopLimit` orders, the `price` field is required. - For `Stop` and `StopLimit` orders, the `stop` field is required.

  • time_in_force (TimeInForceStrict)

    The Time in Force type for the order. This field indicates how long the order will remain active before it is executed or expires. Here are the supported values: - ‘Day` - Day. The order is valid only for the trading day on which it is placed. - `GTC` - Good Til Canceled. The order is valid until it is executed or canceled. - `FOK` - Fill Or Kill. The order must be executed in its entirety immediately or be canceled completely. - `IOC` - Immediate Or Cancel. The order must be executed immediately. Any portion of the order that cannot be filled immediately will be canceled.

  • stop_loss (StopLoss)
  • take_profit (TakeProfit)
  • account_id (String)

    The ID of the account to execute the trade on.

  • user_id (String)
  • user_secret (String)
  • price (Float) (defaults to: SENTINEL)

    The limit price for ‘Limit` and `StopLimit` orders.

  • stop (Float) (defaults to: SENTINEL)

    The price at which a stop order is triggered for ‘Stop` and `StopLimit` orders.

  • units (Float) (defaults to: SENTINEL)

    Number of shares for the order. This can be a decimal for fractional orders. Must be ‘null` if `notional_value` is provided.

  • body (ManualTradeFormBracket)
  • extra (Hash) (defaults to: {})

    additional parameters to pass along through :header_params, :query_params, or parameter name



679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
# File 'lib/snaptrade/api/trading_api.rb', line 679

def place_bracket_order(action:, instrument:, order_type:, time_in_force:, stop_loss:, take_profit:, account_id:, user_id:, user_secret:, price: SENTINEL, stop: SENTINEL, units: SENTINEL, extra: {})
  _body = {}
  _body[:action] = action if action != SENTINEL
  _body[:instrument] = instrument if instrument != SENTINEL
  _body[:order_type] = order_type if order_type != SENTINEL
  _body[:time_in_force] = time_in_force if time_in_force != SENTINEL
  _body[:price] = price if price != SENTINEL
  _body[:stop] = stop if stop != SENTINEL
  _body[:units] = units if units != SENTINEL
  _body[:stop_loss] = stop_loss if stop_loss != SENTINEL
  _body[:take_profit] = take_profit if take_profit != SENTINEL
  manual_trade_form_bracket = _body
  data, _status_code, _headers = place_bracket_order_with_http_info_impl(, user_id, user_secret, manual_trade_form_bracket, extra)
  data
end

#place_bracket_order_with_http_info(action:, instrument:, order_type:, time_in_force:, stop_loss:, take_profit:, account_id:, user_id:, user_secret:, price: SENTINEL, stop: SENTINEL, units: SENTINEL, extra: {}) ⇒ Object

Place bracket order

Places a bracket order (entry order + OCO of stop loss and take profit). Disabled by default please contact support for use. Only supported on certain brokerages

Parameters:

  • action (ActionStrictWithOptions)

    The action describes the intent or side of a trade. This is either ‘BUY` or `SELL` for Equity symbols or `BUY_TO_OPEN`, `BUY_TO_CLOSE`, `SELL_TO_OPEN` or `SELL_TO_CLOSE` for Options.

  • instrument (TradingInstrument)
  • order_type (OrderTypeStrict)

    The type of order to place. - For ‘Limit` and `StopLimit` orders, the `price` field is required. - For `Stop` and `StopLimit` orders, the `stop` field is required.

  • time_in_force (TimeInForceStrict)

    The Time in Force type for the order. This field indicates how long the order will remain active before it is executed or expires. Here are the supported values: - ‘Day` - Day. The order is valid only for the trading day on which it is placed. - `GTC` - Good Til Canceled. The order is valid until it is executed or canceled. - `FOK` - Fill Or Kill. The order must be executed in its entirety immediately or be canceled completely. - `IOC` - Immediate Or Cancel. The order must be executed immediately. Any portion of the order that cannot be filled immediately will be canceled.

  • stop_loss (StopLoss)
  • take_profit (TakeProfit)
  • account_id (String)

    The ID of the account to execute the trade on.

  • user_id (String)
  • user_secret (String)
  • price (Float) (defaults to: SENTINEL)

    The limit price for ‘Limit` and `StopLimit` orders.

  • stop (Float) (defaults to: SENTINEL)

    The price at which a stop order is triggered for ‘Stop` and `StopLimit` orders.

  • units (Float) (defaults to: SENTINEL)

    Number of shares for the order. This can be a decimal for fractional orders. Must be ‘null` if `notional_value` is provided.

  • body (ManualTradeFormBracket)
  • extra (Hash) (defaults to: {})

    additional parameters to pass along through :header_params, :query_params, or parameter name



714
715
716
717
718
719
720
721
722
723
724
725
726
727
# File 'lib/snaptrade/api/trading_api.rb', line 714

def place_bracket_order_with_http_info(action:, instrument:, order_type:, time_in_force:, stop_loss:, take_profit:, account_id:, user_id:, user_secret:, price: SENTINEL, stop: SENTINEL, units: SENTINEL, extra: {})
  _body = {}
  _body[:action] = action if action != SENTINEL
  _body[:instrument] = instrument if instrument != SENTINEL
  _body[:order_type] = order_type if order_type != SENTINEL
  _body[:time_in_force] = time_in_force if time_in_force != SENTINEL
  _body[:price] = price if price != SENTINEL
  _body[:stop] = stop if stop != SENTINEL
  _body[:units] = units if units != SENTINEL
  _body[:stop_loss] = stop_loss if stop_loss != SENTINEL
  _body[:take_profit] = take_profit if take_profit != SENTINEL
  manual_trade_form_bracket = _body
  place_bracket_order_with_http_info_impl(, user_id, user_secret, manual_trade_form_bracket, extra)
end

#place_crypto_order(instrument:, side:, type:, time_in_force:, amount:, user_id:, user_secret:, account_id:, limit_price: SENTINEL, stop_price: SENTINEL, post_only: SENTINEL, expiration_date: SENTINEL, extra: {}) ⇒ Object

Place crypto order

Places an order in the specified account. This endpoint does not compute the impact to the account balance from the order before submitting the order.

Parameters:

  • instrument (CryptoTradingInstrument)
  • side (ActionStrict)

    The action describes the intent or side of a trade. This is either ‘BUY` or `SELL`.

  • type (CryptoOrderFormType)

    The type of order to place.

  • time_in_force (CryptoOrderFormTimeInForce)

    The Time in Force type for the order. This field indicates how long the order will remain active before it is executed or expires. - ‘GTC` - Good Til Canceled. The order is valid until it is executed or canceled. - `FOK` - Fill Or Kill. The order must be executed in its entirety immediately or be canceled completely. - `IOC` - Immediate Or Cancel. The order must be executed immediately. Any portion of the order that cannot be filled immediately will be canceled. - `GTD` - Good Til Date. The order is valid until the specified date.

  • amount (Float)

    The amount of the base currency to buy or sell.

  • user_id (String)
  • user_secret (String)
  • account_id (String)
  • limit_price (Float) (defaults to: SENTINEL)

    The limit price. Required if the order type is LIMIT, STOP_LOSS_LIMIT or TAKE_PROFIT_LIMIT.

  • stop_price (Float) (defaults to: SENTINEL)

    The stop price. Required if the order type is STOP_LOSS_MARKET, STOP_LOSS_LIMIT, TAKE_PROFIT_MARKET or TAKE_PROFIT_LIMIT.

  • post_only (Boolean) (defaults to: SENTINEL)

    Valid and required only for order type LIMIT. If true orders that would be filled immediately are rejected to avoid incurring TAKER fees.

  • expiration_date (Time) (defaults to: SENTINEL)

    The expiration date of the order. Required if the time_in_force is GTD.

  • body (CryptoOrderForm)
  • extra (Hash) (defaults to: {})

    additional parameters to pass along through :header_params, :query_params, or parameter name



837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
# File 'lib/snaptrade/api/trading_api.rb', line 837

def place_crypto_order(instrument:, side:, type:, time_in_force:, amount:, user_id:, user_secret:, account_id:, limit_price: SENTINEL, stop_price: SENTINEL, post_only: SENTINEL, expiration_date: SENTINEL, extra: {})
  _body = {}
  _body[:instrument] = instrument if instrument != SENTINEL
  _body[:side] = side if side != SENTINEL
  _body[:type] = type if type != SENTINEL
  _body[:time_in_force] = time_in_force if time_in_force != SENTINEL
  _body[:amount] = amount if amount != SENTINEL
  _body[:limit_price] = limit_price if limit_price != SENTINEL
  _body[:stop_price] = stop_price if stop_price != SENTINEL
  _body[:post_only] = post_only if post_only != SENTINEL
  _body[:expiration_date] = expiration_date if expiration_date != SENTINEL
  crypto_order_form = _body
  data, _status_code, _headers = place_crypto_order_with_http_info_impl(user_id, user_secret, , crypto_order_form, extra)
  data
end

#place_crypto_order_with_http_info(instrument:, side:, type:, time_in_force:, amount:, user_id:, user_secret:, account_id:, limit_price: SENTINEL, stop_price: SENTINEL, post_only: SENTINEL, expiration_date: SENTINEL, extra: {}) ⇒ Object

Place crypto order

Places an order in the specified account. This endpoint does not compute the impact to the account balance from the order before submitting the order.

Parameters:

  • instrument (CryptoTradingInstrument)
  • side (ActionStrict)

    The action describes the intent or side of a trade. This is either ‘BUY` or `SELL`.

  • type (CryptoOrderFormType)

    The type of order to place.

  • time_in_force (CryptoOrderFormTimeInForce)

    The Time in Force type for the order. This field indicates how long the order will remain active before it is executed or expires. - ‘GTC` - Good Til Canceled. The order is valid until it is executed or canceled. - `FOK` - Fill Or Kill. The order must be executed in its entirety immediately or be canceled completely. - `IOC` - Immediate Or Cancel. The order must be executed immediately. Any portion of the order that cannot be filled immediately will be canceled. - `GTD` - Good Til Date. The order is valid until the specified date.

  • amount (Float)

    The amount of the base currency to buy or sell.

  • user_id (String)
  • user_secret (String)
  • account_id (String)
  • limit_price (Float) (defaults to: SENTINEL)

    The limit price. Required if the order type is LIMIT, STOP_LOSS_LIMIT or TAKE_PROFIT_LIMIT.

  • stop_price (Float) (defaults to: SENTINEL)

    The stop price. Required if the order type is STOP_LOSS_MARKET, STOP_LOSS_LIMIT, TAKE_PROFIT_MARKET or TAKE_PROFIT_LIMIT.

  • post_only (Boolean) (defaults to: SENTINEL)

    Valid and required only for order type LIMIT. If true orders that would be filled immediately are rejected to avoid incurring TAKER fees.

  • expiration_date (Time) (defaults to: SENTINEL)

    The expiration date of the order. Required if the time_in_force is GTD.

  • body (CryptoOrderForm)
  • extra (Hash) (defaults to: {})

    additional parameters to pass along through :header_params, :query_params, or parameter name



872
873
874
875
876
877
878
879
880
881
882
883
884
885
# File 'lib/snaptrade/api/trading_api.rb', line 872

def place_crypto_order_with_http_info(instrument:, side:, type:, time_in_force:, amount:, user_id:, user_secret:, account_id:, limit_price: SENTINEL, stop_price: SENTINEL, post_only: SENTINEL, expiration_date: SENTINEL, extra: {})
  _body = {}
  _body[:instrument] = instrument if instrument != SENTINEL
  _body[:side] = side if side != SENTINEL
  _body[:type] = type if type != SENTINEL
  _body[:time_in_force] = time_in_force if time_in_force != SENTINEL
  _body[:amount] = amount if amount != SENTINEL
  _body[:limit_price] = limit_price if limit_price != SENTINEL
  _body[:stop_price] = stop_price if stop_price != SENTINEL
  _body[:post_only] = post_only if post_only != SENTINEL
  _body[:expiration_date] = expiration_date if expiration_date != SENTINEL
  crypto_order_form = _body
  place_crypto_order_with_http_info_impl(user_id, user_secret, , crypto_order_form, extra)
end

#place_force_order(account_id:, action:, order_type:, time_in_force:, user_id:, user_secret:, universal_symbol_id: SENTINEL, symbol: SENTINEL, trading_session: 'REGULAR', price: SENTINEL, stop: SENTINEL, units: SENTINEL, notional_value: SENTINEL, extra: {}) ⇒ Object

Place equity order

Places a brokerage order in the specified account. The order could be rejected by the brokerage if it is invalid or if the account does not have sufficient funds.

This endpoint does not compute the impact to the account balance from the order and any potential commissions before submitting the order to the brokerage. If that is desired, you can use the [check order impact endpoint](/reference/Trading/Trading_getOrderImpact).

It’s recommended to trigger a manual refresh of the account after placing an order to ensure the account is up to date. You can use the [manual refresh](/reference/Connections/Connections_refreshBrokerageAuthorization) endpoint for this.

Parameters:

  • account_id (String)

    Unique identifier for the connected brokerage account. This is the UUID used to reference the account in SnapTrade.

  • action (ActionStrictWithOptions)

    The action describes the intent or side of a trade. This is either ‘BUY` or `SELL` for Equity symbols or `BUY_TO_OPEN`, `BUY_TO_CLOSE`, `SELL_TO_OPEN` or `SELL_TO_CLOSE` for Options.

  • order_type (OrderTypeStrict)

    The type of order to place. - For ‘Limit` and `StopLimit` orders, the `price` field is required. - For `Stop` and `StopLimit` orders, the `stop` field is required.

  • time_in_force (TimeInForceStrict)

    The Time in Force type for the order. This field indicates how long the order will remain active before it is executed or expires. Here are the supported values: - ‘Day` - Day. The order is valid only for the trading day on which it is placed. - `GTC` - Good Til Canceled. The order is valid until it is executed or canceled. - `FOK` - Fill Or Kill. The order must be executed in its entirety immediately or be canceled completely. - `IOC` - Immediate Or Cancel. The order must be executed immediately. Any portion of the order that cannot be filled immediately will be canceled.

  • user_id (String)
  • user_secret (String)
  • universal_symbol_id (String) (defaults to: SENTINEL)

    The universal symbol ID of the security to trade. Must be ‘null’ if ‘symbol` is provided, otherwise must be provided.

  • symbol (String) (defaults to: SENTINEL)

    The security’s trading ticker symbol. If ‘symbol’ is provided, then ‘universal_symbol_id’ must be ‘null’.

  • trading_session (TradingSession) (defaults to: 'REGULAR')

    The trading session for the order. This field indicates which market session the order will be placed in. This is only available for certain brokerages. Defaults to REGULAR. Here are the supported values: - ‘REGULAR` - Regular trading hours. - `EXTENDED` - Extended trading hours.

  • price (Float) (defaults to: SENTINEL)

    The limit price for ‘Limit` and `StopLimit` orders.

  • stop (Float) (defaults to: SENTINEL)

    The price at which a stop order is triggered for ‘Stop` and `StopLimit` orders.

  • units (Float) (defaults to: SENTINEL)

    For Equity orders, this represents the number of shares for the order. This can be a decimal for fractional orders. Must be ‘null` if `notional_value` is provided. If placing an Option order, this field represents the number of contracts to buy or sell. (e.g., 1 contract = 100 shares).

  • notional_value (ManualTradeFormNotionalValue) (defaults to: SENTINEL)
  • body (ManualTradeFormWithOptions)
  • extra (Hash) (defaults to: {})

    additional parameters to pass along through :header_params, :query_params, or parameter name



999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
# File 'lib/snaptrade/api/trading_api.rb', line 999

def place_force_order(account_id:, action:, order_type:, time_in_force:, user_id:, user_secret:, universal_symbol_id: SENTINEL, symbol: SENTINEL, trading_session: 'REGULAR', price: SENTINEL, stop: SENTINEL, units: SENTINEL, notional_value: SENTINEL, extra: {})
  _body = {}
  _body[:account_id] =  if  != SENTINEL
  _body[:action] = action if action != SENTINEL
  _body[:universal_symbol_id] = universal_symbol_id if universal_symbol_id != SENTINEL
  _body[:symbol] = symbol if symbol != SENTINEL
  _body[:order_type] = order_type if order_type != SENTINEL
  _body[:time_in_force] = time_in_force if time_in_force != SENTINEL
  _body[:trading_session] = trading_session if trading_session != SENTINEL
  _body[:price] = price if price != SENTINEL
  _body[:stop] = stop if stop != SENTINEL
  _body[:units] = units if units != SENTINEL
  _body[:notional_value] = notional_value if notional_value != SENTINEL
  manual_trade_form_with_options = _body
  data, _status_code, _headers = place_force_order_with_http_info_impl(user_id, user_secret, manual_trade_form_with_options, extra)
  data
end

#place_force_order_with_http_info(account_id:, action:, order_type:, time_in_force:, user_id:, user_secret:, universal_symbol_id: SENTINEL, symbol: SENTINEL, trading_session: 'REGULAR', price: SENTINEL, stop: SENTINEL, units: SENTINEL, notional_value: SENTINEL, extra: {}) ⇒ Object

Place equity order

Places a brokerage order in the specified account. The order could be rejected by the brokerage if it is invalid or if the account does not have sufficient funds.

This endpoint does not compute the impact to the account balance from the order and any potential commissions before submitting the order to the brokerage. If that is desired, you can use the [check order impact endpoint](/reference/Trading/Trading_getOrderImpact).

It’s recommended to trigger a manual refresh of the account after placing an order to ensure the account is up to date. You can use the [manual refresh](/reference/Connections/Connections_refreshBrokerageAuthorization) endpoint for this.

Parameters:

  • account_id (String)

    Unique identifier for the connected brokerage account. This is the UUID used to reference the account in SnapTrade.

  • action (ActionStrictWithOptions)

    The action describes the intent or side of a trade. This is either ‘BUY` or `SELL` for Equity symbols or `BUY_TO_OPEN`, `BUY_TO_CLOSE`, `SELL_TO_OPEN` or `SELL_TO_CLOSE` for Options.

  • order_type (OrderTypeStrict)

    The type of order to place. - For ‘Limit` and `StopLimit` orders, the `price` field is required. - For `Stop` and `StopLimit` orders, the `stop` field is required.

  • time_in_force (TimeInForceStrict)

    The Time in Force type for the order. This field indicates how long the order will remain active before it is executed or expires. Here are the supported values: - ‘Day` - Day. The order is valid only for the trading day on which it is placed. - `GTC` - Good Til Canceled. The order is valid until it is executed or canceled. - `FOK` - Fill Or Kill. The order must be executed in its entirety immediately or be canceled completely. - `IOC` - Immediate Or Cancel. The order must be executed immediately. Any portion of the order that cannot be filled immediately will be canceled.

  • user_id (String)
  • user_secret (String)
  • universal_symbol_id (String) (defaults to: SENTINEL)

    The universal symbol ID of the security to trade. Must be ‘null’ if ‘symbol` is provided, otherwise must be provided.

  • symbol (String) (defaults to: SENTINEL)

    The security’s trading ticker symbol. If ‘symbol’ is provided, then ‘universal_symbol_id’ must be ‘null’.

  • trading_session (TradingSession) (defaults to: 'REGULAR')

    The trading session for the order. This field indicates which market session the order will be placed in. This is only available for certain brokerages. Defaults to REGULAR. Here are the supported values: - ‘REGULAR` - Regular trading hours. - `EXTENDED` - Extended trading hours.

  • price (Float) (defaults to: SENTINEL)

    The limit price for ‘Limit` and `StopLimit` orders.

  • stop (Float) (defaults to: SENTINEL)

    The price at which a stop order is triggered for ‘Stop` and `StopLimit` orders.

  • units (Float) (defaults to: SENTINEL)

    For Equity orders, this represents the number of shares for the order. This can be a decimal for fractional orders. Must be ‘null` if `notional_value` is provided. If placing an Option order, this field represents the number of contracts to buy or sell. (e.g., 1 contract = 100 shares).

  • notional_value (ManualTradeFormNotionalValue) (defaults to: SENTINEL)
  • body (ManualTradeFormWithOptions)
  • extra (Hash) (defaults to: {})

    additional parameters to pass along through :header_params, :query_params, or parameter name



1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
# File 'lib/snaptrade/api/trading_api.rb', line 1040

def place_force_order_with_http_info(account_id:, action:, order_type:, time_in_force:, user_id:, user_secret:, universal_symbol_id: SENTINEL, symbol: SENTINEL, trading_session: 'REGULAR', price: SENTINEL, stop: SENTINEL, units: SENTINEL, notional_value: SENTINEL, extra: {})
  _body = {}
  _body[:account_id] =  if  != SENTINEL
  _body[:action] = action if action != SENTINEL
  _body[:universal_symbol_id] = universal_symbol_id if universal_symbol_id != SENTINEL
  _body[:symbol] = symbol if symbol != SENTINEL
  _body[:order_type] = order_type if order_type != SENTINEL
  _body[:time_in_force] = time_in_force if time_in_force != SENTINEL
  _body[:trading_session] = trading_session if trading_session != SENTINEL
  _body[:price] = price if price != SENTINEL
  _body[:stop] = stop if stop != SENTINEL
  _body[:units] = units if units != SENTINEL
  _body[:notional_value] = notional_value if notional_value != SENTINEL
  manual_trade_form_with_options = _body
  place_force_order_with_http_info_impl(user_id, user_secret, manual_trade_form_with_options, extra)
end

#place_mleg_order(order_type:, time_in_force:, legs:, user_id:, user_secret:, account_id:, limit_price: SENTINEL, stop_price: SENTINEL, price_effect: SENTINEL, extra: {}) ⇒ Object

Place option order

Places a multi-leg option order. Only supported on certain option trading brokerages. snaptrade.notion.site/brokerages has information on brokerage trading support

Parameters:

  • order_type (MlegOrderTypeStrict)

    The type of order to place.

  • time_in_force (TimeInForceStrict)

    The Time in Force type for the order. This field indicates how long the order will remain active before it is executed or expires. Here are the supported values: - ‘Day` - Day. The order is valid only for the trading day on which it is placed. - `GTC` - Good Til Canceled. The order is valid until it is executed or canceled. - `FOK` - Fill Or Kill. The order must be executed in its entirety immediately or be canceled completely. - `IOC` - Immediate Or Cancel. The order must be executed immediately. Any portion of the order that cannot be filled immediately will be canceled.

  • legs (Array<MlegLeg>)
  • user_id (String)
  • user_secret (String)
  • account_id (String)
  • limit_price (Float) (defaults to: SENTINEL)

    The limit price. Required if the order type is LIMIT, STOP_LOSS_LIMIT.

  • stop_price (Float) (defaults to: SENTINEL)

    The stop price. Required if the order type is STOP_LOSS_MARKET, STOP_LOSS_LIMIT.

  • price_effect (MlegPriceEffectStrict) (defaults to: SENTINEL)
  • body (MlegTradeForm)
  • extra (Hash) (defaults to: {})

    additional parameters to pass along through :header_params, :query_params, or parameter name



1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
# File 'lib/snaptrade/api/trading_api.rb', line 1155

def place_mleg_order(order_type:, time_in_force:, legs:, user_id:, user_secret:, account_id:, limit_price: SENTINEL, stop_price: SENTINEL, price_effect: SENTINEL, extra: {})
  _body = {}
  _body[:order_type] = order_type if order_type != SENTINEL
  _body[:time_in_force] = time_in_force if time_in_force != SENTINEL
  _body[:limit_price] = limit_price if limit_price != SENTINEL
  _body[:stop_price] = stop_price if stop_price != SENTINEL
  _body[:price_effect] = price_effect if price_effect != SENTINEL
  _body[:legs] = legs if legs != SENTINEL
  mleg_trade_form = _body
  data, _status_code, _headers = place_mleg_order_with_http_info_impl(user_id, user_secret, , mleg_trade_form, extra)
  data
end

#place_mleg_order_with_http_info(order_type:, time_in_force:, legs:, user_id:, user_secret:, account_id:, limit_price: SENTINEL, stop_price: SENTINEL, price_effect: SENTINEL, extra: {}) ⇒ Object

Place option order

Places a multi-leg option order. Only supported on certain option trading brokerages. snaptrade.notion.site/brokerages has information on brokerage trading support

Parameters:

  • order_type (MlegOrderTypeStrict)

    The type of order to place.

  • time_in_force (TimeInForceStrict)

    The Time in Force type for the order. This field indicates how long the order will remain active before it is executed or expires. Here are the supported values: - ‘Day` - Day. The order is valid only for the trading day on which it is placed. - `GTC` - Good Til Canceled. The order is valid until it is executed or canceled. - `FOK` - Fill Or Kill. The order must be executed in its entirety immediately or be canceled completely. - `IOC` - Immediate Or Cancel. The order must be executed immediately. Any portion of the order that cannot be filled immediately will be canceled.

  • legs (Array<MlegLeg>)
  • user_id (String)
  • user_secret (String)
  • account_id (String)
  • limit_price (Float) (defaults to: SENTINEL)

    The limit price. Required if the order type is LIMIT, STOP_LOSS_LIMIT.

  • stop_price (Float) (defaults to: SENTINEL)

    The stop price. Required if the order type is STOP_LOSS_MARKET, STOP_LOSS_LIMIT.

  • price_effect (MlegPriceEffectStrict) (defaults to: SENTINEL)
  • body (MlegTradeForm)
  • extra (Hash) (defaults to: {})

    additional parameters to pass along through :header_params, :query_params, or parameter name



1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
# File 'lib/snaptrade/api/trading_api.rb', line 1183

def place_mleg_order_with_http_info(order_type:, time_in_force:, legs:, user_id:, user_secret:, account_id:, limit_price: SENTINEL, stop_price: SENTINEL, price_effect: SENTINEL, extra: {})
  _body = {}
  _body[:order_type] = order_type if order_type != SENTINEL
  _body[:time_in_force] = time_in_force if time_in_force != SENTINEL
  _body[:limit_price] = limit_price if limit_price != SENTINEL
  _body[:stop_price] = stop_price if stop_price != SENTINEL
  _body[:price_effect] = price_effect if price_effect != SENTINEL
  _body[:legs] = legs if legs != SENTINEL
  mleg_trade_form = _body
  place_mleg_order_with_http_info_impl(user_id, user_secret, , mleg_trade_form, extra)
end

#place_order(trade_id:, user_id:, user_secret:, wait_to_confirm: SENTINEL, extra: {}) ⇒ Object

Place checked equity order

Places the previously checked order with the brokerage. The ‘tradeId` is obtained from the [check order impact endpoint](/reference/Trading/Trading_getOrderImpact). If you prefer to place the order without checking for impact first, you can use the [place order endpoint](/reference/Trading/Trading_placeForceOrder).

It’s recommended to trigger a manual refresh of the account after placing an order to ensure the account is up to date. You can use the [manual refresh](/reference/Connections/Connections_refreshBrokerageAuthorization) endpoint for this.

Parameters:

  • trade_id (String)

    Obtained from calling the [check order impact endpoint](/reference/Trading/Trading_getOrderImpact)

  • user_id (String)
  • user_secret (String)
  • wait_to_confirm (Boolean) (defaults to: SENTINEL)

    Optional, defaults to true. Determines if a wait is performed to check on order status. If false, latency will be reduced but orders returned will be more likely to be of status ‘PENDING` as we will not wait to check on the status before responding to the request.

  • body (ValidatedTradeBody)
  • extra (Hash) (defaults to: {})

    additional parameters to pass along through :header_params, :query_params, or parameter name



1296
1297
1298
1299
1300
1301
1302
# File 'lib/snaptrade/api/trading_api.rb', line 1296

def place_order(trade_id:, user_id:, user_secret:, wait_to_confirm: SENTINEL, extra: {})
  _body = {}
  _body[:wait_to_confirm] = wait_to_confirm if wait_to_confirm != SENTINEL
  extra[:validated_trade_body] = _body if !_body.empty?
  data, _status_code, _headers = place_order_with_http_info_impl(trade_id, user_id, user_secret, extra)
  data
end

#place_order_with_http_info(trade_id:, user_id:, user_secret:, wait_to_confirm: SENTINEL, extra: {}) ⇒ Object

Place checked equity order

Places the previously checked order with the brokerage. The ‘tradeId` is obtained from the [check order impact endpoint](/reference/Trading/Trading_getOrderImpact). If you prefer to place the order without checking for impact first, you can use the [place order endpoint](/reference/Trading/Trading_placeForceOrder).

It’s recommended to trigger a manual refresh of the account after placing an order to ensure the account is up to date. You can use the [manual refresh](/reference/Connections/Connections_refreshBrokerageAuthorization) endpoint for this.

Parameters:

  • trade_id (String)

    Obtained from calling the [check order impact endpoint](/reference/Trading/Trading_getOrderImpact)

  • user_id (String)
  • user_secret (String)
  • wait_to_confirm (Boolean) (defaults to: SENTINEL)

    Optional, defaults to true. Determines if a wait is performed to check on order status. If false, latency will be reduced but orders returned will be more likely to be of status ‘PENDING` as we will not wait to check on the status before responding to the request.

  • body (ValidatedTradeBody)
  • extra (Hash) (defaults to: {})

    additional parameters to pass along through :header_params, :query_params, or parameter name



1316
1317
1318
1319
1320
1321
# File 'lib/snaptrade/api/trading_api.rb', line 1316

def place_order_with_http_info(trade_id:, user_id:, user_secret:, wait_to_confirm: SENTINEL, extra: {})
  _body = {}
  _body[:wait_to_confirm] = wait_to_confirm if wait_to_confirm != SENTINEL
  extra[:validated_trade_body] = _body if !_body.empty?
  place_order_with_http_info_impl(trade_id, user_id, user_secret, extra)
end

#preview_crypto_order(instrument:, side:, type:, time_in_force:, amount:, user_id:, user_secret:, account_id:, limit_price: SENTINEL, stop_price: SENTINEL, post_only: SENTINEL, expiration_date: SENTINEL, extra: {}) ⇒ Object

Preview crypto order

Previews an order using the specified account.

Parameters:

  • instrument (CryptoTradingInstrument)
  • side (ActionStrict)

    The action describes the intent or side of a trade. This is either ‘BUY` or `SELL`.

  • type (CryptoOrderFormType)

    The type of order to place.

  • time_in_force (CryptoOrderFormTimeInForce)

    The Time in Force type for the order. This field indicates how long the order will remain active before it is executed or expires. - ‘GTC` - Good Til Canceled. The order is valid until it is executed or canceled. - `FOK` - Fill Or Kill. The order must be executed in its entirety immediately or be canceled completely. - `IOC` - Immediate Or Cancel. The order must be executed immediately. Any portion of the order that cannot be filled immediately will be canceled. - `GTD` - Good Til Date. The order is valid until the specified date.

  • amount (Float)

    The amount of the base currency to buy or sell.

  • user_id (String)
  • user_secret (String)
  • account_id (String)
  • limit_price (Float) (defaults to: SENTINEL)

    The limit price. Required if the order type is LIMIT, STOP_LOSS_LIMIT or TAKE_PROFIT_LIMIT.

  • stop_price (Float) (defaults to: SENTINEL)

    The stop price. Required if the order type is STOP_LOSS_MARKET, STOP_LOSS_LIMIT, TAKE_PROFIT_MARKET or TAKE_PROFIT_LIMIT.

  • post_only (Boolean) (defaults to: SENTINEL)

    Valid and required only for order type LIMIT. If true orders that would be filled immediately are rejected to avoid incurring TAKER fees.

  • expiration_date (Time) (defaults to: SENTINEL)

    The expiration date of the order. Required if the time_in_force is GTD.

  • body (CryptoOrderForm)
  • extra (Hash) (defaults to: {})

    additional parameters to pass along through :header_params, :query_params, or parameter name



1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
# File 'lib/snaptrade/api/trading_api.rb', line 1426

def preview_crypto_order(instrument:, side:, type:, time_in_force:, amount:, user_id:, user_secret:, account_id:, limit_price: SENTINEL, stop_price: SENTINEL, post_only: SENTINEL, expiration_date: SENTINEL, extra: {})
  _body = {}
  _body[:instrument] = instrument if instrument != SENTINEL
  _body[:side] = side if side != SENTINEL
  _body[:type] = type if type != SENTINEL
  _body[:time_in_force] = time_in_force if time_in_force != SENTINEL
  _body[:amount] = amount if amount != SENTINEL
  _body[:limit_price] = limit_price if limit_price != SENTINEL
  _body[:stop_price] = stop_price if stop_price != SENTINEL
  _body[:post_only] = post_only if post_only != SENTINEL
  _body[:expiration_date] = expiration_date if expiration_date != SENTINEL
  crypto_order_form = _body
  data, _status_code, _headers = preview_crypto_order_with_http_info_impl(user_id, user_secret, , crypto_order_form, extra)
  data
end

#preview_crypto_order_with_http_info(instrument:, side:, type:, time_in_force:, amount:, user_id:, user_secret:, account_id:, limit_price: SENTINEL, stop_price: SENTINEL, post_only: SENTINEL, expiration_date: SENTINEL, extra: {}) ⇒ Object

Preview crypto order

Previews an order using the specified account.

Parameters:

  • instrument (CryptoTradingInstrument)
  • side (ActionStrict)

    The action describes the intent or side of a trade. This is either ‘BUY` or `SELL`.

  • type (CryptoOrderFormType)

    The type of order to place.

  • time_in_force (CryptoOrderFormTimeInForce)

    The Time in Force type for the order. This field indicates how long the order will remain active before it is executed or expires. - ‘GTC` - Good Til Canceled. The order is valid until it is executed or canceled. - `FOK` - Fill Or Kill. The order must be executed in its entirety immediately or be canceled completely. - `IOC` - Immediate Or Cancel. The order must be executed immediately. Any portion of the order that cannot be filled immediately will be canceled. - `GTD` - Good Til Date. The order is valid until the specified date.

  • amount (Float)

    The amount of the base currency to buy or sell.

  • user_id (String)
  • user_secret (String)
  • account_id (String)
  • limit_price (Float) (defaults to: SENTINEL)

    The limit price. Required if the order type is LIMIT, STOP_LOSS_LIMIT or TAKE_PROFIT_LIMIT.

  • stop_price (Float) (defaults to: SENTINEL)

    The stop price. Required if the order type is STOP_LOSS_MARKET, STOP_LOSS_LIMIT, TAKE_PROFIT_MARKET or TAKE_PROFIT_LIMIT.

  • post_only (Boolean) (defaults to: SENTINEL)

    Valid and required only for order type LIMIT. If true orders that would be filled immediately are rejected to avoid incurring TAKER fees.

  • expiration_date (Time) (defaults to: SENTINEL)

    The expiration date of the order. Required if the time_in_force is GTD.

  • body (CryptoOrderForm)
  • extra (Hash) (defaults to: {})

    additional parameters to pass along through :header_params, :query_params, or parameter name



1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
# File 'lib/snaptrade/api/trading_api.rb', line 1460

def preview_crypto_order_with_http_info(instrument:, side:, type:, time_in_force:, amount:, user_id:, user_secret:, account_id:, limit_price: SENTINEL, stop_price: SENTINEL, post_only: SENTINEL, expiration_date: SENTINEL, extra: {})
  _body = {}
  _body[:instrument] = instrument if instrument != SENTINEL
  _body[:side] = side if side != SENTINEL
  _body[:type] = type if type != SENTINEL
  _body[:time_in_force] = time_in_force if time_in_force != SENTINEL
  _body[:amount] = amount if amount != SENTINEL
  _body[:limit_price] = limit_price if limit_price != SENTINEL
  _body[:stop_price] = stop_price if stop_price != SENTINEL
  _body[:post_only] = post_only if post_only != SENTINEL
  _body[:expiration_date] = expiration_date if expiration_date != SENTINEL
  crypto_order_form = _body
  preview_crypto_order_with_http_info_impl(user_id, user_secret, , crypto_order_form, extra)
end

#replace_order(brokerage_order_id:, action:, order_type:, time_in_force:, account_id:, user_id:, user_secret:, price: SENTINEL, symbol: SENTINEL, stop: SENTINEL, units: SENTINEL, extra: {}) ⇒ Object

Replace order

Replaces an existing pending order with a new one. The way this works is brokerage dependent, but usually involves cancelling the existing order and placing a new one. The order’s brokerage_order_id may or may not change, be sure to use the one returned in the response going forward. Only supported on some brokerages

Parameters:

  • brokerage_order_id (String)

    Order ID returned by brokerage. This is the unique identifier for the order in the brokerage system.

  • action (ActionStrict)

    The action describes the intent or side of a trade. This is either ‘BUY` or `SELL`.

  • order_type (OrderTypeStrict)

    The type of order to place. - For ‘Limit` and `StopLimit` orders, the `price` field is required. - For `Stop` and `StopLimit` orders, the `stop` field is required.

  • time_in_force (TimeInForceStrict)

    The Time in Force type for the order. This field indicates how long the order will remain active before it is executed or expires. Here are the supported values: - ‘Day` - Day. The order is valid only for the trading day on which it is placed. - `GTC` - Good Til Canceled. The order is valid until it is executed or canceled. - `FOK` - Fill Or Kill. The order must be executed in its entirety immediately or be canceled completely. - `IOC` - Immediate Or Cancel. The order must be executed immediately. Any portion of the order that cannot be filled immediately will be canceled.

  • account_id (String)

    The ID of the account to execute the trade on.

  • user_id (String)
  • user_secret (String)
  • price (Float) (defaults to: SENTINEL)

    The limit price for ‘Limit` and `StopLimit` orders.

  • symbol (String) (defaults to: SENTINEL)

    The security’s trading ticker symbol

  • stop (Float) (defaults to: SENTINEL)

    The price at which a stop order is triggered for ‘Stop` and `StopLimit` orders.

  • units (Float) (defaults to: SENTINEL)
  • body (ManualTradeReplaceForm)
  • extra (Hash) (defaults to: {})

    additional parameters to pass along through :header_params, :query_params, or parameter name



1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
# File 'lib/snaptrade/api/trading_api.rb', line 1583

def replace_order(brokerage_order_id:, action:, order_type:, time_in_force:, account_id:, user_id:, user_secret:, price: SENTINEL, symbol: SENTINEL, stop: SENTINEL, units: SENTINEL, extra: {})
  _body = {}
  _body[:brokerage_order_id] = brokerage_order_id if brokerage_order_id != SENTINEL
  _body[:action] = action if action != SENTINEL
  _body[:order_type] = order_type if order_type != SENTINEL
  _body[:time_in_force] = time_in_force if time_in_force != SENTINEL
  _body[:price] = price if price != SENTINEL
  _body[:symbol] = symbol if symbol != SENTINEL
  _body[:stop] = stop if stop != SENTINEL
  _body[:units] = units if units != SENTINEL
  manual_trade_replace_form = _body
  data, _status_code, _headers = replace_order_with_http_info_impl(, user_id, user_secret, manual_trade_replace_form, extra)
  data
end

#replace_order_with_http_info(brokerage_order_id:, action:, order_type:, time_in_force:, account_id:, user_id:, user_secret:, price: SENTINEL, symbol: SENTINEL, stop: SENTINEL, units: SENTINEL, extra: {}) ⇒ Object

Replace order

Replaces an existing pending order with a new one. The way this works is brokerage dependent, but usually involves cancelling the existing order and placing a new one. The order’s brokerage_order_id may or may not change, be sure to use the one returned in the response going forward. Only supported on some brokerages

Parameters:

  • brokerage_order_id (String)

    Order ID returned by brokerage. This is the unique identifier for the order in the brokerage system.

  • action (ActionStrict)

    The action describes the intent or side of a trade. This is either ‘BUY` or `SELL`.

  • order_type (OrderTypeStrict)

    The type of order to place. - For ‘Limit` and `StopLimit` orders, the `price` field is required. - For `Stop` and `StopLimit` orders, the `stop` field is required.

  • time_in_force (TimeInForceStrict)

    The Time in Force type for the order. This field indicates how long the order will remain active before it is executed or expires. Here are the supported values: - ‘Day` - Day. The order is valid only for the trading day on which it is placed. - `GTC` - Good Til Canceled. The order is valid until it is executed or canceled. - `FOK` - Fill Or Kill. The order must be executed in its entirety immediately or be canceled completely. - `IOC` - Immediate Or Cancel. The order must be executed immediately. Any portion of the order that cannot be filled immediately will be canceled.

  • account_id (String)

    The ID of the account to execute the trade on.

  • user_id (String)
  • user_secret (String)
  • price (Float) (defaults to: SENTINEL)

    The limit price for ‘Limit` and `StopLimit` orders.

  • symbol (String) (defaults to: SENTINEL)

    The security’s trading ticker symbol

  • stop (Float) (defaults to: SENTINEL)

    The price at which a stop order is triggered for ‘Stop` and `StopLimit` orders.

  • units (Float) (defaults to: SENTINEL)
  • body (ManualTradeReplaceForm)
  • extra (Hash) (defaults to: {})

    additional parameters to pass along through :header_params, :query_params, or parameter name



1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
# File 'lib/snaptrade/api/trading_api.rb', line 1617

def replace_order_with_http_info(brokerage_order_id:, action:, order_type:, time_in_force:, account_id:, user_id:, user_secret:, price: SENTINEL, symbol: SENTINEL, stop: SENTINEL, units: SENTINEL, extra: {})
  _body = {}
  _body[:brokerage_order_id] = brokerage_order_id if brokerage_order_id != SENTINEL
  _body[:action] = action if action != SENTINEL
  _body[:order_type] = order_type if order_type != SENTINEL
  _body[:time_in_force] = time_in_force if time_in_force != SENTINEL
  _body[:price] = price if price != SENTINEL
  _body[:symbol] = symbol if symbol != SENTINEL
  _body[:stop] = stop if stop != SENTINEL
  _body[:units] = units if units != SENTINEL
  manual_trade_replace_form = _body
  replace_order_with_http_info_impl(, user_id, user_secret, manual_trade_replace_form, extra)
end

#search_cryptocurrency_pair_instruments(user_id:, user_secret:, account_id:, base: SENTINEL, quote: SENTINEL, extra: {}) ⇒ Object

Get crypto pairs

Searches cryptocurrency pairs instruments accessible to the specified account. Both ‘base` and `quote` are optional. Omit both for a full list of cryptocurrency pairs.

Parameters:

  • user_id (String)
  • user_secret (String)
  • account_id (String)
  • base (String) (defaults to: SENTINEL)
  • quote (String) (defaults to: SENTINEL)
  • extra (Hash) (defaults to: {})

    additional parameters to pass along through :header_params, :query_params, or parameter name



1730
1731
1732
1733
1734
1735
# File 'lib/snaptrade/api/trading_api.rb', line 1730

def search_cryptocurrency_pair_instruments(user_id:, user_secret:, account_id:, base: SENTINEL, quote: SENTINEL, extra: {})
  extra[:base] = base if base != SENTINEL
  extra[:quote] = quote if quote != SENTINEL
  data, _status_code, _headers = search_cryptocurrency_pair_instruments_with_http_info_impl(user_id, user_secret, , extra)
  data
end

#search_cryptocurrency_pair_instruments_with_http_info(user_id:, user_secret:, account_id:, base: SENTINEL, quote: SENTINEL, extra: {}) ⇒ Object

Get crypto pairs

Searches cryptocurrency pairs instruments accessible to the specified account. Both ‘base` and `quote` are optional. Omit both for a full list of cryptocurrency pairs.

Parameters:

  • user_id (String)
  • user_secret (String)
  • account_id (String)
  • base (String) (defaults to: SENTINEL)
  • quote (String) (defaults to: SENTINEL)
  • extra (Hash) (defaults to: {})

    additional parameters to pass along through :header_params, :query_params, or parameter name



1747
1748
1749
1750
1751
# File 'lib/snaptrade/api/trading_api.rb', line 1747

def search_cryptocurrency_pair_instruments_with_http_info(user_id:, user_secret:, account_id:, base: SENTINEL, quote: SENTINEL, extra: {})
  extra[:base] = base if base != SENTINEL
  extra[:quote] = quote if quote != SENTINEL
  search_cryptocurrency_pair_instruments_with_http_info_impl(user_id, user_secret, , extra)
end