Skip to content

StandardDeviationExecutionModel

QuantConnect.Algorithm.Framework.Execution.StandardDeviationExecutionModel

StandardDeviationExecutionModel(
    period: int = 60,
    deviations: float = 2,
    resolution: Resolution = ...,
    asynchronous: bool = True,
)

Bases: ExecutionModel

Execution model that submits orders while the current market prices is at least the configured number of standard deviations away from the mean in the favorable direction (below/above for buy/sell respectively)

Initializes a new instance of the StandardDeviationExecutionModel class

Parameters:

Name Type Description Default
period int

Period of the standard deviation indicator

60
deviations float

The number of deviations away from the mean before submitting an order

2
resolution Resolution

The resolution of the STD and SMA indicators

...
asynchronous bool

If true, orders should be submitted asynchronously

True

maximum_order_value

maximum_order_value: float

Gets or sets the maximum order value in units of the account currency. This defaults to $20,000. For example, if purchasing a stock with a price of $100, then the maximum order size would be 200 shares.

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,
    period: int,
    resolution: Resolution,
)

Bases: Object

Symbol Data for this Execution Model

This codeEntityType is protected.

Initialize an instance of SymbolData

Parameters:

Name Type Description Default
algorithm QCAlgorithm

Algorithm for this security

required
security Security

The security we are using

required
period int

Period of the SMA and STD

required
resolution Resolution

Resolution for this symbol

required

security

security: Security

Security

std

Standard Deviation

sma

Simple Moving Average

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

Executes market orders if the standard deviation of price is more than the configured number of deviations in the favorable direction.

Parameters:

Name Type Description Default
algorithm QCAlgorithm

The algorithm instance

required
targets List[IPortfolioTarget]

The portfolio targets

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 more than the configured number of standard deviations away from the mean in the favorable direction.

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