Skip to content

WolverineBrokerageModel

QuantConnect.Brokerages.WolverineBrokerageModel

WolverineBrokerageModel(account_type: AccountType = ...)

Bases: DefaultBrokerageModel

Wolverine Brokerage model

Constructor for Wolverine brokerage model

Parameters:

Name Type Description Default
account_type AccountType

Cash or Margin

...

account_type

account_type: AccountType

Gets or sets the account type used by this model

required_free_buying_power_percent

required_free_buying_power_percent: float

Gets the brokerages model percentage factor used to determine the required unused buying power for the account. From 1 to 0. Example: 0 means no unused buying power is required. 0.5 means 50% of the buying power should be left unused.

default_markets

default_markets: IReadOnlyDictionary[SecurityType, str]

Gets a map of the default markets to be used for each security type

DEFAULT_MARKET_MAP

DEFAULT_MARKET_MAP: IReadOnlyDictionary[
    SecurityType, str
] = ...

The default markets for the backtesting brokerage

can_submit_order

can_submit_order(
    security: Security,
    order: Order,
    message: Optional[BrokerageMessageEvent],
) -> Tuple[bool, BrokerageMessageEvent]

Returns true if the brokerage could accept this order. This takes into account order type, security type, and order size limits.

Parameters:

Name Type Description Default
security Security

The security of the order

required
order Order

The order to be processed

required
message Optional[BrokerageMessageEvent]

If this function returns false, a brokerage message detailing why the order may not be submitted

required

Returns:

Type Description
Tuple[bool, BrokerageMessageEvent]

True if the brokerage could process the order, false otherwise.

can_update_order

can_update_order(
    security: Security,
    order: Order,
    request: UpdateOrderRequest,
    message: Optional[BrokerageMessageEvent],
) -> Tuple[bool, BrokerageMessageEvent]

Wolverine does not support update of orders

Parameters:

Name Type Description Default
security Security

Security

required
order Order

Order that should be updated

required
request UpdateOrderRequest

Update request

required
message Optional[BrokerageMessageEvent]

Outgoing message

required

Returns:

Type Description
Tuple[bool, BrokerageMessageEvent]

Always false as Wolverine does not support update of orders.

get_fee_model

get_fee_model(security: Security) -> IFeeModel

Provides Wolverine fee model

Parameters:

Name Type Description Default
security Security

Security

required

Returns:

Type Description
IFeeModel

Wolverine fee model.

get_buying_power_model

get_buying_power_model(
    security: Security,
) -> IBuyingPowerModel
get_buying_power_model(
    security: Security, account_type: AccountType
) -> IBuyingPowerModel

Signature descriptions:

  • Gets a new buying power model for the security, returning the default model with the security's configured leverage. For cash accounts, leverage = 1 is used.

  • Gets a new buying power model for the security

Parameters:

Name Type Description Default
security Security

The security to get a buying power model for

required
account_type Optional[AccountType]

The account type

None

Returns:

Type Description
IBuyingPowerModel

The buying power model for this brokerage/security.

get_settlement_model

get_settlement_model(
    security: Security,
) -> ISettlementModel
get_settlement_model(
    security: Security, account_type: AccountType
) -> ISettlementModel

Gets a new settlement model for the security

Parameters:

Name Type Description Default
security Security

The security to get a settlement model for

required
account_type Optional[AccountType]

The account type

None

Returns:

Type Description
ISettlementModel

The settlement model for this brokerage.

apply_split

apply_split(
    tickets: List[OrderTicket], split: Split
) -> None

Applies the split to the specified order ticket

Parameters:

Name Type Description Default
tickets List[OrderTicket]

The open tickets matching the split event

required
split Split

The split event data

required

can_execute_order

can_execute_order(security: Security, order: Order) -> bool

Returns true if the brokerage would be able to execute this order at this time assuming market prices are sufficient for the fill to take place. This is used to emulate the brokerage fills in backtesting and paper trading. For example some brokerages may not perform executions during extended market hours. This is not intended to be checking whether or not the exchange is open, that is handled in the Security.Exchange property.

Parameters:

Name Type Description Default
security Security

The security being traded

required
order Order

The order to test for execution

required

Returns:

Type Description
bool

True if the brokerage would be able to perform the execution, false otherwise.

get_benchmark

get_benchmark(securities: SecurityManager) -> IBenchmark

Get the benchmark for this model

Parameters:

Name Type Description Default
securities SecurityManager

SecurityService to create the security with if needed

required

Returns:

Type Description
IBenchmark

The benchmark for this brokerage.

get_fill_model

get_fill_model(security: Security) -> IFillModel

Gets a new fill model that represents this brokerage's fill behavior

Parameters:

Name Type Description Default
security Security

The security to get fill model for

required

Returns:

Type Description
IFillModel

The new fill model for this brokerage.

get_leverage

get_leverage(security: Security) -> float

Gets the brokerage's leverage for the specified security

Parameters:

Name Type Description Default
security Security

The security's whose leverage we seek

required

Returns:

Type Description
float

The leverage for the specified security.

get_margin_interest_rate_model

get_margin_interest_rate_model(
    security: Security,
) -> IMarginInterestRateModel

Gets a new margin interest rate model for the security

Parameters:

Name Type Description Default
security Security

The security to get a margin interest rate model for

required

Returns:

Type Description
IMarginInterestRateModel

The margin interest rate model for this brokerage.

get_shortable_provider

get_shortable_provider(
    security: Security,
) -> IShortableProvider

Gets the shortable provider

Returns:

Type Description
IShortableProvider

Shortable provider.

get_slippage_model

get_slippage_model(security: Security) -> ISlippageModel

Gets a new slippage model that represents this brokerage's fill slippage behavior

Parameters:

Name Type Description Default
security Security

The security to get a slippage model for

required

Returns:

Type Description
ISlippageModel

The new slippage model for this brokerage.

is_valid_order_size

is_valid_order_size(
    security: Security,
    order_quantity: float,
    message: Optional[BrokerageMessageEvent],
) -> Tuple[bool, BrokerageMessageEvent]

Checks if the order quantity is valid, it means, the order size is bigger than the minimum size allowed

Parameters:

Name Type Description Default
security Security

The security of the order

required
order_quantity float

The quantity of the order to be processed

required
message Optional[BrokerageMessageEvent]

If this function returns false, a brokerage message detailing why the order may be invalid

required

Returns:

Type Description
Tuple[bool, BrokerageMessageEvent]

True if the order quantity is bigger than the minimum allowed, false otherwise.