Supported Models

Trade Station


This page explains the TradeStationBrokerageModel, including the asset classes it supports, its default security-level models, and it's default markets.

SetBrokerageModel(BrokerageName.TradeStation, AccountType.Cash);
SetBrokerageModel(BrokerageName.TradeStation, AccountType.Margin);
self.set_brokerage_model(BrokerageName.TRADE_STATION, AccountType.CASH)
self.set_brokerage_model(BrokerageName.TRADE_STATION, AccountType.MARGIN)

To view the implementation of this model, see the LEAN GitHub repository.

Asset Classes

The TradeStationBrokerageModel supports trading the following asset classes:


The TradeStationBrokerageModel supports several order types, order properties, and order updates.

Order Types

The following table describes the available order types for each asset class that the TradeStationBrokerageModel supports:

Order TypeEquityEquity OptionsFutures
MarketOrdergreen checkgreen checkgreen check
LimitOrdergreen checkgreen checkgreen check
StopMarketOrdergreen checkgreen checkgreen check
StopLimitOrdergreen checkgreen checkgreen check

Time In Force

The TradeStationBrokerageModel supports the following TimeInForce instructions:

  • DayDAY
  • GoodTilCanceledGOOD_TIL_CANCELED
  • GoodTilDateGOOD_TIL_DATE
public override void Initialize()
    // Set the default order properties
    DefaultOrderProperties.TimeInForce = TimeInForce.GoodTilCanceled;

public override void OnData(Slice slice)
    // Use default order order properties
    LimitOrder(_symbol, quantity, limitPrice);
    // Override the default order properties
    LimitOrder(_symbol, quantity, limitPrice, 
               orderProperties: new TradeStationOrderProperties
                   TimeInForce = TimeInForce.Day
    LimitOrder(_symbol, quantity, limitPrice, 
               orderProperties: new TradeStationOrderProperties
                   TimeInForce = TimeInForce.GoodTilDate(new DateTime(year, month, day))
def initialize(self) -> None:
    # Set the default order properties
    self.default_order_properties.time_in_force = TimeInForce.GOOD_TIL_CANCELED

def on_data(self, slice: Slice) -> None:
    # Use default order order properties
    self.limit_order(self._symbol, quantity, limit_price)
    # Override the default order properties
    order_properties = TradeStationOrderProperties()
    order_properties.time_in_force = TimeInForce.DAY
    self.limit_order(self._symbol, quantity, limit_price, order_properties=order_properties)

    order_properties.time_in_force = TimeInForce.good_til_date(datetime(year, month, day))
    self.limit_order(self._symbol, quantity, limit_price, order_properties=order_properties)


The TradeStationBrokerageModel supports order updates.

Handling Splits

If you're using raw data normalization and you have active orders with a limit, stop, or trigger price in the market for a US Equity when a stock split occurs, the following properties of your orders automatically adjust to reflect the stock split:

  • Quantity
  • Limit price
  • Stop price
  • Trigger price


The following table shows the fill model that the TradeStationBrokerageModel uses for each SecurityType:

SecurityTypeFill Model


The TradeStationBrokerageModel uses the NullSlippageModel.



The TradeStationBrokersBrokerageModel uses the TradeStationFeeModel with the default argument values. We model current Trade Station fees on all assets.

Buying Power

The TradeStationBrokerageModel sets the buying power model based on the asset class of the security. The following table shows the default buying power model of each asset class:

Asset ClassModel
Equity OptionsOptionMarginModel

If you have a margin account, the TradeStationBrokerageModel allows 2x leverage for Equities and and 1x leverage for Equity Options and Futures.


The following table shows which settlement model the TradeStationBrokerageModel uses based on the security type and your account type:

Security TypeAccount TypeSettlement Model
EquityCashDelayedSettlementModel with the default settlement rules
OptionCashDelayedSettlementModel with the default settlement rules

For all other cases, the TradeStationBrokerageModel uses the ImmediateSettlementModel.

// For US Equities with a cash account:
security.SetSettlementModel(new DelayedSettlementModel(Equity.DefaultSettlementDays, Equity.DefaultSettlementTime));

// For Equity Options with a cash account:
security.SetSettlementModel(new DelayedSettlementModel(Option.DefaultSettlementDays, Option.DefaultSettlementTime));

// For Futures
security.SetSettlementModel(new FutureSettlementModel());

// For remaining cases:
security.SetSettlementModel(new ImmediateSettlementModel());
# For US Equities with a cash account:
security.set_settlement_model(DelayedSettlementModel(Equity.DEFAULT_SETTLEMENT_DAYS, Equity.DEFAULT_SETTLEMENT_TIME))

# For Equity Options with a cash account:
security.set_settlement_model(DelayedSettlementModel(Option.DEFAULT_SETTLEMENT_DAYS, Option.DEFAULT_SETTLEMENT_TIME))

# For Futures

# For remaining cases:

Margin Interest Rate

The TradeStationBrokerageModel uses the NullMarginInterestRateModel.

Default Markets

The following table describes the default markets of each SecurityType for the TradeStationBrokerageModel:


You can also see our Videos. You can also get in touch with us via Discord.

Did you find this page helpful?

Contribute to the documentation: