Skip to content

VolumeWeightedAveragePriceExecutionModel

QuantConnect.Algorithm.Framework.Execution.VolumeWeightedAveragePriceExecutionModel

VolumeWeightedAveragePriceExecutionModel(
    asynchronous: bool = True,
)

Bases: ExecutionModel

Execution model that submits orders while the current market price is more favorable that the current volume weighted average price.

Initializes a new instance of the VolumeWeightedAveragePriceExecutionModel class.

Parameters:

Name Type Description Default
asynchronous bool

If true, orders will be submitted asynchronously

True

maximum_order_quantity_percent_volume

maximum_order_quantity_percent_volume: float

Gets or sets the maximum order quantity as a percentage of the current bar's volume. This defaults to 0.01m = 1%. For example, if the current bar's volume is 100, then the maximum order size would equal 1 share.

instance

instance: Any

Gets the underlying python instance

This codeEntityType is protected.

asynchronous

asynchronous: bool

If true, orders should be submitted asynchronously.

This codeEntityType is protected.

SymbolData

SymbolData(algorithm: QCAlgorithm, security: Security)

Bases: Object

Symbol data for this Execution Model

This codeEntityType is protected.

Initialize a new instance of SymbolData

security

security: Security

Security

vwap

VWAP Indicator

consolidator

consolidator: IDataConsolidator

Data Consolidator

PythonRuntimeChecker

Bases: Object

Set of helper methods to invoke Python methods with runtime checks for return values and out parameter's conversions.

execute

execute(
    algorithm: QCAlgorithm, targets: List[IPortfolioTarget]
) -> None

Submit orders for the specified portfolio targets. This model is free to delay or spread out these orders as it sees fit

Parameters:

Name Type Description Default
algorithm QCAlgorithm

The algorithm instance

required
targets List[IPortfolioTarget]

The portfolio targets to be ordered

required

is_safe_to_remove

is_safe_to_remove(
    algorithm: QCAlgorithm,
    symbol: Union[Symbol, str, BaseContract],
) -> bool

Determines if it's safe to remove the associated symbol data

This codeEntityType is protected.

on_securities_changed

on_securities_changed(
    algorithm: QCAlgorithm, changes: SecurityChanges
) -> None

Event fired each time the we add/remove securities from the data feed

Parameters:

Name Type Description Default
algorithm QCAlgorithm

The algorithm instance that experienced the change in securities

required
changes SecurityChanges

The security additions and removals from the algorithm

required

price_is_favorable

price_is_favorable(
    data: SymbolData, unordered_quantity: float
) -> bool

Determines if the current price is better than VWAP

This codeEntityType is protected.

on_order_event

on_order_event(
    algorithm: QCAlgorithm, order_event: OrderEvent
) -> None

New order event handler

Parameters:

Name Type Description Default
algorithm QCAlgorithm

The algorithm instance

required
order_event OrderEvent

Order event to process

required

equals

equals(obj: Any) -> bool
equals(
    other: BasePythonWrapper[
        QuantConnect_Python_BasePythonWrapper_TInterface
    ],
) -> bool

Signature descriptions:

  • Determines whether the specified object is an instance of BasePythonWrapper{TInterface} and wraps the same Python object reference as this instance, which would indicate that they are equal.

  • Determines whether the specified instance wraps the same Python object reference as this instance, which would indicate that they are equal.

Parameters:

Name Type Description Default
obj Optional[Any]

The other object to compare this with

None
other Optional[BasePythonWrapper[QuantConnect_Python_BasePythonWrapper_TInterface]]

The other object to compare this with

None

Returns:

Type Description
bool

True if both instances are equal, that is if both wrap the same Python object reference.

set_python_instance

set_python_instance(instance: Any) -> None
set_python_instance(
    instance: Any, validate_interface: bool
) -> None

Signature descriptions:

  • Sets the python instance

  • Sets the python instance and sets the validate interface flag

Parameters:

Name Type Description Default
instance Any

The underlying python instance

required
validate_interface Optional[bool]

Whether to perform validations for interface implementation

None

dispose

dispose() -> None

Dispose of this instance

get_event

get_event(name: str) -> Any

Gets the Python instance event with the specified name

Parameters:

Name Type Description Default
name str

The name of the event

required

get_hash_code

get_hash_code() -> int

Gets the hash code for the current instance

Returns:

Type Description
int

The hash code of the current instance.

get_method

get_method(
    method_name: str, python_only: bool = False
) -> Any

Gets the Python instances method with the specified name and caches it

Parameters:

Name Type Description Default
method_name str

The name of the method

required
python_only bool

Whether to only return python methods

False

Returns:

Type Description
Any

The matched method.

get_property

get_property(property_name: str) -> Any

Gets the Python instance property with the specified name

Parameters:

Name Type Description Default
property_name str

The name of the property

required

has_attr

has_attr(name: str) -> bool

Determines whether the Python instance has the specified attribute

Parameters:

Name Type Description Default
name str

The attribute name

required

Returns:

Type Description
bool

Whether the Python instance has the specified attribute.

invoke_method

invoke_method(
    method_name: str, *args: Union[Object, Iterable[Object]]
) -> Any

Invokes the specified method with the specified arguments

Parameters:

Name Type Description Default
method_name str

The name of the method

required
args Union[Object, Iterable[Object]]

The arguments to call the method with

()

invoke_void_method

invoke_void_method(
    method_name: str, *args: Union[Object, Iterable[Object]]
) -> None

Invokes the specified method with the specified arguments without returning a value

Parameters:

Name Type Description Default
method_name str

The name of the method

required
args Union[Object, Iterable[Object]]

The arguments to call the method with

()

set_property

set_property(property_name: str, value: Any) -> None

Sets the Python instance property with the specified name

Parameters:

Name Type Description Default
property_name str

The name of the property

required
value Any

The property value

required