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_option_impact(order_type:, time_in_force:, legs:, user_id:, user_secret:, account_id:, limit_price: SENTINEL, stop_price: SENTINEL, price_effect: SENTINEL, extra: {}) ⇒ Object

Get option order impact

Simulates an option order with up to 4 legs and returns the estimated cost and transaction fees without placing it. Only supported for certain enabled brokerages. Please refer to the [brokerage trading support page](support.snaptrade.com/brokerages) for more information on which brokerages support this endpoint.

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



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

def get_option_impact(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 = get_option_impact_with_http_info_impl(user_id, user_secret, , mleg_trade_form, extra)
  data
end

#get_option_impact_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

Get option order impact

Simulates an option order with up to 4 legs and returns the estimated cost and transaction fees without placing it. Only supported for certain enabled brokerages. Please refer to the [brokerage trading support page](support.snaptrade.com/brokerages) for more information on which brokerages support this endpoint.

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



426
427
428
429
430
431
432
433
434
435
436
# File 'lib/snaptrade/api/trading_api.rb', line 426

def get_option_impact_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
  get_option_impact_with_http_info_impl(user_id, user_secret, , mleg_trade_form, 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



544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
# File 'lib/snaptrade/api/trading_api.rb', line 544

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



577
578
579
580
581
582
583
584
585
586
587
588
589
590
# File 'lib/snaptrade/api/trading_api.rb', line 577

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_option_quotes(user_id:, user_secret:, account_id:, symbol:, extra: {}) ⇒ Object

Get option quote

Returns a quote for a single option contract. The option contract is specified using in the 21 character OCC format. For example ‘AAPL 251114C00240000` represents a call option on AAPL expiring on 2025-11-14 with a strike price of $240. For more information on the OCC format, see [here](en.wikipedia.org/wiki/Option_symbol#OCC_format) Note: These are derived values and are not suitable for trading purposes.

Parameters:

  • user_id (String)
  • user_secret (String)
  • account_id (String)
  • symbol (String)

    The OCC-formatted option symbol.

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

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



685
686
687
688
# File 'lib/snaptrade/api/trading_api.rb', line 685

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

#get_user_account_option_quotes_with_http_info(user_id:, user_secret:, account_id:, symbol:, extra: {}) ⇒ Object

Get option quote

Returns a quote for a single option contract. The option contract is specified using in the 21 character OCC format. For example ‘AAPL 251114C00240000` represents a call option on AAPL expiring on 2025-11-14 with a strike price of $240. For more information on the OCC format, see [here](en.wikipedia.org/wiki/Option_symbol#OCC_format) Note: These are derived values and are not suitable for trading purposes.

Parameters:

  • user_id (String)
  • user_secret (String)
  • account_id (String)
  • symbol (String)

    The OCC-formatted option symbol.

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

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



700
701
702
# File 'lib/snaptrade/api/trading_api.rb', line 700

def (user_id:, user_secret:, account_id:, symbol:, extra: {})
  (user_id, user_secret, , symbol, 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 is not a substitute for a market data provider. Frequent polling of this endpoint may result in the disabling of your keys**

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



807
808
809
810
811
# File 'lib/snaptrade/api/trading_api.rb', line 807

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 is not a substitute for a market data provider. Frequent polling of this endpoint may result in the disabling of your keys**

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



831
832
833
834
# File 'lib/snaptrade/api/trading_api.rb', line 831

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



943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
# File 'lib/snaptrade/api/trading_api.rb', line 943

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



978
979
980
981
982
983
984
985
986
987
988
989
990
991
# File 'lib/snaptrade/api/trading_api.rb', line 978

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



1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
# File 'lib/snaptrade/api/trading_api.rb', line 1101

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



1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
# File 'lib/snaptrade/api/trading_api.rb', line 1136

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



1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
# File 'lib/snaptrade/api/trading_api.rb', line 1263

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



1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
# File 'lib/snaptrade/api/trading_api.rb', line 1304

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. support.snaptrade.com/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



1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
# File 'lib/snaptrade/api/trading_api.rb', line 1419

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. support.snaptrade.com/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



1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
# File 'lib/snaptrade/api/trading_api.rb', line 1447

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



1560
1561
1562
1563
1564
1565
1566
# File 'lib/snaptrade/api/trading_api.rb', line 1560

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



1580
1581
1582
1583
1584
1585
# File 'lib/snaptrade/api/trading_api.rb', line 1580

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



1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
# File 'lib/snaptrade/api/trading_api.rb', line 1690

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



1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
# File 'lib/snaptrade/api/trading_api.rb', line 1724

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



1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
# File 'lib/snaptrade/api/trading_api.rb', line 1847

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



1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
# File 'lib/snaptrade/api/trading_api.rb', line 1881

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



1994
1995
1996
1997
1998
1999
# File 'lib/snaptrade/api/trading_api.rb', line 1994

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



2011
2012
2013
2014
2015
# File 'lib/snaptrade/api/trading_api.rb', line 2011

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