Moving Average Block
Operations
A discrete event message triggers the Moving
Average Block. At this time, the block creates a new bar.
Upon trigger, the Moving Average
Block retrieves numeric value specified by the user (specified by
double-clicking on the block). The user may extract a numeric value
contained within the or retrieve a value unrelated
to
. The retrieved value
will be assigned to the bar as the value that represents the bar.
The bar is then added and stored within the block’s internal collection.
The Moving Average Block takes
a certain number of bars (specified by ) and computes an average of those bars.
The result is output as
.
After the calculation, it passes
on the original message unchanged through its mid-right port.
- (Optional)
Ready Port: This port can be used to determine whether the block
has collected sufficient number of bars to satisfy the [#bars] input.
If the block does not have sufficient number of bars, the
port will output False. When the block accumulates sufficient number of bars, the
port will output True.
- (Optional) The user
can also set up the Moving Average Block to delete its internal
data collection and reset
to a NaN (Not A Number) when a discrete event message
triggers the reset port.

Recommended
Tutorials For This Section
For a tactile learning experience, please try the following tutorial:
-
Moving Average Block
Double-Click Edit Window
Double-click on the block to bring up an edit window:
- Clicking on the formula
link will display a green canvas where the user can define an equation
which will determine the specific numeric value to be retrieved
and stored internally by the Moving Average Block when it is triggered
by
.
Internalized Logic Canvas
Internalized Logic Canvas: Several blocks in ADL contain an internalized logic canvas which can be accessed by double-clicking on the block.
Example. Internal Logic Canvas
The canvas is used to define user-made equations which will play an important role in the overall operation of the respective block. The following icons can be dragged onto the green canvas to define an equation:
: These icons can be linked to define an arithmetic equation or a True/False statement.
: The Block Value Icon allows the user to reference the output of any other block in the algorithm. When dragged onto the canvas, the Block Value Icon will display a menu from which the user will be able to choose a block within the algorithm (except for the blocks contained in a virtualized block).
-
: The Message Info Icon allows the user to extract certain information embedded within a discrete event message, such as a Fill Confirmation Message. When dragged onto the canvas, the Message Info Icon will display the following selectable fields:
Field Description Limit The price of the respective order or the order about to be submitted OrderQty The total order quantity of the respective order or the order about to be submitted WorkingQty The working quantity of the respective order or the order about to be submitted FillPrice Fill price FillQty Fill quantity Instrument Instrument of the submitted order ExeQty Total filled quantity of the respective order DisclosedQty The disclosed quantity or percentage (%) of total goal quantity viewable to the market DeletedQty The canceled quantity of the deleted order or the order about to be deleted IsBuy When this field is selected, the respective block will evaluate the user's fill confirmations messages (not trade data message disseminated by the exchange) and will output a Boolean value of TRUE if the user's fill was a buy side execution StopTrigger The price at which the respective stop-limit or stop-market order is activated TradeQty Quantity of the last trade for a specific instrument TradePrice Price of the last trade for a specific instrument IsQuotingOrder Applies to discrete event messages generated by an ASE Order Block. The field will output a Boolean value of TRUE if the message was generated from an order submission for the quote leg of the respective spread IsHedgeOrder Applies to discrete event messages generated by an ASE Order Block. The field will output a Boolean value of TRUE if the message was generated from an order submission for the hedge leg of the respective spread User Field 1 - 4 An empty field that can be populated with a value using a Value Injector Block. The value may then be extracted using a Value Extractor Block