Skip to content

BrokerageConcurrentMessageHandler

QuantConnect.Brokerages.BrokerageConcurrentMessageHandler

BrokerageConcurrentMessageHandler(
    process_messages: Callable[
        [
            QuantConnect_Brokerages_BrokerageConcurrentMessageHandler_T
        ],
        Any,
    ],
)
BrokerageConcurrentMessageHandler(
    process_messages: Callable[
        [
            QuantConnect_Brokerages_BrokerageConcurrentMessageHandler_T
        ],
        Any,
    ],
    concurrency_enabled: bool,
)

Bases: Generic[QuantConnect_Brokerages_BrokerageConcurrentMessageHandler_T], Object, IDisposable

Brokerage helper class to lock message stream while executing an action, for example placing an order

Creates a new instance

Parameters:

Name Type Description Default
process_messages Callable[[QuantConnect_Brokerages_BrokerageConcurrentMessageHandler_T], Any]

The action to call for each new message

required
concurrency_enabled Optional[bool]

Whether to enable concurrent order submission

None

dispose

dispose() -> None

Disposes of the resources used by this instance

handle_new_message

handle_new_message(
    message: QuantConnect_Brokerages_BrokerageConcurrentMessageHandler_T,
) -> None

Will process or enqueue a message for later processing it

Parameters:

Name Type Description Default
message QuantConnect_Brokerages_BrokerageConcurrentMessageHandler_T

The new message

required

with_locked_stream

with_locked_stream(code: Callable[[], Any]) -> None

Lock the streaming processing while we're sending orders as sometimes they fill before the call returns.