Supported Models



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

SetBrokerageModel(BrokerageName.TradierBrokerage, AccountType.Cash);
SetBrokerageModel(BrokerageName.TradierBrokerage, AccountType.Margin);
self.SetBrokerageModel(BrokerageName.TradierBrokerage, AccountType.Cash)
self.SetBrokerageModel(BrokerageName.TradierBrokerage, AccountType.Margin)

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

Asset Classes

The TradierBrokerageModel supports trading US Equities and Equity Options.


The TradierBrokerageModel supports several order types, order properties, and most order updates.

Order Types

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

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

Time In Force

The TradierBrokerageModel supports the following TimeInForce instructions:

  • Day
  • GoodTilCanceled
  • GoodTilDate
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 OrderProperties
                   TimeInForce = TimeInForce.Day 
    LimitOrder(_symbol, quantity, limitPrice, 
               orderProperties: new OrderProperties
                   TimeInForce = TimeInForce.GoodTilDate(new DateTime(year, month, day)) 
def Initialize(self) -> None:
    # Set the default order properties
    self.DefaultOrderProperties.TimeInForce = TimeInForce.GoodTilCanceled

def OnData(self, slice: Slice) -> None:
    # Use default order order properties
    self.LimitOrder(self.symbol, quantity, limit_price)
    # Override the default order properties
    order_properties = OrderProperties()
    order_properties.TimeInForce = TimeInForce.Day
    self.LimitOrder(self.symbol, quantity, limit_price, orderProperties=order_properties)

    order_properties.TimeInForce = TimeInForce.GoodTilDate(datetime(year, month, day))
    self.LimitOrder(self.symbol, quantity, limit_price, orderProperties=order_properties)


The TradierBrokerageModel supports most order updates. To update the quantity of an order, cancel the order and then submit a new order with the desired quantity. For more information about this workaround, see the Workaround for Brokerages That Don’t Support Updates.

Extended Market Hours

The TradierBrokerageModel doesn't support extended market hours trading. If you place an order outside of regular trading hours, the order will be processed at market open.

Automatic Cancellations

If you have open orders for a security when it performs a reverse split, the TradierBrokerageModel automatically cancels your orders.


The TradierBrokerageModel uses the EquityFillModel for Equity trades and the ImmediateFillModel for Option trades.


The TradierBrokerageModel uses the ConstantSlippageModel with zero slippage.

security.SetSlippageModel(new ConstantSlippageModel(0));


The TradierBrokerageModel uses the ConstantFeeModel with zero fees.

security.SetFeeModel(new ConstantFeeModel(0.0m));

Buying Power

The TradierBrokerageModel uses the OptionMarginModel for Option trades and the SecurityMarginModel for Equity trades.

If you have a margin account, the TradierBrokerageModel allows 2x leverage for Equities.


The TradierBrokerageModel uses the ImmediateSettlementModel for margin accounts and the DelayedSettlementModel with the default settlement rules for cash accounts.

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

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

// For remaining cases:
security.SettlementModel = new ImmediateSettlementModel();
# For US Equities with a cash account:
security.SettlementModel = DelayedSettlementModel(Equity.DefaultSettlementDays, Equity.DefaultSettlementTime)

# For Equity Options with a cash account:
security.SettlementModel = DelayedSettlementModel(Option.DefaultSettlementDays, Option.DefaultSettlementTime)

# For remaining cases:
security.SettlementModel = ImmediateSettlementModel()

Margin Interest Rate

The TradierBrokerageModel uses the NullMarginInterestRateModel.

Default Markets

The default market of the TradierBrokerageModel is Market.USA.

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: