DualSymbolIndicator
QuantConnect.Indicators.DualSymbolIndicator
DualSymbolIndicator(
name: str,
target_symbol: Union[Symbol, str, BaseContract],
reference_symbol: Union[Symbol, str, BaseContract],
period: int,
)
Bases: Generic[QuantConnect_Indicators_DualSymbolIndicator_TInput], MultiSymbolIndicator[QuantConnect_Indicators_DualSymbolIndicator_TInput]
Base class for indicators that work with two different symbols and calculate an indicator based on them.
Initializes the dual symbol indicator.
The constructor accepts a target symbol and a reference symbol. It also initializes the time zones for both symbols and checks if they are different.
This codeEntityType is protected.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
str
|
The name of the indicator. |
required |
target_symbol
|
Union[Symbol, str, BaseContract]
|
The symbol of the target asset. |
required |
reference_symbol
|
Union[Symbol, str, BaseContract]
|
The symbol of the reference asset. |
required |
period
|
int
|
The period (number of data points) over which to calculate the indicator. |
required |
target_data_points
target_data_points: IReadOnlyWindow[
QuantConnect_Indicators_DualSymbolIndicator_TInput
]
RollingWindow to store the data points of the target symbol
This codeEntityType is protected.
reference_data_points
reference_data_points: IReadOnlyWindow[
QuantConnect_Indicators_DualSymbolIndicator_TInput
]
RollingWindow to store the data points of the reference symbol
This codeEntityType is protected.
reference_symbol
reference_symbol: Symbol
Symbol of the reference used
This codeEntityType is protected.
warm_up_period
warm_up_period: int
Required period, in data points, for the indicator to be ready and fully initialized.
consolidators
consolidators: ISet[IDataConsolidator]
The data consolidators associated with this indicator if any
current
current: IndicatorDataPoint
Gets the current state of this indicator. If the state has not been updated then the time on the value will equal DateTime.MinValue.
previous
previous: IndicatorDataPoint
Gets the previous state of this indicator. If the state has not been updated then the time on the value will equal DateTime.MinValue.
name
name: str
Gets a name for this indicator
samples
samples: int
Gets the number of samples processed by this indicator
is_ready
is_ready: bool
Gets a flag indicating when this indicator is ready and fully initialized
updated
updated: _EventContainer[
Callable[[Object, IndicatorDataPoint], Any], Any
]
Event handler that fires after this indicator is updated
window
window: RollingWindow[IndicatorDataPoint]
A rolling window keeping a history of the indicator values of a given period
data_by_symbol
data_by_symbol: Dictionary[Symbol, SymbolData]
Relevant data for each symbol the indicator works on, including all inputs and actual data points used for calculation.
This codeEntityType is protected.
indicator_value
indicator_value: float
The most recently computed value of the indicator.
This codeEntityType is protected.
SymbolData
SymbolData(
symbol: Union[Symbol, str, BaseContract], period: int
)
Bases: Object
Contains the data points, the current input and other relevant indicator data for a symbol.
This codeEntityType is protected.
Initializes a new instance of the SymbolData class.
exchange_time_zone
exchange_time_zone: Any
The exchange time zone for the security represented by this symbol.
data_points
data_points: RollingWindow[
QuantConnect_Indicators_MultiSymbolIndicator_TInput
]
Data points for the symbol. This only hold the data points that have been used to calculate the indicator, which are those that had matching end times for every symbol.
current_input
current_input: (
QuantConnect_Indicators_MultiSymbolIndicator_TInput
)
The last input data point for the symbol.
new_input
new_input: _EventContainer[
Callable[
[
Object,
QuantConnect_Indicators_MultiSymbolIndicator_TInput,
],
Any,
],
Any,
]
Event that fires when a new input data point is set for the symbol.
current_input_end_time_utc
current_input_end_time_utc: datetime
The end time of the last input data point for the symbol in UTC.
reset
reset() -> None
Resets this symbol data to its initial state
set_resolution
set_resolution(resolution: Resolution) -> None
Sets the resolution for this symbol data, to be used for time alignment.
__eq__
__eq__(right: float) -> bool
__eq__(right: IndicatorBase) -> bool
__eq__(right: float) -> bool
__eq__(right: IndicatorBase) -> bool
__eq__(right: int) -> bool
__eq__(right: IndicatorBase) -> bool
__eq__(right: int) -> bool
__eq__(right: IndicatorBase) -> bool
Signature descriptions:
-
Determines if the indicator's current value is equal to the specified value
-
Determines if the specified value is equal to the indicator's current value
__ge__
__ge__(right: float) -> bool
__ge__(right: IndicatorBase) -> bool
__ge__(right: float) -> bool
__ge__(right: IndicatorBase) -> bool
__ge__(right: int) -> bool
__ge__(right: IndicatorBase) -> bool
__ge__(right: int) -> bool
__ge__(right: IndicatorBase) -> bool
Signature descriptions:
-
Determines if the indicator's current value is greater than or equal to the specified value
-
Determines if the specified value is greater than or equal to the indicator's current value
__gt__
__gt__(right: float) -> bool
__gt__(right: IndicatorBase) -> bool
__gt__(right: float) -> bool
__gt__(right: IndicatorBase) -> bool
__gt__(right: int) -> bool
__gt__(right: IndicatorBase) -> bool
__gt__(right: int) -> bool
__gt__(right: IndicatorBase) -> bool
Signature descriptions:
-
Determines if the indicator's current value is greater than the specified value
-
Determines if the specified value is greater than the indicator's current value
__le__
__le__(right: float) -> bool
__le__(right: IndicatorBase) -> bool
__le__(right: float) -> bool
__le__(right: IndicatorBase) -> bool
__le__(right: int) -> bool
__le__(right: IndicatorBase) -> bool
__le__(right: int) -> bool
__le__(right: IndicatorBase) -> bool
Signature descriptions:
-
Determines if the indicator's current value is less than or equal to the specified value
-
Determines if the specified value is less than or equal to the indicator's current value
__lt__
__lt__(right: float) -> bool
__lt__(right: IndicatorBase) -> bool
__lt__(right: float) -> bool
__lt__(right: IndicatorBase) -> bool
__lt__(right: int) -> bool
__lt__(right: IndicatorBase) -> bool
__lt__(right: int) -> bool
__lt__(right: IndicatorBase) -> bool
Signature descriptions:
-
Determines if the indicator's current value is less than the specified value
-
Determines if the specified value is less than the indicator's current value
__ne__
__ne__(right: float) -> bool
__ne__(right: IndicatorBase) -> bool
__ne__(right: float) -> bool
__ne__(right: IndicatorBase) -> bool
__ne__(right: int) -> bool
__ne__(right: IndicatorBase) -> bool
__ne__(right: int) -> bool
__ne__(right: IndicatorBase) -> bool
Signature descriptions:
-
Determines if the indicator's current value is not equal to the specified value
-
Determines if the specified value is not equal to the indicator's current value
compare_to
compare_to(obj: Any) -> int
compare_to(other: IIndicator) -> int
Signature descriptions:
-
Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.
-
Compares the current object with another object of the same type.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
obj
|
Optional[Any]
|
An object to compare with this instance. |
None
|
other
|
Optional[IIndicator]
|
An object to compare with this object. |
None
|
Returns:
| Type | Description |
|---|---|
int
|
Depends on the signature used. Case 1: [A value that indicates the relative order of the objects being compared. The return value has these meanings: Value Meaning Less than zero This instance precedes obj in the sort order. Zero This instance occurs in the same position in the sort order as obj. Greater than zero This instance follows obj in the sort order.]; Case 2: [A value that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the other parameter.Zero This object is equal to other. Greater than zero This object is greater than other.] |
update
update(input: IBaseData) -> bool
update(time: Union[datetime, date], value: float) -> bool
Updates the state of this indicator with the given value and returns true if this indicator is ready, false otherwise
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
input
|
Optional[IBaseData]
|
The value to use to update this indicator |
None
|
time
|
Optional[Union[datetime, date]]
|
The time associated with the value |
None
|
value
|
Optional[float]
|
The value to use to update this indicator |
None
|
Returns:
| Type | Description |
|---|---|
bool
|
True if this indicator is ready, false otherwise. |
__getitem__
__getitem__(i: int) -> IndicatorDataPoint
Indexes the history windows, where index 0 is the most recent indicator value. If index is greater or equal than the current count, it returns null. If the index is greater or equal than the window size, it returns null and resizes the windows to i + 1.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
i
|
int
|
The index |
required |
Returns:
| Type | Description |
|---|---|
IndicatorDataPoint
|
the ith most recent indicator value. |
compute_next_value
compute_next_value(
input: QuantConnect_Indicators_MultiSymbolIndicator_TInput,
) -> float
Checks and computes the indicator if the input data matches. This method ensures the input data points are from matching time periods and different symbols.
This codeEntityType is protected.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
input
|
QuantConnect_Indicators_MultiSymbolIndicator_TInput
|
The input data point (e.g., TradeBar for a symbol). |
required |
Returns:
| Type | Description |
|---|---|
float
|
The most recently computed value of the indicator. |
equals
equals(obj: Any) -> bool
Determines whether the specified object is equal to the current object.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
obj
|
Any
|
The object to compare with the current object. |
required |
Returns:
| Type | Description |
|---|---|
bool
|
true if the specified object is equal to the current object; otherwise, false. |
get_enumerator
get_enumerator() -> IEnumerator[IndicatorDataPoint]
Returns an enumerator that iterates through the history window.
Returns:
| Type | Description |
|---|---|
IEnumerator[IndicatorDataPoint]
|
A System.Collections.Generic.IEnumerator`1 that can be used to iterate through the history window. |
get_hash_code
get_hash_code() -> int
Get Hash Code for this Object
Returns:
| Type | Description |
|---|---|
int
|
Integer Hash Code. |
on_updated
on_updated(consolidated: IndicatorDataPoint) -> None
Event invocator for the Updated event
This codeEntityType is protected.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
consolidated
|
IndicatorDataPoint
|
This is the new piece of data produced by this indicator |
required |
reset
reset() -> None
Resets this indicator to its initial state
to_detailed_string
to_detailed_string() -> str
Provides a more detailed string of this indicator in the form of {Name} - {Value}
Returns:
| Type | Description |
|---|---|
str
|
A detailed string of this indicator's current state. |
to_string
to_string() -> str
ToString Overload for Indicator Base
Returns:
| Type | Description |
|---|---|
str
|
String representation of the indicator. |
validate_and_compute_next_value
validate_and_compute_next_value(
input: QuantConnect_Indicators_IndicatorBase_T,
) -> IndicatorResult
Computes the next value of this indicator from the given state and returns an instance of the IndicatorResult class
This codeEntityType is protected.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
input
|
QuantConnect_Indicators_IndicatorBase_T
|
The input given to the indicator |
required |
Returns:
| Type | Description |
|---|---|
IndicatorResult
|
An IndicatorResult object including the status of the indicator. |
compute_indicator
compute_indicator() -> float
Computes the next value of this indicator from the given state. This will be called only when the indicator is ready, that is, when data for all symbols at a given time is available.
This codeEntityType is protected.