TAPCore OrdersProductivity Guide
TAPCore OrdersProductivity Guide
Release 15.06
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 2
Document Revision History
Version Date Description
4.30.3 20080522 Section “Load Hierarchy” updated
4.40.0 SP1 20091116 PMSTA-8969: Updated section “Investment targets” regarding three
different ways to compute fluctuation margins
20100112 Added note regarding the importance of the priority in order generation in
section Step 6: Order generation for under-weighted primary market
segment.
4.40.0 SP3 20100512 PMSTA-9846: Deleted section “Constraint Breach Analysis and Audit”.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 3
Version Date Description
4.40.0 SP5 20110517 PMSTA-11788: Updated subsection Check Strategy – Parameters tab of
section Check Strategy to explain the new consolidation modes used to
display the compliance of portfolio hierarchies, in the context of a
household.
20101222 PMSTA-154:
Deleted section “The rank_n Field”.
In section Priority and rank, removed information about rank_n field
and added information about attribute priority_n and rank_n.
20110120 PMSTA-11087: Removed deprecated chapter "Migrating To Triple'A Plus
Core Release 4.00".
20110426 PMSTA-11774:
Added new section Exception Management facility.
In section Order Generation tab, updated the description of the
Generation Nature field to explain the Check and Publish value for
Reconcile Strategy, Allocate Order and Order Entry functions.
In section Saving Orders, added information about the ability to save
orders directly using the Compl. Check button if a domain field is set
to Check and Publish value.
In subsection Examples, of section Importing Order Sessions updated
the examples provided.
20110601 PMSTA-11774:
Added section Check and Publish Order Generation to explain the
Check and Publish order nature method.
Updated sections Order Generation tab and Saving Orders to
reference the new section.
20110714 PMSTA-10241: Updated section General principles to explain that Check
Strategy returns a valuation of the portfolio when there is no linked
strategy.
11 SP1 20110411 BM-26: In subsections Processing and Grouping Order by Batch of section
Order Grouping, and subsection Processing of section Order Grouping
Index, modified information about the order grouping to explain that it is
not available directly in the Allocation Order and Reconcile Strategy
functions.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 4
Version Date Description
12 20120817 PMSTA-14110:
Added information about the constraint template and the Trading
Constraint button in section “Database Changes”.
Added image in section “Example”.
In section Creating a new Order, added information about the system
parameter ONE_SESSION_FOR_VALO_ORDERS.
In section Update Fields script, updated the menu path and image.
Added section Function "Execution List".
Added section “Risk strategy”.
13 20130529 PMSTA-15479:
In section Order Grouping, provided information about the availability
of the Order Grouping function from the financial server and/or the
GUI.
In subsection Processing of section Order Grouping, updated the
content to explain that the Allocation Order and Reconcile Strategy
functions offer the possibility to run a genuine Order Grouping
function.
20130906 PMSTA-16856: In section UPDATE_STATUS import command, added a
limitation for UPDATE_STATUS to indicate that the status of an operation
that has a current status equal or above the accounting status cannot be
updated.
14.03 20131218 PMSTA-17367: References to household are now linked to the Triple'A Plus
Core User Guide.
20140818 PMSTA-18284: In section “Linking Model Portfolios under the same Market
Segment”, added information about the attribute coresat_orig_strategy_id
of entity Extended Strategy Element.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 5
Version Date Description
14.12 20141125 PMSTA-19069: Changed all references of “From Date”, “Till Date”, and
“Ref. Date” to new labelling "Initial Date”, “Final Date”, and “Reference
Date”.
20141218 PMSTA-18894:
Added new section Check Strategy – Parameters for Check Risk
service.
Added new chapter “Check Risk service”.
20150127 PMSTA-19826: Added new section Compound Order: Execution and
accounting management.
15.06 20150622 PMSTA-20288: Deleted chapter “Check Risk service” and moved most of
its content to the Triple’A Plus Core Compliance Reference Guide.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 6
Contents
1 Introduction ..........................................................................14
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 7
2.5.1 Overview .........................................................................................84
2.5.2 Order Entry screen ............................................................................85
2.5.3 Viewing and modifying orders .............................................................87
2.5.4 Searching orders...............................................................................87
2.5.5 Creating a new Order ........................................................................87
2.5.6 Copying Orders.................................................................................87
2.5.7 Copying and Pasting Child Orders........................................................88
2.5.8 Saving Orders ..................................................................................88
2.5.9 Deleting Orders ................................................................................88
2.5.10 Deleting Sessions..............................................................................88
2.5.11 Initialising Orders from Positions .........................................................89
2.5.12 Valuation - Order Entry Shortcuts........................................................91
2.5.13 Checking Order Strategy ....................................................................94
2.5.14 Customisation ..................................................................................94
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 8
3.5 Objectives and constraints .......................................................114
3.5.1 Allocation process ...........................................................................115
3.5.2 Processing steps .............................................................................115
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 9
7.2.2 Defining Security Profile components .................................................133
7.2.3 Specifying access rights to an operation business function and security ..134
7.2.4 Restricting Administration Rights .......................................................135
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 10
7.11.2 Function "Execution List" ..................................................................158
7.11.3 Example.........................................................................................158
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 11
9.2 Importing Data.......................................................................200
9.2.1 Workflow Process ............................................................................200
9.2.2 Examples .......................................................................................202
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 12
10.4.3 Step 3: Execution eefinition ..............................................................222
10.4.4 Step 4: Granting end user rights .......................................................222
11 Appendix .............................................................................224
11.1 Keyboard shortcuts .................................................................224
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 13
1 Introduction
This manual describes the Triple'A Plus Core orders and productivity features. The manual is
intended for Implementation Consultants and Super Users who need to understand the
business and implementation background.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 14
2 Business functions
The main Orders and Productivity business functions in Triple'A Plus Core are:
Check Strategy
Strategy Reconciliation
Allocate Order
Order Entry
2.1.2.1 Domain
The Check Strategy function uses the following fields.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 15
Field Description
Instrument You can limit both the Check Strategy and Reconcile Strategy functions to a market
Dimension segment or an instrument. The main benefit of this improvement is to allow clients to
reconcile (align) portfolios in a more timely way than was previously possible. All the
market segments/instruments do not have to be reconciled in a single pass.
You can enable this facility by modifying the filter on the instrument dimension
(instr_dict_id) in the domain:
IF (function_dict_id.proc_name IN ("check_strat","strat_recon") OR
function_dict_id.parent_function_dict_id.proc_name IN ("check_strat",
"strat_recon"), {then} &sqlname_c IN ("instrument", "market_segment"))
Notes: In addition to the positions that match the market segment or the instrument
specified in the domain, the system loads all the open cash positions. Note: An ‘Other’
market segment (i.e., one based on instrument lists with Other as their nature) is
required if you run Productivity functions on a particular market segment. For more
information about “Other” market segment, refer to the Triple’A Plus Core Compliance
Reference Guide.
Initial Date Enter the date at which the positions are retrieved. Defaults to current date.
If the user wants to check/reconcile a portfolio against a market segment, the Market
Segment Rebalancing flag can be set:
Inter Market Segment lets you re-balance the content of the market segment specified
in the domain as well as re-balancing the market segment itself in the portfolio.
Intra Market Segment lets you re-balance the content of the market segment specified
in the domain exclusively
Example:
The working hypotheses are the following:
Your portfolio is linked to an Instrument Nature / Currency Asset Allocation and
different Model Portfolios. Each Model Portfolio details the different Stock asset classes
(e.g., Stock/USD, Stock/CHF etc.) of the Asset Allocation.
An objective weight of 30% is assigned to the Stock/CHF asset class.
The corresponding Model Portfolio is composed of three securities with the following
objective weights:
Nestlé 30%
Roche 30%
ABB 40%
At t = 0, the weight of the Stock/CHF asset class is 20%.
You specify the Stock/CHF asset class in the domain.
In the first case, the Market Segment Rebalancing flag is set to Inter Market Segment:
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 16
In the second case, the Market Segment Rebalancing flag is set to Intra Market Segment:
Note: If you select Intra Market Segment, the open cash positions are not loaded.
The Domain screen used by the Check Strategy function contains an extra Strategy tab for
the Strategy parameters. The function uses data from the following fields and checkboxes:
Field Description
Force Link Simulates links between the selected portfolios and strategies when selected (the
field label changes to Forced Links). If you do not select the checkbox (the field label
is Default Links), the strategy comparison is based on existing links.
Default strategy You can check only the linked strategies in a specific range of priorities. Note that as
parameters the priority field is not mandatory, User can leave them blank. These fields are only
taken into account when the Forced Link flag is off (the Force Link checkbox is
Min and Max cleared).
Strategy Date Specifies the date for which the strategies are retrieved. This lets you check, for
example, portfolios with previously defined strategies or compare the positions at an
earlier date with current strategies.
Un-Checked You can view all the portfolio/strategy comparisons (checkbox cleared) or only the
Only unchecked portfolios (checkbox selected). When the checkbox is cleared, the label
says Show All. The label changes to Un-Checked Only when you select the checkbox.
Detail Level Tells the Check Strategy function what level of detail you want to display. Select one
of the following from the drop-down list:
No Detail: Only the Strategy Elements (checked and unchecked) are displayed.
No Check Detail: The Strategy Elements and all the related positions that violate
the strategies are displayed.
All Detail: The Strategy Elements and all the related positions are displayed.
Field Description
Accounting view This is set to the value defined in the parent strategy (Risk Flag checkbox selected or
/ Risk view not). You must set the other risk parameters (i.e., option risk and fund splitting) in
the Domain. This checks risk strategies and accounting position strategies at the
same time.
Merged This consolidation mode is applicable only if the Portfolio Dimension is based on a
consolidation third party used for household (for information about household, see Triple'A Plus
Core User Guide) and if force link is selected.
In Merged mode, all positions will be merged and displayed without portfolio
information.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 17
Field Description
Detailed In Detailed mode, all positions of a portfolio hierarchy will be displayed at parent
consolidation portfolio's level. The positions with same instrument and status but different portfolio
will be shown as different positions and not merged together. The comparison of the
compliance is performed according to the strategies linked to the parent portfolio.
Tiled In Tiled mode, if you generate a comparison for a list of portfolios, Triple'A Plus Core
consolidation displays the different strategies that are linked to each portfolio in the list in the
Check Strategy screen. To display the portfolio information in more detail, double-click
the portfolio row in the Check Strategy screen and choose V i e w D e t a i l s (go to
Actions > View Details or right-click the object in the node column to use the context
menu option).
This facility is available in the Reconcile Strategy and Allocate Order functions.
Merged This consolidation mode is applicable only if the Portfolio Dimension is based on a
Hierarchy third party used for household (for information about household, see Triple'A Plus
consolidation Core User Guide).
In Merged Hierarchy mode, all positions of a portfolio hierarchy will be merged and
displayed at parent portfolio's level. The comparison of the compliance is performed
according to the strategies linked to the parent portfolio.
This mode is applicable only if the Load Hierarchy parameter is set with the value
From Parent or Full. In any case, it is only available for the Check Strategy function.
Detailed This consolidation mode is applicable only if the Portfolio Dimension is based on a
Children third party used for household (for information about household, see Triple'A Plus
Core User Guide).
In Detailed Children mode, the portfolios of a hierarchy are shown as individual
portfolios with their corresponding positions. The comparison of the compliance is
performed for each individual portfolio according to their linked strategies.
This mode is applicable only if the Load Hierarchy parameter is set with the value
From Parent or Full. In any case, it is only available for the Check Strategy function.
Load Hierarchy Triple'A Plus Core could consolidate Positions part of a Portfolio Hierarchy and check
those consolidated Positions with Strategy(ies) linked to the Parent Portfolio. The
consolidation is based on two concepts:
A top-down approach: From Parent.
A bottom-up approach: Full.
The top-down approach – From Parent - permits to load hierarchies based on Parent
Portfolio set at Portfolio Dimension level into the Domain.
The bottom-up approach – Full – permits to load a hierarchy whatever the Portfolio
(Parent or Child, part of a hierarchy) set at Portfolio Dimension level into the Domain.
The Parent/Child relationship between portfolios is based on the Parent Portfolio field
in the portfolio table.
For each portfolio in the Domain, the positions and balance positions of portfolios that
reference the domain portfolio are loaded with the positions of the Parent Portfolio (if
existing).
These Positions loading method are also valid when a List of Portfolios is specified in
the Domain. In this case, each portfolio part of the List is treated as described above
and the positions/balance positions of all Portfolios part of the Hierarchy are loaded.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 18
Field Description
Compute Data Click the down arrow to the right of the field and select one of the following options
from the drop-down list:
On-line: Checks the strategy on-line. The resulting data is displayed on the
screen and is not stored in the database. This is the default option when the
Check Strategy command is run on a single portfolio. With a list of portfolios, the
resulting data is always stored so that the details of the listed portfolios can be
displayed (View Details).
Compute New: Computes a new strategy check and stores it in the database. In
this case, Triple'A Plus Core prompts you for a name for the strategy check it is
storing. You can also make the function display its results by selecting the
Display Result Flag checkbox.
Replace Old: Checks the strategy and replaces an existing one. In this case,
Triple'A Plus Core prompts you for a name for the strategy check it is storing.
You can also make the function display its results by selecting the Display Result
Flag checkbox.
Use: Uses an existing strategy check. In this case, Triple'A Plus Core prompts
you for the name of the strategy check you want to use.
Delete: Deletes a specific strategy check. In this case, Triple'A Plus Core prompts
you for the name of the strategy check you want to delete.
Delete All: Deletes all the strategy checks.
A strategy can be marked as risk strategy. In this case, the risk processing generates the
following positions for the instruments in question:
An accounting position in FX FORWARDS results in two positions in discounts (with the
FX forward as the parent_instr_id), the quantity corresponds to what is paid/received
on the Value Date, the market value is the NPV of the amount at the domain date.
This means that with risk processing positions change and MAY NOT result in the same
lists as before.
For example, if the offsetting cash position of an FX forward was included in an OTHER
or a CASH list, the list would have to be modified to include DISCOUNTS whose
parent_instr_id.nature_e is FORWARD to produce the same result.
An accounting position in FUTURES results in two positions: one in the underlying the
other in an offsetting discount instrument (whose parent_instr_id is the future). As in
the previous case, the position in Discount may be classified in a different list than
before.
Accounting position in OPTIONS or EXOTIC OPTIONS results in two positions: one in the
underlying, the other in an offsetting discount instrument (whose parent_instr_id is the
future). As in the first case, the position in Discount may be classified in a different list
than before.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 19
Field Description
Computation This enumeration defines the scope of the Check Risk service.
mode
Options:
None: The Check Risk service is not launched.
Offline: The Check Risk service is executed by using the pre-computed data for
actual risk values stored in Triple’A Plus; there is no call to internal/external risk
application even if no valid pre-computed data exists.
Online: The Check Risk service is executed; internal/external risk application is
called to calculate and store actual risk value in Triple’A Plus.
Options not yet implemented:
Force Update: The Check Risk service is executed by using the pre-computed data
for actual risk values stored in Triple’A Plus; if no valid pre computed data exists,
the online mode is applied.
Pre Computation: This mode is applicable to call the internal/external risk
application to refresh the risk values element stored in Triple’A Plus. The aim is to
apply it before executing check strategy in "offline" mode.
By launching the Check Strategy function with the Check Risk service, specific risk structures
can be generated: Risk Strategy element and its composition, as well as Risk Value element
and its composition. In the standard packaging, only formats available for WUI purposes are
delivered.
For more information about the Check Risk service, refer to the section about risk
compliance in the Triple’A Plus Core Compliance Reference Guide.
Parameter Description
STRAT_NET_AMOUNT_FLAG Makes Check Strategy use net amounts (flag set to 1) in its comparison
as opposed to market values (flag set to 0), including accrued interest.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 20
2.2 Strategy Reconciliation
The Strategy Reconciliation function lets you reconcile (align) portfolios and strategies by
automatically generating Buy and Sell orders. Triple'A Plus Core generates these order
proposals by comparing portfolios and combinations of Asset Allocation, Model Portfolio and
Recommendation List strategies.
2.2.2 Security
To access the Security features, go to Administration > Security from the main menu. Note
the following points:
From the security point of view, this option is part of the Triple'A Plus Core Productivity
Module.
For users to be able to access this new function, you must add an occurrence to their
Function Security Profile. To do this:
Go to Administration > Security > User.
Select the User whose profile you want to change from the Select User screen
and click Modify button.
In the Modify User screen, complete the Function Security Profile field as
necessary (click the Browse button beside the field and choose the Function
Security Profile you want).
For users to be able to access the Strategy Reconciliation function, then, you must make
sure they have the correct Function Security Profile associated with their user profiles.
Secondly, the Function Security Profile must include the functions you want to authorise
them to use. In this case, you want to authorise them to use the Strategy Reconciliation
function. Sections Assigning a Function Security Profile and Defining Security Profile
components describe how to associate a Function Security Profile with a user and, if
necessary, make sure the Function Security Profile authorises the use of the function in
question (in this case Strategy Reconciliation).
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 21
Attribute Values Def. Description
Create_f 0: Disables 1 Users can access the Strategy Reconciliation (and Allocate Order)
the Save All function but cannot currently confirm any operations that are
button. generated. To enable confirmation, you must set the create_f
attribute in the FUNC_SECU_PROF_COMPO entity.
1: Enables
the Save All
button.
Update_f 0: Disables 1 Similarly, to allow users to modify the details of existing orders you
the Modify must set the update_f attribute in the FUNC_SECU_PROF_COMPO
button. entity.
1: Enables
the Modify
button.
To limit access to the different operation states in the Strategy Reconciliation function, you
must set the Min and Max Status attributes in the corresponding FUNC_SECU_PROF_COMPO
record. Note that it also defines the statuses available in the Strategy Reconciliation domain
screen (Order Status field).
Example:
Attribute Value
Function Security Profile AAA_SUPER_USER (for example)
Entity NULL
Type <None>
Sub-Type <None>
Delete flag No
All the users with the AAA_SUPER_USER Function Security Profile have the following rights:
Run the Strategy Reconciliation function
Generate order proposals with all the statuses between Simulation and Order
Modify the order proposals generated by Strategy Reconciliation
Confirm all the order proposals
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 22
Strategy Reconciliation uses the same parameters as the Strategy Check function plus some
additional ones.
2.2.3.2 Strategy
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 23
Total Model 100% 20% 100% 30%
Portfolio
In the second case, the Market Segment Rebalancing flag is set to Intra Market Segment:
Note: If you select Intra Market Segment, the open cash positions are not loaded.
Field Description
Global Order
Gen. Global Generates global (or block) orders (see section Block Order/Child Order relationship) in a
Orders book portfolio. For more details on Creating Block Orders, see section Maintaining Block
Orders.
Refer to section Order administration for more information on the global order concept
(known as a Block Order in Triple'A Plus Core).
Note that Triple'A Plus Core does not generate global orders when the domain is based
on a single portfolio.
Book If you selected the Gen. Global Order option in the previous field, enter the book
Portfolio portfolio in which you want to save the global orders.
Saving Order
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 24
Field Description
Generation
Nature
This parameter allows you to validate proposed orders before transforming them into
actual operations (Event/Operation to be confirmed).
If you choose A u t o m a t i c from the drop-down list, it saves operations directly, allowing
you to enable subscription and send them to external order processing systems.
For the C h e c k a n d P u b l i s h value, if all orders are valid, Triple'A Plus Core saves the
operation directly. If, however, at least one order is invalid, you must validate the
proposed orders before transforming them into actual operations. For more information,
refer to section Check and Publish Order Generation.
Order Status Choose the status of the generated operations from the drop-down list.
Rules
Buy Rule Enter the name of the rule (i.e., the set of default values that you want to apply to the
generated buy orders by default. You can click the Browse button to browse for the rule.
Sell Rule Enter the name of the rule (i.e., the set of default values) (or click the Browse button to
browse for it) that you want to apply to the generated sell orders by default.
General Parameters
Minimum You can set a minimum transaction amount and currency in both the Strategy
Order Reconciliation and Allocate Order functions. The reconciliation process will not generate
Amount and any order proposals that have an amount lower than the one you enter in the domain.
Currency This avoids generating small orders.
Minimum You can set a minimum percentage for the transaction amount in relation to the portfolio
Order market value. This avoids generating small orders.
Percentage
Minimum order amount and minimum order percentage work together in an OR
conjunction. If both criteria are set, orders with too small amount or too small
percentage will be suppressed.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 25
Field Description
Cash This parameter can take the following values:
allocation
nature Value Description
Default The process analyzes the field "negative cash" for each portfolio, to
apply the specific behaviour.
Permitted: Portfolio could have negative cash
Not permitted: equivalent at cash allocation nature = No Negative
Cash, Portfolio couldn't have negative cash
Permitted only in hierarchy: equivalent at cash allocation nature =
No Global Negative Cash, Portfolio in a hierarchy could have
negative cash if the global cash is positive.
No The function checks that the global cash position in the portfolio
Negative currency is positive at the end of the processing. If the reconciliation
Cash generates orders that lead to a negative global cash position, the last
buy orders are removed or truncated (according the system parameter
NO_NEGATIVE_CASH) until a positive global cash position is reached. The
portfolio group rebalancing must use this parameter's No Negative Cash
value.
No Global The same behaviour is applied as for "No Negative Cash", but only for
Negative Portfolio Hierarchy(ies).
Cash
Important Note:
The Global Cash is the sum of whole Cashes; that means that we could have for a
portfolio, some negative Cashes and other positive Cashes, but the "No Negative Cash"
process, always take in account the sum of whole Cashes.
Portfolio Group
Buy Sorting This rule uses a portfolio classification. In the case of a strategy rebalancing with a Full
Rule Load Hierarchy or a Load Hierarchy From Parent, the buy orders initially proposed for the
Parent Portfolio are dispatched to the child portfolio according to the priority defined in
this classification.
Sell Sorting This rule uses a portfolio classification. In the case of a strategy rebalancing with a Full
Rule Load Hierarchy or a Load Hierarchy From Parent, the sell orders initially proposed for the
Parent Portfolio are dispatched to the child portfolio according to the priority defined in
this classification. This allows users to create special rules (e.g., to perform sales from
the main portfolio first and then from the low tax portfolios).
Consolidation
In Tiled mode, if you generate a comparison for a list of portfolios, Triple'A Plus Core displays
the different strategies that are linked to each portfolio in the list in the Strategy
Reconciliation screen.
To display the portfolio information in more detail, double-click the portfolio row in the
Strategy Reconciliation screen and choose V i e w D e t a i l s (go to Actions > View Details or
right-click the object in the node column to use the context menu option).
This facility is available in the Allocate Order and Check Strategy functions.
Load Hierarchy
The Strategy Reconciliation permits to:
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 26
automatically consolidate the positions of a portfolio and all its child portfolios in the
hierarchy
compare these consolidated portfolios with the strategies associated with the parent
portfolio
The consolidation is based on two concepts:
A top-down approach: From Parent.
A bottom-up approach: Full.
The top-down approach – From Parent - permits to load hierarchies based on Parent Portfolio
set at Portfolio Dimension level into the Domain.
The bottom-up approach – Full – permits to load a hierarchy whatever the Portfolio (Parent
or Child, part of a hierarchy) set at Portfolio Dimension level into the Domain.
The Parent/Child relationship between portfolios is based on the Parent Portfolio field in the
portfolio table.
For each portfolio in the Domain, the positions and balance positions of portfolios that
reference the domain portfolio are loaded with the positions of the Parent Portfolio (if
existing).
These Positions loading method are also valid when a List of Portfolios is specified in the
Domain. In this case, each portfolio part of the List is treated as described above and the
positions/balance positions of all Portfolios part of the Hierarchy are loaded.
To create the parent/child relationship between portfolios, enter the name of the parent
portfolio (or browse for it) in the Parent Portfolio field in the Create/Modify Portfolio screen
(i.e., the Portfolio table).
If you select the Load Hierarchy, the positions and balance positions of the child portfolios
are loaded with the parent(s).
This loading method is also valid when you specify a list of portfolios in the Domain. In that
case, Triple'A Plus Core treats each portfolio in the list as a parent portfolio and loads the
positions/balance positions of all the child portfolios.
When you run Reconcile Strategy, Triple'A Plus Core generates Buy and Sell operations and
distributes them between the hierarchy head portfolio and its related strategies in
accordance with the reconciliation process. This process is further detailed in chapter
Portfolio Group Rebalancing.
2.2.4 Processing
Using the parameters described above, the Financial Server performs the following
processing:
1. Loads the strategies (Asset Allocations, Model Portfolios, Recommendation Lists, and
Constraints) defined by the domain's Strategy and Strategy Link parameters. Triple'A
Plus Core only reconciles the portfolio according to one
Allocation/Model/Recommendation hierarchy. In fact, the portfolio cannot be reconciled
using different strategy hierarchies at the same time. When there is more than one
strategy hierarchy, Triple'A Plus Core refers to the strategies' Link Natures and Priorities
to determine the strategy to use:
The hierarchy defined with a Strategy nature is used for the reconciliation. If
there is no top strategy with a Strategy Link Nature, then Triple'A Plus Core
selects a hierarchy whose top strategy is defined by the Strategy & Benchmark
strategy nature.
When there is more than one hierarchy, the one with the highest priority is
chosen.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 27
Remember that if a strategy hierarchy is not used for reconciliation, it is used
for checking. This includes the operations generated by the reconciliation
process.
The check_strat_e field (default value=0) has been added to the Extended
Operations entity. It checks if the order proposal violates a portfolio constraint in
Strategy Reconciliation.
For more information about priorities and link natures, refer to the Triple’A Plus
Core Compliance Reference Guide.
Constraint nature Strategies are never used for reconciliation (i.e., to align
portfolios), only for checking purposes.
2. The actual positions of each portfolio in the list are loaded and valued.
3. Triple'A Plus Core generates individual market orders to reconcile each portfolio with the
objective. The resulting data is saved to the following working tables:
Extended Strategy Link
Extended Strategy Element
Extended Operation
These tables are working tables. This means that the Buy and Sell orders generated by
the allocation are not saved to the Operation, Position and Balance Position tables.
4. This process is repeated for each portfolio. Finally, if required, the global orders are
computed and saved in the working table.
5. The resulting data is then consolidated and formatted before being returned to the client
application. The three structures are displayed to the user: Extended Strategy Link,
Extended Strategy Element and Extended Operation.
Note:
Locked positions on securities and Risk positions (i.e., the result from the risk engine,
underlying positions, etc.) are never sold. This means that the ‘Short selling' of securities is
not authorised. This checking is based on the available quantities (i.e., it does not take
locked positions and underlying positions into account). These positions, however, are taken
into account when Buy operations are generated. For Triple'A Plus Core to recognise the
locked position as ‘locked', you must specify a Type in the operation's locking parameters
(see the Triple’A Plus Core Operations, Positions, and Fusions Guide. Extended Strategy
Elements contain the lock type id (not mandatory) and not the lock nature. This means that
you must specify a locking type to process the locked positions correctly during order
generation.
If you specify a locking type with sell_position_f set to 0, then it reduces the available
quantity accordingly.
If you specify a locking type with sell_position_f set to 1, then it is included in the available
quantity.
On the client side, you can then do one of the following after the reconciliation:
Close the screen without saving the operation.
Modify an operation and simulate the impact on positions.
Save all or part of the proposed operation.
You can also define complex payment instructions that debit and credit cash accounts as part
of the generated operations. For further information on creating complex payment
instructions, see the Triple’A Plus Core Script Language Reference Guide under the
GET_BEST_OBJECT keyword.
Note: If you perform a Strategy Reconciliation with the cash allocation nature set to No
Negative Cash (*) on a specific market segment, you must start with the over-weighted
segments. Otherwise, enough securities may not be bought to comply with the strategies.
For example, say you have 2% of cash and a market segment that has a target of 25%. If
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 28
you have 15% in this market segment, you can only buy 2% and finish with a global market
value of 17% instead of the 25% required. If you first process an over-weighted market
segment, you will receive cash from the selling positions which will be used to buy 10% and
comply with the 25% target.
(*) Or the cash allocation nature set to Default and a portfolio with Negative Cash = No
Permitted.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 29
2.2.5.1 Main Algorithm
First, the initial cash amount in the portfolio currency was computed: the sum of all the cash
account amounts before reconciliation, expressed in the portfolio currency. This amount is
stored in a counter that is used throughout the process if the cash allocation nature is set to
No Negative Cash(*).
(*) Or the cash allocation nature set to Default and a portfolio with Negative Cash = No
Permitted or Permitted only in hierarchy. See section Order Generation tab.
In this paragraph when we only mention "if the cash allocation nature is set to No Negative
Cash", we always include the case where the cash allocation nature is set to Default and a
portfolio with Negative Cash = No Permitted or Permitted only in hierarchy.
Sorting
For each primary market segment that is linked to a recommendation list, evaluate the
difference between the objective defined in the asset allocation for this market segment and
the positions in the market segment.
For each primary market segment that is linked to a model portfolio, evaluate the difference
between objective weight and position weight for all the instruments in the model portfolio
and all the instruments held in the portfolio.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 30
Once these evaluations are finished, the system sorts the primary market segment that uses
a recommendation list and the instruments evaluated above from the most over-weighted to
the least over-weighted that are out of margin. It then sorts them from the most under-
weighted to the least under-weighted that are out of margin.
See the example further on.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 31
To sum up, orders are generated to be in-line with the strategies. If the cash allocation
nature is set to No Negative Cash, the system does not generate orders that lead to a
negative global cash amount.
Note: Importance of the priority in order generation
Each objective (instrument objective or market segment objective) has a priority (field
priority_n). It allows users to prioritise the purchasing of some instruments instead of others
(e.g., if there is not enough cash in the portfolio). If priority sets have the same value, the
processing takes into account the degree of deviation from the objectives. The highest
priority is 1.
Before taking into account any instrument objective, the system will first take the market
segment with the highest priority. As explained above, if two market segments have the
same priority, the one with the highest difference between the actual weight and the
objective weight will be chosen.
When this market segment is found, the system will sort the instruments from the highest
priority to the lowest, and use that sorting to create the orders. Then, the next market
segment that has the highest priority is taken, and so on.
In a market structure composed of a hierarchy of market segments, the only priority
information taken into account is the one of the lowest level. The priorities set to market
segments that are parents of other market segments are not used.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 32
Recommendation List example
In the context of the Strategy Reconciliation, you can use Recommendation List strategies,
Model Portfolio strategies, or a combination of these strategies. However, in terms of
strategy, the difference between the Strategy Reconciliation and the Check Strategy
functions is that you can only use Recommendation Lists to reconcile portfolios with
strategies.
The Recommendation natures depend on the next two system parameters:
OLD_RECOMLIST_PROCESS
RECOM_LIST_PRIORITY
The following section describes the processing that takes place for the possible values of
those two parameters.
Parameter Description
ORDER_ALLOC_RULE Rule used to choose the sorting order of the allocation when a
sell order is split up among several opened positions. The
permitted values are:
'0' = 'FIFO'
'1' = 'LIFO'
'2' = 'High Cost'
'3' = 'Low Cost'.
‘4' = Sub-position nature (ascending), from Triple'A Plus
Core R3.50.
‘5'= High Quantity
ORDER_BUY_ALLOC_RULE Rule used to choose the sorting order of the allocation when a
buy order is split up and distributed among several child
portfolios when using the load_hierarchy flag. The permitted
values are:
'0' = 'Current'
'1' = 'High Cash' allocate orders on portfolios holding the
highest consolidated cash balance
When this parameter is set to 0, no specific child portfolio is
proposed in the case of purchases.
GLOBAL_ORDER_LOG_ID_RULE Specifies the ‘logical id rule' used to compute the global order.
It can be different from the “logical id rule” of the individual
portfolios (see section Creating Block Orders for more details).
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 33
Parameter Description
MAX_CHILD_ORDERS_PER_BLOCK In Allocate Order and Reconcile Strategy you can specify in the
domain that you want to bulk individual orders. For more
information refer to the description of the domain and
application parameters (i.e., GLOBAL_ORDER_LOG_ID_RULE).
2.2.6.1 Examples
ORDER_ALLOC_CASH_COMP
The following example illustrates the use of the ORDER_ALLOC_CASH_COMP parameter:
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 34
Portfolio Cash Actual Effective Amount (after In the portfolio
Accounts Amount reconciliation) currency (EUR)
EUR1 2,500 1,500 1,500
OLD_RECOMLIST_PROCESS
If the parameter OLD_RECOMLIST_PROCESS is set to '0':
Value Description
Sell An instrument with the Sell recommendation is sold in every case, irrespective of the market
segment objective.
Reduce An instrument with a Reduce recommendation is only sold if the market segment weight is
still above its objective weight after the Sell recommendations have been processed.
Keep Instruments with a keep recommendation are never sold or bought through the reconciliation
process.
Buy An instrument with the Buy recommendation is always bought if the objective is not met and
the notional instrument or the recommendation list is below the weight of the objective.
Increase An instrument with the Increase recommendation is only bought if an objective is not met
(underweighted), provided that there were already positions in this instrument before the
reconciliation.
Neutral An instrument with a neutral recommendation is processed last after all the instruments with
either Reduce, Buy or Increase recommendations are dealt with. This recommendation allows
the instrument to be bought or sold in order to meet the objective set for the market
segment (recommendation list) or notional instrument. Using this recommendation allows
banks implement politics that focus on attaining the market segment or notional instrument
objectives.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 35
Buy
Neutral
The limit is always defined as a percentage of the market value of the whole portfolio.
You cannot define a margin at the strategy/list or strategy element/recommendation
level.
Example:
To illustrate the last three points, consider the following Recommendation List associated
with the market segment STOCKS – CHF:
2 Zurich Sell
3 UBS Sell
4 Migros Buy
5 Nestlé Buy
6 Novartis Reduce
7 SBS Neutral
8 Swatch Reduce
Case 1: The current weight of the market segment is 50% and the objective (or target)
weight is 35%. Triple'A Plus Core deals with the Sells and Reduces first. In this case, the
Market Segment Objective is reached and Triple'A Plus Core looks no further:
Case 2: The current weight of the market segment is 50% and the objective weight is 35%.
In this example, the Current Weight of the UBS instrument is reduced to 1% as for Swatch.
Since the objective weight is not reached when the Sells and Reduces are performed,
Triple'A Plus Core looks first at the highest ranking Buy to meet the Market Segment
Objective:
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 36
Reco. Priority Instr. Curr. Order Mkt Sgt Comment
Nature Weight % Ptf Result
Sell 2 Zurich 5% 5% 45% Sell recommendations are
always processed
Sell 3 UBS 1% 1% 44%
Case 3: The current weight of the market segment is 30% and the objective weight is 35%.
In this case, Maximum Weights are also specified:
Case 4: The current weight of the market segment is 30% and the objective weight is 35%.
Again, Triple'A Plus Core deals with the instruments according to the priority of their
Recommendation Natures (as described above) until the Market Segment Objective is
reached. In this case, the objective is reached with the Buy of Migros shares:
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 37
Reco. Priority Instr. Curr. Order Mkt Sgt Comment
Nature Weight % Ptf Result
Increase 1 Roche 2% 18% 35% Perform purchases
according to priority
Case 5: The current weight of the market segment is 30% and the objective weight is 35%.
In this case, Maximum Weights are specified:
Note: The above process applies to Recommendation Lists as well as notional instruments.
In the case of notional instruments, replace Market segment by the notional instrument
objective.
If the parameter OLD_RECOMLIST_PROCESS is set to ‘1’:
Value Description
Sell An instrument with the Sell recommendation is sold in every case, irrespective of the market
segment objective.
Reduce An instrument with a Reduce recommendation is only sold if the market segment weight is
still above its objective weight after the Sell recommendations have been processed.
Instruments with a Reduce recommendation can also be sold if the market segment is at, or
below, its objective weight. In this case, there must be Buy or Increase recommendations for
the market segment that allow Triple'A Plus Core to achieve the objective weight by
generating Buy orders for the instruments in question.
The Maximum Weights of Buys and Increases are taken into account to determine the Sell
quantity.
Keep For information purposes only. Triple'A Plus Core does not perform any particular processing
for this value.
Buy An instrument with the Buy recommendation is bought only if a market segment objective is
not met once the instruments with a Sell and Reduce recommendation have been sold.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 38
Value Description
Increase An instrument with the Increase recommendation is bought only if a market segment
objective is not met once the instruments with a Sell and Reduce recommendation have been
sold, provided that there were already positions in this instrument before the reconciliation.
2 Zurich Sell
3 UBS Sell
4 Migros Buy
5 Nestlé Buy
6 Novartis Reduce
7 SBS Increase
8 Swatch Reduce
Case 1: The current weight of the market segment is 50% and the objective (or target)
weight is 35%. Triple'A Plus Core deals with the Sells and Reduces first. In this case, the
Market Segment Objective is reached and Triple'A Plus Core looks no further:
Reco. Rank Instr. Curr. Weight Order % Ptf Mkt Sgt Result
Nature
Sell 2 Zurich 5% 5% 45%
Increase 1 Roche 0% - -
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 39
Reco. Rank Instr. Curr. Weight Order % Ptf Mkt Sgt Result
Nature
Buy 5 Nestlé 2% - 35%
Case 2: The current weight of the market segment is 50% and the objective weight is 35%.
In this example, the Current Weight of the UBS instrument is increased to 15%. Since the
objective weight is not reached when the Sells and Reduces are performed, Triple'A Plus
Core looks first at the highest ranking Buy to meet the Market Segment Objective:
Reco. Rank Instr. Curr. Weight Order % Ptf Mkt Sgt Result
Nature
Sell 2 Zurich 5% 5% 45%
Case 3: The current weight of the market segment is 45% and the objective weight is 35%.
In this case, Maximum Weights are specified:
Case 4: The current weight of the market segment is 20% and the objective weight is 35%.
Again, Triple'A Plus Core deals with the instruments according to the priority of their
Recommendation Natures (as described above) until the Market Segment Objective is
reached. In this case, the objective is reached with the Buy of Migros shares:
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 40
Reco. Nature Rank Instr. Curr. Order % Mkt Sgt Result
Weight Ptf
Sell 2 Zurich 5% 5% 15%
Case 5: The current weight of the market segment is 20% and the objective weight is 35%.
In this case, Maximum Weights are specified:
Note: You can associate a Recommendation List with a particular market segment if you
want. If a Recommendation List includes one of the market segments of the asset allocation
used for the reconciliation, it is only used for that particular segment. However, if there is a
global Recommendation List for the whole portfolio, Triple'A Plus Core takes it into account
when it reconciles a market segment if the segment is referenced in the list. It does this
even if the list is not explicitly linked to the segment. This is a major difference between the
Recommendation List and the Model Portfolio. The Model Portfolio must be attached to one
market segment of the asset allocation for it to have an effect on that particular market
segment.
RECOM_LIST_PRIORITY
If the parameter RECOM_LIST_PRIORITY is set to '1', this setting has a different behaviour on
the following two scenarios:
When a market segment is over-weighted the system will sell positions to meet the
asset allocation target, even with an Increase recommendation nature.
When a market segment is under-weighted the system will buy positions to meet the
asset allocation target, even with a Reduce recommendation nature.
In both cases, Increase and Reduce will be treated by the system as a Neutral
recommendation nature.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 41
Example:
To illustrate the previous points, consider the following case using Notional Instrument,
Surveyed Securities List, and Trading Constraint:
Settings:
System Parameter: RECOM_LIST_PRIORITY = “1”
Portfolio: SHK_PTF04.1_7051 with the following operations:
Strategies:
Surveyed Securities List SHK_7051_SSL4 with the following recommendations and
Max. Weights:
Model Portfolio SHK_7051_MP4.1 with the following asset allocation targets and
margins. This is the only strategy linked to the previously described portfolio.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 42
On the Select Instrument List Composition screen, SHK_7051_LIST is in the List fields:
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 43
Instrument Quantity Price Interest Market Real Objective
Value Weight Weight
ABB 500 300 150,000.00
Step1: Once the Strategy Reconciliation Function has been launched, we get the following
generated orders under format DEF_STRAT_EXT_OP:
At the first look, we see now that although the market segment is over-weighted with
Notional Instrument SHK_7051_NI_CHF, the system will sell positions ABB and NESTLE to
meet the asset allocation target, even with an Increase recommendation nature. However,
note that NESTLE Sell Order has been automatically set as “Unconfirmed” since it has
transgressed the Trading Constraint SHK4.1_noNestleSell. On the other side, the system
behaves as usual for position CONF.SUIS.09, with a Reduce Recommendation, by selling the
whole position as expected.
Step2: The following screen shows a more detailed view of the different flows generated
from the previous rebalancing. It is based on the format DEF_STRAT_REC_ELEM.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 44
As you can see, without NESTLE Trading Constraint, the objective could have been reached
by respecting Max. obj. set into SSL and the margins specified in the MP. See next screen
without NESTLE Trading Constraint.
Step3: Finally, by launching the Valorisation Function, we can observe that the parameter
Alloc. Nature set to “No Negative Cash” set into the Domain Strategy Reconciliation is still
handled properly as illustrated in the next screen, where the total Market Value for cash
position (CHF 12.20) is still positive.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 45
It may happen, such in our example, that a recommendation competes with a Modelling
Constraint on instruments in market segment managed by a Recommendation List or a
Surveyed Securities List. In this case, the client constraint takes priority and the
recommendation is ignored.
The parameter RECOM_LIST_PRIORITY is set to '0'
This is the default behaviour to reconcile strategies when using recommendations. If the
asset allocation objective weight is not reached, the different recommendations available are
correctly applied.
Example:
To illustrate this situation, consider the previous example described with Parameter set to
'1', with the same settings and let's compare the expected result.
Step1: Once the Strategy Reconciliation Function has been launched, we got the following
generated orders under format DEF_STRAT_EXT_OP:
At the first look, we see now that although the market segment is over-weighted with
Notional Instrument SHK_7051_NI_CHF, the system, inversely to the previous example, will
not sell positions ABB and NESTLE, as the priority goes to the recommendations that are set
to Increase. On the other side, the system behaves as usual for position CONF.SUIS.09, with
a Reduce Recommendation, by selling the whole position as expected. For the expected
objective weight for MICROSOFT, the system we simply reach the target as no
recommendation are available for that security.
Step2: The following screen shows a more detailed view of the different flows generated
from the previous rebalancing. It is based on the format DEF_STRAT_REC_ELEM.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 46
Step3: Finally, by launching the Valorisation Function, we can observe that the parameter
Alloc. Nature set to “No Negative Cash” set into the Domain Strategy Reconciliation is still
handled properly as illustrated in the next screen, where the total Market Value for cash
position (CHF 12.81) is still positive.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 47
Recommendation list 1 (of Stock-USD)
Buy Microsoft 2
Increase Broadvision 1 12 %
Buy IBM -
Sell Nestlé -
Buy Alusuisse 2
Increase Novartis 1
Reduce Nortel -
Buy Amazon -
Bond 2 20 %
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 48
Instrument Objective Weight
Bond 3 50 %
The weights do not take into account the objective weight of the Bond-CAD objective. Of
course, this will be taken into account in the reconciliation process.
In this example, it is supposed that the positions are the following before reconciliation:
Broadvision 10 %
IBM 10 %
DEC 5%
Nortel 10 % Stock-CAD
Amazon 9%
Novartis 4% Stock-CHF
Alusuisse 4%
Bond 1 1% Bond-CAD
Bond 3 2%
Bond 4 2%
Following the steps described in section Individual order computation for this specific
example:
Step 3: Sorting
After this order, the situation is as follows:
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 49
Market Position Objective Difference Margin
segment
Stock-CAD 19 % 15 % +4% 5%
Stock-CHF 8% 20 % - 12 % 5%
Bond 2 - 3% -3% 1%
Bond 4 2% - +2% 1%
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 50
The following orders are generated:
Buy 2% Broadvision
Buy 3% Microsoft
The priority is on Broadvision but it has a maximum weight of 12%. Since we started with a
position of 10 %, we can only buy 2%. The second order is generated to be in-line with the
strategy. Since we are under-weight by 5 %, an order of 3 % is generated.
The Cash counter is then equal to - 0.5 %. This means that the last order must be truncated
in the case where there is a cash allocation nature equal to “No Negative Cash”(*). Then the
order is changed to:
Buy 2.5% Microsoft
The strategy reconciliation process is then finished.
If the cash allocation nature is set to Default, the order is not changed and the reconciliation
continues. In practical terms, this means that the following orders are generated:
Buy 3.5% Bond1
Buy 3% Bond2
The final cash position equals - 7%.
Note: In this example, fees and taxes were not taken into account. It is worth remembering
that they are included (if defined by default value) in the evaluation of the cash counter
when the Buy orders have been generated.
(*) Or the cash allocation nature set to Default and a portfolio with Negative Cash = No
Permitted or Permitted only in hierarchy. See section Order Generation tab.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 51
You can specify a global quantity to buy or sell. Triple'A Plus Core then helps you split
the global quantity across portfolios by proposing allocation rules:
pro rata of the portfolio's market value
pro rata of the available quantities
equal percentage
Alternatively, you can use simple allocation rules that determine a resulting global
quantity for the order:
sell all the existing positions in a security
buy or sell in each portfolio up to a predetermined percentage of the portfolio
market value
specify the percentage of a market segment in each selected portfolio market
value
switch instruments in a particular market segment
In the last case, the proposed objectives are simple. They do not cover the complex
objectives that you can specify using the various types of investment strategies (asset
allocations, model portfolios, constraint sets, recommendation lists) defined in the system.
The different kinds of objective are described below.
2.3.2 Security
There are several points to note about this function:
From a security point of view, this function is part of Triple'A Plus Core's Productivity
Module.
To allow access to the Security function, you must add an occurrence to the user's
Function Security Profile.
For users to be able to access the Allocate Order function, then, you must make sure they
have the correct Function Security Profile associated with them.
Secondly, the Function Security Profile must include the functions you want to authorise the
users to use. In this case, you want to authorise them to use the Allocate Order function.
Sections Assigning a Function Security Profile and Defining Security Profile components
describe how to associate a Function Security Profile with a user and, if necessary, make
sure the Function Security Profile authorises the use of the function in question (in this case
Allocate Order).
Users can access the Allocate Order (and Strategy Reconciliation) functions but cannot
currently confirm any operations that are generated.
update_f 0: Disables the 1 Similarly, to allow users to modify the details of existing
Modify button. orders you must set the update_f attribute in the
FUNC_SECU_PROF_COMPO entity.
1: Enables the
Modify button.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 52
To limit access to the different operation states in the Strategy Reconciliation function, you
must set the Min and Max Status attributes in the corresponding FUNC_SECU_PROF_COMPO
record. It also defines the statuses available in the Strategy Reconciliation domain screen
(Order Status field).
Example:
Attribute Value
Function Security Profile AAA_SUPER_USER (for example)
Entity NULL
Type <None>
Sub-Type <None>
Delete flag No
All the users with the AAA_SUPER_USER Function Security Profile have the following rights:
Run the Strategy Reconciliation function
Generate order proposals with all the statuses between Simulation and Order
Modify the order proposals generated by Strategy Reconciliation
Confirm all the order proposals
Field Description
Portfolio Enter the name of the portfolio or list of portfolios in which you want to generate the
Dimension Buy/Sell orders.
Initial Date Enter the date at which the valuation is made to allocate the order (i.e., to determine
the current quantities, market values, etc.). Also, the operation and accounting dates of
the orders generated are based on this date.
Field Description
Check Strategy Also used for the Strategy Reconciliation function.
Indicates if the other strategies linked to the portfolio must be checked.
The minimum and maximum link priorities are also used in the strategy check.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 53
Field Description
Check Trading Also used for the Strategy Reconciliation function.
Constraint
Allows you to check or bypass checking the Trading Constraints when you
generate orders through order allocate.
Field Description
Gen. Global Order Also used for the Strategy Reconciliation function.
(Generate Global Gen. Global Orders: creates a global order in a book portfolio.
Order) No Global Order: it does not create global orders in a book portfolio.
See chapter Order administration for more details about the notion of global
orders (called a Block Order in Triple'A Plus Core).
Global orders are not generated when the domain is based on only one portfolio.
Combined Order: creates a combined operation that links all other generated
operations by Allocate Order Function.
See chapter Order administration for more details about the notion of combined
order (called a Combined Order in Triple'A Plus Core).
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 54
2.3.3.4 Order Details tab
Now click the Order Details tab and complete the fields described below:
Field Description
Alloc. Nature On the Allocation Parameter tab, select the type of allocation objective from the
drop-down list:
Global Order Qty
Instr. Order Quantity
Instr. Res. Qty
Instr. Order % of Ptf.
Instr. Res. % of Ptf.
MktSgt. Res. % of Ptf.
Switch Instr.
Cash Res. % of Ptf.
Ptf. Order Qty
Ptf. Res. Qty
Conversion
Arbitrage
Combined Sell/Buy
Instr. Res. % MktSgt.
Instr. Res. % StratMktSgt.
The meaning of these values is explained in section Allocation nature.
The type of information (and hence the data entry fields displayed) requested by
the Domain depends on the value of this attribute.
Order Nature For some Allocation Natures, you can specify the kind of order you want to generate
in the Order Nature field:
Buy/Sell
Buy
Sell
The Buy and Sell options are only valid for the following Order Allocation Natures:
Instrument Resulting Quantity
Instrument Resulting % of Portfolio
Market Segment Resulting % of Portfolio
Cash Resulting % of Portfolio
Portfolio Resulting Quantity
This lets you restrict the order proposals to buy or sell operations.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 55
Field Description
Obj. Weight Objective Weight
Enter the global objective weight you want to apply. This field is used with the
following natures:
Market Segment Resulting %
Cash Resulting %
+ /- Enter the percentage margin to apply. The global objective margin is used with the
following natures:
(Objective
Weight Margin) Market Segment Resulting %
Cash Resulting %.
Market Segment Enter the Market Segment or browse for it. This information is only used with the
Market Segment Resulting % and the Switch Instrument natures.
Cash This panel, with its Alloc. Nature, Obj. Weight and Cash Curr. field is currently not
Management used. Refer to the ORDER_ALLOC_CASH_COMP system parameter for more details on
panel cash management.
You can click Load button to provide a Recommendation List for the following Allocation
Natures instead of manually entering securities:
Cash Resulting % of Portfolio
Switch Instrument
Market Segment Resulting % of Portfolio.
Note on Quantity Allocation Nature:
All the order distribution methods use the Portfolio Synthetic Data (portfolio_synthetic)
parameter that is stored in the database. This parameter must have been previously set. You
must store the corresponding synthetic data using the Synthetic Administration function
before you run the Allocate Order function with this Quantity Allocation Nature.
The Allocate Order function is based on the final market value of the portfolio that contains
the synthetic data. The synthetic data is valid for a pre-defined period. This period is
specified by the SYNTHETIC_VAL_PERIOD system parameter.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 56
Percentage Margin
Maximum Percentage
Limit Quote
Quote
Order Quote
Currency
Stop Quote
Order Nature (Market, Limit, etc.)
Sub-Nature
Limit Date
Validity
Round Lot Quantity
Minimum Order Quantity
To edit a field, click once in the column to select the field, then click again in the field. The
field is then enabled and you can enter a value directly or, in some cases, browse for a value
or select one from a drop-down list.
You can specify default values because the format is based upon the Extended Strategy
Element structure. Also, you can specify input controls. It is useful to check that the order
details are entered properly. For example, the following input control script checks that a
limit price is set if the order nature is limit.
IF (actual_order_nat_e=2 AND order_quote_n=NULL,MSG(WARNING, NULL, NULL, NULL, “Limit
order without a limit price”),
{else} IF (order_quote_n<>NULL AND actual_order_nat_e<>2,MSG(WARNING, NULL, NULL,
NULL, “Limit price without a limit nature”),
{else} IF (actual_order_nat_e=3 AND stop_quote_n=NULL,MSG(WARNING, NULL, NULL,
NULL, “Stop order without a stop price”),
{else} IF (stop_quote_n<>NULL AND actual_order_nat_e<>3,MSG(WARNING, NULL,
NULL, NULL, “Stop price without a stop nature”),
)
)
)
)
Note: The column headers that actually appear on the screen depend on the option you
selected for the Alloc. Nature field on the Allocation Parameter tab. The following table shows
which attributes are mandatory per Allocation Nature.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 57
order_qty_
recom_nat
Portfolio_i
lot_qty_n1
obj_weigh
obj_weigh
obj_weigh
max_weig
result_qty
ht_cont_n
t_marg_n
op_nat_e
t_cont_n
round_
inst_id
t_n
_e
n
d
Global Order Qty X X X X
MktSeg. Res. % of X X X X
Ptf.
Switch Instr. X X X X X
The first column shows the available options in the Alloc. Nature drop-down list on the
Allocation Parameter tab. The ticked columns are the attributes that can be used with the
Allocation methods. The order_quote_n attribute acts as Limit Quote.
The Round Lot Quantity setting overrides the Round Lot Quantity set at Instrument level.
You can also override the last quote available for a security in the database by setting the
Current Quote (current_quote_n) and the Current Quote Currency (curr_quote_curr_id).
Parameter Description
Instrument Instrument or Security for which the order is generated.
Security Common to all the Order Allocation natures.
Quantity Specific to the natures where the order quantity, or the resulting quantity, has
(order or resulting) to be specified.
Round lot Specific to the natures where the order quantity, or the resulting quantity, is
not specified.
Minimum order
quantity
Buy/Sell Specific to the natures where the order quantity or percentage is specified.
Portfolio Specific to the natures where an individual portfolio is specified for each order.
For each nature, the list is, in fact, a format based on the Extended Strategy Element
structure. The default format, which is the parent format of all the formats used for each
nature, is referenced as an application parameter (ORDER_ALLOC_FORMAT). These formats are
of the Edit List type. There must be one format for each allocation nature. Each format must
refer to the parent format. The Break Value and Break Criteria fields (order_alloc_nat_e
attribute in the Domain entity) determine the allocation nature.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 58
You can load an existing recommendation list to fill in a format. If a market segment is
specified in the domain, the instrument belonging to the market segment is selected.
GLOBAL_ORDER_LOG_ID_RULE Defines the logical id rule used to compute the global order. It can be
different from the logical id rule of individual portfolios.
ORDER_GROUPING_ORPHAN_INIT Flag that indicates if the Order Grouping initialisation script "Order
Grouping Child Init" applies to orphan orders that are eligible for
grouping by the "Order Grouping Right" but are not grouped because
they do not reach the MIN_CHILD_ORDERS_PER_BLOCK system
parameter.
ORDER_ALLOC_CASH_COMP If this parameter is set to 1, Triple'A Plus Core first generates orders
on securities in a portfolio and then tries to automatically compensate
cash debits with cash credits. To do this, it begins with the largest
debit accounts and the largest credit accounts. See section Strategy
Reconciliation for an example.
ORDER_ALLOC_FORMAT Default parent format used in the domain for editing the order details.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 59
Parameter Name Description
ORDER_ALLOC_QUANTITY_MARGIN Margin used in the allocation process of a global quantity (that is, the
margin used in the algorithm for the remainder of the global orders).
This margin is used as follows:
First, a global order quantity is allocated using the Quantity Allocation
Nature of the Domain. For each portfolio, the order quantity
computed using the objective percentage is rounded down as a
multiple of the instrument's Odd Lot Quantity. Consequently, the
global quantity may not be fully allocated.
Secondly, the unallocated quantity is allocated. The system margin is
added to the objective percentage for each portfolio and the
unallocated quantity is attributed to each portfolio. This attribution
begins with the portfolios containing the smallest orders so that the
resulting order remains below the new objective as a multiple of the
Odd Lot Quantity.
The order attribution is repeated until the quantity is fully allocated.
With each new attribution cycle, the number of times the system
margin is added is incremented. On the fourth attribution cycle for
example, the system margin is multiplied by four (=objective
percentage plus 4 x system margin).
ORDER_ALLOC_RULE This parameter defines which rule is applied when you have more
than one position for a specific security in the same portfolio (i.e.,
more than one deposit or currency).
ORDER_DEF_ALLOC_GRID Default grid used when there is no market segment in the domain and
a recommendation list is used to allocate orders (e.g., Switch
Instruments).
SYNTHETIC_MAX_STATUS Indicates the maximum status of the retrieved synthetic data when a
Global Order Quantity is split into the selected portfolios.
SYNTHETIC_MIN_STATUS Indicates the minimum status of the retrieved synthetic data when a
Global Order Quantity is split into the selected portfolios.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 60
These tables are only working tables. This means that the Buy and Sell orders resulting
from the allocation are not saved in the real tables (Operation, Position and Balance
Position).
A new attribute, check_strat_e (default value=0, has been added to the Extended
Operations entity. It checks if the order proposal violates investment targets (including
constraints) in Allocate Order.
By default, a locked position can be sold. Currently, Extended Strategy Elements
contain the lock type id (not mandatory) and not the lock nature. This means that you
must specify a locking type to process the locked positions correctly during the order
generation.
If you specify a locking type with sell_position_f set to 0, then it reduces the available
quantity accordingly.
If you specify a locking type with sell_position_f set to 1, then it is included in the
available quantity.
Short selling on securities is not authorised. This check is based on the available
quantities, that is, it does not take locked positions into account. Consequently, if you
run, for example, the Instrument Order Qty allocation method, specifying Sell Microsoft
1.000, Triple'A Plus Core generates an order proposal for each of the selected portfolios
with quantity = minimum (available quantity, 1,000).
If you request the checking of other linked strategies, a Strategy Check is also
performed on each portfolio.
The process is repeated for each portfolio. Finally, if required, the global orders are also
computed and saved to the working table.
The resulting data is then consolidated and formatted before being sent back to the
client application. The three structures, Extended Strategy Link, Extended Strategy
Element and Extended Operation, are displayed.
Once the resulting data is on the client machine, you can:
Close the screen without saving the operation.
Simulate a modification to an operation.
Save all or part of the proposed operation.
For all the above processing, remember that you can activate a Trading Constraints check to
make sure only compliant orders are proposed.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 61
Order Nature Order Quote of the order proposal
Stop (Market) Stop quote
The market quote is the most recent available quote stored in the database. However, you
can also override this quote by setting the Current Quote (current_quote_n) and the Current
Quote Currency (curr_quote_curr_id).
Value Description
Global Order Qty Global Order Quantity
For a series of instruments, specify a global Buy or Sell order quantity in the
Order Details panel. Then indicate the rule that is used to distribute the order
into the selected portfolios in the Quantity Allocation Nature field (Qty Alloc
Nat.). You can specify a maximum weight of the security to hold in each
portfolio.
Example:
Buy 1,000,000 MSFT (which are then distributed among the portfolios as
specified by the Quantity Allocation Nature).
Buy 1,000,000 MSFT and distribute them among the portfolios specified but
do not hold more than 4% of MSFT in each portfolio.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 62
Value Description
MktSgt. Res. % of Market Segment Resulting % of Portfolio
Ptf.
Specifies a resulting percentage of a market segment based on the portfolio
market value for a series of instruments. The instruments belong to the market
segment and are determined by a Recommendation nature. Enter the market
segment in the Market Segment field (see below).
Example:
Buy/Sell MSFT and ORCL according to a Recommendation list to obtain 20% of
Portfolio Value in US Technology Equity and distribute them as percentages of
the Market Values of the selected Portfolios.
Conversion Converts two different fund shares into the same SICAV (e.g., convert Fortis L
Funds Equity Europe Dis into Fortis L Funds Equity USA Dis). The characteristics
are:
Combination of 1 sale with 1 purchase
Limited to 2 operations
You must enter a sell and a buy
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 63
Value Description
Arbitrage Converts 1 fund share into 2 different SICAVs (e.g., sell Fortis B Funds Equity
Finance Europe Dis for Fortis L Funds Equity Japan Dis). The characteristics are:
Combination of 1 sale and 1 purchase
Limited to 2 operations
You must enter a sell and a buy
Buy order amount sell order amount
Combined Sell/Buy Lets you sell one or more securities and buy one or more securities for a
counter-value less than or equal to the sold amount. The characteristics are:
Combination of one or more sales with one or more purchases
Objective (%) expressed in the Portfolio Market
Value – Buy order amount sell order amount
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 64
Instrument Order % of Portfolio
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 65
2.4.3 Instrument Order Quantity
The ‘Instrument Order Quantity’ Order Allocation nature generates a buy or sell for a
specified quantity in a specified instrument or an instrument set. The same quantity is
applied to the portfolios in the universe.
In the Order Details panel, you have to specify at least the instrument(s), the nature of the
operation, and the quantity for each instrument.
Example
Buy 400 Google stocks per portfolio.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 66
Instrument Resulting % of Portfolio
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 67
To achieve objective weights
Objective weight of the market segment “Technology” = 30% of the portfolio weight. The
details to arrive at the Order objectives are mentioned below.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 68
Instrument Quantity Total Value
EURO(Cash) 100,000 €100,000.00
For this portfolio, you want to achieve an allocation objective of 25% to the market segment
“Banking“. Consider the below stocks representing the “Banking “segment (with their
objective weights at instrument level):
Now the generated orders will be subjected to both, the objective weight defined for the
market segment as well as instruments.
Total amount that can represent the Banking = 25% of 100,000 = 25,000 (1)
segment
Amount that can be invested in the stock UBS = 15% of 100,000 = 15,000 (2)
(2) < (1), therefore buy UBS as mentioned in (2) 15% of 100,000 = 15,000 (3)
Amount left over after investing in UBS = 25,000 – 15,000 = 10,000 (4)
Amount that can be invested in the stock Pound = 10% of 100,000 = 10,000 (5)
(5) <= (4), therefore buy Pound as mentioned in 10% of 100,000 = 10,000 (6)
(5)
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 69
This is similar to the Order Allocation nature ‘Instrument Order Quantity’ except the fact that
you need to specify the portfolio in ‘Portfolio Order Quantity’
Example
For Portfolio 1, Buy 400 Google and sell 200 Microsoft.
For Portfolio 2 , Buy 100 Intel
For Portfolio 3 , Sell 1000 Alcatel
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 70
Instrument Resulting Quantity
Switch Instrument
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 71
2.4.11 Conversion
2.4.11.1 Definition
A conversion is a single sale of an instrument accompanied by a single buy of a different
instrument for the same value (the sum of the cash flows must be positive). To enter a
conversion you must define an instrument to sell, specify an objective to reach for this
instrument and respect any constraints on the buy order. At the same time, you must define
an instrument to buy, specify an objective to reach for this instrument and respect any
constraints on the sell order.
Example:
Sell Instrument A Objective: 15% of the portfolio
Buy Instrument B Objective: 18% of the portfolio
Attribute Description
ExtStratElt_InstrId The instrument to buy or sell.
ExtStratElt_CurrentQuote The current quote for the instrument. This information is used to
valuate the instrument.
ExtStratElt_OrderQuote The limit order quote. This information is used to valuate the
instrument and set the quote of the order.
ExtStratElt_StopQuote The stop order quote. This information is used to valuate the
instrument and set the order quote.
2.4.11.4 Example 1
Initial situation:
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 72
# Price Total % of PMV Obj % Diff
PMV 20000 100.00 %
= 3.00 % (3)
11.7647
22.44
2.4.11.5 Example 2
Sell “Instrument A”, objective: 20.50 % of the portfolio
Buy “Instrument B”, objective: 53.00 % of the portfolio
Conversion
The computations for the ‘Conversion’ Order Allocation nature are shown in this example.
Consider a portfolio with the following positions:
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 73
Current Holdings in Portfolio Target Objectives
Particulars Quantity Price Total % of Obj Weight % Diff
PMV
Instrument A 200 131.40 26280.00 25.87% 20.50% -5.37%
2.4.12 Arbitrage
2.4.12.1 Definition
An arbitrage is a single sale of an instrument accompanied by a single buy of a different
instrument for the same or a lesser value. Unlike conversions, the amount of the buy is
limited by the sell though the sell is not limited by the buy amount. Hence, the amount of
the buy can be less than the amount of the sell but not the opposite.
Example:
Sell Instrument A Objective: 15% of the portfolio
Buy Instrument B Objective: 18% of the portfolio
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 74
Attribute Description
ExtStratElt_InstrId The instrument to buy or sell.
ExtStratElt_CurrentQuote The current quote for the instrument. This information is used to
valuate the instrument.
ExtStratElt_OrderQuote The limit order quote. This information is used to valuate the
instrument and set the quote of the order.
ExtStratElt_StopQuote The stop order quote. This information is used to valuate the
instrument and set the order quote.
2.4.12.4 Example 1
Scenario A: Amount to sell > Amount to buy
= 1,000
= 600
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 75
Quote of instrument to buy = 25 (8)
= 19.6078
= 969
= 24
= 38.76
= 600
# to buy (14)
= 24 (14)
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 76
% to buy = 5.00 % (2) (2)
= 1,000
= 1,00
= 19.6078
= 969
= 40
= 38.76
= 1,000
# to buy (14)
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 77
calcbuy-T (13) = 1,000 (13)
= 38 (14)
= 600
= 1,00
= 111.7647
= 561
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 78
Buy#-T1 (11) = 1,000 (6) / 25 (8) (11)
= 40
= 22.44
= 1,000
# to buy (14)
= 22 (14)
2.4.12.5 Example 2
Sell “Instrument A”, objective: 20.96 % of the portfolio
Buy “Instrument B”, objective: 51.12 % of the portfolio
Arbitrage
The computations for the ‘Arbitrage’ Order Allocation nature (for one of the scenarios) are
shown in the example below.
Scenario: Sell objective > Buy objective
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 79
Particulars Quantity Price Total % of PMV Obj Weight % Diff
Instrument A 200 131.4 26280.00 25.96% 20.96% -5.00%
2.4.13.1 Definition
A Combined Sell/Buy is the sale of one or more securities combined with the purchase of one
or more different securities for a value that is less than or equal to the Sell value.
Generally speaking, you can see that an Arbitrage is a special case of a Combined Sell/Buy.
Attribute Description
ExtStratElt_InstrId The instrument to buy or sell.
ExtStratElt_CurrentQuote The current quote for the instrument. This information is used to
valuate the instrument.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 80
Attribute Description
ExtStratElt_OrderQuote The limit order quote. This information is used to valuate the
instrument and set the quote of the order.
ExtStratElt_StopQuote The stop order quote. This information is used to valuate the
instrument and set the order quote.
2.4.13.4 Example 1
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 81
125.1105
= 8,012.50
= 6,750.00
218.2511
167.81030
356.104010
= 5,733.40
= 4,993.30
= 5,539.36
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 82
= 14,762.50
real # to buy1
= 9,029.10
= 4,035.80
259.3702
2.4.13.5 Example 2
Sell “Instrument A”, objective: 8.00 % of the portfolio
Sell “Instrument B”, objective: 0.00 % of the portfolio
Buy “Instrument C”, objective: 12.00 % of the portfolio
Buy “Instrument D”, objective: 12.00 % of the portfolio
Buy “Instrument E”, objective: 12.00 % of the portfolio
The computations for the ‘Combined Sell/Buy’ Order Allocation nature are shown in the
example below.
Consider a portfolio with the following holdings:
Particulars Quantity Price (€) Total (€) % of PMV Obj weight % Diff
Instrument A 200 156.40 31280.00 16.15% 8.00% -8.15%
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 83
Particulars Quantity Price (€) Total (€) % of PMV Obj weight % Diff
Portfolio Market Value (PMV) 193720.02
2.5.1 Overview
The Order Entry menu option provides a quick and easy way to enter orders for different
instruments in one or more portfolios. You can:
Define different types of operation (mainly Buy and Sell operations).
Add, modify or delete order proposals.
Work on a portfolio and/or instrument dimension. When you select a portfolio, it
becomes the default portfolio for subsequent orders and the Portfolio field is disabled.
This also applies to the Instrument field.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 84
Use the default values online (market price, odd lot quantity, cash account, etc.).
View all the order details.
Link orders in the same list and save them in a draft session that you can return to
later.
Enter orders and execute functions from the keyboard.
Use keyboard shortcuts for faster execution.
Use the quick search technique in editable cells (e.g., type the first letter or letters of
an instrument code and press the [Tab] key to perform a search.)
Inhibit saves of individual orders and only authorise a save of the whole list of orders.
Display a counter for the current order list: total number of orders and current position.
Save a history of the orders session in the database.
Copy orders.
Secure access to draft sessions.
Define mandatory fields in the order and check that they are completed before the user
saves the session.
Display calculated data.
Display automatic update of intermediary totals.
Display title / cash covers.
Apply changes to multiple selected orders.
Screen Description
element
screen Shows the basic details of the domain of the Order Entry function. In the header block,
header you can choose a portfolio and/or an instrument dimension or open an existing Order
block Entry draft session to continue working on it.
The editable domain in the header block (Portfolio and Instrument fields, etc.) of the
screen means that you do not have to go through the generic domain screen to choose a
domain. If necessary, however, you can click the domain icon at the top right of the
screen to access the complete Order Entry domain screen.
Note: When you select a particular portfolio it becomes the default portfolio for
subsequent orders. The Portfolio field is then disabled. This also applies to the Instrument
field. To change portfolios or instruments, you must start a new session.
To start entering orders, you can go to Edit > Create, use the keyboard shortcut
[CTRL]+[N] or use the [Insert] key on the keyboard. This enables the first cell in the
Nature column and initialises it to Buy. Click the down arrow beside the cell to choose a
different operation nature.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 85
Screen Description
element
list box part Enter the orders directly line by line. The list is an editable detailed list format, based on
the Extended Operation structure. Some data, displayed for information purposes only, is
not editable (Last Quote, Odd Lot Quantity, etc.).
The available operation natures can be restricted (to Buy/Sell operations, for example).
To do this, edit the user's Function Security Profile.
Default value scripts are executed on-line.
Data validation checks are executed before orders are saved to the database. If any of
the orders fail validation, the save is cancelled for all the orders in the list. Different
validation checks can be applied to Buy and Sell orders.
You can highlight some fields by modifying the template of the cell (i.e., edit the Format
Element Cell Format to apply shadowing or a coloured background to the cell). You can
define filters for enumerated fields (e.g., the Market, Stop, etc. order natures) and
foreign keys (e.g., Cash Account, etc.). You can use the Copy/Paste features to copy
orders. You can use keyboard shortcut commands to navigate quickly around the screen
(arrow keys, Page Down, Home, End keys, etc.) to select, copy, paste and enter data.
Sub-totals can be computed on-line.
New The New Session button or the menu option Edit > New Session ([CTRL]+[W]) clears the
Session screen and creates a new Order Entry session. Triple'A Plus Core asks if you want to save
button the current session before creating a new one.
Save The Save Session button saves the session into the database. It is available only if the
Session session's status is checked session (see section Order Session Status for details).
button
When you save orders definitively to the database, the session is stored with a status
indicating that it is a copy of the saved orders. When you do this, you can still view the
session but you can no longer change it.
Save Draft The Save Draft button or the menu option Edit > Save Draft ([CTRL]+[T]) links all the
button operations in the list to one session, and saves the session as a draft session. The orders
are not saved to the database at this stage. This lets you interrupt your work without
losing the orders you have already entered. You can then re-open the session later (see
the domain description). Save Draft also:
Creates an occurrence in the function_result entity if it is a new session. The new
occurrence is identified by the session code specified in the domain (see the domain
description above). If you do not enter a Session code, Triple'A Plus Core generates
one automatically.
Initialises the status of the function_result occurrence to Draft.
Saves the session domain.
Saves the orders in the list to the Ext_operation entity with a flag specifying that
they are draft orders.
Compl. The Compl. Check button runs the Pre-Trade Check Strategy financial function, using the
Check current domain parameters. It is available only if the session's status is draft (see section
button Order Session Status for details).
The same function is called even if there are no strategy links but you want to validate
your orders against the Trading Constraints linked to the portfolios in question. The
screens used for order entry can be adapted to take into account the confirm_f flag. This
flag is automatically updated after a Trading Constraint check.
Close The Close button closes the session. If you click Close without saving your modified data,
button Triple'A Plus Core displays a warning message that asks to save the changes as a draft
session. A counter shows the total number of orders in the current list and the current
order position.
Number of the selected row of total number of rows (numbers are shown on the right of
the screen immediately above the detailed list). See Triple'A Plus Core User Guide for
details.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 86
2.5.3 Viewing and modifying orders
You can use the View and Modify options (Edit > View or [Ctrl]+[O] and Edit > Modify or
[Ctrl]+[E]) to display all the order attributes. If necessary, you can also update the order in
the Modify Operation screen without saving it definitively to the database.
The screen used to display the operation details is the standard Operation screen (accessed
when you go to Operation > Create Operation, for example) or a User Defined Screen. Any
modifications you make in this screen automatically appear in the Order List screen.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 87
This also applies to a part of an operation. You can select a cell, press [Ctrl]+[C], select the
new cell by clicking it and press [Ctrl]+[V]. You can also select a cell, press [Ctrl]+[C] to
copy its contents and then select several cells in the same column and copy ([Ctrl]+[V]) the
saved value to them. To select several cells, select the first cell and use the Shift and arrow
keys.
It is possible to save orders directly using the Compl. Check button if the domain's field
Generation Nature is set to the C h e c k & P u b l i s h value. This possibility is explained more
in detail in section Check and Publish Order Generation.
If the domain's field Generation Nature is set to A u t o m a t i c value, then the Compl. Check
button will always save as final both the session and confirm/sent orders even if some of
them are invalid.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 88
2.5.11 Initialising Orders from Positions
To simplify the order entry, Triple'A Plus Core can initialise orders from an existing list of
positions. You can do this, for example, from the results on the Valuation screen. Valuation -
Order Entry shortcuts are listed in the table below.
Run a Valuation (go to Analysis > Valuation and validate your Domain parameters by clicking
OK button). Then, select Buy or Sell from the Action menu (or from the context menu by
right-clicking in a column).
You can run this feature from selected operations. It generates as many orders as there are
selected positions. This initialises a new operation in the order list. The following data is
copied from the position:
Portfolio reference
Instrument reference
Deposit reference
Quantity (only in the case of a Sell)
Status
Position currency
Sub-position nature
Reference nature and the open operation code of the position are copied to initialise the
Reference Nature of the current order.
The above data can only be returned if there is a correctly defined format element for each
type of data. This means that you must complete the following fields in the Valuation format
for the shortcut to work:
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 89
Alternatively, you can run the Valuation function (Analysis > Valuation) and choose the option
you need from the Edit Format menu in the Valuation screen. The Edit Format menu includes
the Element List option which opens the Select Format Element screen (step 2 above).
You do not have to actually display these columns in the Valuation format for the shortcuts
to work. If you do not want to display the column, set the Column Width field to 0 in the
Modify Format Element screen. For further information, see the Triple’A Plus Core Format and
UDS Reference Guide.
Otherwise, a new Order Entry screen opens. This screen inherits the domain characteristics of
the current financial function. The session opens with the new order initialised with data from
the selected position. A link is also created between the two screens (Order Entry and the
Position List screen). The current order is selected (highlighted).
You can select many different positions and generate the corresponding order proposals in a
single pass. Additionally, if a user does not have access to Order Entry screen, the order
proposal is generated in an ordinary create operation screen. In that case, you can only
generate an order proposal based upon a single position.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 90
2.5.12 Valuation - Order Entry Shortcuts
The following table shows a list of shortcuts between the Valuation and Order Entry functions:
Term Open, Fwd Open, Futures Buy Buy Term Open, Fwd Open, Futures ext_pos
Open, FRA Open Open, FRA Open value_d
FX Swap Open, Repo Open, Buy Buy FX Swap Open, Repo Open, ext_pos
Remere Open Remere Open expiration_d
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 91
From Extended Position to Extended Operation
Shortcut: Valuation - Order Entry
Sell Buy FX Swap Close, Repo Close, ext_pos ext_pos
Remere Close open_oper_code expiration_d
Reference Nature Operation Nature Buy/Sell Reference Nature Reference Code Value Date Expiration Date
Futures FIFO / Future WMP Buy Buy Futures FIFO / Future WMP ext_pos
value_d
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 92
From Extended Position to Extended Operation
Shortcut: Valuation - Order Entry
Buy Sell Futures FIFO / Future WMP ext_pos
value_d
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 93
2.5.13 Checking Order Strategy
Triple'A Plus Core lets you run a strategy check from the Order Entry screen before you save
your orders definitively to the database, provided that you have access to the Pre-Trade
Check Strategy business function (e.g., the right Function Security Profile Composition).
The Pre-Trade Check Strategy function processes the portfolios referenced in the current
Order Entry session. It evaluates the open positions in the portfolios, simulates the orders'
effect and compares the portfolios with their associated strategies.
The check_strat_e parameter (in the Extended Operations function results) checks if the
orders violate investment targets. The default value is 0. The parameters for the Check
Strategy option are taken from the domain of the Order Entry function. If no value is
specified, default values are used. If necessary, you can change these parameters on the
Strategy tab of the domain screen. The full domain must be displayed for access to this tab.
You can then:
give priority to some strategy links
force links to specific strategies
set the result details level
The Check Strategy result is displayed using specific formats dedicated to the Order Entry
business function. The result of the check is linked to the order session and stored in the
database.
To use the Pre-Trade Check Strategy facility correctly, you need to set the script definition
for all your Order Entry format elements. If you do not do this, your order proposals will not
be displayed properly when the function has finished.
Example:
An editable format element that displays the instrument denomination would be defined as
follows:
attribute = instr_id
datatype = info_t
2.5.14 Customisation
If you want to limit the operation natures to Buy and Sell, you have to define the user's
Function Security Profile accordingly (i.e., Administration > Security > Profiles > Function
Security Profile).
The System Default Values are applied by default but you can specify User or User-Defined
Screen default values. The priority rule is explained in section User-defined Screens (Smart
Screens).
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 94
The Select Format screen is displayed.
2. Select the format you want to modify from the list and click Modify.
The Modify Format screen is displayed.
3. Click the Format Element button at the bottom of the screen.
4. Select the format element you want to modify from the list in the Select Format Element
screen and click Modify.
The Modify Format Element screen is displayed.
5. Click the Cell Format button.
The Definition screen is displayed.
6. Enter the appropriate script using the CELL_FORMAT function and required arguments.
For more information on the CELL_FORMAT function and the arguments it takes, refer to the
Triple’A Plus Core Script Language Reference Guide.
Fields
There are four types of fields used in the Order Entry screen:
Non-editable fields:
You cannot edit these fields. You can define them at the Format Element level. Go to
Administration > Format > Format and select the format you want to modify. Go through
the screens until you reach the Modify Format Element screen. Then, set the Edit flag to
No (i.e., uncheck the Edit checkbox).
Edit fields:
You can edit the field directly. Select the field and enter your data. You define this at the
Format Element level. Set the Edit flag to Yes (i.e., check the Edit checkbox) and select
the corresponding Attribute from the Attribute field drop-down list (or use the Browse
button to browse for it). If you use the Attribute field, you do not have to add a script
definition (by clicking the Definition button at the bottom of the screen) unless you use
the Pre-Trade Check Strategy. If you are using the Pre-Trade Check Strategy, it is
recommended to set the script definition as well.
With Edit fields, it is also important to complete the Datatype field in the Modify Format
Element screen. This defines what exactly is displayed. For an enumerated field, the
following applies:
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 95
Datatype field entry Display
longname_t label
enum_t integer
code_t code
name_t name
info_t denom)
The field has a Browse button ( ) beside it that opens a Select screen.
Applying Filters
You can apply filters to the different fields using one of the following methods:
Go to Administration > Script > Filter to display the Filter screen. Then, select the Entity
and Attribute you want from the appropriate drop-down list fields. Also, in the Nature
field, select System Filter or User Filter from the field's drop-down list.
or
Go to Administration > Format > Screen, select the screen to which you want to apply a
filter from the list and then, click Modify button to display the Modify Screen. Click the
Filter button to display the Filter screen.
You can also add filters when you define screens. For more information, refer to the Triple’A
Plus Core System Management Guide. The filters have the following priority:
User-Defined Screen Filters
User Filter
System Filter
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 96
Note: A Format in Triple'A Plus Core defines the screen format or layout used. It specifies
the different elements (called format elements) displayed on the screen. In other words, a
Format is a view of the data in the database and the results of the calculations performed on
this data. You can define your own Formats or customise the default Formats supplied with
the product. For more information about Formats, refer to the Triple’A Plus Core User Guide.
2.7.1.2 db_status_e
In the Extended Operation entity, the db_status_e attribute plays an important role in the
dialogue between the GUI client and the server when you save, check or confirm order
proposals. It gives the current status of each record. The following enumerated values are
handled:
Value Description
Simulation The order proposal has not yet been saved to the Extended Operation entity. In
To Insert addition, the investment objectives have not been checked (Check Strategy has not
been executed).
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 97
Value Description
Simulation The order proposal was saved and subsequently modified. It has not been taken into
To Update account in the Check Strategy function.
Simulation The order proposal is saved to the database but it is not taken into account by the
Up To Date Check Strategy function. This does not mean that the order proposal has been sent or
confirmed (i.e., turned into an operation/position/balance position).
Up To Date The order proposal is saved to the database. This does not mean that the order
proposal has been sent or confirmed (i.e., turned into an operation/position/balance
position).
Note: in Event Generation, because you cannot run Check Strategy, an event generated by
Triple'A Plus Core is To Insert, To Update or Up To Date.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 98
Status Business Compliance Saved in Saved in Session Description
functions check done Extended Operation modifi-
Operation & cations
(draft Position
orders)
Checked All Yes Yes No Yes You have
Session launched a pre-
trade compliance
(R3.51 check on all
feature) orders. None of
them has been
modified
afterwards.
This script checks that when you save your order session as Final you have run a compliance
check on all your order proposals (i.e., the previous status was Checked Session).
You can also define various integrity controls for your order sessions. For instance, you can
guarantee that the same user cannot save as Final a session that s/he saved previously as a
draft (four eyes control):
IF (function_dict_id.parent_function_dict_id.proc_name IN ("strat_recon",
"order_entry", "alloc_ord") AND USER().id = user_id {same user} AND
func_result_status_e = 2 {final} AND OLD().func_result_status_e IN (1, 3), MSG(ERROR,
…))
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 99
No. Permitted Value Description
3 Portfolio not checked No direct constraint violation but an order from the same
portfolio or parent portfolio is not in line with a constraint
5 Unchecked Not Critical The order violates a constraint whose critical level is set to
Not critical.
6 Unchecked Low The order violates a constraint whose critical level is set to
Low.
7 Unchecked Medium The order violates a constraint whose critical level is set to
Medium.
8 Unchecked High The order violates a constraint whose critical level is set to
High.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 100
Domain Permitted Functions Notes
Parameter Values
Computing level Allocate Order & Lets you focus on the order proposals.
Strategy
Reconciliation
Show all All details are stored and returned to the user.
Detail level Check Strategy Filters the portfolio positions. Useful with
portfolios that hold a lot of positions.
Detailed/Tiled All but pre-trade Only has an impact on the data returned to the
check strategy. user. It means the data is stored in the
database. Consequently, you can use the View
Details option in the context menu (right mouse-
click) to highlight the strategy comparison with a
portfolio.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 101
Domain Permitted Functions Notes
Parameter Values
Link nature All Lets you check only some of the strategies linked
to your portfolios. The strategies displayed
depends on the link nature.
Maximum and All Lets you check only some of the strategies linked
minimum link to your portfolios. The strategies displayed
priority depend on the link priority.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 102
The split between valid orders and invalid orders obeys the rules based on portfolios and
portfolio hierarchies. In other words, if a portfolio (in the set of portfolios and/or portfolio
hierarchies) contains at least one invalid order, then all orders of the portfolio (including
valid ones) are moved to the exception session. If it is a portfolio hierarchy (in the set of
portfolios and/or portfolio hierarchies), which contains at least one invalid order related to a
portfolio in the hierarchy, then all orders of the portfolio hierarchy are moved to the
exception session.
Initial Situation
Portfolio A Portfolio B
(Initial)
Session
Exception Management
Final Situation
Portfolio A Portfolio B
The final status of valid orders, which are confirmed/sent, is defined through the system
parameter ORDER_INIT_STATUS_METHOD. If it is equal to 0, then the value of the Order
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 103
Status defined in the domain will be used. If it is equal to 1, then the default value defined
for orders (entity ext_order) is used.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 104
as Final if all orders of all portfolios of the hierarchy are valid; otherwise it is saved as a
checked session. The exception session will always be saved as Draft.
The following diagram illustrates the Check and Publish functionality with or without
activation of the Exception Management:
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 105
User System
Pre-Trade C ompliance
C reate orders C hecking (PTC C ) is
executed
Execute the
Pre-Trade
C ompliance
C hecking (PTC C )
Exception Management is deactivated Exception Management is activated
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 106
3 Portfolio Group Rebalancing
3.2 Context
Triple'A Plus Core rebalances single portfolios against strategies or list of strategies. The
strategies can be either linked to the portfolios or interactively selected in the Domain
screen. After rebalancing, buy and sell orders are proposed to realign the portfolio with its
objectives.
In the case of sets of portfolios (Portfolio Lists), rebalancing and verification can be
performed on all the positions in the set. You can define sets of portfolios using portfolio
hierarchies. The processing of portfolio hierarchies consists of:
Position set loading. The positions (assets and cash) are loaded from all the portfolios
belonging to the set. Further processing depends on whether there are negative
holdings and negative cash balances in the portfolio. If this is the case, prior corrective
action is required before you proceed with the rebalancing.
Comparison of the grouped positions (treated as belonging to the parent portfolio) with
the objectives linked to the parent
Order generation. The orders are proposed in the parent portfolio with two exceptions:
Buy operations are attributed to the top parent portfolio (at the head of the list).
The exception to this is a Buy operation that is determined by a
Recommendation List Element with the nature Increase. In this case, the Buy
operation belongs to the corresponding initial portfolio.
Sell operations belong to the initial portfolios.
The choice of the positions to sell is defined by a system-wide parameter
(ORDER_ALLOC_RULE) that has the following permitted values:
0: FIFO
1: LIFO
2: High Cost
3: Low Cost
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 107
4: subposnat_e
5: High Quantity
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 108
3.3.2 Portfolio hierarchies
To define a hierarchy, you use a parent portfolio and child portfolios. To define a child
portfolio (and, hence, a hierarchy), you simply enter the parent portfolio code in the child
portfolio definition (Administration > Portfolio and click Create):
Depending on the business use of the hierarchy, the parent portfolio can be a virtual
portfolio (empty shell) or a real one (with its own positions).
In Triple'A Plus Core, the ORDER_IN_PARENT_PTF_RULE system parameter can be set to the
appropriate business use. The following sections describe the effect of this parameter's
setting.
3.3.2.1 ORDER_IN_PARENT_PTF_RULE = 0
With the ORDER_IN_PARENT_PTF_RULE system parameter set to 0, the parent portfolio
functions as an empty shell (default):
ORDER_IN_PARENT_PTF_RULE = 0
The parent portfolio is a virtual portfolio that never holds any positions (positions resulting
from direct user data entry and/or positions created by functions such as Reconcile
Strategy).
From the point of view of the child portfolios, the parent portfolio is an empty shell that is
only used for consolidation purposes.
3.3.2.2 ORDER_IN_PARENT_PTF_RULE = 1
With the ORDER_IN_PARENT_PTF_RULE system parameter set to 1, the parent portfolio
functions as a real portfolio:
ORDER_IN_PARENT_PTF_RULE = 1
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 109
The parent portfolio is a real portfolio that can hold any kind of position (positions resulting
from direct user data entry and/or positions created by functions such as Reconcile Strategy.
The parent portfolio can then be used for consolidation purposes from the point of view of its
child portfolios and also as an ordinary portfolio.
Parent Portfolio
(shell)
Parent Portfolio
Set 1 of Positions (instruments and cash
Child Portfolio 1)
...
To load hierarchical positions, select the Parameters tab on the Domain – Strategy
Reconciliation screen and enter the Load Hierarchy enumerated value as a Domain’s
parameter.
The original child portfolio of the position can still be found in the position record. The
process of position loading also ensures that the following steps are performed:
Valuate the grouped set of positions.
Compute the cash balances of the grouped portfolios (parent portfolio after load).
Compute the market values of the child portfolios.
Compute the cash balances of the child portfolios.
The values obtained are then used to apply allocation rules or check trading constraints at
parent (grouped) and child portfolio level. The trading constraints are part of the advanced
management module.
The Load Hierarchy process can be activated with any level of the portfolio set into the
Portfolio Dimension of the Domain.
There are two loading approaches:
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 110
top-down: from Parent to Child: From Parent
bottom-up: from Child to Parent: Full
3.3.3.1 ORDER_IN_PARENT_PTF_RULE = 1
With the ORDER_IN_PARENT_PTF_RULE system parameter set to 1, the loading process is
practically the same (see above). The only difference is that the parent portfolio can contain
the initial position(s), and allocation rules can lead to buy/sell positions in this portfolio.
The value of the ORDER_IN_PARENT_PTF_RULE system parameter does not have any effect on
the way trading constraints are evaluated (parent level/child level).
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 111
You can apply the following types of constraints using portfolio modelling:
Asset class exclusions, such as NO JAPAN, NO UK, etc.
Security specific: No Coutts Investment Programmes (CIPs), no Bond CIPs etc.
Offshore Europe specialty: restriction of use of Coutts products (Irish, American)
No UK Situs Assets / do not purchase securities generating UK sourced income
Tax implications: for example, UK / non UK
Must hold segregated bonds
Maximum holding in any security is X%
Limitations on securities, for example, 30% Max Equity
1 LIFO
2 High Cost
3 Low Cost
4 subposnat_e
5 High Quantity
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 112
The High Quantity allocation rule means: When an order must be allocated to a number of
portfolios with ORDER_ALLOC_RULE set to High Quantity, the sell operations are first proposed
to the portfolios with the highest quantity of the instrument being sold.
1 High Cash
When set to 0 (Current), orders may be left unallocated (i.e., proposed for the parent
portfolio). When an order must be allocated across a series of portfolios, the buy operations
are first proposed to the portfolios that hold the highest cash balance (cumulated). No orders
are left unallocated in the parent portfolio. No specific child portfolio is proposed in the case
of purchases when the parameter is set to 0.
The default is Current processing.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 113
3.4.4 User-defined allocation rules
You can define further criteria to complement the default allocation rules, using portfolio
parameters.
The application of the allocation rule results in a sort performed on positions in the same
instrument, using the criteria defined in the default allocation rules. Portfolio-oriented
classifications can provide additional sorting, thus adapting the order allocation to specific
requirements (such as tax and legal requirements, etc.).
To define an allocation rule, you must:
1. Create a series of portfolio lists (constrained, based on the portfolio record criteria, such
as main portfolio, ISA, etc.)
2. Create a classification per defined rule that implicitly defines the priority of the order
allocation in the hierarchy's component portfolios
As the user-defined allocation rules are applied after the system-wide allocation rules,
distinct classifications can be provided to allocate Buy and Sell orders across the portfolios of
the set.
As far as the definition and contents are concerned, the classifications available for user-
defined allocation rules are similar to the current constrained (script-defined) portfolio
classifications.
The Triple'A Plus Core domain is enhanced with the added choice of a portfolio classification
that is pre-set with the user-defined portfolio allocation rule. The lists, and hence the
classification, can be entirely based on the portfolio parameters, including any user-defined
fields. It is also possible to choose a "nil" classification to disable the user-defined allocation
rules.
Allocation
Model Portfolio
Constraints 0
...
Cstr To PARENT
Parent Portfolio
Constraints 1 Constraints n
... ...
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 114
Trading constraints, if defined, are processed at parent portfolio and child portfolio
levels
This means that the loading mechanism keeps a trace of the original objects to which the
trading constraints were linked, facilitating constraint verification.
Constraint links defined for the parent portfolio are processed as applicable to the whole,
consolidated hierarchy while links defined for the individual child portfolios are only
processed for that child. In other words, the top object of a hierarchy (top or parent
portfolio) has all the links loaded (allocation and model portfolio strategies and
holding/trading constraint types) while lower hierarchy objects have just the trading
constraint links loaded.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 115
beginning of the allocation process (the sum of the quantities after the trading constraint
check is less than or equal to the quantity resulting from the comparison in step 5). You
should use constraints to fine-tune the application of the allocation rules.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 116
4 Data, Format, and Screens
4.1 Hierarchies
Productivity Functions generate three hierarchies (Format Sets):
Extended Operation: draft of the order proposals generated by the business functions
or entered manually by users
Extended Strategy Link hierarchy: indicates if strategies are checked or unchecked.
Gives a synoptic view of the portfolio strategies.
Extended Strategy Element hierarchy: indicates if the Strategy Elements are checked or
not.
Actual positions can be displayed, depending on the Detail Level selected in the Domain. You
can store these hierarchies and retrieve them when you want. This can be particularly useful
when you check a large number of portfolios. See chapter Function Results for more details.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 117
Current Price Data
etc.
Objectives set in the Strategy Elements. Note the following:
Objective (as in objective weight) is the target set in the Strategy Element.
Actual (as in actual weight) is the current weight in the portfolio.
Effective (as in effective weight) is used when you enter orders.
Finally, fields that indicate that a Strategy Element is checked. In particular, the
following can be useful:
Individual objective check (e.g., objective weight check): indicates that a
specific objective is checked.
Strategy check: indicates if all the individual objectives for this line are checked.
Sub-strategy check: indicates that all the sub-strategies are checked.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 118
id and parent_ext_strat_link_id
For the accelerator to function between the Extended Strategy Link and the Extended
Strategy Element, the latter hierarchy must contain the ext_strategy_link_id field. The
above syntax must be strictly respected.
To collapse or extend the hierarchy, go to View > Full Collapse All or View > Full Extend
All in the Check Strategy screen’s menu. This option lets you fully collapse or extend the
node in the tree list.
You can set the default level of detail you want to see in the summary and dynamic lists
and graphs. The level of detail displayed depends on the Level field in the Format table (the
SQL name for this attribute is level_num_n). To edit this field, do the following:
1. Go to Administration > Format and select the format corresponding to the list or graph
you want to modify.
2. Click Modify button and scroll down to the Level field in the Modify Format screen.
3. Enter the number for the level of consolidation you want. The number must be an
integer. For example:
1 to display the first-level branch of the tree or summary list
2 to display the second-level branch of the tree or summary list
3 to display the third-level branch of the tree or summary list
etc....
Of course, you can still extend or collapse the data by clicking the folders directly or using
the Extend and Collapse options in the View menu.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 119
4.3 Screen Facilities
4.3.1 Save
The various save options are as follows. Go to Administration > Format and click Modify
Format. The Options menu in the Modify Format screen has a Save submenu with the
following commands which specify how the Save function operates:
Create & Clear When a record is saved, the screen is cleared to let you enter new records.
Create & Copy When a record is saved, Triple'A Plus Core makes a copy of the original record
so you can modify it later if you want.
4.3.2 Reset
In all administration screens (Tools menu), you find a Reset Action button. The shortcut is
[Ctrl] + [R].
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 120
Item Description
Entity Financial instrument, buy_operation, sell_operation, adjust_operation, etc.
Nature An enumerated (Enum) or Boolean (Flag) attribute of the corresponding entity. This entry
Attribute is used in conjunction with the Nature field to provide a pair of values (financial
instrument 'order nature' + 'Limit'). The Nature field list contains the following:
<None>
Market
Limit
Stop
Stop-Limit
Type Attribute of the corresponding entity + a value (financial instrument 'type_id' + 'Buy').
Attribute
Note: The same screen can be used repeatedly in different screen profile compositions. You
associate the screen to a set of matching criteria when you create a Screen Profile
Composition.
In other words, the same screen can be used with different sets of matching criteria defined
in the Create Screen Profile Composition screen. In this case, the screen is valid only if the
different sets of matching criteria are satisfied.
Modify screens
Modify screens are used for convenience in the above screenshots. The same screen,
MARKET_AND_BLOCK_OPERATION_BUY, entered in the Screen field, is used for different
sets of matching criteria.
From Triple'A Plus Core Release 3.50, you can define a rank at the Screen Prof Compo level
that sorts the different User-Defined Screens belonging to the same context. The screens are
sorted in ascending order (i.e., the screen with the lowest rank is displayed first, etc.). This
lets you sort the operation input screens as you want, for example.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 121
For example, you perform an Extended Operation with oper_nat_e = Buy and
order_nat_e = Limit. Your screen profile composition is composed of Screen 1:
Buy_operation and Screen 2: Buy_operation, order_nat_e = Limit.
In this case, both screens are valid but the second is more specific since two of the
matching criteria are met.
3. Note that Triple'A Plus Core checks that the selected screen does not violate another
screen profile composition linked to the user. If the screen violates another screen profile
composition, it will not be pre-selected. In this case, you must filter the selected screen
profile composition.
Say, for example, you are working on an Extended Operation with the following
attributes:
oper_nat_e = Buy
order_nat_e = Limit
Your screen profile includes the following screen profile compositions:
[Screen 1: Buy_operation]
[Screen 2: Buy_operation, order_nature_e = Limit]
[Screen 2: Buy_operation, parent_oper_nat_e = Block Order]
Screen 2 is used in two screen profile compositions with different sets of matching
criteria. In this case, the first screen is displayed to the user (i.e., Screen 1 is selected).
This is because the first profile screen composition covers the case adequately. For
screen 2 to be selected as the most appropriate, the Extended Operation would need to
have both of the following:
order_nature_e = Limit AND parent_oper_nat_e = Block Order.
Note: Order Entry handles screen selection dynamically.
For more information on creating and attaching User-Defined Screens, see the Triple’A Plus
Core Format and UDS Reference Guide.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 122
User-defined screen
User
System
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 123
5 Function Results
5.1 Definition
When you run Productivity functions (i.e., Strategy Reconciliation, Check Strategy, Allocate
Order or Order Entry), Triple'A Plus Core stores all the data it computes in the database. This
means that you can keep track of both the order proposals (Extended Operations table)
and the strategy compliance check data (Extended Strategy Element table). This data is
all related to a common element stored in the function result table. Consequently, users can
retrieve entire work sessions from the database.
This facility is very useful since the Productivity functions are generally applied to high
volumes of data. This lets you analyse the data at your convenience. The disadvantage is
that system performance can deteriorate if you do not regularly delete the function results.
From Triple'A Plus Core Release 3.50, the package includes a new script tool that helps
database administrators do just this: Delete Function Result by Arguments.
If you select Replace Old, Triple'A Plus Core prompts you for a code for the function result
that is replaced.
Note that in Order Entry, the function result, or Order Session, is generated when users save
their order proposals to the database. In addition, you can define the function results as
draft or final: a draft session only contains order proposals that have not yet been confirmed
in the database (i.e., turned into operation/position/balance positions). This means that the
order proposals cannot be valued or exported.
Option Purpose
On-line The resulting data is displayed on the screen and is not stored in the database. This option
is only available when the Check Strategy command is run on a single portfolio.
Compute Computes a new function result and stores it in the database. In this case, Triple'A Plus
New Core prompts you for a name for the function result it is storing. You can also make the
function display its results by selecting the Display Result Flag checkbox.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 124
Option Purpose
Replace Runs the function and replaces an existing one. In this case, Triple'A Plus Core prompts
Old you for a name for the function result it is storing. You can also make the function display
its results by selecting the Display Result Flag checkbox.
Use Uses an existing function result. In this case, Triple'A Plus Core prompts you for the name
of the function result you want to use.
Delete Deletes a specific strategy check. In this case, Triple'A Plus Core prompts you for the name
of the strategy check you want to delete.
Note: The productivity functions can run from the graphical user interface (GUI) or from a
batch command on the UNIX machine.
To run productivity functions from a batch command, the system administrator can use the
following stored procedure:
exec_fin_analysis_all_domain()
For more information, click here to consult the Triple’A Plus Core System Management Guide
and view an example. Click the back arrow in the Web toolbar to return to this manual.
Note that you have to provide almost all the domain parameters when you run
exec_fin_analysis_all_domain().
5.2.2 Data
The Check Strategy function result is linked to Extended Strategy Element, Extended
Strategy Links, and the data set in the corresponding function domain.
The Strategy Reconciliation function result is related to Extended Operations, Extended
Strategy Element, Extended Strategy Links and the data set in the corresponding
function domain.
Allocate Order function result is related to Extended Operations, Extended Strategy
Element, Extended Strategy Links and the data set in the corresponding function
domain.
Order Entry without Checking Strategies is related to Extended Operations and the data
set in the corresponding function domain.
Order Entry with Checking Strategies is related to Extended Operations, Extended
Strategy Element, Extended Strategy Links and the data set in the corresponding
function domain.
5.2.3 Use
If users want to load the data computed by a productivity function, they have to set the
Compute Data filed to 'Use' and specify the code of the function result they want to analyse.
Please note that you can load the order proposals generated any productivity functions in
Order Entry.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 125
There are two ways to delete function results and all the related data (Extended Operations
and Extended Strategy Elements).
Through the GUI or through a store procedure described in this paragraph.
5.2.4.1 GUI
Use Administration > Format > Function Result.
del_function_result_by_args
The del_function_result_by_args stored procedure performs maintenance operations on
the Function Results (function_result) table. The Function Results table stores
references (foreign keys) to other tables containing the results of the Business functions
users have run. The del_function_result_by_args procedure clears the Function Results
table and also the entries in related tables identified by the foreign keys. Previously, the only
way to do this was to use an SQL command.
The procedure is stored in the Triple'A Plus Core main database and is part of the
function_result toolkit. With this tool you can perform a ‘delete’ and also return the short
structure on the basis of the procedure's input parameters (see below for more information
on these parameters). The procedure does the following:
Processes entry parameters.
Creates two temporary tables: #tmp_appl_user and #tmp_dict_function.
Performs a ‘select’ and returns the short structure that is a select statement executed
on the function_result table with some information taken from the domain table
(nothing from “cascaded tables”).
or
Performs a delete statement on the domain and function_result tables (the delete
trigger in the function_result table runs deletes on the ext_strategy_element,
ext_strategy_link and ext_operation tables)
The del_function_result_by_args procedure is equivalent to a SELECT * FROM statement.
The procedure works in two modes: delete and select. In delete mode, the procedure returns
0 if successful and -1 if there is an error. In select mode, the procedure returns a short
structure, described later.
Use
Access the SQL server and the database in question. Once you are in the right directory, just
run the command. The function takes the following syntax (in SQL):
del_function_result_by_args @delete_f, @calc_from_d, @modif_d, @user_cd,
@function_name, @status_e, @function_result_cd
Input Parameters
The following is a list of the parameters taken by the function:
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 126
Parameter Description
@delete_f 0 for select
1 for delete
If a null value is specified (or any value other than 1), the default operation is
selected.
@calc_from_d The date of calculation of a function result. The type of this parameter is
datetime_t. The datetime that you assign to this parameter is used to make a
stringent less than (<) comparison. (This means that you can use hours in the
selection). If you do not specify a time, 12:00AM is assigned to this parameter by
default. If you specify null as a value the parameter is not used for record
selection.
@user_cd From appl_user code list. You can use the * and % wildcard character here. If
you specify null as the value, the parameter is not used for record selection.
@function_name Function name (Allocate Order, Check Strategy, Order Entry, Strategy
Reconciliation). It is mandatory if @status_e is used. If you specify null as the
value, the parameter is not used for record selection.
@status_e The status of the function is 0, 1, or 2 in most cases but it depends on the
context of the function used. If you use this parameter, you must specify a value
for @function_name as the values of status_e depend on it. If you specify null as
the value, this parameter is not used for record selection.
Output
Mode Description
delete Standard return status (0 if successful and –1 if there is an error).
select The output in this mode is the short structure shown in the next table.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 127
Column_name Data Type Description
instr_object_code code_t set to Null (reserved for internal usage)
Example
exec del_function_result_by_args 0, "Nov 3 1999", null, “sp*”, “Order Entry”, 2,
"AAA*"
Explanation:
0 For select.
Nov 3 1999 Sybase standard date format for calc_from_d. All records that have a
calc_from_d less than Nov 3 1999 (by default 12:00AM) will be returned.
sp* User that begins with sp (* will be replaced with the % SQL wildcard).
Order Entry Order Entry function name (wildcards are not allowed here!).
Note: The use of the null value! means that the corresponding argument is omitted.
Conclusion
The del_function_result_by_args procedure is a very useful cleaning-up tool. However, it
must be used with some caution as it directly deletes data from the tables.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 128
6 Importing Order Sessions
6.1 Overview
The ‘Import Order Session’ feature lets you retrieve an order session that has been
generated from a third-party system. You can perform a compliance check on the portfolio
related to the order session to see if it is still in line with the strategies and constraints linked
to the portfolio when the session was saved.
This chapter describes how and when to import order sessions.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 129
Order Compliance Check Workflow
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 130
You must then insert the orders of the session with a reference to the function result code to
group the different orders in the order session. The minimum attributes that you must
complete to insert a record are the following:
Order nature: buy or sell
Portfolio code
Instrument code
Quantity that is traded
Operation date
Accounting date
Value date
Function result code that refers to the order session to which the order belongs
The command to insert these orders is insert order_session.
The orders are only inserted into the extended_operation table, and not into the
extended_order table. A record in the extended_operation table is transformed into a
record in the extended_order table when you save a session.
6.5 Examples
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 131
DAT 1; T_AI_PTF3; T_AI_CHF_UBSN; 500; 01-03-2004; 01-03-2004; 01-03-2004;
ORDER_SESSION_1; 1; Initial Order Session;0
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 132
7 Order administration
7.1 Overview
Triple'A Plus Core provides advanced order administration facilities with comprehensive
security measures. These facilities are part of the Triple'A Plus Core module.
To implement the proper security measures, there are a number of steps to follow but once
these are affected, the order administration functionality is a powerful weapon in the
Portfolio Manager's arsenal.
To perform order administration in Triple'A Plus Core, therefore, first implement the
appropriate security measures as described below. Your users can then have access to
precise order processing functions.
7.2 Security
By security is meant how to limit the administration rights on operations. The administration
rights include the rights to Create, Delete and Update operations. This facility is handled
through the Function Security Profile infrastructure.
The security for operations is defined at the business function level. This means that you
have to define the administration rights for each function separately. Consequently, you can
limit the creation of operations to the Administration function (i.e., Create Operation menu),
and the modification of operations to the Order List function. Additionally, you can assign
user-defined screens to specific business functions, as outlined in the previous section.
The operation business functions are Administration, Order Entry, Order List, and Operation
List.
In the following sections, you will learn about:
Assigning a Function Security Profile
Defining Security Profile components
Specifying access rights to an operation business function and security
Restricting Administration Rights
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 133
2. In the Select Function Security Profile screen, select the profile you want to modify (e.g.,
DEF_FUNC_SECU_PROF) and click Modify button.
3. In the Modify Function Security Profile screen, click Composition button.
4. In the Select Function Security Profile Comp screen, click Create button.
The Create Function Security Profile Comp screen is displayed.
In this screen you can enter the following settings:
Field Description
Function The business function for which you want to limit the administration rights on
operations and access to the function itself.
Entity The entity for which you want to specify specific administration rights. This field lets
you focus on specific operation natures. You have access to the entities
All
Operation
buy_operation
sell_operation
etc.
Note that when you allow access to an operation business function, you must select All
for the component's entity.
Type The operation states, types and sub-types for which you define specific access rights.
For example, you can deny users the right to modify or delete operations with a certain
Subtype type.
Min Status
Max Status
Create Use these checkboxes to set the access rights you want to associate with the function
you selected in the Function field. You can restrict the scope of operation functions by
Update
using the Status, Type and Subtype fields to filter the operations.
Delete
Function Description
Administration The Administration function includes the Create Operation facility (i.e., operation input
screen).The Administration function handles the security for all the Triple'A Plus Core
objects (instrument, portfolio, etc.). It lets you limit access to operation natures,
statuses, types and sub-types in create mode. Note that the update_f flag (Update Flag
checkbox) also plays a role in this context: you can give users the right to modify an
operation after they have clicked the Save button.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 134
Function Description
Order Entry Works in a similar way as the Administration function: you can limit access to operation
natures, states, types and sub-types in the Order Entry screen. You can only define the
operations that users can create or delete.
Order List For each of these functions you can define which operations users can create, delete,
and/or update.
Operation List
This is the reason why the Entity, Min-Max Status, Type, and Subtype fields are enabled or
disabled, depending on the function selected in the Function field.
Imagine other users who can only update buy operations whose status is Pre-Confirmed
from the Order List function:
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 135
7.3 Cancelled, Expired and Refused Orders
In the order lifecycle, the followings events can happen:
The order is cancelled
The order is refused
The order is expired
Each case is represented by a specific order status. Each has its own particular meaning for
the portfolio manager: a refused order is not a cancelled order, etc. However, the orders
that reach these states share the following characteristics:
The trade blotter displays them as historical transactions for information purposes.
No pending position exists. This means that a refused order has no position.
You can define several values that play the same role. To do so, you have to specify these
values in the NO_OPEN_POSITION_STATUS system parameter separated by a semi-colon (;).
This means that you can only access the orders with a status from this enumerated list from
the Order List function.
Attribute Description
Identifier Technical identifier of the link instrument – market place – currency.
Currency An instrument can be traded at the same place in different currencies. Consequently, the
trading place currency belongs to the business key. This allows you to define multiple
occurrences of the same trading place for the same instrument but with different
currencies. The currency is mandatory.
Example:
Nestlé can be traded on the Swiss Market in CHF or USD.
Main Place You can specify the main place/currency couple for the corresponding instrument.
Trading Currency represents the link between currencies and an instrument. It is composed
of the following attributes:
Attribute Description
Identifier Technical identifier of the link instrument – currency.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 136
Instrument Unique identifier of the instrument.
Main Place You can specify the main trading currency for the corresponding instrument.
In addition to these entities is a script keyword (GET_OBJECT_ARRAY) that you can use to
select the trading places and currencies for an instrument in a Create Order screen. This
script keyword allows you to define a filter that specifies the exact information that you want
to obtain. You cannot define a default value using this keyword. The default trading place
and currency can be defined in the instrument table.
Refer to the Triple’A Plus Core Script Language Reference Guide for more information on the
GET_OBJECT_ARRAY keyword.
When you run the function, the system methodically computes the value of this string for
each selected order. It also generates a block order for each distinct value.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 137
You can add a criterion based on the trade amount. For example, you might want to group
together all orders with an amount higher than EUR 500,000. In this case, you would enter
the following script definition:
IF(sys_net_amount_m > 500000 OR (parent_oper_nat_e = 2 AND ud_block_amnt_e = 1),
PRINTF("1-%d-%d", instr_id, deposit_id),
PRINTF("0-%d-%d", instr_id, deposit_id))
Implementation hint: Typically, the grouping criteria also apply to the block order. This
means that when you create a block order based upon a criterion such as the amount or the
quantity (i.e., summary criteria), you must create a user-defined field as in the example.
The important points to bear in mind about grouping criteria are:
The grouping criteria script definition only applies to the Extended Operation entity.
In the Extended Operation table, there is a new attribute called Grouping Criteria. It
allows you to display the string generated by the function.
You are limited to 80 characters. Note also that a technical identifier has a maximum of
nine characters.
Order netting in order grouping is not handled. This means that you cannot bulk orders
with different natures (for instance, Buy and Sell). The Operation nature is a default
grouping criteria.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 138
7.5.4 Function Security Rights
You can restrict users' access rights to the Order Grouping functions as you would to any
other Triple'A Plus Core function. This means that the access rights are defined through two
complementary operations:
User Function Security Profile: You can restrict the orders a user can group to specific
natures, statuses and types. For more information on this use of the Function Security
Profile, refer to section Update Fields function.
Data Security Rights (i.e., Order Grouping Rights): You can restrict the orders a user
can group to specific raw or calculated data. For more information, refer to the Initiate
Order functions.
Parameter Value
Name “Equity Grouping”
Rank 101
Example:
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 139
exec ins_upd_dict_function_usr “Equity Grouping”, “equity_grouping”,
"order_grouping", NULL, NULL, 101
Note: You must only use a rank of 101 or higher because rank numbers 1-100 are reserved
for internal Triple'A Plus Core usage.
7.5.7 Processing
To run an Order Grouping function, do the following:
1. From the business function Order Entry or Order List, that uses Extended Operations,
select the orders you want to group.
2. Right-click the selected orders to display the context menu.
3. If you have the right to run the function on the selected orders, the function name is
displayed in the context menu.
4. Click the function name to execute the function.
5. The system generates the corresponding block orders. However, if there is an existing
block order in your selection that matched the grouping criteria then the system updates
it instead of creating a new one.
Note that you can select orders using the basic Microsoft Windows' conventions: click the
first order you want to select, hold the [Shift] key down and click the last order you want to
select. All the intermediary orders are selected. To select non-contiguous orders, hold the
[CTRL] key down while you click the orders you want to select.
Besides the basic generation of global orders based only on instrument criterion - available
in the Reconcile Strategy and Allocate Orders or by applying the Order Grouping on an
existing order session that was reloaded in the Order Entry screen - these business functions
offer the possibility to run a genuine Order Grouping function by providing its identifier in the
order_grouping_fct_dict_id attribute in the Domain.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 140
A customised grouping function called “Equity Grouping” has been created by the bank.
A customised grouping function called “Bond Grouping” has been created by the bank.
The bank wants to group, every four hours, all the orders on equities that reached the
status “to be grouped” using the “Equity Grouping” function.
The bank wants to group, every 48 hours, all the orders on bonds that reached the
status “to be grouped” using the “Bond Grouping” function.
The grouped orders and the child orders have the status “to be sent” after the grouping
(this is defined at grouping function level).
In this case, the bank has to define a batch process (typically through a shell script) that will
call at the required points in time the “Equity Grouping” function and the “Bond Grouping”
function.
The batch will call the fin_analysis_all_domain function. The following parameters are
available:
@book_portfolio yes The default portfolio code for block orders (if not set by the
grouping function).
@format yes The order list format code on which the grouping function script
is based.
Minimum status no The minimum and maximum status of the orders to be returned
(in this case minimum = maximum = ”to be grouped”).
Maximum status
Portfolio dimension no The list of the portfolio to which the grouping must apply.
To minimise the computation time, it is recommended to provide at least the range of status
that concerns order to be grouped and the portfolio dimension.
Once the batch is defined and launched the system groups all equity orders every four hours
and every bonds orders every 48 hours. It means, practically, that orders automatically
changes their status from “to be grouped” to “to be sent” without human work.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 141
Use enhanced processing
7.6.6 Processing
To run an Order Grouping Index function, do the following:
1. From the business function Order Entry or Order List, that uses Extended Operations,
select the orders you want to group.
2. Right-click the selected orders to display a context menu.
3. If you have the right to run the function on the selected orders, the function name is
displayed as an option in the context menu.
4. Click the function name to execute the function.
Note that you can select orders using the basic Microsoft Windows' conventions: click the
first order you want to select, hold the [Shift] key down and click the last order you want to
select. All the intermediary orders are selected. To select non-contiguous orders, hold the
[CTRL] key down while you click the orders you want to select.
Even if the business functions Allocate Order and Reconcile Strategy use Extended
Operation, it is not possible to use directly the Order Grouping Index function. The only way
to group orders generated by the Allocate Order or Reconcile Strategy functions is to open
the order session in the Order Entry function and then use the Order Grouping Index as
described above.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 142
7.7 Order Allocation
7.7.1 Introduction
Global orders, or Block Orders, are orders that are the sum of several individual orders, or
Child Orders. Block orders do not depend upon their child orders; modification or deletion of
the child order has no impact on the block orders. The block orders are identified by their
Parent Operation Nature attribute (i.e., Unallocated Block Order). They are created before
their child orders. Portfolio Managers can enter a trade and then allocate it afterwards to
client portfolios.
The functions handling the block orders are:
Function Description
pre-allocation The pre-allocation process consists in allocating a block order before confirming it.
process The Create Child Order function in Order Entry covers this case.
post-allocation The post-allocation process consists in allocating a block order after it has been sent
process to the market. The Order Allocation function in Order List covers this case.
7.7.2.2 Processing
To run the Create Child Order function, do the following:
The first step is to insert the block order you want to allocate in Order Entry. As mentioned
above, you must set the Parent Operation Nature attribute to Unallocated Block Order to be
able to allocate it. The following process is recommended for creating Unallocated Block
Orders easily:
Create a specific screen for block orders linked to the Order Entry function in your user
Screen Profile, for example, an Equity Block Order Purchase screen or Equity Block Order
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 143
Sale screen, etc. That way the parent operation nature is automatically set to
Unallocated Block Order through a default value.
Set the SEL_UDS_IN_ORDER_ENTRY_METHOD system parameter to 1 or 2. That way, when
you insert a new order in Order Entry, Triple'A Plus Core lets you select between the
different available screens. Portfolio Managers can explicitly create block orders to
allocate.
The second step consists in allocating the block order. To do this:
1. Select the block order.
2. Right-click your selection to display the context menu.
3. If you have the right to run the function on the selected operation, the Create Child
Order option is displayed in the context menu.
4. Click the context menu option.
Note: You can select orders using the basic Microsoft Windows' conventions: click the first
order you want to select, hold the Shift key down and click the last order you want to select.
All the intermediary orders are selected. To select non-contiguous orders, hold the [CTRL]
key down while you click the orders you want to select.
Triple'A Plus Core inserts and correctly initiates the child orders. The child orders inherit
information from the block order (see section Block Order/Child Order relationship for more
details on this) and a link is created with it. The portfolio manager has to enter a portfolio
and a quantity. This has no effect on the block order but does affect the Effective Child
Quantity, which holds the sum of the child order quantity. This information can be displayed
in the format. Note that you can run the pre-trade compliance check function on the
allocation.
When you save your orders, the identifier of the block order is copied to its child orders.
When the allocation process is executed, the child orders you create can inherit any data
from the global order through specific default values. You can access the default values
through the Create Child Order Child Init or Order Allocation Child Init menus. Go to
Administration > Function Script > Create Child Order Init or Order Allocation Init. To refer
explicitly to the global order you just need to use the INIT() script keyword.
For example, if you want to inherit (i.e., reference) the global order's instrument, you specify
INIT().instr_id.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 144
Note that the output result is displayed in a specific format associated with the Order
Allocation function. This means that a domain format and an Extended Operation format
must be added to the user format profile. Both formats are similar to those used in Order
Entry and Allocate Order.
In addition to the function security rights, there are specific criteria you must set to access
the Order Allocation function:
The parent operation nature must be set to Unallocated Block Order
An instrument must be specified
The effective child quantity must be lower than the quantity
The Load Global Order parameter in the Order List domain must be set to Parent &
Children
7.7.3.2 Processing
To run the Allocate Order function, do the following:
1. Select the block order to allocate in Order List.
2. Right-click the block order to display the context menu.
3. If you have the right to run the function on the selected operation, the Run Order
Allocation option is displayed in the context menu.
4. Click the context menu option.
5. A domain specific to Allocate Order is displayed.
6. Choose an allocation method to allocate the block order. There are three allocation
methods for allocating block orders:
Method Description
Manual Child Orders are inserted manually one by one. This is the only method available when
you choose All Portfolios in the Order List domain screen.
Automatic Child Orders are inserted automatically. This option is similar to the Global Order
Quantity allocation method that is available in the Allocate Order business function.
Three rules of automatic allocation are supported:
Pro Rata of Market Value
Pro Rata of Quantity
Equal Percentage
Note that the automatic allocation rules can only be specified on block orders that have
not already been allocated.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 145
Quantity. The Effective Child Quantity holds the sum of the child order quantity. This
information can be displayed in the format. Note that you can run the pre-trade compliance
check function on the allocation.
Implementation hint: a specific format for the Order Allocation function based on the
Domain nature and entity must be added to the user format profile.
Another specific format for the Order Allocation function with the Detailed List nature based
on the Extended Operation entity must be added to the user format profile. The format must
respect the following points:
No break criteria
No sub-total
The format element for the portfolio must be defined as follows:
Datatype: Code_t
Display Context: Portfolio
Fixed column: Yes
Attribute: portfolio_id
Edit: Yes
This lets you access the portfolio in the list you specified in the domain.
When the allocation process is executed, the child orders you create can inherit any data
from the global order through specific default values. You can access the default values
through the Administration > Function Script > Create Child Order Init or Order Allocation Init
menus. To refer explicitly to the global order you just need to use the INIT() script keyword.
For example, if you want to inherit (i.e., reference) the global order's instrument, you specify
INIT().instr_id.
7.8.1.1 Security
The Reversal feature is a function, you must allow access to it through the Function Security
Profile screen.
This section describes how to define the Function Security Profile components so as to
restrict users' access rights to reversal operations. For example, you can limit the reversal
operations users can create to Buy accounted operations. This is very similar to defining the
administration rights on the other functions only with a few important differences. To define
user rights, open the Create/Modify Function Security Profile Comp screen as follows:
1. Go to Administration > Security > Profiles > Function Security Profile.
2. In the Select Function Security Profile screen, select the profile you want to modify (say,
for example, DEF_FUNC_SECU_PROF) and click Modify button.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 146
3. In the Modify Function Security Profile screen, click Composition button.
4. In the Select Function Security Profile Comp screen, click Create button.
The principles are the following:
If you allow access to the Reversal function, you must create a record with that specific
function, setting the entity All.
Note that you must select the Create checkbox (set create_f to Yes) to enable requests.
The Delete and Update checkboxes can be ignored in this context.
The rights assigned to an operation nature (i.e., buy_operation entity, sell_operation
entity, etc.) override those assigned to the operation entity. And the latter override the
administration rights assigned to the entity All. This means that you can forbid the
reversal of all operations except the Buy and Sell operations whose status is
‘Accounted’.
You can only access the function from Order List.
Example:
Users cannot reverse any objects but Buy and Sell operations with the status Accounted.
operation_d
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 147
Note that operation_d is a specific case: while other fields in this list can be
completed by the user, this one is automatically set to the date on which the
reversal operation is created.
Dates selection: FUSION_REVERSAL_INHERIT_RULE = 1.
Reversal inheritance (from the reversed operation) is ensured except for the items in
LIST_default and the items in the following list (called LIST_dates)
LIST_dates: account_d, operation_d, value_d
Ud_fields selection: FUSION_REVERSAL_INHERIT_RULE = 2.
Reversal inheritance (from the reversed operation) is ensured except for the items of
LIST_default, operation_d and the items in the following list (called LIST_Ud)
LIST_Ud:
The LIST_Ud list contains all the user-defined attributes that were implemented
for specific customer needs for reversal operations.
Note that operation_d is a specific case: while other fields of lists can be input by user,
this one is automatically set to the date on which the reversal operation is created.
Dates and Ud_fields selection: FUSION_REVERSAL_INHERIT_RULE = 3.
Reversal inheritance (from the reversed operation) is ensured except for the items in
LIST_default, LIST_dates and LIST_Ud.
Function processing:
Select Administration > Function Script > Reversal Definition and enter your reversal definition.
Select the entity (Buy Operation, Sell Operation, etc.) and attribute to which the reversal
definition will apply and enter the definition.
The script is automatically taken into account when a reversal operation is inserted into the
database (the relevant fields are not inherited from the reversed operation).
To run the Reversal function, select an operation from the Order List function or sub-function
and right-click it. If you have the right to reverse the selected operation, choose the Reverse
option that is displayed in the context menu.
Note that you can run the reversal function on a selection of operations. Additionally, you
can run the reversal operation on a block order. In this case, its constitutive child orders are
automatically reversed.
7.8.2.1 Principles
The main principles of the Update Fields function are the following:
You define the modifications to apply to the selected operations through a new script
nature called Update Fields.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 148
You can restrict users' access rights to the Update Fields function as you would any
other Triple'A Plus Core functions.
You can display and confirm the updated operations in a User-Defined Screen
associated with the corresponding Update Fields function.
You can create different occurrences of the Update Fields function.
The behaviour remains the same except that it is not possible to manage the four-eyes
control (with the field delete flag of function security profile compo).
7.8.2.3 Security
The Update Fields feature is a function, and you must allow access to it through the Function
Security Profile screen.
This section describes how to define the Function Security Profile components so as to
restrict users' access rights to the Update Fields function. For example, you can limit the
operations a user can update to Buy operations whose status is Order.
You define the ex-ante statuses (create_f). Also, you can limit the statuses a user can access
Confirmed and To be Validated (user-defined screens only). In other words, you can also
define the ex-post statuses (update_f). This process is very similar to defining administration
rights to other Triple'A Plus Core functions. The main difference is the role played by the
Create and Update flags. To define access to the function, open the Create/Modify Function
Security Profile Comp screen as follows:
1. Go to Administration > Security > Profiles > Function Security Profile.
2. In the Select Function Security Profile screen, select the profile you want to modify (say,
for example, DEF_FUNC_SECU_PROF) and click Modify button.
3. In the Modify Function Security Profile screen, click Composition button.
4. In the Select Function Security Profile Comp screen, click Create button.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 149
The principles are the following:
If you allow access to the Update Fields function, you must create a record for that
specific function, setting the entity to All.
Create, Update, and Delete flags:
You can use the Create checkbox to limit the operations a user can update
(create_f).
You can use the Update checkbox to define the authorised statuses, types and
sub-types an operation can retrieve (update_f). This only applies to user-defined
screens that are linked to the function, as detailed below.
You can use the Delete checkbox to avoid users updating operations that they
created or modified previously (delete_f=1). In other words, you can explicitly
define "four eyes" control over operations.
The rights assigned to an operation nature (i.e., buy_operation and sell_operation
entities, etc.) override those assigned to the operation entity. The latter override the
administration rights assigned to the entity All. This means that you can disable the
Update Fields function for all operations except the Buy and Sell operations whose
status is Order.
You only have access to this function in Order List.
Example:
Users cannot run the Update Fields function on any objects but Buy and Sell operations with
the status Order. In addition, they can only have access to the Confirmed status in this
context. Finally, they can only run the function on operations for which they were not the
last user (i.e., the last user to modify the operation).
Attention:
You must pay attention not to create Function Security Profile Compo records with
contradictory administration rights (i.e., update, delete and create flags) applied to the same
status or types. The following example illustrates this:
Imagine a user who can:
Launch the Update Fields function on buy operations with statuses from Simulation to
Order.
Launch the Update Fields function on buy operations that they created or modified
previously.
Have access to the statuses from Order to Confirmed in the operation administration
screen.
The mistake is to create the following set of Function Security Profile Compo records:
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 150
Function Entity Min Status Max Status Create_f Update_f Delete_f
Buy Operation Order Confirmed No Yes No
The above definition contains contradictory administration rights to buy operations with the
Order status, which cannot be allowed.
The solution is the following:
You must check if there are statuses or types with contradictory administration rights
(update, delete and create flags). If so, you must create new specific Function Security
Profile Compo records.
Parameter Value
Name “Confirm”
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 151
Parameter Value
Rank 101
Example:
exec ins_upd_dict_function_usr "Execution", "execution", "upd_field", NULL, NULL, 101
Note: You must only use a Rank of 101 or higher because rank numbers 1-100 are reserved
for internal Triple'A Plus Core usage.
7.8.2.6 Processing
To run an Update Fields function, do the following:
1. From the Order List function or Order List sub-function, select an operation.
2. Right-click it to display the context menu.
3. If you have the right to run the function on the selected operation, the Update Fields
option is displayed in the context menu.
Note: You can run the Update Fields function on multiple selected operations. You can also
run it on a block order.
7.9.1 Example
We can create two subscriptions triggered by the update of an order. One will generate an
event that will send the update request to an Order Management System (OMS), and the
other one will create a deferred event, waiting to have a positive response from the OMS
before being executed. Once executed, that second event can send the information to the
back office system so that it takes the changes on the order into consideration.
This mechanism works in conjunction with the "Data dependency" mechanism, allowing the
system to monitor changes happening on defined entities and to trigger subsequent actions
(refer to section about UPDATE_OBJECT_ARRAY in the Triple’A Plus Core Script Language
Reference Guide).
The necessary setup to achieve this is as follows:
Subscription 1:
Specific set of parameters to catch the desired change in Triple’A Plus
Event Status = Yes
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 152
Event Init Status = Untreated
Event Grouping = Group by Record
Subscription 2, exact same parameters as Subscription 1 except (depending on your
needs):
Event Init Status = Deferred
Request Status might be different
Code must be unique
Denomination should be different
Format might be different
Map might be different
Update Status Script might be different
Destination Code might be different (usually a different subscription daemon is
used here)
You can see that this operation does not refer to the operation stored in the database. The
matching/search criteria are the following: operation code, status, sequence number and
fusion_e < 2. Since the status is different, Triple'A Plus Core cannot update the operation.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 153
7.10.2 IMPORT_UPDATE_STATUS
To solve the problem described above, you must set the IMPORT_UPDATE_STATUS system
parameter to 1 to update the operation status. That way, Triple'A Plus Core retrieves all the
operations with the same operation code and sequence number and whose fusion_e attribute
is less than 2, and updates the operation with the highest status.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 154
7.10.4 EXECUTION_SOURCE_CODE
As mentioned above, the key element when updating the operation status is the operation
code. It is the main matching criterion for updating operations. However, in the case of a
partial execution, it is not enough, as detailed below.
Take the following operation in the database:
The pending order has the code DEF (generated by the default value) and the status Order
(status of the updated operation). However, the code of the updated operation is copied to
the source code of the pending order.
Later, the trader sends the execution of the pending order. The trader knows only the code
ABC and not the new code generated by Triple'A Plus Core. Consequently, you can refer to
the pending order to execute it. The solution is the following:
You need to set the EXECUTION_SOURCE_CODE system parameter to 1. It automatically
copies the code generated by the default value to the source code when an operation is
inserted.
In addition, you need to set the operation execution nature in your import file to Partial
Upd Mode (5) or Total Upd Mode (10).
In the present case, Triple'A Plus Core retrieves all the operations whose source code equals
the code (source code = @code), whose sequence number is the same and whose fusion_e
attribute is less than 2. Finally, Triple'A Plus Core updates the operation with the lowest
status.
That way, the source code is always the same in all the operations produced by the initial
order. The matching criterion is the source code. However, in the import file, you must set
the code and not the source code. For example, take the following operation in the
database:
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 155
Code Status Portfolio Instrument Quantity Source Execution
(BK) (BK) code Nature
ABC Confirmed 001 IBM 100 Partial Upd Mode
Then, you have in the database the following operations. The second operation is generated
automatically by Triple'A Plus Core.
At the next execution on the same order, you import the following operation:
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 156
If the Execution Detail domain parameter is set to Yes in Order List (i.e., the trade blotter),
then you can display:
The original order (i.e., the Extended Operation record) with its quantity (i.e., the
quantity_n attribute), the cumulated executed quantity (i.e., the executed_qty) and the
weighed mean quote of the executions (i.e., the weighted_mean_quote_n attribute)
The execution flow (i.e., the extended execution record) as separate data in a distinct
format
From a transaction point of view (trades) you have all the expected data.
In position-oriented business functions (i.e., Valuation, Check Strategy, etc.), Triple'A Plus
Core returns the following data:
From the execution flow, positions are based on the execution quantity, quote, etc.
From the original order, the system dynamically generates positions based upon the
remaining quantity. Actually, these positions are based upon a logical operation
produced by the function: it takes the original order, updates its quantity, executes the
default values related to the quantity and computes the corresponding positions.
From a position point of view (risk exposure), you have all the expected data.
When your trading system sends an order execution to Triple'A Plus Core, two cases can
occur:
In the meantime, the trading system can update the order status through another data
import. The order is shown as partially executed or totally executed.
You can directly update the order status. If the execution nature is set to Partial the
new order status is set to that of the PARTIAL_EXECUTION_STATUS system parameter. If
the execution nature is set to total the new order status is set to that of the
TOTAL_EXECUTION_STATUS system parameter. A similar feature allows you to update
the Child Orders of a Block Order when an execution is inserted. The system
parameters
CHILD_PARTIAL_EXECUTION_STATUS
and
CHILD_TOTAL_EXECUTION_STATUS
allow you to update Child Order states for partial and total executions respectively. This
is a means of updating the order states automatically in Triple'A Plus Core when an
execution is inserted.
Implementation hint: note that when an executed order is totally executed we
recommend updating its status properly. This means that the new status must belong to the
NO_POSITION_STATUS system parameter value. That way, the system automatically knows
that there is nothing left to obtain. In other words, Triple'A Plus Core does not generate a
pending position from the order. By avoiding this processing, system performance is
significantly improved. This is only true for orders executed with the new method.
When you carry out the accounting of your order executions, in your interface, instead of
updating the executions, you insert a new record with its own code (i.e., accounting
operation). But you must refer to the executions by giving the order code (i.e., ext_order_id)
and an execution matching criterion. The matching execution criterion is an attribute that
tells you which executions to account; for example, all the order executions with the same
operation and value date. All the order executions with the same operation and value date
are covered by this operation. The consequence of this execution accounting is that the
accounted execution flows do not generate any positions in the business functions. The
positions come directly from the accounted operation.
The execution matching criteria are managed as follows:
In the execution flows you provide the matching criteria. A specific attribute (i.e.,
execution set criteria, execution entity) holds this information, populated by the default
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 157
value or by the interface. For example, a string generated by the order and value
dates. You are limited to 80 characters. This information can be Null.
In the accounting operations, you also provide the matching criteria. This information is
held by a new specific attribute in the Extended Operation table (i.e., execution set
criteria). You are limited to 80 characters. The value can be Null.
In addition to the execution set criteria you have to provide an order code (i.e., ext_order_id
attribute in the Extended Operation table) to identify the execution flows. An accounting
operation that references this order code is only valid if its status is higher than or equal to
the value of the ACCOUNTING_STATUS system parameter.
7.11.3 Example
This example illustrates an order workflow where the back-office creates only one operation
per order (order code, execution value date).
1. Insert an order (ext_operation) with:
Field Value
Nature Buy
Code Alpha
Quantity 100
Currency EUR
Status Managed
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 158
Field Value
Order Code (ext_order_id) Alpha
Sequence Number
Quantity 53
Quote 113
Status Executed
Field Value
Order Code (ext_order_id) Alpha
F&T
Status Executed
Field Value
Order Code (ext_order_id) Alpha
Sequence Number 2
Quantity 45
Quote 116
Status Executed
Field Value
Nature Buy
Code Beta
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 159
Field Value
Status Accounted
Quantity 100
Quote 114.35
Currency EUR
The Nature field lets you select the following options from its drop-down list box:
None
Unallocated Block Order
Block Order
Child Order
Combined Order
Child Combined Order (The Combined Order and Child Combined Order
have a specific behaviour, see section Combined Orders.)
Unallocated block order: any modification or deletion never affects block orders.
They are identified by their Parent Operation Nature attribute (i.e., Unallocated
Block Order). From a chronological point of view, they are created before their
child orders. Portfolio Managers can enter a trade and allocate it afterwards to
client portfolios (i.e., refer to Order Allocation function for more details about
this).
The child orders of a parent order are operations that have the following settings
in the Parent Operation group box:
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 160
Nature = Child Order
Code = code of the Parent operation
Also, the Status in the tab's header block must be the status of the Parent
operation.
If a Block order is not yet allocated among several Child orders, you can set the
Nature field to Unallocated Block Order.
The Block Order/Child Order relationship between operations means that actions that
are performed on one operation can have an effect on one or more different operations.
The effect depends on the relationship between the operations. These effects can be
summarised as follows:
Effect of creating, updating and deleting Block Orders on their constitutive Child
Orders
Effect of creating, updating and deleting Child Orders on their parent Block
Orders
Effect of reversing Block Orders on their constitutive Child Orders
Effect of executing Block Orders on their constitutive Child Orders
These effects are described in the following sections.
You can create, update and delete Block and Child Orders in different ways in Triple'A
Plus Core:
Manually, using the Operation List or Order List financial functions. The screens
opened by these functions contain Create, Modify and Delete buttons.
Automatically, using the batch interface module.
Automatically, using the Strategy Reconciliation and Allocate Order financial
functions.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 161
Value Meaning Description
0 Default No additional criteria.
1 Basic
4 PosCurr/Deposit Both these types of data are additional criteria for grouping orders.
Based on that, for each set of criteria (instrument, operation status, operation nature[,
operation currency] [, deposit]), a Block Order is created with the following parameters:
Quantity yes Sum of the quantity of the different order proposals that fit with the
set of criteria described before.
Balance yes The sum of the different Balance Positions of the order proposals
Positions that comply with the set of criteria described above.
Note that you can use the Order Grouping function as well.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 162
An alert message informs the user that he/she will modify the Global Order’s
Instrument: “ D o y o u r e a l l y w a n t t o c h a n g e t h i s B l o c k O r d e r ? ”
Operation Exchange Rate, Portfolio Exchange Rate, System Exchange Rate
If the reference currency of the Child Order portfolio is the same as the Block Order
portfolio currency, the corresponding exchange rate is also modified in the Child Order.
Account Exchange Rate, Account2 Exchange Rate, Account3 Exchange Rate
If the reference currency of the corresponding account of a Child Order is the same as
the currency of the account of the Block Order, the corresponding exchange rate is also
modified in the Child Order.
Balance Position information
Modifying a Block Order's balance position counter (balance position type, currency and
amount) has an effect on the corresponding balance position of its Child Orders. They
are modified proportionally. This feature is is of interest when you add a brokerage fee
at the block order level that you want to dispatch proportionally through all its
constitutive child orders.
Example: Let us take the following block order and its constitutive child orders:
Child Order1 20 7
Child Order2 50 10
Child Order3 30 8
Note: If you modify a Block Order's Balance Position Amount, it automatically overrides
the corresponding BP amount at the Child Order level, executing the rule detailed
above.
Example:
Child Order2 50 10
Child Order3 30 8
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 163
Afterwards, you modify the fee FEES_1 to CHF 30:
Consequently, you must pay attention to modifications to the Block Orders' Balance
Positions counters that are the sum of the Child Orders' Balance Positions. In other
words, you must distinguish the bottom-up Balance Positions (Block Orders' BP from
Children) from the top-down Balance Positions (Child Order's BP from Block). Child
Orders' Balance Positions are set up using default values. Make sure these default
values are not applied to Block Orders by using script code similar to the following:
IF (parent_oper_nat_e <> 2 {Block Order}, 20 + 0.05 * op_gross_amnt_m)
This script lets you modify the Block Order quantity or quote without modifying the
different Balance Positions and, consequently, the Child Orders.
Accounts information
Modifying a Block Order's accounts information (codes, currencies, exchange rates) has
no effect on its Child Orders.
Quantity
Modifying the Quantity affects the quantities of Child Orders. They are modified
proportionally. Note that the default values assigned to the Child Order's Balance
Positions are re-executed once their new quantity is calculated. This means that these
balance position amounts are not modified proportionally. Finally, Triple'A Plus Core
sums up these amounts to update the Block Order Balance Positions.
Example:
Quantity Fees_1
Block Order 100 25
Child Order1 20 7
Child Order2 50 10
Child Order3 30 8
FEES_1's amount = 5 + 10%*Qty except for the Block Order that is the sum of the
Child Orders. Afterwards, you modify the Block Order's quantity.
Quantity Fees_1
Block Order 80 23
Child Order2 40 9
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 164
User Defined Fields
Any other modifications to a Block Order's user-defined fields are automatically inherited
by its constitutive Child Orders.
Gross and Net Amounts
Any other modifications to a Block Order's Gross or Net Amounts have no effect on its
constitutive Child Orders.
Other information
Any other modifications to a Block Order's fields are automatically inherited by its
constitutive Child Orders.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 165
The quantity of the parent Block Order is modified accordingly. There is no effect on the
Unallocated Block Order.
Balance Position
The balance positions of the Block Order are modified accordingly. There is no effect on
the Unallocated Block Order.
Parent Operation Nature
You cannot update the parent operation nature of child orders.
Parent Operation Code
You cannot update the parent operation code of child orders.
Operation Status
When defining the lifecycle of a block order and its child orders, it can happen that their
states are not systematically in line. A block order or an unallocated block order can
reach the status ‘Accepted’ while one of the child orders is only ‘Treated’. However, the
link between a block order and its child orders is not dependent on this information.
Changes to other Child Order fields have no impact on the parent Block Orders.
Value Description
None
Total The executed operation is fully closed by the execution operation. If the execution
quantity is lower than the order quantity then Triple'A Plus Core does not generate a
new operation for the non-executed remainder.
Partial If you choose Partial (Partial Execution) and the execution quantity is less than the
executed quantity, two events occur:
The execution operation closes the executed operation.
Triple'A Plus Core generates a new operation whose quantity is the non-
executed remainder.
The new operation that is generated when the execution is inserted inherits the
code of the execution operation and the status of the executed operation.
Note: all operations have the same source code.
Partial Execution If you set the Execution Nature to Partial Execution in Update Mode and the quantity
in Update Mode is lowered, two events occur:
The execution operation is simply updated.
Triple'A Plus Core generates a new operation with a quantity corresponding to
the non-executed remainder.
The difference lies in the processing of the constitutive Child Orders. See below.
The reference to the Executed Operation is created from the following information in the
Execution group box:
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 166
Nature = Total or Partial
Code = Code of the executed operation.
Status = Status of the executed operation. This status must be different from the
status of the execution.
For the Partial Execution in Update Mode, the processing of the constitutive Child Orders
influences the result. Again we refer to the Parent Operation as well as the Execution fields:
Case 1: Check Parent = No Impact
There is no effect on the Child Order of the Block Order.
Case 2: Check Parent = Impact and Execution Nature = Total
The Child Orders are also fully executed, which means that:
For each executed Child Order, a Total Execution is automatically generated with
a quantity that is a pro-rata of the Block Order execution quantity.
The pro-rata is based on the ratio of the quantity of the executed Child Order
and the quantity of the executed Block Order.
If the quantity of the executed Block Order is equal to the quantity of the
execution Block Order, the quantity of the execution Child Order is automatically
also equal to the quantity of the executed Child Order.
The default values assigned to the Child Order's Balance Positions are re-
executed once their new quantity is calculated. This means that these balance
position amounts are not modified proportionally. Finally, Triple'A Plus Core
sums up these amounts to update the Block Order Balance Positions.
Case 3: Check Parent = Impact and Execution Nature = Partial
The Child Orders are also fully executed, which means that:
For each executed Child Order, a Partial Execution is automatically generated
with a quantity that is a pro-rata of the Block Order execution quantity.
This pro-rata is based on the ratio of the quantity of the executed Child Order
and the quantity of the executed Block Order.
For each partially executed Child Order, Triple'A Plus Core generates a new
operation with a quantity corresponding to the non-executed remainder (as for a
standard execution).
The Balance Position amounts of the execution orders are re-calculated as a pro-
rata of the execution quantity. The remaining balance position amounts are
assigned to the new operations with the quantity corresponding to the non-
executed remainder.
Case 4: Check Parent = Impact and Execution Nature = Partial Execution in Update
Mode
The Child Orders are also executed, which means that:
All Child Orders are automatically updated with a quantity that is a pro-rata of
the Block Order execution quantity.
This pro rata is based on the ratio of the quantity of the executed Child Order
and the quantity of the executed Block Order.
For each partially executed Child Order, Triple'A Plus Core generates a new
operation with a quantity corresponding to the non-executed remainder (as for a
standard execution).
The Balance Position amounts of the execution orders are re-calculated as a pro
rata of the execution quantity. The remaining balance position amounts are
assigned to the new operations with the quantity corresponding to the non-
executed remainder. Note that when you execute your order, you can add a new
Balance Position counter at the Block Order level. For each execution Child
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 167
Order, a Balance Position counter is automatically added with an amount that is
a pro rata of the execution quantity.
See the Execution methods table (section Execution methods) for a summary of the different
cases.
Note that, in both cases, when allocating the quantity of the execution Block Order across
the various execution Child Orders, Triple'A Plus Core takes account of the instrument's Odd
Lot Quantity. This means that the allocation process is performed in two steps:
1. The computed quantity of each execution Child Order is rounded down to a multiple of
the Odd Lot Quantity.
2. What remains non-allocated is attributed to the proposed orders. Triple'A Plus Core
begins with the smallest orders and adds a margin to the initial objective (the pro-rata of
the executed quantity). The margin is defined at system level. See the
ORDER_ALLOC_QTY_MARGIN parameter in the Application Parameters section of the
Triple'A Plus Core System Management Guide.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 168
7.12.3.1 Execution methods
Execution Method Processing Execution Qty < Order Child Execution Child New Block Order's BP
Qty Order Order's BP information - Impact on Child
Qty information Orders?
Total / Insert (Total Exec.) Insert a new No operation generated with a Pro rata By default value
operation that refers quantity corresponding to the
It is not recommended to the order. non-executed remainder.
use this method. It has
severe limitations
Partial / Insert (Partial Insert a new An operation is generated with Pro rata Pro rata
Exec.) operation that refers a quantity corresponding to the
the order. non-executed remainder.
It is not recommended to
use this method. It has
severe limitations.
Total / Update (<None>) Update directly the No operation generated with a Pro rata By default value A corresponding Balance Position is
order. quantity corresponding to the generated with an amount calculated
non-executed remainder. as the pro rata of the Child Order
quantity
Partial / Update (Partial Update directly the An operation is generated with Pro rata Pro rata A corresponding Balance Position is
Upd Mode) order. a quantity corresponding to the generated with an amount calculated
non-executed remainder. as the pro rata of the Child Order
quantity
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 169
7.12.4 Reversing Block Orders
An Operation Reversal corresponds to the creation of an operation that references the
Reversed Operation.
The reference to the Reversed Operation is created from the following information in the
Reversal group box:
Field Value
Nature Reversal
The effects on the Child Orders depend on the Check Parent field:
Case 1: Check Parent = No Impact
There is no effect on the Child Order of the Block Order.
Case 2: Check Parent = Impact
The Child Orders are also fully reversed, which means that for each reversed Child
Order, a Reversal Operation is automatically generated.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 170
The minimum and maximum operation statuses must be less than the accounting
value. Only orders can be deleted or archived from this function.
Only orders can be deleted or archived from this function. The Load Global Order filter
is forced to Children. This filter includes the child orders (linked to the selected
transactions) in the processing.
Referenced orders cannot be purged. A referenced order is the old version of the
reference operation in its life cycle
(the ext_operation.execute_oper_nat_e field)
If a purge is attempted on referenced orders, they are not deleted but are displayed as
errors.
The Extended Operation structure is returned in the first panel and the extended execution
structure in the second panel. Each result row contains information on the transaction
(dates, quotes, prices, etc.). You cannot modify transactions from these result screens. The
View button is the only one enabled when you double-click a specific row for more details.
The following table shows the different Purge Order methods (in the Purge Order Method
drop-down list):
Purge Only Purges the orders in the database which match the domain criteria. After this
action, the transactions are definitely deleted from the database and are no longer
accessible.
Extract Only Leaves the database intact. The archived transactions are exported to an archive
file on the UNIX host. Make sure you enter the Archive file path in the File Name
field. This file must be accessible from the Financial server. The file properties
must include modify rights for the financial server user. If this method is chosen
and no file name is specified, an error is raised.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 171
Purge Order Description
Method
Purge & Extract This method combines the Purge Only and Extract Only methods. If the data
cannot be archived in the file, the delete is rolled back and the data restored.
Note: If you run the function in Extract Only mode, you may retrieve more records than the
output from Purge Only mode. The reason for this is that the Extract Only mode is a
simulation that does not take any database errors into account. In Purge & Extract mode, it
is guaranteed that the data extracted in the file is purged/deleted data. There is no
difference between the two outputs.
When the Purge Only method is chosen:
If the result screen is empty (that is, no transactions are displayed), it means that all
the transactions have been correctly deleted. Only transactions with errors are
displayed on the screen. For example, if you have ten orders to delete and two orders
are displayed on the screen as errors, it means that eight of them were successfully
purged.
The executions and global execution fee linked to the deleted orders are also deleted
The transaction providing data consistency is at the order level only. The executions
linked to the order are deleted in this transaction.
When an accounted operation references a purged order (to account order executions
through the order code and execution set criteria), the link from the operation to the
order is deleted. A trace of this order is kept by storing the order code in the operation
record (order _code attribute).
If there are one or more valid subscriptions on the Extended Operation entity, the
Purge Order function generates event and/or audit records. Only subscriptions on the
Extended Operation entity are activated by this function. Subscriptions on the execution
or global execution fee entities are not executed.
When the Extract Only method is chosen:
If the result screen is empty (that is, no transactions are displayed), it means that all
the transactions have been correctly archived. Only transactions with errors are
displayed on the screen.
The archived records can have three possible structures, one for each of the following
entities: Extended Operation, execution and global execution fee. Each record is
constructed in the following way: <entity name> as the first field, and a complete
entity description in which each field is described by its name followed by its value. This
output structure is exactly the same as the event or audit structure generated by the
subscription.
Examples:
<ext_operation>nature_e=2^^ function_result=NULL^^ code=^_A_OCE1_1^_^^….
<execution>ext_order=^_A_OCE1_1^_^^ type=NULL^^ type.attribute.entity=NULL^^
<global_execution_fee>ext_order=^_A_OCE1_1^_^^ type=NULL^^
There is no specific procedure provided to import these transactions back into the Triple'A
Plus Core database. If you need to redirect these transactions into Triple'A Plus Core, the
DataStage TX (formerly Mercator) maps for these entities' subscriptions can be very helpful.
Batch mode: if you want to execute this function by batch, use the stored procedure
exec_fin_analysis_all_domain. This procedure is available on the Sybase server. It is
stored in the main database of Triple'A Plus Core. This procedure accepts any domain
attributes as parameters. None of the attributes is mandatory.
The following is an example of this stored procedure called from the Unix command line:
$SYBASE/bin/isql -U$APPL_OWNER -P$APPL_OWNER_PASSWORD -S$DSQUERY <<END1
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 172
use $MAIN_DB
go
set dateformat dmy
go
exec_fin_analysis_all_domain
@function = 'purge_order',
@dim_port = 'portfolio',
@port_object = 'OCE1',
@currency = 'CHF',
@calc_from_d = NULL,
@calc_till_d = NULL,
@format = 'PCK_PM_POR_LS_INPUT',
@min_status_e = 0,
@max_status_e = 3,
@load_global_order_e = 2,
@purge_order_method_e=0,
@file_name_c="/users/product/oce/test"
go
END1
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 173
Operation Type:
The default value of the operation type has to link the operation type and
allocate nature of Allocate Order Domain.
The link operations have the following parameters set in their operation parent block:
Check parent = "No impact"
Parent Combined Order = "Child Combined Order"
Parent code = operation code of the combined operation
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 174
7.13.2 Maintaining Combined Orders
In the following sections, you will learn about:
Creating Combined Orders
Updating Combined Orders
Deleting Combined Order
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 175
Compound Order
Each Compound Order has a structure of legs defined by a Compound Order rule.
Each leg order is linked to a Compound Order rule master or slave elements.
Compound Order
Master Compound Order Rules Element 1 1..* Slave Compound Order Rules Element
1..*
The Compound Order rule defines the different business orders/operations associated with a
type of Compound Order. Each event is modelled by a combination of one master element
having one or many slave elements.
The Compound Order rule also includes the ability to define the rules applicable to the
dependencies between master and slave for default values, input control, and filter.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 176
In the Triple'A Plus WUI standard packaging, the following types of Compound Orders are
delivered:
Option Strategy Orders
Switch Orders
Example of application: Call Spread option strategy.
The buy of a Call Spread is modelled by:
A master leg on operation nature Buy about a call option.
A slave leg on operation nature Sell about a call option with a higher strike.
The sell of a Call Spread is modelled by:
A master leg on operation nature Sell about a call option.
A slave leg on operation nature Buy about a call option with a higher strike.
The Compound Order rules are essential because they are the pattern that defines the legs
as well as the interactions between the legs. They are also important for the initialization of
a new Compound Order; it supports a top-down initialization of the full structure from the
master Compound Order element.
Attribute Description
Compound Order Code Unique identifier of a Compound Order (resp. operation). All
orders (resp. operations) that define the legs of a Compound
Order have the same Compound Order code.
Compound Order Master Element Reference of the master leg of the Compound Order rule
definition applicable.
Compound Order Slave Element Reference of the slave leg linked to the master leg of the
Compound Order rule definition applicable.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 177
Buy for long Call Spread having a slave based on a sell, and one master leg based on
operation nature Sell for short Call Spread having a slave based on a buy.
The following sections will provide information about:
Compound Order rules definition
Compound Order rule master element definition
Compound Order rule slave element definition
Attribute Description
Code Code of the Compound Order rule.
Attribute Description
Compound Order rule Master element of the slave.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 178
Attribute Description
Compound Order master Master element of the slave.
Screen Sets a screen to define the default values, entity control, and
filter applicable for the slave.
The default value and filter defined in this screen have the
higher priority for the order belonging to the slave element.
Rank Sets the rank of the slave vs the other slaves linked to the
same master.
Leg Nature Lets you define the occurrence of the slave in the composition:
Single: there is only one slave order linked to this element
in the Compound Order.
Multiple: possible to have more than one slave order linked
to this element in the Compound Order. It implies that it is
possible to duplicate during the Compound Order creation
the same slave order.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 179
7.14.4 Compound Order: Execution and accounting management
Features in Triple’A Plus for executing and accounting for single orders are also applicable for
Compound Orders; there are some features specific for Compound Orders due to its multiple
leg structure.
The methods used to support the full and partial executions of Compound Orders as well as
the accounting of these orders are:
Method 1: Execution and account management when order data and status are updated
Method 2: Execution and account management via the execution record
7.14.4.1 Method 1: Execution and account management when order data and status are updated
With this method, a Compound Order is executed and accounted for when, for each leg
order, its attributes/data is modified and its status is changed to move it through the
different stages of the lifecycle.
Similar to single orders, Triple’A Plus supports the executions (full and partial) as well as
accounting management for Compound Orders.
For full executions, as all leg orders are executed, the Compound Order code initiated
at creation is kept.
For partial executions, the Compound Order code is re-instantiated to avoid having one
party not yet executed while another party is executed with the same Compound Order
code. Triple'A Plus automatically applies a similar principle for the code of other
orders/operations in this context.
For this purpose, the standard packaging of Triple'A Plus includes a specific system default
value to provide for the management of the Compound Order code along all stages of the life
cycle.
Regarding partial executions, the system will first partially execute the master leg and then
re-use the same newly-created Compound Order code for the partial execution of the slave
leg. This is done to keep the relationship and integrity between the different leg orders at
the execution and accounting levels. There is no script to automatically put the new
Compound Order code of the master leg in the slave legs.
7.14.4.2 Method 2: Execution and account management via the execution record
With this method, the approach is based on the Triple’A Plus feature applied in the context of
multiple leg orders - the execution of each leg and the accounting of each leg - to derive a
compound operation that has the same structure as the linked Compound Order.
In this method, there are three types of records for each leg order of the Compound Order:
The order that defines a leg order of the Compound Order.
The execution to manage the execution data relative to a leg order.
The operation to manage the accounting of the execution of a leg order.
Then, the principle applicable for single orders is applied to each leg order of a Compound
Order, which means that there will be:
One execution for each leg order.
One accounting operation linked to the execution(s) of a leg order.
Following the principle of life cycle management in Triple'A Plus to move from a single order
to a single operation with a link through the execution, Triple'A Plus supports the same life
cycle stages to move from a Compound Order to a compound operation.
The relationship between the leg (accounting) operations is managed by the Compound
Order code. If, however, we follow the existing principle applied between orders and
operations, then the code has to be different because the Compound Order and compound
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 180
operation are both available in the system. Therefore, the Triple’A Plus standard packaging
includes a specific system default value to manage the Compound Order code between the
order life stage and the accounted operation stage. This default value is required to manage
all stages of the life cycle for a compound operation deriving from a Compound Order.
Of course, the methodology to generate and manage the Compound Order code can be
refined at the client site during implementation but the management of the Compound Order
code defined above must be respected in any case.
With the delivery of the system default value, the following attributes must be defined to
respect the Compound Order principle when the accounting operation is created:
The order code of the execution to be accounted.
The sequence execution code, if necessary.
The reference of the Compound Order master element rule for operations of master and
slave(s) leg(s).
The Compound Order slave element rule linked to the master rule element for the
operation(s) of the slave(s) leg(s).
The order type, type and sub-type applicable for the relevant Compound Order rule.
This way, a new Compound Order code will be generated by this system default value for the
accounting operation of the Compound Order, and include the benefit to view it as a
compound operation through the standard WUI packaging.
Regarding full and partial executions of Compound Orders:
For full executions, each leg order has to be fully executed through the execution
created for each leg order as for single orders.
For partial executions, each leg order has to be partially executed through the
execution created for each leg order as for single orders. Of course, a partial execution
of a Compound Order has to be understood as for a single order: the quantity of the
order is not fully executed; it is not executing some legs and while other legs are not
executed.
The accounting operation of the master leg has to be done before the accounting operation
of the slave leg because the system default value provides the support to get the new
Compound Order code re-instantiated for the slave leg.
Triple'A Plus supports the execution of leg orders at different times, which implies that the
execution of some leg can be delayed if necessary. This case is considered as an incomplete
execution of a Compound Order; different to a partial execution.
Triple'A Plus also supports having one leg accounting operation per execution of leg order. As
well, the system supports having one leg accounting operation for several executions of the
same leg orders when a leg order is executed by several partial executions. In this case, as
for single orders, the executions are linked to the leg accounting operation through the
execution set criteria.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 181
8 Initiate Order
This chapter describes the Triple'A Plus Core Initiate Order module. It is intended for Super
Users and implementation consultants. The chapter is organised as follows:
Section Initiate Order describes the Initiate Order function.
Section Implementation provides implementation information.
Section Examples includes some examples.
The Initiate Order module provides facilities for generating orders and defining customised
actions, making it easier to process a large number of orders.
The Order Grouping and Order Grouping Index functions are an important part of Order
Management. They are described in sections Order Grouping and Order Grouping Index.
8.2 Implementation
This section describes how to create and use functions with Initiate Order. It is of particular
interest to the technical user. Each step of the implementation process uses an example
based on creating a function called Spot Change. Other examples are provided where
necessary.
From the business point of view, Spot Change initiates orders that sell all the long cash
positions that are not in the portfolio currency and buy all the short positions that are not in
the portfolio currency. At the end, if the function is run on all the cash positions in the
portfolio, the system proposes orders that produce a single cash position in the portfolio
currency in the portfolio, if accepted.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 182
8.2.1 Introduction
Note that the Initiate Order function is a dict_function entry in Triple'A Plus Core. It is a
generic function that has no business sense or functionality unless it is implemented.
The following definitions are important:
Term Definition
Action All the functions that have Initiate Order as the parent function. An action is an object that
has a business use. It is the function that the end user sees (if it is referenced in his/her
Function Security Profile).
Sub- All the functions that have an action as the parent. A sub-action cannot be seen by the end
Action user but only by the Super User. Sub actions contain a description of the mapping from the
financial function result to the operation entity.
Action
An action is a business function that a user will call from a financial function result. For
example, say you create a function called Cash Management that initiates orders from the
result of a Valuation of cash positions. The description of what the action does is not included
in the action infrastructure. To tell the system what kind of functionality you want Cash
Management to perform, you must define sub-actions.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 183
Sub action
A sub-action is always linked to an entity through the entity_dict_id attribute of the
dict_function entity. You can link several sub-actions to a given action, or, in other words, an
action can have several child actions (can be the parent of several sub-actions). When you
run an action from the context menu (right-click the selected line in a format), the system
generates one order for each sub-action of the selected action. This is not all that happens
but it is a convenient approximation of the process. The nature of the operation initiated by a
sub-action is that indicated in the entity_dict_id field of the corresponding sub-action.
The following example will illustrate this abstract description:
Say you want to define an action that sells a money market position that has expired and
buys the same money market with a quantity increased by the interest from the position. In
this case, you define:
One action called Money Market Renewal.
One sub-action (in the Sell operation entity) called Money Market Sell.
One sub-action (in the Buy operation entity) called Money Market Buy.
The description of how the action works is attached to the two sub-actions. More information
is given on this description in the next section with another important feature of the action
infrastructure.
In business terms, the action will only initiate orders from positions in cash accounts that are
not in the portfolio currency.
The “@” symbol indicates that the name that follows is the sqlname_c of the format element.
Consequently, the Spot Change action will only work on formats that have the following
three format elements:
instr_nat: the instrument nature of the position.
ptf_curr: the currency of the portfolio in question.
pos_curr: the currency of the cash account.
Note:
The FORMAT() script keyword associates an action with a specific format. This keyword
retrieves the format attributes. For example, if you want to associate the Change Spot action
with the Cash_holding_fmt format, you have to add the following condition to the rights:
FORMAT().code=”Cash_holding_fmt”.
Note:
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 184
It is recommended that an action is linked to a given format and that it is clear that the
format is used in the context of Initiate Order. This is to avoid the risk that modifying a
format element produces an inconsistency with the rights or the definition of the created
action.
Once the rights are defined at the action level, you may need to add specific conditions to
the sub-actions. In the Change Spot example, you want to initiate a Buy order only if the
position is short and a Sell order only if the position is long. Therefore, you must add the
following script (same menu option as before) to the sub-action:
Spot Change Sell: IF(@quantity >0,1,0)
Spot Change Buy: IF(@quantity <0,1,0)
In this case, the format from which you run the action must contain a format element whose
sqlname_c is ‘quantity’.
At this stage, the action only works on positions that are capable of initiating an order. You
must then specify how Triple'A Plus Core initiates the order.
8.2.6.1 Screens
From a business point of view, it is not always possible to know the value of all the order
attributes beforehand. For example, if you have a sub-action that initiates a buy on a term
deposit, you may have to choose between several instruments. To make it possible to enter
the instrument and other operation attributes manually, you can associate a screen with a
sub-action.
When a user runs the action, Triple'A Plus Core will automatically ask for the data to be
entered. For an example of this feature, see section Cash Management.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 185
To link a screen to a specific sub-action, perform the following steps:
1. Create the screen (for the entity linked to the sub-action).
2. Add the screen to the Screen Profile Composition and enter the sub-action name in the
record.
Triple'A Plus Core will then always open the screen when the action is run.
Once the data is entered, Triple'A Plus Core initiates orders using the defined mapping. For
the attributes that appear in the screen, Triple'A Plus Core ignores the mapping (sub-action
definition) and copies the value input manually for all the orders initiated by the sub-action.
Remember that if the action is run on several positions, one sub-action could initiate several
orders.
Note: Default Values, Filters and Input Control can be used in these screens.
8.2.7 Security
To authorise users to use an action, you must add the specific action to their Function
Security Profile with the Create Flag set to Yes. Security on the status of orders is managed
by the security settings associated with the order entry session.
Of course, users must be given access to the formats containing the format elements used
by an action in the rights linked to the action and the sub-actions and also in the mapping
definition. The implementation must be consistent between the action added to the Function
Security Profile and the format added to the Format Profile.
8.3 Examples
This section describes the actions delivered with Initiate Order. These actions are not
intended to be used as defined. They are examples that illustrate the functionality of this
new feature. You can use the examples to create specific actions to suit your business
requirements.
Section Business functions describes the business purpose of the created actions. Section
Infrastructure deals with the infrastructure created (formats, screens, actions, etc.). Finally,
section Examples contains examples with screenshots of how to use the functions.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 186
8.3.1 Business functions
8.3.1.2 Deposit
This function initiates an order from a positive cash position in order to invest this cash
position in a Deposit.
In this example, the minimum amount required to invest in a Deposit is not taken into
account. It is sufficient to have a positive cash balance (the minimum is set by the bank).
The next section shows it is quite simple to modify the action in order to initiate a Deposit.
The following example illustrates the Deposit action.
If you have the following positions in a portfolio (the portfolio currency is not important
here):
100,000 USD
-50,000 EUR
40,000 CHF
and you run the Deposit action after selecting the three lines you will get the following
orders:
Buy USD Deposit for a value of 100,000 USD
Buy CHF Deposit for a value of 40,000 CHF
Triple'A Plus Core does not propose an order for the EUR position, as it is negative.
An important point is that the instrument that is going to be bought is not clearly specified.
You can only say that it is a deposit and specify its currency. No mention is made either of
the rate of the deposits or the expiration date. The user running the Deposit action enters
this information manually. The reason for this is that the position level information is not
known. Note that to do so, you can only create different deposit buys in the same currency
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 187
at the same time. For more details on how the functionality works, refer to section
Examples.
Portfolio 1
10,000 EUR No order
Portfolio 2
120,000 EUR Buy EUR Term Deposit for 120,000 EUR
Portfolio 3
-10,000 EUR No order
8.3.2 Infrastructure
This section describes the Initiate Order infrastructure that is part of the standard package.
This means:
Meta-dictionary actions and sub-actions
Rights associated with all actions
Rights and Definition of all sub-actions
Meta-dictionary sub function of order entry
Formats for the valuation and the order entry functions
Screens for the manual input of data
Format, screen and Function Security Profiles
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 188
8.3.2.1 Actions
Below is a description of the meta-dictionary entries and the rights linked to each action. The
parent function for each entry is ‘Initiate Order’.
Term PCK_IO_CASH_MGT_DEPO Rights are only given if the Deposit action is started from a
Deposit format dedicated to this action, namely
pck_io_cash_mgt_depo PCK_IO_VL_GLOBAL, and if the position amount is more
than 0. In script terms this is:
IF(FORMAT().code="PCK_IO_VL_GLOBAL" AND @QUANTITY >
0,1,0)
Cash PCK_IO_CASH_MGT_GLOB Rights are only given if the Cash Management action is
Managment started from a format dedicated to this action, namely
pck_io_cash_mgt_glob PCK_IO_VL_GLOBAL, if the position is a cash position and if
the position amount is more than 0 for a cash position in the
portfolio currency, otherwise for any amount. In script terms
this is:
IF(FORMAT().code="PCK_IO_VL_GLOBAL" AND
(@SYS_NET_AMT>0 OR
@ACCOUNT_ID<>@INSTR_ID),1,0)
8.3.2.2 Sub-actions
Below is a description of the meta-dictionary entries, the rights linked to each action and the
mapping from the position to the order:
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 189
Attribute Definition Format Element Definition
account_id @INSTR_ID instr_id
Attribute Definition
instr_id @INSTR_ID
account_id @ACCOUNT_ID
quantity_n -@QUANTITY
portfolio_id @PORTFOLIO_ID
For the account_id format element, the script definition is the same as for the long spot
change sub-action mapping.
Note: In this case, no definition for the instrument (instr_id) can be indicated. For this
specific action, the instrument (term deposit), the rate of the term deposit and the expiration
date must be entered by the user just after running the action. This mechanism is
implemented by linking a screen to this action. See the example in section Examples.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 190
Attribute Definition Format Element Definition
account_id @ACCOUNT_ID See above
Long Change
This action is performed if the amount is positive but is not more than 100,000 (in the
system currency) and if the instrument currency is different from the portfolio currency. The
right linked to this sub-action is then:
IF(@SYS_NET_AMT>0 AND @SYS_NET_AMT < 100,000 AND @ACCOUNT_ID<>@INSTR_ID,1,0)
The mapping for this sub-action is:
Deposit Buy
This action is performed if the amount in the system currency is bigger than 100,000. The
right linked to this sub-action is then:
IF(@SYS_NET_AMT >= 100,000,1,0)
The mapping for this sub-action is:
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 191
With this infrastructure we can generate orders in different order entry sessions.
Format Description
ACCOUNT_ID Identifier of the account linked to the portfolio.
POS_CUR_ID Currency of the instrument. Used in D.V. of the screen, in the format element list of
the formats PCK_IO_VL_SPOT and PCK_IO_VL_GLOBAL.
Format Description
PCK_IO_ORD_EN_SPOT Detailed list for the spot change orders.
We have created one screen on the buy operation entity in order to allow a manual input of
the instrument in case of the generation of a buy order by the sub actions
PCK_IO_CM_DEPO_BUY and PCK_IO_GCM_DEPO_BUY. The code of the screen is
PCK_IO_CM_DEPO_BUY. Its characteristics are:
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 192
Attribute Default Filter Edit Rank
Value
fi_currency_id @POS_CUR_ID Non-editable
value_d Insert/Update 5
expiration_d Insert/Update 10
rate_p Insert/Update 15
Remark_c Insert/Update 20
Input Control
IF(value_d>=expiration_d,MSG(ERROR,"expiration_d",NULL,NULL,"Expiration date has to
be higher than the value date"));
IF(value_d<SYSDATE(),MSG(ERROR,"value_d",NULL,NULL,"Value Date should be higher or
equal than Today"))
PCK_IO_FUNC_SEC_PROF
Profile of functions linked to initiate orders. It contains the following functions.
Format Description
PCK_IO_CASH_MGT_DEPO Term deposit action.
PCK_IO_OE_CM_DEPO Sub function of order entry to display term deposit buy orders.
PCK_IO_FMT_PROF
Profile of formats, contains the formats described above, namely:
Format Description
PCK_IO_VL_DOMAIN Domain Valuation
PCK_IO_SCREEN_PROF
Profile of screens, contains two records:
Screen Function
PCK_IO_CM_DEPO_BUY PCK_IO_GCM_DEPO_BUY
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 193
Screen Function
PCK_IO_CM_DEPO_BUY PCK_IO_CM_DEPO_BUY
8.3.3 Examples
In this section we give examples on how to use the three functions described above. All
examples start from the valuation of a list of portfolio Portfolio_list that contains 6 portfolios:
CHFx_Portfolio, x=1,2,3 are portfolios in CHF, generic account=”CHF”.
EURx_Portfolio, x=1,2,3 are portfolios in EUR, generic account=”EUR”.
On the Valuation - Portfolio List screen, select all positions ([CRTL] + [A]) and run the
function “Change Spot” (PCK_IO_CASH_MGT_SPOT) to open the order entry session.
Saving the proposed operation: After saving the proposed session, we have only one cash
position in each portfolio. Launching the valuation shows the valuation for the portfolio on
the Valuation - Portfolio List screen.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 194
After the selection of all positions, run the “Term Deposit” action and the system will display
a separate screen asking for manual input of some data (e.g., Instrument, Currency, Value,
Expiration, Interest Rate, and Remarks).
In this example, our input was the “FIDU-CHF” instrument. We added the expiration date of
the term deposit (01/05/2002) and provided a rate (5.5%). After the input, the system
generates a buy order of the “FIDU-CHF” instrument for all positions that are positive. Then,
the system generates three orders as shown in the following image:
The information seized manually is copied in all the operation. As you can see in the image
above, the only instrument that appears in the orders is “FIDU-CHF”.
Note that this order entry session is not the same as the one opened for spot change orders
in accordance with the order_entry_function_dict_id linked to each sub-action.
At this stage, if we keep the order entry session open and go back to the valuation formats,
then select the USD tab, we get:
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 195
Select all the positions and run again the “Term Deposit” action. The system will display
again a separate screen asking for manual input of some data (e.g., Instrument, Currency,
Value, Expiration, Interest Rate, and Remarks).
Here we seize an USD term deposit that expires on 10/06/2002, which has a 7% interest
rate. The validation of the manual input in the screen shown above leads to the adding of
four more orders in the order entry session (i.e., four positive positions in USD currency as
shown in the image below):
Again, we see that the data entered manually appears in all concerned orders. For example,
if we look at the rate column, we see that the rate is equal to 5.5 % for the orders generated
in the first step (CHF positions) and that the rate is 7 % for the orders generated in the
second step (USD positions).
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 196
position is concerned by the term deposit buy. The only position over 100,000 CHF is the
120,000 CHF in the portfolio CHF3_Portfolio. We get the following data:
The system generates orders. After that, we run the same action on the “USD” instruments
(selection of all positions in the USD tab). The system opens again another screen. Again, we
have one position over 100,000 CHF it is the position in USD in the portfolio EUR2_Portfolio.
We get the following information:
After clicking the OK button, the orders are added to the opened session. We end with the
following orders:
The Spot change orders are grouped together in the associated order entry session. It
concerns all the positions under 100,000 CHF (all the instruments are different from the
default account). It means that we get 5 orders from the CHF tab and 4 orders from
the USD tab.
The term deposit orders are grouped together in the order entry session reserved for
this kind of orders. Only two orders are concerned.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 197
9 Execution Matching
The Execution Matching Tool Module allows authorised Triple'A Plus Core users to recover
executions that were not imported into the Triple'A Plus Core database before this
development. More precisely, if the option is set in the import file, it lets users save
executions to a new entity in the following situations:
The order code referenced in the execution does not exist
A duplicate key row occurs
The execution referenced is not in the database
An input control does not allow the execution to be saved
This new kind of data, called Unmatched Executions, is performed using two functions:
Unmatched Execution List: lets you list the unmatched executions
Search Matching Orders: lets you retrieve orders that match the selected unmatched
executions for the specified criteria
Using these two functions, the user can detect why the execution ended up in the
unmatched execution entity and can modify (or match) the execution so that the modified
(or matched) data can be stored in the execution entity.
This chapter deals with the functionality and the implementation of the matching module.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 198
The Select Function Security Profile Comp screen is displayed.
3. Click Create button to add the desired functions, in this case Search Matching Order.
The Create Function Security Profile Comp screen is displayed.
4. On the Create Function Security Profile Comp screen:
The Create Flag, Update Flag and Delete Flag fields (create_f, delete_f and
update_f table columns) are not used for the Unmatched Execution List and
Search Matching Order functions.
For the Administration of the Unmatched Execution and Unmatched Global
Execution Fee entities, the Create Flag field (create_f column) is used to allow or
disallow the creation of unmatched data using the Graphical User Interface
(GUI). Since there is no update in the unmatched execution entity, the Update
Flag field (update_f) is not used.
If you allow specific users to run the Search Matching Order function, you also
have to grant them the right to run the Unmatched Execution List function.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 199
To access this infrastructure, go to Administration > Profiles from the main Triple'A Plus Core
menu.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 200
External system
import
Data
DataStage TX
import
Data
ERR (ROD
Triple’A Import
not enabled)
RO
C
SU
Triple’A database
Triple’A database
Unmatched
Execution entity
Execution entity
Notes
Note that the redirection of data is not applicable to every type of error. It only applies
to four different types of errors (see list below).
Also note that execution data can lead to an error in a DataStage TX map (formerly
Mercator maps). The new workflow with the Set Redirection On option and the old work
flow are then as follows.
When an execution is saved into the unmatched execution table (as a result of a ROD),
the reason why it could not be saved is recorded in the execution table in the
enumerated field import_failed_e. The permitted values of this field are listed below:
The order code referenced in the execution does not exist in Triple'A Plus Core
(i.e., there is a non-resolved business key). The error message is Order Not
Found (ONF).
The execution to update or delete cannot be found. The error message is
Execution Not Found (ENF). This only occurs in update and delete modes.
The execution already exists in the system and cannot be imported. The error
message is Duplicate Key Row (DKR).
An error input control is not satisfied. In this case, the error message is Input
Control Failed (ICF).
Note that import mode is specified in the import_mode_e field. The import mode can be
one of the following values: insert, update, delete, insert-update, update-insert.
The record saved in the database is the record Triple'A Plus Core tried to import with
the default values of the execution table applied. In Update mode, if an input control
has failed, the old record update and the evaluation of the default values are stored in
the database.
There is no default value for the Unmatched Execution table.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 201
9.2.2 Examples
This section provides an example of an execution that cannot be imported into the execution
table. The examples show what happens if the option SET REDIRECTION ON is set.
Let us say that for all the examples, the following data exists in Triple'A Plus Core:
Order: Buy 100 IBM @ 55 USD, code=AAA_PTF0001
Execution: 40 IBM @ 52 USD, order code=AAA_PTF0001, sequence number=1
Field Value
Ext_order_id NULL
Ext_order_code EXT_PTF0001
Instrument_id.code IBM
Quantity_n 60
Quote_n 51.5
Sequence Number 2
Import_mode_e Insert-Update
If ‘SET REDIRECTION ON’ is not set, no records are saved to the database and the following
messages are copied to the log file:
EXT_PTF0001;IBM ;60;51.5;2
ERR 20 file <stdin>, line 15: Unresolved reference on 'light_order' - code :
‘EXT_PTF0001'
MSG aaa, laurs55b, 2004/03/19 14:48:52, <stdin>:15 : closing <stdin>
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 202
If SET REDIRECTION ON is set, the following record is saved to the unmatched execution
table:
Field Value
Ext_order_id AAA_PTF0001
Ext_order_code NULL
Instrument_id.code IBM
Quantity_n 60
Quote_n 50.5
Sequence Number 2
Import_mode_e Update
If SET REDIRECTION ON is not set, no records are saved to the database and the following
messages are copied to the log file:
AAA_PTF0001;IBM ;60;50.5;2
ERR 24 file <stdin>, line 17: Unable to update record
MSG aaa, laurs55b, 2004/03/19 14:55:52, <stdin>:15 : closing <stdin>
Field Value
Ext_order_id AAA_PTF0001
Ext_order_code NULL
Instrument_id.code IBM
Quantity_n 40
Quote_n 60
Sequence Number 1
Import_mode_e Update-Insert
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 203
ROD AAA_PTF0001;IBM;40;60;1
MSG 21 file IMP_File.txt, line 18: Input control script error message - The quote in
the execution is not in a 10% margin of the quote in the order.
MSG aaa, laurs55b, 2004/03/16 16:46:11, ImpFile.txt:21 : closing ImpFile.txt
Field Value
Ext_order_id AAA_PTF0001
Ext_order_code NULL
Instrument_id.code IBM
Quantity_n 30
Quote_n 51
Sequence Number 1
Import_mode_e Insert
The above examples show how an unmatched execution can be created by the arrival of an
execution through the interface. Section Create Unmatched Execution shows that the
unmatched executions can also be created through the graphical user interface (GUI). The
following sections describe the GUI features provided to users to process the unmatched
executions.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 204
the ext_order or operation entity. To run the function, go to Productivity > Unmatched
Execution List from the main Triple'A Plus Core menu.
You must then complete the Domain screen which is displayed to specify which records you
want to retrieve. At the top of the Domain screen, you can set the domain parameters such
as the Initial Date, Final Date, Portfolio Dimension, Instrument Dimension, etc.). At the
bottom of the screen, you can set the Unmatched Execution criteria, such as Failed Import
(the reason for failure), Import Mode, Deposit, Market, etc.).
Notes
The Domain screen is fully customisable, which means that you can:
Define the Domain fields by creating a User-Defined Screen (UDS).
Define the criteria that are listed at the bottom of the screen by assigning search
criteria to the user.
Add UD fields to the Unmatched Execution table (through the Execution table) and use
them as search criteria.
Once you click OK button (or Apply button), Triple'A Plus Core displays the unmatched
executions that satisfy the criteria you entered. Note that the unmatched executions
returned are those for which the execution date respects the following condition:
Initial Date <= execution_d <= Final Date
The execution date is therefore mandatory. If the execution date is not systematically
imported you can define a batch default value for the execution_d field for the execution
entity as follows: execution_d=SYSDATE(). This ensures that the data is present.
The result is presented in the format screens linked to the UEL function. These formats are
based on the unmatched execution entity. For an example of such a format, see section
Packaging and Implementation.
Once you have a list of unmatched executions, there are several actions possible, as
described in the following sections.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 205
Simply modifying the unmatched execution does not save your changes to the
database. To save your modifications, you must click the Save button at the bottom left
of the screen.
You can modify the selected unmatched execution by editing the chosen attribute directly or
by clicking the Modify button.
All Import If the data (after modification) violates a GUI input No modification in the Triple'A
Modes Except control, the relevant message is displayed. Plus Core DB
DELETE
INSERT The Order code and the sequence number already No modification in Triple'A Plus
exist in the database when you perform an update Core DB
from the GUI. The message “Try to insert Duplicate
Key Row” is displayed.
UPDATE and There is no execution for the specified Order code No modification in Triple'A Plus
DELETE and sequence number. A message is displayed to Core DB
indicate that that the execution was not found.
All Import The user provides the internal code and good data. The related action is performed
Modes on the execution record and
the unmatched record is
deleted*
*Related action means an insert, update, or delete is performed on the execution record.
9.3.4 Examples
This section describes the processing of the Unmatched Execution Lists results (Modify
option) and the actions that take place when you click Save button.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 206
Executions: One partial 150 @ 110 sequence no=1 15/03/2004
Portfolio C
Suppose also that the following executions were received and stored in the unmatched
execution table:
INSERT Total Execution of Buy 100 IBM @ 109 order code=EXT_REF_001, sequence
number=1, the 11/03/2004
This record is stored to the unmatched execution table because the order code does not exist
in the Triple'A Plus Core database. (ONF)
UPDATE Partial Execution of Sell 50 IBM @ 90, order code=AAA_PTFB_001, sequence
number=2, the 16/03/2004
The record is stored in the unmatched execution table because there is an input control to
ensure that the relative difference between the updated price and the initial price is less than
5 %. (ICF)
DELETE Total Execution of Buy 50 IBM, order code = code=AAA_PTFC_001, sequence
number=NULL, the 17/03/2004
The record is stored in the unmatched execution table because there is no execution whose
sequence number = NULL for the given order. (ENF)
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 207
With the following domain parameters (selection of specific import mode, only on IBM
instrument):
Action Description
Delete You can select a row and click the Delete button. The related unmatched execution record
is then deleted.
Modify You can modify a record on-line by double-clicking the field you want to modify.
View/Modify If you want to view or modify a record, select the record and click the Modify button to
display the following screen: (see unmatched ONF above)
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 208
Let us assume we have the results of the Unmatched Execution List function containing the
three unmatched executions. Suppose that for the first unmatched execution order, you
enter the right Triple'A Plus Core values in the Modify screen:
Suppose that for the second unmatched execution, you change the price (but it is still not
within the 10 % margin of the initial price). Now say you change the sequence number to 2
for the third record of unmatched executions.
In this case, the Save action deletes records 1 and 3 in the unmatched execution table, a
new execution is inserted for the order in Portfolio A and the total execution in portfolio C is
deleted.
If you then re-run the Unmatched Execution List function after the Save, you obtain:
To check that the executions are properly inserted or updated, you can run the Order List
function on the portfolios in question. In the second case, if you entered a price that does
not violate the input control, the unmatched execution order is deleted and the related
execution order is updated.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 209
Note that it is possible to define sub-functions of the Search Matching Order function and
then define the matching criteria for these sub-functions. In this section, only the main
function is described. Examples of the sub functions can be found in section Packaging and
Implementation.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 210
You can also use another function that handles several criteria and run the function on the
instrument and quantity criteria. Your Domain screen will look something like the following:
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 211
In this case, you must choose the order (and possibly the execution) that really matches the
unmatched execution. Triple'A Plus Core only makes proposals to help users make the right
decision.
9.4.3 Example
Take the previous results screen and say you select the checkboxes as follows:
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 212
Click the Save button. Triple'A Plus Core updates the selected execution. The result is that
the unmatched execution is deleted and that the selected execution is updated using the
unmatched execution field values.
Notes (same as for the Unmatched Execution List function):
The Save is only performed for the modified or matched unmatched execution. This
save is performed in the execution table.
When you click the Save button, one of the following events can occur: Input Control
fails, Duplicate Key Row (DKR), Execution Not Found (ENF) or Order Not Found (ONF)
response, as described in the previous sections.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 213
The default values are applied when users enter data. Again, the default values are not
those linked to the Unmatched Execution table but the default values defined for the
execution (or the global execution fee) table.
When you click OK, the record is saved to the database.
9.6.1 Functions
The following functions are delivered with this module:
Unmatched Execution List
Search Matching Order
Search Matching Order on Instrument and Quantity (a sub-function of Search Matching
Order)
Search Matching Order on Several Criteria (a sub-function of Search Matching Order)
Each function appears in the Function Security Profile delivered (PCK_MT_FUNC_SEC_PROF).
To allow a specific user to run the related function you have to create the line in his profile.
To allow a user to create an unmatched execution through the GUI, you must add the
Administration for the unmatched_execution entity in the user's Function Security Profile.
The following table shows the composition of the PCK_MT_FUNC_SEC_PROF profile:
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 214
Function Name Entity Create Update Delete Real-
Time
SMO Several Criteria Yes Yes Yes No
You can see that the Search Matching Order and SMO Instrument and Quantity functions are
direct functions, which means that no domain screen is opened. The function is executed
directly. The SMO Several Criteria function, on the other hand, starts from a domain screen.
9.6.2 Screens
The delivered screens are used to modify unmatched executions or unmatched global
execution fees in the context of function use or GUI input. Some screens are used for
domains and one is used to define the display of unmatched execution results. They are all
in the PCK_MT_SCREEN_PROF profile except PCK_MT_FH_UEL (which is used in a format).
The following table provides a summary:
Screen Use
PCK_MT_UNMAT_EXEC To create unmatched executions through the GUI.
PCK_MT_FH_UEL To define the domain format for the Unmatched Execution List
results.
9.6.3 Formats
The delivered formats are used to display the Unmatched Execution List, Search Matching
Orders and their sub-function results. They are all included in the PCK_MT_FMT_PROF. The
composition of this profile is as follows:
Note that the three PCK_MT_SMO_IQ formats and the PCK_MT_SMO_SC format are only
copies of the PCK_MT_SMO format. They are all used to display the results of the Search
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 215
Matching Order function and similar functions. The first two formats are used to display
Unmatched Execution List results.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 216
10 Implementing Automatic Data Update
10.1 Introduction
A generic GUI feature, Automatic Data Update, allows you to automatically copy/update data
from one field to another. The feature is based on a script. Note that the usual default values
for the entity are evaluated after the execution of Automatic Data Update.
The following packaged functions are delivered as standard:
Copy Dynamic Weight
Allocate Remainder
Proportional Allocation
Relative Allocation
Note that the application domain of Automatic Data Update is limited to the Extended
Strategy Element entity. You will not be able to apply it to any other entity.
To make it easier to understand the use of this generic functionality, the packaged functions
are documented as implementation examples. The section below is intended for advanced
users and system administrators.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 217
Copy Dynamic Weight, Step 2: Execution Rights
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 218
enabled functions for that profile is displayed. Click Create and enter the appropriate function
in the Function field:
Select All from the Entity field drop-down list, select the Create Flag checkbox and click Save.
The profile is now updated. The next time the user connects to the application, this
functionality is available.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 219
Search link sqlname_c Domain sqlname_c
dim_port_dict_id dim_port_dict_id
port_object_id port_object_id
dim_strat_dict_id dim_strat_dict_id
strat_object_id strat_object_id
link_nat_e link_nat_e
all_hist_f all_hist_f
current_f current_f
physical_link_f physical_link_f
begin_d calc_from_d
end_d calc_till_d
min_link_priority min_link_priority
max_link_priority max_link_priority
strat_link_n strat_link_n
strat_hist_id strat_hist_id
load_hierarchy_f load_hierarchy_f
dynamic_weight_f dynamic_weight_f
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 220
10.3.3 Step 3: Execution definition
In the GUI, go to Administration > Function Script > Automatic Data Update Definition. You can
enter the logic of the allocation in the screen displayed (i.e., how the difference is computed
and allocated).
The remainder is computed as the difference between 100% and the current total weight of
the strategy. The objective set for the selected security is increased or decreased with this
difference (with a floor set at 0%).
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 221
Proportional allocation is limited to a context in which the strategy is not quite allocated to
100% and multiple rows are selected. Proportional Allocation can only be applied to one
strategy after another. Therefore, you cannot run the function if you select rows belonging to
two separate strategies. The following script describes the required condition for the function
to be applicable (1 means applicable, 0 not applicable).
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 222
10.5.3 Step 3: Execution Definition
In the GUI, go to Administration > Function Script > Automatic Data Update Definition. You can
enter the logic of the allocation in the screen displayed (i.e., how the difference is computed
and allocated).
Relative allocation relatively distributes the unallocated part of the strategy to the initial
weights (Old weight in the format) of the securities the user selected.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 223
11 Appendix
View Ctrl + O
Copy Ctrl + C
Paste Ctrl + P
View Extend +
Extend All Shift & + (press Shift and the plus sign key)
Full Extend Alt & + (press Alt and the plus sign key)
Full Extend All Shift & Alt & + (press Shift and Alt and the plus sign key at the
same time)
Collapse -
Note that you can type the first letter of the attribute you want in an enumerated field to
speed up the search.
23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 224