100% found this document useful (1 vote)
90 views224 pages

TAPCore OrdersProductivity Guide

TAP Core Orders

Uploaded by

kiatipis
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
90 views224 pages

TAPCore OrdersProductivity Guide

TAP Core Orders

Uploaded by

kiatipis
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 224

Triple’A Plus™ Core

Release 15.06

Orders and Productivity


Guide
 2015 Temenos Software Luxembourg SA
All rights reserved. No part of this publication may be reproduced, stored in a retrieval
system, or transmitted, in any form or by any means, electronic, mechanical, photocopying,
recording, or otherwise, without the prior written permission of Temenos Software
Luxembourg SA.
Triple'A Plus™ is a registered trademark of the TEMENOS Group of companies. All other
trademarks referenced herein are the property of their respective owners.
The Temenos product suites use a number of third-party software products that are
distributed under free or other open source licence agreements. These products are the
copyright of their respective owners and are governed by their own licensing terms as
indicated in the applicable licence, copying, read-me and/or help files for such products.
Copies of the relevant licence agreements for these products can be found in the Triple’A
Plus Open Source Software Licences Reference Guide.

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

Section “Initialising Orders from Check Strategy” updated

Section “Strategy Reconciliation Parameters” updated

Various updates in chapter “Portfolio Group Rebalancing”

20080605 Disclaimer updated

Examples for order allocation added

20081201 Section of defining sub-actions on portfolios enhanced

4.40.0 20090210 Updated section “Recommendation Lists” in chapter “Strategy


Infrastructure”.

20090210 Updated section Recommendation Lists in chapter Business functions.

20090210 Updated section Application Parameters in chapter Business functions.

20090402 Updated sections “Introduction”, “Definitions”, and “Creating investment


profiles and benchmarks”.
Created new section “Core/Satellite Model approach within an investment
profile”.

20090904 Added section “Case Management Component”.

4.40.0 SP1 20091116 PMSTA-8969: Updated section “Investment targets” regarding three
different ways to compute fluctuation margins

20091201 PMSTA-9067: Added section Implementing Initiate Order by batch.

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 SP2 20100305 Replace exec_fin_analysis_by_domain with exec_fin_analysis_all_domain.

4.40.0 SP3 20100512 PMSTA-9846: Deleted section “Constraint Breach Analysis and Audit”.

20100527 PMSTA-9852: Removed invalid section "Index".

20100723 PMSTA-10334: Updated the “Using Edit Strategy Objectives” section to


clarify that strategy objectives are not saved if a history already exists for
the given date.

20100802 PMSTA-9913: Corrected the possible values of the system parameter


ORDER_SEGMENT_RANK in section Market segment processing Order
(ORDER_SEGMENT_RANK).

20100810 PMSTA-9549: Throughout the document, replaced references to the


Constraint Breach function with explanations related to Case Management
Component.

4.40.0 SP5 20110415 PMSTA-11748: In section Order Entry screen:


 Updated the description regarding the availability of the Save Session
button.
 Replaced references of Check Strat button with Compl. Check button
and updated the description regarding the availability of this button.

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.

11 20101214 PMSTA-10078: In section “Description”, added information to explain that


strategies of nature Allocation, Model portfolio, and Index can be linked to
a quote valuation rule.

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".

20110322 PMSTA-11554: Removed references to HP-UX operating system, as it is no


longer supported.

20110325 PMSTA-10173: Updated sections Order Generation tab and Order


Generation with information about minimum order percentage in Strategy
Reconciliation and Allocate Order function.

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.

20110905 PMSTA-12672: Added information about the "Merged consolation" field in


section Check Strategy parameters.

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.

20111206 BM-127: Updated explanations about Exception Management in section


Exception Management facility and about the Check and Publish order
nature method in section Check and Publish Order Generation.

12 20120605 PMSTA-14132: Fixed script definition examples in section Grouping


Criteria.

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.

20131218 PMSTA-17368: Complete review of chapter “Case Management


Component”.

20140107 PMSTA-17427: In subsection Check Strategy – Parameters tab in chapter


Business functions, removed references to AdAM as it is no longer
relevant.

20140410 PMSTA-17392: Added new sections Update and cancellation requests


process and Example to explain new functionality.

14.08 20140716 PMSTA-18387: In section “Saved Cases and Clarifications of a session /


Deleted Cases and Clarifications of a session”, added a warning about the
impact of deleting sessions and its cascading effect on Cases and
Clarifications when the Case Management Component is enabled.

20140730 PMSTA-18468: In subsection “Recommendations and warnings” in chapter


“Market Structures”, added information about what to do when you want
to change the market structure composition after it has been saved.

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.

14.12 20140919 PMSTA-18465:


 Moved chapters “Strategy infrastructure”, “Investment profiles and
benchmarks”, and “Notional instruments” to the Triple’A Plus Core
Compliance Reference Guide.
 Moved chapter “Market structures” to the Triple’A Plus Core User
Guide.
 Moved section “Case Management Component” to the Triple’A Plus
Core Compliance Reference Guide.
20141022 PMSTA-18601: In chapter Order administration, added new section
Compound Order and its subsections Compound Order definition,
Compound Order rules configuration, and Compound Order management.

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

2 Business functions ................................................................15


2.1 Check Strategy ........................................................................15
2.1.1 General principles .............................................................................15
2.1.2 Check Strategy parameters ................................................................15
2.1.3 Initialising Orders from Check Strategy ................................................20

2.2 Strategy Reconciliation..............................................................21


2.2.1 General principles .............................................................................21
2.2.2 Security...........................................................................................21
2.2.3 Strategy Reconciliation parameters .....................................................22
2.2.4 Processing .......................................................................................27
2.2.5 Individual order computation ..............................................................29
2.2.6 Application Parameters ......................................................................33
2.2.7 Strategy Reconciliation - Example .......................................................47

2.3 Allocate Order..........................................................................51


2.3.1 General principles .............................................................................51
2.3.2 Security...........................................................................................52
2.3.3 Allocate Order Domain .......................................................................53
2.3.4 General processing............................................................................60
2.3.5 Order quote and order quantity...........................................................61

2.4 Allocation natures.....................................................................62


2.4.1 Instrument Order % of Portfolio ..........................................................64
2.4.2 Global Order Quantity........................................................................65
2.4.3 Instrument Order Quantity .................................................................66
2.4.4 Instrument Resulting % of Portfolio .....................................................66
2.4.5 Instrument Resulting % of Market Segment..........................................67
2.4.6 Instrument Resulting Quantity ............................................................68
2.4.7 Market Segment Resulting % of Portfolio..............................................68
2.4.8 Portfolio Order Quantity .....................................................................69
2.4.9 Portfolio Resulting Quantity ................................................................70
2.4.10 Switch Instrument.............................................................................71
2.4.11 Conversion.......................................................................................72
2.4.12 Arbitrage .........................................................................................74
2.4.13 Combined Sell/Buy............................................................................80

2.5 Order Entry .............................................................................84

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

2.6 Display Formats .......................................................................96


2.7 Cross-function features .............................................................97
2.7.1 Managing Order Proposals – Extended Operations .................................97
2.7.2 Order Session Status .........................................................................98
2.7.3 Order Proposals vs. Constraint's Violation .............................................99
2.7.4 Right Data at the Right Time.............................................................100
2.7.5 Update Draft facility.........................................................................102
2.7.6 Exception Management facility ..........................................................102
2.7.7 Check and Publish Order Generation ..................................................104

3 Portfolio Group Rebalancing ................................................107


3.1 Business requirements ............................................................107
3.2 Context .................................................................................107
3.3 Global overview......................................................................108
3.3.1 Portfolio groups...............................................................................108
3.3.2 Portfolio hierarchies .........................................................................109
3.3.3 Hierarchy positions loading - Load hierarchy .......................................110
3.3.4 Allocation rules ...............................................................................111
3.3.5 Constraints in Triple'A Plus Core - Overview ........................................111

3.4 Allocation rule ........................................................................112


3.4.1 Default Allocation rule......................................................................112
3.4.2 Order Allocation rules ......................................................................112
3.4.3 Market segment ranking...................................................................113
3.4.4 User-defined allocation rules .............................................................114

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

4 Data, Format, and Screens ..................................................117


4.1 Hierarchies ............................................................................117
4.2 Formats and View Facilities ......................................................118
4.3 Screen Facilities .....................................................................120
4.3.1 Save..............................................................................................120
4.3.2 Reset.............................................................................................120

4.4 User-defined Screens ..............................................................120


4.4.1 Screen Profiles ................................................................................120

4.5 Selection process....................................................................121


4.6 Default Values, Filters, and Input Controls .................................122
4.6.1 Order Life-Cycle ..............................................................................123

4.7 Default Administration Screens .................................................123

5 Function Results ..................................................................124


5.1 Definition ..............................................................................124
5.2 Creating Function Results ........................................................124
5.2.1 Compute Data Field .........................................................................124
5.2.2 Data ..............................................................................................125
5.2.3 Use ...............................................................................................125
5.2.4 Deleting Results ..............................................................................125

6 Importing Order Sessions....................................................129


6.1 Overview ...............................................................................129
6.2 Order Compliance Check Workflow ............................................129
6.3 Inserting Order Sessions .........................................................130
6.4 Deleting Order Sessions ..........................................................131
6.5 Examples ..............................................................................131
6.5.1 Order Session insertion ....................................................................131
6.5.2 Order Session Delete .......................................................................132

7 Order administration ...........................................................133


7.1 Overview ...............................................................................133
7.2 Security ................................................................................133
7.2.1 Assigning a Function Security Profile ..................................................133

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

7.3 Cancelled, Expired and Refused Orders ......................................136


7.4 Instrument Trading Place and Trading Currency ..........................136
7.5 Order Grouping ......................................................................137
7.5.1 Grouping Criteria.............................................................................137
7.5.2 Initialising Block Orders ...................................................................138
7.5.3 Initialising Child Orders ....................................................................138
7.5.4 Function Security Rights...................................................................139
7.5.5 Mandatory Input Parameters.............................................................139
7.5.6 Order Grouping Occurrences .............................................................139
7.5.7 Processing......................................................................................140
7.5.8 Grouping Order by Batch ..................................................................140

7.6 Order Grouping Index .............................................................141


7.6.1 Grouping Criteria.............................................................................142
7.6.2 Index Generation ............................................................................142
7.6.3 Function Security Rights...................................................................142
7.6.4 Mandatory Parameters .....................................................................142
7.6.5 Order Grouping Function Occurrences ................................................142
7.6.6 Processing......................................................................................142

7.7 Order Allocation .....................................................................143


7.7.1 Introduction ...................................................................................143
7.7.2 Create Child Order...........................................................................143
7.7.3 Order Allocation ..............................................................................144

7.8 Reversal function and Update Fields function ..............................146


7.8.1 Reversal function ............................................................................146
7.8.2 Update Fields function......................................................................148

7.9 Update and cancellation requests process ..................................152


7.9.1 Example.........................................................................................152

7.10 Order workflow and interface ...................................................153


7.10.1 Business keys .................................................................................153
7.10.2 IMPORT_UPDATE_STATUS ................................................................154
7.10.3 UPDATE_STATUS import command ....................................................154
7.10.4 EXECUTION_SOURCE_CODE .............................................................155

7.11 Order Execution .....................................................................156


7.11.1 Execution Fees................................................................................158

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

7.12 Block Order/Child Order relationship .........................................160


7.12.1 Maintaining Block Orders ..................................................................161
7.12.2 Maintaining Child Orders ..................................................................165
7.12.3 Executing Block Orders ....................................................................166
7.12.4 Reversing Block Orders ....................................................................170
7.12.5 Block Order Data Security Rights.......................................................170
7.12.6 Purging Order function .....................................................................170

7.13 Combined Orders....................................................................173


7.13.1 Maintaining Child Combined Orders....................................................174
7.13.2 Maintaining Combined Orders ...........................................................175

7.14 Compound Order ....................................................................175


7.14.1 Compound Order definition ...............................................................177
7.14.2 Compound Order rules configuration ..................................................177
7.14.3 Compound Order management .........................................................179
7.14.4 Compound Order: Execution and accounting management ....................180

8 Initiate Order ......................................................................182


8.1 Initiate Order .........................................................................182
8.2 Implementation......................................................................182
8.2.1 Introduction ...................................................................................183
8.2.2 Creating actions and sub-actions .......................................................183
8.2.3 Rights and definitions of action and sub-actions...................................184
8.2.4 Defining sub-actions ........................................................................185
8.2.5 Implementing Initiate Order by batch.................................................185
8.2.6 Extra functionalities .........................................................................185
8.2.7 Security .........................................................................................186

8.3 Examples ..............................................................................186


8.3.1 Business functions...........................................................................187
8.3.2 Infrastructure .................................................................................188
8.3.3 Examples .......................................................................................194

9 Execution Matching .............................................................198


9.1 Security and Profiles ...............................................................198
9.1.1 Licence Key and Function Security Profile ...........................................198
9.1.2 Data Profile ....................................................................................199
9.1.3 Formats, Search and Screens Profile ..................................................199

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

9.3 Unmatched Execution List Function ...........................................204


9.3.1 Server Characteristics ......................................................................204
9.3.2 Graphical User Interface Facilities ......................................................205
9.3.3 Save Button ...................................................................................206
9.3.4 Examples .......................................................................................206

9.4 Search Matching Order Function ...............................................209


9.4.1 Running the Function .......................................................................210
9.4.2 GUI Processing of the Results, Matching and Saving.............................212
9.4.3 Example.........................................................................................212

9.5 Other Facilities .......................................................................213


9.5.1 Create Unmatched Execution ............................................................213
9.5.2 Event Subscriptions .........................................................................214

9.6 Packaging and Implementation.................................................214


9.6.1 Functions .......................................................................................214
9.6.2 Screens .........................................................................................215
9.6.3 Formats .........................................................................................215
9.6.4 Search Criteria................................................................................216

10 Implementing Automatic Data Update.................................217


10.1 Introduction...........................................................................217
10.2 Implementation Description I: Copy Dynamic Weight function ......217
10.2.1 Step 1: Sub-function Copy Dynamic Weight ........................................217
10.2.2 Step 2: Execution rights ...................................................................217
10.2.3 Step 3: Execution definition ..............................................................218
10.2.4 Step 4: Granting end user rights .......................................................218
10.2.5 Edit Strategy Objectives formats and screen .......................................219

10.3 Implementation Description II: Allocate Remainder function .........220


10.3.1 Step 1: Sub-function Allocate Remainder............................................220
10.3.2 Step 2: Execution rights ...................................................................220
10.3.3 Step 3: Execution definition ..............................................................221
10.3.4 Step 4: Granting end user rights .......................................................221
10.3.5 Formats and screen .........................................................................221

10.4 Implementation description III: Proportional Allocation function ....221


10.4.1 Step 1: Sub-function Proportional Allocation .......................................221
10.4.2 Step 2: Execution Rights ..................................................................221

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

10.5 Implementation description IV: Relative Allocation function ..........222


10.5.1 Step 1: Sub-function Relative Allocation .............................................222
10.5.2 Step 2: Execution rights ...................................................................222
10.5.3 Step 3: Execution Definition .............................................................223
10.5.4 Step 4: Granting End-user Rights ......................................................223
10.5.5 Formats and Screen.........................................................................223

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 Check Strategy

2.1.1 General principles


The Check Strategy function does an actual/target comparison and weighs the contents of a
portfolio (or a list of portfolios) against the currently linked strategies.
If no strategy is linked, the function only returns the valuated positions of the portfolio, but
no target or deviation information.
The function first retrieves all the strategies associated with a portfolio at the Strategy Date
and creates the hierarchy of strategies that is contained in the Extended Strategy Link
structure.
Secondly, it retrieves all the positions in the portfolio and inserts them into this hierarchy,
comparing targets with actual data. This is displayed in the Extended Strategy Element
structure. If the actual data is within the specified strategy target (to which the fluctuation
margin has been applied), the target is “checked”. Otherwise, the Strategy Element is
“unchecked”; for targets that are expressed as weights, Triple'A Plus Core displays the
quantity by which the position must be modified.

2.1.2 Check Strategy parameters


The Check Strategy function is started from the Domain. This section describes the fields in
the Domain or the Application parameter table that affect the function.
The pertinent fields in the Extended Strategy Link and Extended Strategy Element structures
are also described. For more details, refer to the Triple’A Plus Core Data Model Reference
Guide. We will also look at some formats that improve the display of this function.
To run the function, go to Productivity > Check Strategy from the main menu bar.

2.1.2.1 Domain
The Check Strategy function uses the following fields.

Check Strategy - Loading data tab


Field Description
Portfolio Specifies the portfolios to check. Available values are:
Dimension
 All Portfolios
 List
 Portfolio
 Third Party

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:

Actual Actual Weight Objective Objective Weight


Weight Contribution Weight Contribution
Stock/CHF 20% 20% 30% 30%

Total Model 100% 20% 100% 30%


Portfolio

Nestlé 35% 7% 30% 9%

Roche 20% 4% 30% 9%

ABB 45% 9% 40% 12%

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:

Actual Actual Weight Objective Objective Weight


Weight Contribution Weight Contribution
Stock/CHF 20% 20% 20% 20%

Total Model 100% 20% 100% 20%


Portfolio

Nestlé 35% 7% 30% 6%

Roche 20% 4% 30% 6%

ABB 45% 9% 40% 8%

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.

Check Strategy – Parameters tab


The Check Strategy function uses the same parameters as the Valuation function. There are
two exceptions: Accounting view / Risk view and Tiled consolidation mode.

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.

Check Strategy – Parameters for Check Risk service


The Check Strategy function includes a Check Risk service (Check Risk Strategy function),
which is subject to a specific license key and need to exist in the user’s Function Security
Profile.
Domain parameters for Check Risk service are not visible in the default Domain screen.

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.

Risk rule The risk rule to apply.

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.

2.1.2.2 Application parameters


The Check Strategy function uses the same application parameters as the Valuation function.
There are two extra parameters:

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.

CHECK_STRATEGY_DURATION Defines whether the duration objective in the productivity module is


FLAG Hicks' modified duration (flag set to 0) or Macaulay’s duration (flag set
to 1).

2.1.3 Initialising Orders from Check Strategy


Triple'A Plus Core can initialise orders from Check Strategy. You must have access to Order
Entry function to be able to use this feature.
Run Check Strategy, select an Extended Strategy Element row and choose Buy or Sell, as
the case may be, from the context menu (displayed by right-clicking in a column): This
initialises one or more new operations in the Order Entry function. The following data is
copied from the row:
 Portfolio reference
 Instrument reference
 Deposit reference
 Quantity (only in the case of a Sell)
 Position currency
 Sub-position nature

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.1 General principles


This way of creating global orders uses a top-down approach in the sense that the
Portfolio/Strategy comparison process results in the creation of one or more global orders.
Notes:
 Strategy Reconciliation builds upon the Check Strategy function. When model portfolios
are associated with market segments in an asset allocation, the Check Strategy option
suggests Buy and Sell orders to reconcile portfolios with models.
 In addition to the Check Strategy functionality, Strategy Reconciliation:
 Physically generates the suggested orders in the Operation table.
 Uses the Recommendation List strategy to propose and generate orders.
 Generates global orders in a Book Portfolio. The global orders are simply the
sum per instrument and operation nature of the individual orders in each
portfolio.
 Currently, the reconciliation process is limited to strategies defined as objective weights
at the market segment or security level.

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.

Delete_f Not used for this function.

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)

Function Strategy Reconciliation

Entity NULL

Type <None>

Sub-Type <None>

Min Status Simulation

Max Status Order

Create flag Yes

Modify flag Yes

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

2.2.3 Strategy Reconciliation parameters

2.2.3.1 Domain parameters


Go to Productivity > Strategy Reconciliation from the main Triple'A Plus Core menu. The
Domain – Strategy Reconciliation screen appears (like the other financial functions, the
Strategy Reconciliation function starts from a domain).

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.

Instrument / Market Segment Dimension


You can limit both the Check Strategy and Reconcile Strategy functions to a market segment
or an instrument. The main benefit of this is that you can reconcile (align) portfolios in a
more timely way than was previously possible. The market segments/instruments do not
have to be reconciled all 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")
ORfunction_dict_id.parent_function_dict_id.proc_name IN ("check_strat",
"strat_recon"), {then} &sqlname_c IN ("instrument", "market_segment"))
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. The
‘Other’ list is used by the classifications that define the market segment. For more
information about market segment ‘Other’, refer to the Triple’A Plus Core Compliance
Reference Guide.

2.2.3.2 Strategy

Market Segment Rebalancing flag


If you check /reconcile a portfolio against a market segment you can set the Market
Segment Rebalancing flag:
 Inter Market Segment: It rebalances the content of the market segment specified in the
domain as well as the market segment itself in the portfolio.
 Intra Market Segment: It only rebalances the content of the market segment specified
in the domain.
Example:
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:

Actual Actual Weight Objective Objective Weight


Weight Contribution Weight Contribution
Stock/CHF 20% 20% 30% 30%

23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 23
Total Model 100% 20% 100% 30%
Portfolio

Nestlé 35% 7% 30% 9%

Roche 20% 4% 30% 9%

ABB 45% 9% 40% 12%

In the second case, the Market Segment Rebalancing flag is set to Intra Market Segment:

Actual Actual Weight Objective Objective Weight


Weight Contribution Weight Contribution
Stock/CHF 20% 20% 20% 20%

Total Model 100% 20% 100% 20%


Portfolio

Nestlé 35% 7% 30% 6%

Roche 20% 4% 30% 6%

ABB 45% 9% 40% 8%

Note: If you select Intra Market Segment, the open cash positions are not loaded.

Check Trading Constraint


This parameter allows you to check or bypass checking the trading Constraints when
generating orders through strategy rebalancing.

Check trading constraint

2.2.3.3 Order Generation tab

Field Description
Global Order

No Global Does not create global orders in a book portfolio.


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).

2.2.3.4 Parameters tab

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.

2.2.5 Individual order computation


This section describes the process that generates individual orders. This corresponds to step
3 above (in section Processing).
The context is the following: there is one single portfolio and a single hierarchy of strategies.
The investment objectives are known and all the positions are valued. The percentage of the
portfolio market value represented by the positions held is also known.
Before describing the process, consider the strategy hierarchies that could be used to
compute the reconciliation. Two main cases can be identified:
 The hierarchy is simply a model portfolio. In this case, the strategy is considered a
global model portfolio.
 The hierarchy is based on an Asset Allocation. In this case, a model portfolio or a
recommendation list can be linked to market segments. More precisely, a model
portfolio can only be linked to a market segment if it has no child allocations (i.e., it
does not contain allocations). A recommendation list can be linked either at the top of
the allocations hierarchy or to a market segment that does not contain allocations.
From the processing point of view, the first case is treated as described in section Model
Portfolio Order Generation. Putting a model portfolio at the top of the allocation hierarchy is
pointless since model portfolios have objectives expressed in percentages as well as asset
allocations. This section describes individual order generation using the following strategy
hierarchy. Although the hierarchy is just an example of what can be defined, it is
representative of all the possible cases.
Consider then the following hierarchy of strategies:

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.

Which strategy is used in a given primary market segment


For each primary market segment (i.e., market segments that are not subdivided into sub-
market segments), the system uses a model portfolio, a recommendation list or nothing. In
fact, the strategy that is defined at the lowest level is used for each primary market
segment. In the above case, this means that the system uses Recommendation List 1 for
Stocks/USD, the Model Portfolio for Bonds/CAD and Recommendation List 2 for all the other
market segments.

Process Sell recommendations and 0% objectives on the market segment


This step generates Sell orders on all the instruments belonging to the market segments
with 0% objectives. Sell orders for instruments in recommendation lists with Sell
recommendations are also generated.

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.

Order generation for over-weighted primary market segment


After the sorting, the market segment (Recommendation List case) or the single instrument
is processed. In the case of a single instrument, the system generates Sell orders for this
instrument as described in section Model Portfolio Order Generation. In the case of a market
segment, the system generates Buy and Sell orders.
If the domain parameter cash allocation nature is set to No Negative Cash, the cash counter
is checked for each order to see if it is positive. This occurs after it has been adjusted to the
net amount of the order (with fees & taxes). If the counter is negative,
According to the system parameter NO_NEGATIVE_CASH, the process could truncate a
quantity or not generated the order.
If the system parameter NO_NEGATIVE_CASH is set to 0,
the system truncates the order as follows:
New order quantity = Order quantity – Truncation
where the truncation quantity is calculated thus:
Truncation quantity = |Cash Before Order - Net amount of order |/ price of instrument.
With this truncation, the resulting order does not lead to a global negative cash value.
If the system parameter NO_NEGATIVE_CASH is set to 1, the process not generates the
order, so we do not lead to a global negative cash value.

Step 5: Sell in margin


This step is only performed if the cash allocation parameter in the domain is set to No
Negative Cash and the OLD_RECOMLIST_PROCESS system parameter to 1. In this case, the
system evaluates the difference between the cash counter after step 4 and the cash that it
needs to reconcile the under-weighted market segments and instruments. If the cash
counter is lower than the cash needed, the system generates “sell in margin” orders. More
precisely, it searches all the market segments or instruments that are over-weighted but
within the defined margin. Then it generates Sell orders from the most over-weighted to the
least over-weighted until it has enough cash (a priori) to generate the Buy orders.
If the OLD_RECOMLIST_PROCESS system parameter is set to 0, it does not allow selling in
margin. This parameter is further described below.

Step 6: Order generation for under-weighted primary market segment


The system processes the primary market segments that contain recommendation lists or
the instruments that are under-weighted from the most under-weighted to the least under-
weighted. Order computation from the recommendation list is described in section
Recommendation Lists in chapter
Business functions and from the model portfolio, section Model Portfolio Order Generation. If
the cash allocation nature is No Negative Cash, Triple'A Plus Core checks if the cash counter
is positive for each order. This is done after the counter's value is changed to the operation
net amount. If the cash counter is negative, the order is truncated as in step 0. After an
order is truncated, the reconciliation process is stopped. There is no possibility of obtaining
cash when the market segment is under-weighted.
A final step is performed if the ORDER_ALLOC_CASH_COMP system parameter is set to 1. This
step is described in section Application Parameters.

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.

2.2.5.2 Model Portfolio Order Generation


For each instrument in a model portfolio used for reconciliation or in a market segment that
uses a model portfolio, the order is computed using the following formula:
Order quantity = (Objective weight – Actual weight) * portfolio market value / price of
instrument
The actual weight is the market value of the positions in the given instruments divided by
the portfolio market value. All the amounts are expressed in the portfolio currency.
Indeed, the objective weight is a contribution. In practical terms, it means that if you have
an objective in a given instrument that is x% and the model portfolio is in a market segment
with y% objectives, then the objective weight is given by:
x * y/100.
A further refining of the process can occur if there are notional instruments in the model
portfolio. This process is described later.

2.2.5.3 Recommendation Lists


A Recommendation List is a set of instruments that are mainly determined by the
Recommendation nature.
The only way to use a Recommendation List is to link it to a portfolio or to an investment
profile. Both link types can be established with a priority. Also, a maximum weight makes
sense only in the case of Buy, Increase, and Neutral recommendations.
The following example illustrates how Triple'A Plus Core stores a Recommendation List. As
The market segment must be associated to a Recommendation List because
recommendations are always defined at the instrument level.

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.

2.2.6 Application Parameters


In addition to the domain parameters, Triple'A Plus Core also uses the following application
parameters for default processing:

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).

You can limit the number of individual orders grouped to


generate a block order. For example: no block order generated
by Allocate Order or Strategy Reconciliation can hold more
than 50 child orders.
If the MAX_CHILD_ORDERS_PER_BLOCK parameter is set to 0,
there is no limitation.

MIN_CHILD_ORDERS_PER_BLOCK You can specify the minimum number of orders required to


create a block order with the productivity functions. No block
orders will be created below this limit.

ORDER_GROUPING_ORPHAN_INIT You can set the ORDER_GROUPING_ORPHAN_INIT flag indicating


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 generates


orders for securities in a portfolio and tries to automatically
compensate cash debits with cash credits. To do that, it begins
with the largest debit accounts and the largest credit accounts.
See example below.

OLD_RECOMLIST_PROCESS Flag to define how recommendation lists are processed. The


permitted values are:
 '0' = 'with Sell in margin'
 '1' = 'without Sell in margin'
See more explanations and example below.

RECOM_LIST_PRIORITY You can set a priority to the recommendations, as default, or


to reach the asset allocation target when using
Recommendation Lists or Survey Securities Lists (with Notional
Instruments). This flag changes the process how portfolios can
be rebalanced. The permitted values are the following:
 '0' = the priority goes to the recommendation
 '1' = the priority goes to the segment
When recommendation natures have priorities above reaching
the market segment target, and in the case the asset class is
over-weighted and the portfolio has instruments in position for
which an Increase recommendation has been set up, then
nothing is sold. This parameter should help the user to
integrate a different process if needed.
See more explanations and example below.

2.2.6.1 Examples

ORDER_ALLOC_CASH_COMP
The following example illustrates the use of the ORDER_ALLOC_CASH_COMP parameter:

Portfolio Cash Actual Effective Amount (after In the portfolio


Accounts Amount reconciliation) currency (EUR)
USD 3,000 3,000 3,300

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

EUR2 1,000 -2,500 -2,500

CHF 1,250 -3,200 -2,000

In this case, the system proposes the following operations:


 EUR2 (+ EUR 2,500) against USD (- USD 2,273)
 CHF (+ CHF 1,280) against USD (- USD 727)
 CHF (+ CHF 1,920) against EUR1 (- EUR 1,200)
Finally, you have the following positions:
 USD 0
 EUR1 300
 EUR2 0
 CHF 0

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.

 Buy recommendations do not have a higher priority than Increase recommendations:


the priority rule that governs them is set by a priority. The priority is specified at the
recommendation level (in the surveyed securities list in the case of notional
instruments). Setting a priority also lets you assign priority to Recommendations of the
same nature.
 You can specify a maximum objective weight (i.e., a limit (value)) for the following
recommendation natures:
 Increase

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:

Priority Instrument Recommendation Nature


1 Roche Increase

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:

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 5% 5% 40%

Reduce 6 Novartis 4% 4% 36% Still overweight, then


process reduce
Reduce 8 Swatch 8% 1% 35% recommendations

Increase 1 Roche 2% - 35% No further action is needed,


objective reached
Buy 4 Migros 3% - 35%

Buy 5 Nestlé 0% - 35%

Neutral 7 SBS 1% - 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 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%

Reduce 6 Novartis 4% 4% 40% Still overweight, then process


reduce recommendations
Reduce 8 Swatch 1% 1% 39%

Neutral 7 SBS 24% 4% 35% Still overweight, look for


instruments with ‘neutral' and
perform sells

Increase 1 Roche 5% - 35% No further action is needed,


objective reached
Buy 4 Migros 10% - 35%

Buy 5 Nestlé 0% - 35%

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:

Reco. Priority Instr. Curr. Max. Order Mkt Sgt Comment


Nature Wght Wght % Pf Result
Sell 2 Zurich 5% - 5% 35% Sell recommendations
are always processed
Sell 3 UBS 1% - 1% 34%

Increase 1 Roche 5% 3% 1% 35% Underweight, perform


purchases

Buy 4 Migros 10% 4% - 35% No further action is


needed, objective
Buy 5 Nestlé 0% 1% - 35% reached

Reduce 6 Novartis 4% - - 35%

Reduce 8 Swatch 1% - - 35%

Neutral 7 SBS 4% 0% - 35%

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:

Reco. Priority Instr. Curr. Order Mkt Sgt Comment


Nature Weight % Ptf Result
Sell 2 Zurich 7% 7% 23% Sell recommendations are
always processed
Sell 3 UBS 6% 6% 17%

Reduce 6 Novartis 4% - 17% Underweight, no reduce

Reduce 8 Swatch 5% - 17%

Increase 1 IBM 0% - 17% Cannot purchase, not


present

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

Buy 4 Migros 3% - 35% No further action is


needed, objective reached
Buy 5 Nestlé 2% - 35%

Neutral 7 SBS 1% - 35%

Case 5: The current weight of the market segment is 30% and the objective weight is 35%.
In this case, Maximum Weights are specified:

Reco. Priority Instr. Curr. Max. Order Mkt Sgt Comment


Nature Wght Wght % Pf Result
Sell 2 Zurich 7% - 7% 23% Sell recommendations
are always processed
Sell 3 UBS 6% - 6% 17%

Reduce 6 Novartis 4% - - 17% Underweight, no reduce

Reduce 8 Swatch 5% - - 17%

Increase 1 IBM 0% 10% - 17% Cannot purchase, not


present

Increase 1 Roche 2% 10% 8% 25% Perform purchases


accdg. to priorities and
Buy 4 Migros 3% 5% 2% 27% max. weights

Buy 5 Nestlé 2% 5% 3% 30%

Neutral 7 SBS 1% 5% 5% 35% Still underweighted, call


instruments with
‘neutral'

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.

 Buy recommendations do not have a higher priority than Increase recommendations:


the priority rule that governs them is set by a rank. The rank is specified at the
recommendation level. Setting a rank also lets you assign priority to Recommendations
of the same nature.
 You can specify a maximum objective weight (i.e., a limit (Value)), for the following
recommendation natures:
 Increase
 Buy
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:

Rank Instrument Recommendation Nature


1 Roche Increase

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%

Sell 3 UBS 5% 5% 40%

Reduce 6 Novartis 4% 4% 36%

Reduce 8 Swatch 8% 8% 28%

Increase 1 Roche 0% - -

Buy 4 Migros 3% 7% 35%

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%

Increase 7 SBS 1% - 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%

Sell 3 UBS 15% 15% 30%

Reduce 6 Novartis 4% 4% 26%

Reduce 8 Swatch 8% 8% 18%

Increase 1 Roche 0% - 18%

Buy 4 Migros 3% 17% 35%

Buy 5 Nestlé 2% - 35%

Increase 7 SBS 1% - 35%

Case 3: The current weight of the market segment is 45% and the objective weight is 35%.
In this case, Maximum Weights are specified:

Reco. Rank Instr. Curr. Max. Order % Pf Mkt Sgt Result


Nature Weight Weight
Sell 2 Zurich 5% - 5% 40%

Sell 3 UBS 5% - 5% 35%

Reduce 6 Novartis 4% - 2% 33%

Reduce 8 Swatch 8% - - 33%

Increase 1 Roche 0% 0% - 33%

Buy 4 Migros 3% 3% - 33%

Buy 5 Nestlé 2% 4% 2% 35%

Increase 7 SBS 1% 1% - 35%

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%

Sell 3 UBS 5% 5% 10%

Reduce 6 Novartis 4% - 10%

Reduce 8 Swatch 8% - 10%

Increase 1 Roche 0% - 10%

Buy 4 Migros 3% 25% 35%

Buy 5 Nestlé 2% - 35%

Increase 7 SBS 1% - 35%

Case 5: The current weight of the market segment is 20% and the objective weight is 35%.
In this case, Maximum Weights are specified:

Reco. Nature Rank Instr. Curr. Max. Order % Mkt Sgt


Weight Weight Pf Result
Sell 2 Zurich 5% - 5% 15%

Sell 3 UBS 5% - 5% 10%

Reduce 6 Novartis 4% - - 10%

Reduce 8 Swatch 8% - - 10%

Increase 1 Roche 0% 10% - 10%

Buy 4 Migros 3% 10% 7% 17%

Buy 5 Nestlé 2% 5% 3% 20%

Increase 7 SBS 1% 20% 15% 35%

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.

 Notional Instrument: SHK_7051_NI4_CHF composed of the List SHK_7051_LIST and


referred to SSL SHK_7051_SSL4.

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:

 On the Modify Trading Constraint screen, SHK4.1_noNestleSell trading constraint is


added (avoids selling Nestlé position).
 In the Loading tab of the Domain - Strategy Reconciliation screen, the fields are
completed to set the parameters.
 In the Strategy tab of the Domain - Strategy Reconciliation screen, the Check Trading
Constraint field is set to “Yes”.
 In the Order Generation tab of the Domain - Strategy Reconciliation screen, the Alloc.
Nature field is set to “No Negative Cash”.
Expected Result:
The following matrix illustrates what we have today in position vs. what is our objective
based on the previous described settings.

Instrument Quantity Price Interest Market Real Objective


Value Weight Weight
Nestle 120 1245 149,400.00 61.97% 10.00%

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

Conf. Suisse 04 300000 106.5 833.33 320,333.33

MICROSOFT 0 15 0.00 0.00% 90.00%

==> 300620 619,733.33

Cash (CHF) 380,266.67 38.03% 0.00%

CHF (Investment) 1000000 1 1,000,000.00 100.00% 100.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.

2.2.7 Strategy Reconciliation - Example


This section provides an example of strategy reconciliation. In particular, the example shows
the effect of the cash allocation nature on the order generation. In this example, the
following strategies are used:
 Allocation

23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 47
 Recommendation list 1 (of Stock-USD)

Recommendation Instrument Priority Max_weight

Buy Microsoft 2

Increase Broadvision 1 12 %

Sell Commerce One -

 Recommendation list 2 (Global)

Recommendation Instrument Priority


Buy Commerce One -

Buy IBM -

Sell Nestlé -

Buy Alusuisse 2

Increase Novartis 1

Reduce Nortel -

Buy Amazon -

 Model portfolio (on Bond-CAD)

Instrument Objective Weight


Bond 1 30%

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:

Instrument Objective Weight Objective


Commerce One 15 % Stock-USD

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%

Not detailed 10 % Bond-USD

Not detailed 17 % Bond-CHF

CASH 1% Other market segment

Following the steps described in section Individual order computation for this specific
example:

Step 1: which strategy is used in a given primary market segment


The system is going to use the recommendation lists as described above. An important
remark is that the recommendations for Commerce One and IBM appearing in the global
recommendation list are not going to be used since the recommendation list for Stock-USD
is going to be used for this specific market segment.

Step 2: Process instruments with Sell recommendations and 0% objectives in the


market segment
Sell orders are generated for the instruments that appear in the recommendation list that is
used and the instruments that appear in the 0 % objective market segment are sold (this
case does not occur here). In practical terms, this means:
Sell 15% Commerce One. No order on Nestlé because we do not hold this instrument.

Step 3: Sorting
After this order, the situation is as follows:

Market Position Objective Difference Margin


segment
Stock-USD 25 % 30 % -5% 5%

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%

Instrument Position Objective Difference Margin


Bond 1 1% 4.5 % - 3.5% 1%

Bond 2 - 3% -3% 1%

Bond 3 2% 7.5 % - 5.5% 1%

Bond 4 2% - +2% 1%

Step 4: Order generation when over-weighted (and out of margin)


In this case, there are two over-weighted objects but the market segment Stock-CAD is
within the margin. So Triple'A Plus Core only generates:
Sell 2% Bond 4.

Step 5: Sell in margin (if OLD_RECOMLIST_PROCESS = 1)


This step is only performed 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.
The cash amount is evaluated as follows:
1 % + 15 % + 2 % = 18 %
The cash needed to be in-line with the strategy is evaluated as follows:
5 + 12 + 3.5 + 3 + 5.5 = 29 %
Conclusion: there is not enough cash, and sell orders have to be generated for the over-
weighted market segment or instruments that are within the margins. In this specific case,
the only market segment/instrument over-weighted within the margin is the Stock-CAD
market segment. Reconciliation is then performed on this market segment. In practical
terms, Triple'A Plus Core generates the following two orders:
 Sell 10% Nortel
 Buy 6% Amazon
We now have a cash counter with a value of 22 %.

Step 6: Order generation for under-weighted primary market segment


In this example, the Stock-CHF market segment is processed first as the most under-
weighted and the reconciliation generates the following order:
Buy 12% Novartis
No order is generated on Alusuisse because the priority is lower than that of Novartis.
The cash counter has a value of 10 % after this step.
The second market segment to be processed is, in fact, an instrument from the model
portfolio. The following order is generated:
Buy 5.5% Bond3
The cash counter has a value of 4.5 % after this step.
The third market segment to be processed is the Stock-USD market segment.

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.

2.3 Allocate Order


To manually create a global Buy or Sell order for a list of portfolios, go to
Productivity > Allocate Order from the main menu to open the Domain – Allocate Order screen.
(Like other financial functions, you run the Allocate Order function from a Domain.)
The Domain – Allocate Order screen contains an extra tab called Order Details. This tab lets
you specify the order allocation objective (i.e., instrument, quantity, quote, etc.). The Order
Details tab is a format-based screen.

2.3.1 General principles


This way of creating global orders takes a bottom-up approach.
This means that you enter orders directly instead of letting the Portfolio/Strategy comparison
generate them. You can always perform a Portfolio/Strategy comparison before saving the
proposed individual orders to the database.
You can also perform the allocation with Trading Constraints. Depending on the order
allocation, the orders are checked against the constraints imposed on the portfolios in
question. Triple'A Plus Core can modify the order allocation if some of the orders are blocked
by Trading Constraints.
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.
There are several ways to split the global order across the selected portfolios automatically:

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.

Attribute Values Def. Description


create_f 0: Disables the 1 Users can access the Strategy Reconciliation and Allocate
Save All button. Order function but cannot currently confirm any operations
that are generated. To enable confirmation, you must set the
1: Enables the create_f attribute in the FUNC_SECU_PROF_COMPO entity.
Save All button.

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.

delete_f Not used for this function.

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)

Function Allocate Order

Entity NULL

Type <None>

Sub-Type <None>

Min Status Simulation

Max Status Order

Create flag Yes

Modify flag Yes

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

2.3.3 Allocate Order Domain

2.3.3.1 Loading Data tab


On the Loading Data tab, complete the following fields:

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.

2.3.3.2 Strategy tab


Click the Strategy tab and complete the fields described below:

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.

2.3.3.3 Order Generation tab


Click the Order Generation tab and complete the fields described below:

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).

Book Portfolio Also used for the Strategy Reconciliation function.


Enter the portfolio you want to use as the Book Portfolio or browse for it. This is
the portfolio in which the global orders are saved if the Generate Global Orders
parameter is set to Gen. Global Orders.
In case of "Combined Order", the book portfolio is always the same than "portfolio
dimension". For a list of portfolio, user have to enter himself a portfolio code.
See chapter Order administration for more details about the notion of combined
order (called a Combined Order in Triple'A Plus Core).

Minimum Order Also used for the Strategy Reconciliation function.


amount and
currency You can set a minimum transaction amount and currency. The reconciliation
process will not generate any order proposals that have an amount lower than the
one you enter in the domain. This avoids generating small orders.

Minimum Order Also used for the Strategy Reconciliation function.


percentage
You can set a minimum percentage for the transaction amount in relation to the
portfolio market value. This avoids generating small orders.
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.

Order Status Also used for the Strategy Reconciliation function.


Status of the generated orders.

Buy Rule Also used for the Strategy Reconciliation function.


Enter the Rule to apply to generated Buy orders. This rule is used to compute the
default values.

Sell Rule Also used for the Strategy Reconciliation function.


Enter the Rule to apply to generated Sell orders. This rule is used to compute the
default values.

Cash allocation Also used for the Strategy Reconciliation function.


nature
See section Order Generation tab.

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.

Qty Alloc Nat. Quantity Allocation Nature


This setting is used with the Global Order Qty nature. Defines how the order is
distributed into the different portfolios.
Select one of the following options from the drop-down list:
 Default: This option defaults to the Pro Rata of Market Value described next.
 Pro Rata of MV: Computes the market value of each portfolio and the
percentage it represents of the total market value. These percentages are used
to distribute the global quantity.
 Pro Rata of Qty: Computes the percentage of the total held quantity for each
portfolio. Those percentages are used to distribute the global quantity.
 Equal %: Triple'A Plus Core tries to distribute an equal percentage of the initial
quantity to each portfolio so that every portfolio receives the same quantity of
security.
 Pro Rata of Executed Quantity: Not implemented.

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.

2.3.3.5 Order Details Tab processing


As well as entering the global parameters for the Allocate Order function, you must specify
the order details.
The method of creating orders and the required parameters will vary depending on the
nature of the selected allocation.
To enter your order details, click the format-based Order Details tab. (You can change its
display, because the tab is based on a format.)
The Order Details tab is a special tab, based on an Extended Strategy Element format that
belongs to the domain. It contains an editable list box with a number of column headers:
 Portfolio
 Instrument
 Recommendation (Buy, Sell, Reduce, Increase and Keep)
 Buy/Sell
 Quantity
 Resulting Quantity
 Objective Percentage

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

Instr. Order Qty X X X

Instr. Res. Qty X X

Instr. Order % of Ptf. X X X X

Instr. Res. % of Ptf. X X X X

MktSeg. Res. % of X X X X
Ptf.
Switch Instr. X X X X X

Cash Res. % of Ptf. X X X X

Ptf. Order Qty X X X X

Ptf. Res. Qty X X X X

These attributes are used to calculate the allocation method

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.

Recommendation Specific to the natures where a recommendation is used.


Nature
Max Percent

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.

2.3.3.6 Parameters tab


The Tiled option in the Consolidation panel on the Parameters tab (Domain – Allocate Order
screen) plays an important role. 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 Allocate Order screen.
To display the portfolio information in more detail, double-click the portfolio row in the
Allocate Order screen, then 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 Strategy Reconciliation and Check Strategy functions.

2.3.3.7 Application parameters


As well as the domain parameters, a number of system parameters are also used for default
order allocation processing:

Parameter Name Description


CASH_REC_METHOD Currently not used.

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.

MAX_CHILD_ORDERS_PER_BLOCK Max Childs Orders Per Block.


In Allocate Order and Strategy Reconciliation, 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
(e.g., GLOBAL_ORDER_LOG_ID_RULE).

You can limit the number of individual orders grouped to generate a


block order. For example: no block order generated by Allocate Order
or Strategy Reconciliation can hold more than 50 child orders.
If the parameter is set to 0 it means that there is no limitation.

MIN_CHILD_ORDERS_PER_BLOCK Min Childs Order Per Block.


Minimum number of orders required for Order Grouping. No block
orders can be created below this limit.

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).

ORDER_SIM_STATUS Currently not used.


It specifies the default simulation order status.

ORDER_STATUS Currently not used.


It specifies the default generated order status.

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.

2.3.4 General processing


Using these parameters, the Financial Server performs the following processing:
 If the Order Allocation Nature is Global Order Quantity, the synthetic data is loaded for
each portfolio in the list in the domain. This is done to avoid the individual valuation of
the portfolios before the global order can be divided among them. In a Global Order
Quantity allocation, each instrument's Odd Lot Quantity is taken into account.
 The actual positions of each portfolio in the list are loaded and valued, if required.
 Depending on the Order Allocation Nature, individual market orders are generated to
reconcile (align) each portfolio with the objective. The resulting data is saved in the
following working tables:
 Extended Strategy Link
 Extended Strategy Element
 Extended Operation

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.

2.3.5 Order quote and order quantity

2.3.5.1 Computing the Order Quantity


When the order quantity or the resulting quantity is not specified as allocation parameter,
Triple'A Plus Core computes the order quantity (for example, Instrument Resulting % of
Portfolio, etc.). The calculation is based upon the current portfolio market value and the last
available quote of the instrument. However, users can override that quote in the domain by
setting the current quote and current quote currency in the Order Details tab.

2.3.5.2 Setting the order quote


The order quote of the order proposal is set following the maximum exposure rule:

Order Nature Order Quote of the order proposal


Market Market quote*

Limit Limit quote

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

Stop-Limit Limit 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).

2.4 Allocation natures


The table below provides a concise overview of the available allocation natures. The following
sub sections give more details on some of the allocation natures.

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.

Instr. Order Instrument Order Quantity


Quantity
Specifies individual Buy or Sell order quantity for a series of instruments (i.e.,
the same quantity for each portfolio).
Example:
Buy 1,000 MSFT per portfolio.

Instr. Res. Qty Instrument Resulting Quantity


Specifies the resulting quantity for a series of instruments (i.e., the same for
each portfolio).
Example:
Buy/Sell X MSFT to produce a resulting quantity of 1,000 MSFT per Portfolio.

Instr. Order % of Instrument Order % of Portfolio


Ptf.
Specifies a given percentage for a series of instruments of an individual Buy or
Sell order as a proportion of the portfolio value.
Example:
Buy 10% MSFT in each of the selected Portfolios.

Instr. Res. % of Ptf. Instrument Resulting % of Portfolio


Specifies the resulting percentage of a series of instruments for a Buy or Sell
operation, depending on the portfolio market value specified.
Example:
Buy/Sell X MSFT to produce a result of 5% MSFT of the Portfolio Value of
selected Portfolios.

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.

Switch Instr. Switch Instrument


Performs switches for a series of instruments. You can define a specific market
segment to limit the exchange in the segment. Enter the market segment in the
Market Segment field (see below).
Example:
 We can set Triple'A Plus Core to sell IBM and Buy MSFT with the resulting
cash flow
 You can sell x% of your position and buy another stock with the resulting
cash flow. For more details, refer to section Order Details Tab.
The switch instrument takes into account the accrued interests, the fees and
taxes in the order generation process. Triple'A Plus Core ensures that the buy
operations net amount cannot be higher than the sell operations net amount.

Cash Res. % of Ptf. Cash Resulting % of Portfolio


Defines the objective as a cash percentage for a list of instruments with a
Recommendation nature.
Example:
Buy/Sell MSFT to obtain a result of 5% of the portfolio value in USD-Cash
Account.

Ptf. Order Qty Portfolio Order Quantity


Lets you specify the Buy or Sell order quantity for individual portfolios for a
series of instruments.
Example:
Buy 1,000 MSFT for Globalyst, Buy 500 MSFT for Hypnos.

Ptf. Res. Qty Portfolio Resulting Quantity


For individual portfolios, you can specify the resulting quantity for a series of
instruments.
Example:
Buy/Sell X MSFT to produce a resulting quantity of 1000 MSFT for Globalyst and
500 MSFT for Hypnos.

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

Instr. Res. % Instrument Resulting % of Market Segment


MktSgt.
Lets you buy or sell an instrument expressed as a percentage of the Market
Segment. The objective weight contribution and margin on the market segment
are specified in the Domain fields objective contribution (obj_weight_cont_p)
and margin (obj_weight_cont_marg_p).

Instr. Res. % Instrument Resulting % of Strat. Market Segment


StratMktSgt.
Lets you buy or sell an instrument expressed as a percentage of the Market
Segment. The objective weight contribution and margin on the market segment
are directly retrieved from the Strategy linked to each portfolio.

2.4.1 Instrument Order % of Portfolio


The ‘Instrument Order % of Portfolio’ Order Allocation nature generates “buy” or “sell”
orders for a specified percentage of the market value for each portfolio in the universe. The
quantity might therefore be different for each portfolio.
In the Order Details panel, you have to specify at least the instrument(s), the nature of the
operation (buy or sell), and the order percentage.
Example
 Buy 10% INTEL in each of the selected portfolios.
Similarly you can also specify
 Sell 10% INTEL in each of the selected portfolios.

23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 64
Instrument Order % of Portfolio

2.4.2 Global Order Quantity


The ‘Global Order Quantity’ Order Allocation nature is used to allocate a global quantity in an
instrument (or list of instruments) across “portfolios in the universe”. In addition to the
Order Allocation nature, you can select an allocation method which is used for allocating the
global order quantity across the list of portfolios.
Example
 Buy 1,000 MICROSOFT (which are then distributed among the portfolios as specified by
the Allocation Method).

Global Order Quantity

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.

Instrument Order Quantity

2.4.4 Instrument Resulting % of Portfolio


The ‘Instrument Resulting % of Portfolio’ Order Allocation nature checks the existing position
for each portfolio of the list and creates buy or sell orders to get as result the percentage
specified in the field "Objective weight. %".
In the Order Details panel, you have to specify at least the instrument(s), the resulting
percentage.
Example
 Buy/Sell ‘X’ Pfizer to produce a result of 20% Pfizer of the Portfolio Value of selected
portfolios.

23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 66
Instrument Resulting % of Portfolio

2.4.5 Instrument Resulting % of Market Segment


The ‘Instrument Resulting % of Market Segment’ Order Allocation nature lets you buy or sell
an instrument expressed as a percentage of the market segment.
Example
For a portfolio, you want to achieve an allocation objective of 30% to the market segment
“Technology“. In this example, the following stocks represent the “Technology” segment:
 IBM
 HP
The generated orders are based on the objective weight expressed as percentage of market
segment.

Instrument Resulting % of Market Segment

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.

Instrument Current weight in portfolio Objective weight (at each Diff.


instrument level)
IBM 5% 15 % (50% of 30%) 10 %

HP 20 % 15 % (50% of 30%) -5%

The generated instructions are:

% to buy IBM = 10 % of Portfolio Market Value

% to sell HP = 5 % of Portfolio Market Value

2.4.6 Instrument Resulting Quantity


The ‘Instrument Resulting Quantity’ Order Allocation nature checks the existing position of
each portfolio of the list and creates “buy” or “sell” orders to get as result the quantity
specified in the order detail.
In the Order Details panel, you have to specify at least the instrument(s), the resulting
quantity for each instrument.
Example
 Generate buy / sell orders for the portfolios so that the resulting quantity in ABNAMRO
stock is 250.

Instrument Resulting Quantity

2.4.7 Market Segment Resulting % of Portfolio


The Market Segment Resulting % of Portfolio’ Order Allocation nature generates buy or sell
orders in one or more instruments in order to reach a specified weight for a market segment.
Example
Consider a portfolio with the following positions:

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):

Instrument Recommendation Objective weight (at each instrument


Nature level)
UBS Buy 15%

Pound Buy 10%

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)

Market Segment Resulting % of Portfolio

2.4.8 Portfolio Order Quantity


The ‘Portfolio Order Quantity’ Order Allocation nature allows the user to specify for each
portfolio a buy or a sell quantity in an instrument
In the Order Details panel, you have to specify the portfolio (s), the instrument(s), the
nature of the operation, and the quantity for each instrument.

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

Portfolio Order Quantity

2.4.9 Portfolio Resulting Quantity


The ‘Portfolio Resulting Quantity’ Order Allocation nature checks the existing position for the
specified portfolio in an instrument and creates “buy” or “sell” orders to get as result the
quantity specified in the order detail for that particular instrument.
In the Order Details panel, you have to specify the portfolio(s), instrument(s), and the
resulting quantity for each instrument.
Example
 Generate buy / sell orders for portfolio 1, so that the resulting quantity in EXXON
MOBIL stock is 250.
 Generate buy / sell orders for portfolio 2, so that the resulting quantity in CHEVRON
stock is 1000.
 Generate buy / sell orders for portfolio 3, so that the resulting quantity in SHELL stock
is 750.

23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 70
Instrument Resulting Quantity

2.4.10 Switch Instrument


The ‘Switch Instrument’ Order Allocation nature is used to sell holdings in one or more
specified instruments and invest the proceeds in one or more different instruments.
In the Order Details panel, you have to specify at least two instruments (one for the sell leg
and another with the buy leg) , the recommendation natures, the maximum percentage you
want to sell (expressed in position percentage) and the maximum Percentage you want to
buy (expressed in portfolio market value).
Example
 Sell x% of your position and buy another stock with the resulting cash flow.

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

2.4.11.2 Input Controls


First control: two and only two orders must be specified. If this is not the case, processing
stops and an error message is displayed.
Second control: one of the records must have ExtStratElt_OpNature = Buy and the other
ExtStratElt_OpNature = Sell. If this is not the case, the function stops and an error message
is displayed.

2.4.11.3 Input Parameters


The following attributes in the Extended Strategy Elements structure are required to run the
function:

Attribute Description
ExtStratElt_InstrId The instrument to buy or sell.

ExtStratElt_OpNature The nature of the operation to generate (buy or sell).

ExtStratElt_ObjWeightContrib The target weight per instrument in the portfolio.

ExtStratElt_RoundLotQty The minimal order quantity for the instrument in question.

ExtStratElt_CurrentQuote The current quote for the instrument. This information is used to
valuate the instrument.

ExtStratElt_CurrQuoteCurrency The currency of the current quote for the instrument.

ExtStratElt_OrderQuote The limit order quote. This information is used to valuate the
instrument and set the quote of the order.

ExtStratElt_OrderQuoteCurrency The currency of the limit order quote.

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:

# Price Total % of PMV Obj % Diff


SICAV A 100 51 5100 25.50 % 20.50 % - 5.00 %

SICAV B 400 25 10000 50.00 % 53.00 % + 3.00 %

CASH 4900 24.50 %

23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 72
# Price Total % of PMV Obj % Diff
PMV 20000 100.00 %

% to sell = 5.00 % (1) (1)

% to buy = 3.00 % (2) (2)

Real % Sell/Buy = % to buy (1) > (2) (3)

= 3.00 % (3)

Amount to sell = 20000 * 3 % = 600 (4) (4)

Quote of instrument to sell = 51 (5) (5)

Quote of instrument to buy = 25 (6) (6)

# to sell = 600 (4) / 51 (5) (7)

11.7647

= 11 (7) (round down)

# to buy = 11 (7) * 51 (5) / 25 (6) (8)

22.44

= 22 (8) (round down)

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%

Instrument B 936 52.40 49046.40 48.28% 53.00% 4.72%

Cash 26252 1 26252.00 25.84% N/A N/A

Portfolio Market Value (PMV) 101578.40

To achieve objective weights


% to sell (Instrument A) = 5.37 % (1)

% to buy (Instrument B) = 4.72 % (2)

Real % Sell/Buy = 4.72 % (3)


(lower of both)

Amount to sell = 101578.40 * 4.72 % = 4794.50 (4)

Quote of instrument to sell = 131.40 (5)

Quote of instrument to buy = 52.40 (6)

Quantity to sell = (4)/(5) = 4794.50 / 131.40 = 36 (round down) (7)

Quantity to buy = (7) * (5)/(6) = 36 * 131.40 / 52.40 = 90 (round (8)


down)

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

2.4.12.2 Input Controls


First control: only two records must be specified. Otherwise the function stops and an error
message is displayed.
Second control: one of the records must have the following setting: ExtStratElt_OpNature =
Buy and the other ExtStratElt_OpNature = Sell. In any other case, the function stops and an
error message is displayed.

2.4.12.3 Input Parameters


The attributes in the Extended Strategy Elements structure required to run the function are
the same as for Conversion:

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_OpNature The nature of the operation to generate (buy or sell).

ExtStratElt_ObjWeightContrib The target weight per instrument in the portfolio.

ExtStratElt_RoundLotQty The minimal order quantity for the instrument in question.

ExtStratElt_CurrentQuote The current quote for the instrument. This information is used to
valuate the instrument.

ExtStratElt_CurrQuoteCurrency The currency of the current quote for the instrument.

ExtStratElt_OrderQuote The limit order quote. This information is used to valuate the
instrument and set the quote of the order.

ExtStratElt_OrderQuoteCurrency The currency of the limit order quote.

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

# Price Total % of PMV Obj % Diff


SICAV C 100 51 5,100 25.50 % 20.50 % - 5.00 %

SICAV D 400 25 10,000 50.00 % 53.00 % + 3.00 %

CASH 4,900 24.50 %

PMV 20,000 100.00 %

% to sell = 5.00 % (1) (1)

% to buy = 3.00 % (2) (2)

Amount to sell = 20,000 * 5 % =1,000 (3)

Amount to buy = 20,000 * 3 % = 600 (4)

Amount to sell (3) > amount to buy (4)

Amount of calculation 1 (sell): = amount to sell (5)

= 1,000

Amount of calculation 2 (buy): = amount to buy (6)

= 600

Quote of instrument to sell = 51 (7)

23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 75
Quote of instrument to buy = 25 (8)

# to sell = 1,000 (5) / 51 (7) (9)

= 19.6078

= 19 (9) (automatic round down)

Calcsell-R = 19 (9) * 51 (7) (10)

= 969

Buy#-T1 (11) = 600 (6) / 25 (8) (11)

= 24

Buy#-T2 (14) = 969 (10) / 25 (8) (12)

= 38.76

= 38 (12) (automatic round down)

Calcbuy-T (13) = 24 (11) * 25 (8) (13)

= 600

# to buy (14)

Amount to sell (3) > amount to buy (4)

calcsell-R (10) = 969 (10)

calcbuy-T (13) = 600 (13)

calcsell-R (10) 969  calcbuy-T (13) 600

# to buy (14) = buy#-T1 (11)

= 24 (14)

Scenario B: Amount to sell = Amount to buy

# Price Total % of PMV Obj % Diff


SICAV E 100 51 5,100 25.50 % 20.50 % - 5.00 %

SICAV F 400 25 10,000 50.00 % 55.00 % + 5.00 %

CASH 4,900 24.50 %

PMV 20,000 100.00 %

% to sell = 5.00 % (1) (1)

23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 76
% to buy = 5.00 % (2) (2)

Amount to sell = 20,000 * 5 % =1,000 (3)

Amount to buy = 20,000 * 5 % =1,000 (4)

Amount to sell (3) = amount to buy (4)

Amount of calculation 1 (sell): = amount to sell (5)

= 1,000

Amount of calculation 2 (buy): = amount to buy (6)

= 1,00

Quote of instrument to sell = 51 (7)

Quote of instrument to buy = 25 (8)

# to sell = 1,000 (5) / 51 (7) (9)

= 19.6078

= 19 (9) (automatic round down)

calcsell-R = 19 (9) * 51 (7) (10)

= 969

Buy#-T1 (11) = 1,000 (6) / 25 (8) (11)

= 40

Buy#-T2 (14) = 969 (10) / 25 (8) (12)

= 38.76

= 38 (12) (automatic round down)

Calcbuy-T (13) = 40 (11) * 25 (8) (13)

= 1,000

# to buy (14)

Amount to sell (3) = amount to buy (4)

calcsell-R (10) = 969 (10)

23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 77
calcbuy-T (13) = 1,000 (13)

calcsell-R (10) 969  calcbuy-T (13) 1,000

# to buy (14) = buy#-T2 (14)

= 38 (14)

Scenario C: Amount to sell < Amount to buy

# Price Total % of PMV Obj % Diff


SICAV C 100 51 5,100 25.50 % 22.50 % - 3.00 %

SICAV D 400 25 10,000 50.00 % 55.00 % + 5.00 %

CASH 4,900 24.50 %

PMV 20,000 100.00 %

% to sell = 3.00 % (1) (1)

% to buy = 5.00 % (2) (2)

Amount to sell = 20,000 * 3 % =600 (3)

Amount to buy = 20,000 * 5 % =1,000 (4)

Amount to sell (3) < amount to buy (4)

Amount of calculation 1 (sell): = amount to sell (5)

= 600

Amount of calculation 2 (buy): = amount to buy (6)

= 1,00

Quote of instrument to sell = 51 (7)

Quote of instrument to buy = 25 (8)

# to sell = 600 (5) / 51 (7) (9)

= 111.7647

= 11 (9) (automatic round down)

calcsell-R = 11 (9) * 51 (7) (10)

= 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

Buy#-T2 (14) = 561 (10) / 25 (8) (12)

= 22.44

= 22 (12) (automatic round down)

Calcbuy-T (13) = 40 (11) * 25 (8) (13)

= 1,000

# to buy (14)

Amount to sell (3) < amount to buy (4)

# to buy (14) = buy#-T2 (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%

Instrument B 936 52.05 48718.80 48.12% 51.12% 3.00%

Cash 26252 1 26252.00 25.92 N/A N/A

Portfolio Market Value 101250.80

To achieve objective weights:

% to sell (Instrument A) = 5.00 % (1)

% to buy (Instrument B) = 3.00 % (2)

Amount to sell = 101250.80 * 5.00 % = 5062.54 (3)

Amount to buy = 101250.80 * 3.00% = 3037.52 (4)

Amount to sell is greater than amount to buy, (3) >


(4)

Quote of instrument to sell = 131.40 (5)

Quote of instrument to buy = 52.05 (6)

Quantity to sell = (3)/(5) = 5062.54 / 131.40 = 38 (round down) (7)

Quantity to buy = (4)/(6) = 3037.52 / 52.05 = 58 (round down) (8)

2.4.13 Combined Sell/Buy

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.

2.4.13.2 Input Controls


This allocation nature has only one control. The control checks that there is at least one buy
and one sell. If this is not the case, the function stops and an error message is displayed.

2.4.13.3 Input Parameters


The attributes in the Extended Strategy Elements structure required to run the function are
the same as for Conversion and Arbitrage:

Attribute Description
ExtStratElt_InstrId The instrument to buy or sell.

ExtStratElt_OpNature The nature of the operation to generate (buy or sell).

ExtStratElt_ObjWeightContrib The target weight per instrument in the portfolio.

ExtStratElt_RoundLotQty The minimal order quantity for the instrument in question.

ExtStratElt_CurrentQuote The current quote for the instrument. This information is used to
valuate the instrument.

ExtStratElt_CurrQuoteCurrency The currency of the current quote for 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_OrderQuoteCurrency The currency of the limit order quote.

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

# Price Total % of PMV Obj % Diff


SOLVAY 250 64.11 16,025.00 16.0250 % 8.00 % - 8.0250 %

UCB 150 45.00 6,750.00 6.7500 % 0.00 % - 6.7500 %

FORTIS 200 26.30 5,260.00 5.2600 % 12.00 % + 5.7400 %

ING 200 29.90 5,980.00 5.9800 % 12.00 % + 5.0200 %

DEXIA 350 15.56 5,446.00 5.4460 % 12.00 % + 5.5540 %

CASH 60,539.00 60.5390 %

PMV 100,000.00 100.0000 %

% to sell1 = 8.0250 % (1.1)

% to sell2 = 6.7500 % (1.2)

% to buy1 = 5.7400 % (2.1)

% to buy2 = 5.0200 % (2.2)

% to buy3 = 5.5540 % (2.3)

amount to sell1 = 100,000 * 8.0250 % = 8,025.00 (3.1)

amount to sell2 = 100,000 * 6.7500 % = 6,750.00 (3.2)

amount to buy1 = 100,000 * 5.7400 % = 5,740,00 (4.1)

amount to buy2 = 100,000 * 5.0200 % = 5,020.00 (4.2)

amount to buy3 = 100,000 * 5.5540 % = 5,554.00 (4.3)

quote of instrument to sell1 = 64.11 (5.1)

quote of instrument to sell2 = 45.00 (5.2)

quote of instrument to buy1 = 26.30 (6.1

quote of instrument to buy2 = 29.90 (6.2)

quote of instrument to buy3 = 15.56 (6.3)

# to sell1 = 8,025.00 (3.1) / 64.11 (5.1) (7.1)

23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 81
125.1105

= 125 (automatic round down)

# to sell2 = 150 (# of instrument2 in portfolio) (7.2)

calc amount to sell1 = 125 (7.1) * 64.11 (5.1) (8.1)

= 8,012.50

calc amount to sell2 = 150 (7.2) * 45.00 (5.2) (8.2)

= 6,750.00

theor. # to buy1 = 5,740.00 (4.1) / 26.30 (6.1) (9.1)

218.2511

= 218 (automatic round down)

theor. # to buy2 = 5,020.00 (4.2) / 29.90 (6.2) (9.2)

167.81030

= 167 (automatic round down)

theor. # to buy3 = 5,554.00 (4.3) / 15.56 (6.3) (9.3)

356.104010

= 356 (automatic round down)

theor. amount of calculation 2 = 218 (9.1) * 26.30 (6.1) (10.1)


(buy1)

= 5,733.40

theor. amount of calculation 2 = 167 (9.2) * 29.90 (6.2) (10.2)


(buy2)

= 4,993.30

theor. amount of calculation 2 = 356 (9.3) * 15.56 (6.3) (10.3)


(buy3)

= 5,539.36

amount of calculation1 (sell) = 8,012.50 (8.1) + 6,750.00 (8.2) (11.1a)

23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 82
= 14,762.50

real # to buy1

5,733.40 (10.1)  14,762.50 (11.1a) (11.1b)

= 218 [ = 218 (9.1) ]

amount of calculation2 (sell) = 14,762.50 (11.1a) – [ 218 (11.1b) * (11.2a)


26.30 (6.1) ]

= 9,029.10

real # to buy2 (11.2b)

4,993.30 (10.2)  9,029.10 (11.2a)

= 167 [ = 167 (9.2) ]

amount of calculation3 (sell) = 9,029.10 (11.2a) – [ 167 (11.2b) * 29.90 (11.3a)


(6.2) ]

= 4,035.80

real # to buy3 (11.3b)

5,539.36 (10.3) > 4,035.80 (11.3a)

= 4,035.80 (11.3a) / 15.56 (6.3)

259.3702

259 (automatic round


down)

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%

Instrument B 334 40.50 13527.00 6.98% 0% -6.98%

Instrument C 1588 6.29 9988.52 5.16% 12.00% 6.84%

Instrument D 780 13.35 10413.00 5.38% 12.00% 6.62%

Instrument E 305 33.10 10095.50 5.21% 12.00% 6.79%

Cash 118416 1.00 118416.00 61.12% N/A N/A

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

% to sell (Instrument A) = 8.15% (1)

% to sell (Instrument B) = 6.98% (2)

% to buy (Instrument C) = 6.84 % (3)

% to buy (Instrument D) = 6.62 % (4)

% to buy (Instrument E) = 6.84 % (5)

Quantity to sell Instrument A = (PMV)*(1)/(price of Instrument A) =


193720.02 * 8.15% / 156.40 = 100

Quantity to sell Instrument B = (PMV)*(2)/(price of Instrument B)


=193720.02 * 6.98% / 40.50 = 334

Quantity to buy Instrument C = (PMV)*(3)/(price of Instrument C) =


193720.02 * 6.84% / 6.29 = 2107

Quantity to buy Instrument D = (PMV)*(4)/(price of Instrument D) =


193720.02 * 6.62% / 13.35 = 961

Quantity to buy Instrument E = (Cash Available)/(price of Instrument E) =


3084.6 / 33.10 = 93

The calculated quantity is always rounded down.


Cash Available = Amount left after buying instrument C and D from the amount received
after selling instrument A and B. in above example
((100*156.4) + (334*40.50)) – ((2107*6.29)+(961*13.35)) = 3084.6

2.5 Order Entry


The Order Entry function lets you record and track orders in your portfolios.
In the Allocate Order function, for example, the orders are displayed in a detailed list screen
where you can view and update orders. Similarly, in the Event Generation module, the
results are displayed in a detailed list of operations that you can update before committing
(saving) them to the database. The Order Entry function builds upon this functionality while
facilitating data entry. It is possible to select a position in a position list and call another
financial function. The Order Entry option lets you create Buy and Sell operations directly.

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.

2.5.2 Order Entry screen


Go to Operation > Order Entry from the main menu to display the Order Entry screen. The
screen elements on this screen are:

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.

Print button The Print button prints the order list.

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.

2.5.4 Searching orders


You can perform Quick Searches on the code and name of foreign keys. In the case of
instruments, you can perform the search on the instrument Code, Name and Denomination
columns. Previously, you could only perform quick searches on the foreign key code.
To perform a quick search for an instrument, for example, click the relevant cell to activate
it, enter the first characters of the instrument code, instrument name or instrument
denomination, as the case may be, and press the [Tab] key on the keyboard. This opens the
Select Instrument screen showing the possible instruments from which you can choose.

2.5.5 Creating a new Order


To enter an order:
1. Go to Edit > Create ([Ctrl]+[N]) or press the [Insert] key on the keyboard.
2. Enter your data directly in the new row that appears. To move from one field to the next,
use the keyboard arrows or the [Tab] key. Once a field is selected you can simply enter
the required data.
Use the field's drop-down list, if there is one (down arrow on the right of the field), and
select the item you want from the list.
Some fields have Browse buttons beside them. If you click the Browse button in the
Instrument column (or press [Enter] when the field is selected), for example, the Select
Instrument screen opens.
If no entry field appears, this means that the field you selected is not editable.
You can initialise orders from a position list (the result of a portfolio valuation, for example).
When you select a position and choose Buy or Sell from the Action menu (or the context
menu, displayed when you click with the right mouse button), a new order is automatically
added to the current order list session or to a new session. The session must have the same
domain characteristics as the position list domain.
The system parameter ONE_SESSION_FOR_VALO_ORDERS allows the user to group all
orders created with shortcut Buy/Sell in only one session of order entry.
Possible values:
 0: standard behaviour
 1: one session for all orders

2.5.6 Copying Orders


The Copy option (Edit > Copy or [Ctrl]+[C]) lets you copy the selected operation and paste it
([Ctrl]+[V]) into another operation. To select an operation, double-click one of the cells in a
column (or press [Shift]+[Home] or [Shift]+[End]). The whole row is then highlighted. You
can then press [Ctrl]+[C] to copy it to a storage buffer (not the Microsoft Windows
clipboard).

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.

2.5.7 Copying and Pasting Child Orders


When you copy and paste a child order in Order Entry, the copy of the child order is now
itself a child order.
There are two different ways to use copy-paste with child orders:
 Copy the child order and then paste it. A new child order is created.
 Copy a child order and its parent then paste them both. A new book order is created.
Then a new child order is created and attached to the new book order.
Bear in mind that in some cases the copy is a standard child order: Copy a child order,
delete the parent order and then paste the child order. The new order is a standard order.

2.5.8 Saving Orders


In a single session, you can create a list of orders linked to the appropriate portfolios and
instruments and save the list as an Order Entry session. You can then re-open the session
later.
The Save Session option (Edit > Save Session or [Ctrl]+[S] or Save Session button) saves all
the operations to the database. Triple'A Plus Core generates the related positions and
balance positions automatically.
When order proposals are confirmed/sent:
 an operation code is generated
 a positive operation_id is created
Confirmed/sent orders are turned into an operation/position/balance position. Consequently,
confirmed orders can be valued within the different Triple'A Plus Core business functions.
Only confirmed operations can be exported.

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.

2.5.9 Deleting Orders


The Delete option (go to Edit > Delete or press the keyboard [Del] key and click OK or press
[Enter] to confirm) deletes the current operation from the list and the session.

2.5.10 Deleting Sessions


To delete the existing session, you must expressly choose the option by going to
Administration > Format > Function Result. Choose a Function Result from the list in the Select
Function Result screen and click Delete or Delete All. The right to delete sessions can be
restricted to the Super User.

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:

Data Script Display Datatype Attribute Edit Zoom


definition Context flag flag
Portfolio portfolio_id portfolio id_t Null No Yes

Instrument instrument_id instrument id_t Null No Yes

Deposit deposit_id None id_t Null No Yes

Quantity quantity_n None number_t Null No Yes

Status status_e None enum_t Null No Yes

Position pos_currency_id None id_t Null No Yes


Currency

Sub_position sub_pos_nat_e None enum_t Null No Yes


Nature

To complete these fields, do the following:


1. Go to Administration > Format > Format, select the Valuation format you want and click
Modify button.
2. Click the Format Element button in the Modify Format screen.
The Select Format Element screen is displayed.
3. Select the format element you want to modify from the list and click Create button or
Modify button.
4. Complete the fields as required in the Create or Modify Format Element screen.

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:

From Extended Position to Extended Operation


Shortcut: Valuation - Order Entry
Extended Position Shortcut Extended Operation
Comm.
Reference Nature Operation Nature Buy/Sell Reference Nature Reference Code Value Date Expiration Date

ref_nat_e open_oper_nat_e ref_nat_e ref_oper_code value_d expiration_d

Term Open, Fwd Open, Futures Buy Buy Term Open, Fwd Open, Futures ext_pos
Open, FRA Open Open, FRA Open value_d

Buy Sell Term Close, Fwd Close, Futures ext_pos ext_pos


Close, FRA Close open_oper_code value_d

Sell Sell Term Open, Fwd Open, Futures ext_pos


Open, FRA Open value_d

Sell Buy Term Close, Fwd Close, Futures ext_pos ext_pos


Close, FRA Close open_oper_code value_d

FX Swap Open, Repo Open, Buy Buy FX Swap Open, Repo Open, ext_pos
Remere Open Remere Open expiration_d

Buy Sell FX Swap Close, Repo Close, ext_pos ext_pos


Remere Close open_oper_code expiration_d

Sell Sell FX Swap Open, Repo Open, ext_pos


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

Swap Open Buy Buy Swap Open

Buy Sell Swap Close ext_pos


open_oper_code

Sell Sell Swap Open

Sell Buy Swap Close ext_pos


open_oper_code

Open Buy Buy Open ext_pos ext_pos


open_oper_code expiration_d

Buy Sell Close ext_pos ext_pos


open_oper_code expiration_d

Sell Buy Close ext_pos ext_pos


open_oper_code expiration_d

Sell Sell Open ext_pos ext_pos


open_oper_code expiration_d

Reference Nature Operation Nature Buy/Sell Reference Nature Reference Code Value Date Expiration Date

ref_nat_e open_oper_nat_e ref_nat_e ref_oper_code value_d expiration_d

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

Sell Buy Futures FIFO / Future WMP ext_pos


value_d

Sell 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

script definition = instri_id.denom

The confirm_f flag is updated after a Trading Constraint check.

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).

2.5.14.1 Customisable Cells


To use the context menu certain format elements must be properly configured. The context
menu lets you change from one business function to another (e.g., from Valuation to Order
Entry). See the Triple’A Plus Core Format and UDS Reference Guide for more details.
The cells in the detailed list are fully customisable. That is, you can add shadow to them or
colour the background or the foreground text. To do this:
1. Go to Administration > Format > Format.

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.

2.5.14.2 Modifying the Button Labels


You can modify the button labels at any time.
1. Go to Administration > Format > Message.
2. Select Multilingual Label in the Nature drop-down list to view only Multilingual Label
messages.
3. Select the Multilingual Label you want to change and click Modify.
4. In the Modify Message screen, click the Message Text button.
5. Then click Create to create a new label or Modify to modify an existing one in the
subsequent screen. The button labels begin with BTN, for example, BTN_CheckStrat.

2.5.14.3 Screen controls


Unlike the standard Triple'A Plus Core screens, the Order Entry screen does not have all the
common buttons (Create, Copy, etc.). This is because you can enter orders directly in the
screen itself without having to use these buttons: you just use the keyboard shortcuts. In
fact, the module is designed so you do not have to lift your hands off the keyboard.

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

For foreign keys, the following applies:

Datatype field entry Display


id_t id

code_t code

name_t name

info_t denom)

 Drop-down list field:


Click the field to select it and then click the arrow that appears on the right of the field
and select an item from the list. A filter is placed on the corresponding attribute (User or
User Defined Screen Filter). It is the filter on the field that makes it a drop-down list
field. This applies to enumerated attributes (e.g., order_nat_e) as well as to foreign
keys (account_id).
 Browse fields:

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

2.6 Display Formats


The following Triple'A Plus Core Formats ensure the appropriate display of data on the
screen:
 DEF_ORDER_ENTRY: The domain Format that forms the screen header panel.
 DEF_ORDER_ENTRY_DOM: The Format used for the order list itself.

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 Cross-function features


This section describes business function features that apply to the different productivity
functions.

2.7.1 Managing Order Proposals – Extended Operations


This section describes the management of order proposals in the following business
functions:
 Order Entry
 Allocate Order
 Strategy Reconciliation

2.7.1.1 General Concept


By order proposals is meant provisional or draft orders that you may or may not want to
make permanent. From a database point of view, these order proposals are stored in the
Extended Operation entity and are not yet saved to the operation table.
Triple'A Plus Core lets you generate order proposals automatically (i.e., Allocate Order,
Strategy Reconciliation) or manually (i.e., Order Entry). The latter type is stored in the
Extended Operation entity. As no positions have been generated yet, the order proposals
cannot be viewed in the different business functions (Valuation, Operation List, etc.).
You can, however, modify order proposals from the Order Entry, Allocate Order and Strategy
Reconciliation screens. Additionally, you can check if your order proposals are in line with the
investment objectives assigned to the corresponding portfolios. To do this, use the Save
Draft, Simulation and Pre-Trade Check Strategy buttons. The available operations depend on
the function you call. Trading constraints, for example, are not checked when you click the
Simulation button.
You can subsequently confirm these order proposals. This means changing Extended
Operations into operations/positions and balance positions. If you do this, the order
proposals (Extended Operations) are frozen. This makes it possible to store a trace of this
step in the order generation process. If necessary, you can edit the corresponding operations
through the different business functions (Valuation, Order List, etc.). To perform these
actions, click the Save, Save All, and Save Session buttons.

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.

2.7.1.3 Block Mode


Order proposals are saved (Extended Operation) and confirmed (operation/positions/bal pos)
in block mode. The advantage of this is that it accelerates access to the database and
reduces the risks of locking the related entities. There is a specific system parameter that
defines the size of the block: COMMIT_BLOCK_SIZE. By default, its value is 100.

2.7.2 Order Session Status


In the Allocate Order, Strategy Reconciliation, and Order Entry business functions you can
generate and confirm a set of order proposals. These orders are grouped together in an
order session. An order session is characterised by a status with one of the following
permitted values:
 <None>
 Draft
 Checked Session
 Final

Status Business Compliance Saved in Saved in Session Description


functions check done Extended Operation modifi-
Operation & cations
(draft Position
orders)
<None> Order Entry No No No Yes Before saving
your order entry
session as draft
or final.

Draft All No Yes No Yes The orders have


been saved as a
draft. You can
still update the
order session
content.

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.

Final All See next Yes Yes No You have


paragraph confirmed your
orders. The order
session is frozen.

Note the following points:


 In Allocate Order, you must set the Checking Strategy domain parameter to ‘Yes’ to
have a Checked Session.
 In Strategy Reconciliation or Allocate Order (with Checking Strategy set) you have run
a Simulation process to view a Checked Session. In Order Entry, you have to run the
pre-trade compliance check function. In both cases, you first need to save your
modifications to a draft session (i.e., by clicking Save Draft).
 In Strategy Reconciliation and Allocate Order (with Checking Strategy set) the order
session status is Checked Session by default.
You can guarantee that all order sessions have been checked by writing script input controls
assigned to the Domain entity as follows:
IF (function_dict_id.parent_function_dict_id.proc_name IN ("strat_recon",
"order_entry", "alloc_ord") AND func_result_status_e = 2 {final} AND
OLD().func_result_status_e <> 3 {checked session}, MSG(ERROR, ….));

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,
…))

2.7.3 Order Proposals vs. Constraint's Violation


In different order generation functions (Order Entry, Allocate Order and Strategy
Reconciliation), you can check if the different order proposals violate a constraint. This is
done through the Check Strategy field (check_strat_e) from the operation screen. The
permitted values are as follows:

No. Permitted Value Description


0 No Check Default value. No compliance check is run on this order

1 Checked No constraint violation

2 Not Checked Constraint violation

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

4 No strategy This order is not checked by any constraint or strategy.

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.

Note the following points:


 In the different functions, when you modify an order proposal, the Check Strategy field
is automatically set to No Check.
 In Allocate Order or Order Entry (bottom-up approach), the compliance check is based
upon all the investment targets and constraints.
 This field is populated after having executed the different default values at the
operation level.

2.7.4 Right Data at the Right Time


The following parameters allow portfolio managers to view only the relevant data at the right
time. In addition, the parameters speed up the whole process as they reduce the volume of
data returned and/or computed. It is highly recommended to use these parameters. They
are available when launching Check Strategy, Pre-trade Compliance Check, Allocate Order
and Strategy Reconciliation functions:
 Un-checked/Show All parameter
 Computing level parameter with the permitted values: Only orders, Orders &
Constraints and All
These parameters belong to the same family as the following:
 Detailed level with the permitted values: No details, No checked details and All details
 Detailed/Tiled parameter
 Link nature with the permitted values: All, Strategy, Strategy and benchmark
 Maximum and Minimum priority link
These parameters let you do the following:
 Compare your portfolios against the right investment targets. It might not be relevant
while rebalancing a portfolio to check all the investment constraints linked to a
portfolio. Some constraints might be linked to your portfolio for audit reasons.
 Store and/or return only the relevant portfolio check details. Portfolio managers may
only be interested in the order proposals generated by the Strategy Reconciliation
function and not in the details of the investment targets and positions. Or when
auditors check the investment targets linked to a portfolio they might only want to see
the constraint violations.

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

Only Orders Only the order proposals are stored in the


database and displayed for the user. Useful when
dealing with a big list of portfolios. Note that the
compliance check has been done but the
corresponding details are not stored and
returned.

Orders & In addition to the order proposals the constraint


Constraints details are stored and returned to the user.

All In addition to the orders, all details on the


portfolio-investment targets are stored and
returned to the user.

Un-checked All Lets you focus on the un-checked investment


portfolio targets when you run a comparison between a
portfolio and its strategies. Useful when running
Check Strategy or Pre-trade Check Strategy on
large lists of portfolios.
The process is slightly different for Allocate Order
and Strategy Reconciliation: only the constraint
details are filtered in these functions.

Un-checked Only the un-checked investment targets are


only stored in the database and returned to the user.

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.

No detail You focus on the investment targets. The


position details are not stored or returned to the
user.

No checked Only the positions related to an un-checked


details investment target are stored and returned to the
user.

All All position details are returned.

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.

Tiled The application compares the portfolio against its


investment targets but only the order proposals
and the Extended Strategy Link are returned to
the user in the formats. You can select an order
and choose the V i e w D e t a i l s option in the
context menu (right mouse-click).

Detailed All data is returned in the formats.

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.

2.7.5 Update Draft facility


Update Draft is a facility equivalent to the Update Fields function. It is a GUI shortcut that
calls a script to update selected operations. It applies only to the order proposals grouped
together in a draft order session. This means that you can only access this function in the
Order Entry, Strategy Reconciliation and Allocate Order functions. Update Fields is an Order
List function that applies to confirmed orders.
Otherwise, Update Draft works similarly to Update Fields (security, generic, etc.). Refer to
section Update Fields function for more information on how Update Draft works.
Example:
The Strategy Reconciliation and Allocate Order business functions generate a set of order
proposals. Users can modify these order proposals before confirming them. You can also
select different orders and set the Confirm flag to No in one click of the mouse.
To do this, you simply create an Update Draft occurrence called, for example, Refuse. Then
assign the value 0 to the confirm_f attribute of the Buy and Sell operations in the script
definition.
The Block Order – Child Order relationship is handled dynamically when the Update Draft
facility executes.

2.7.6 Exception Management facility


Exception Management is a facility to automatically move invalid orders into an exception
session, when the initial order session is based on a set of portfolios or/and portfolio
hierarchies. The objective is to have all valid orders ready to be confirmed/sent without the
need to wait for the analysis and decision on invalid orders. Refer to section Saving Orders
for details about confirmed/sent orders. If the initial order session is based on a single
portfolio or a single portfolio hierarchy, no exception sessions will be created and all the
orders are kept in the initial session.
The validity of an order is based on the following rules and depends on whether the Case
Management Component is activated or not. An order is considered invalid if:
 Case Management Component is activated (parameter CASE_ACTIVATION_FLAG = 1)
and the order has generated a case due to either the need to clarify the order session
or the inability to save the order session.
 Case Management Component is deactivated (parameter CASE_ACTIVATION_FLAG = 0)
and the order has its confirm flag set to No (i.e., set manually by the user or due to the
breach of a constraint) or the order triggers an input control related to an error
message.
Exception Management is activated through the system parameter
SESSION_EXCEPTION_HANDLING. If it is equal to 1, Exception Management is activated. If it is
equal to 0, Exception Management is deactivated.

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

Valid Valid Valid Invalid Valid Valid


order 1A order 2A order 3A order 1B order 2B order 3B

(Initial)
Session

Valid Valid Valid Valid Valid Valid Invalid Valid


order 1D order 2D order 1C order 1D order 1F order 2F order 1E order 2E

Portfolio D Portfolio C Portfolio F Portfolio E


: C hild : Parent : C hild : Parent

Exception Management

Final Situation
Portfolio A Portfolio B

Valid Valid Valid Invalid Valid Valid


order 1A order 2A order 3A order 1B order 2B order 3B

(Initial) Session for


Session exception

Valid Valid Valid Valid Valid Valid Invalid Valid


order 1D order 2D order 1C order 1D order 1F order 2F order 1E order 2E

Portfolio D Portfolio C Portfolio F Portfolio E


: C hild : Parent : C hild : Parent

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.

2.7.7 Check and Publish Order Generation


Check and Publish order generation is a facility to automatically save an order session and
confirm/send its orders, if they are all valid, immediately after the execution of the pre-trade
compliance checking.
To activate the Check and Publish order generation functionality, set the domain's field
Generation Nature to the value C h e c k & P u b l i s h .
As soon as the pre-trade compliance checking is executed, Triple'A Plus Core checks the
conditions listed below and applies the appropriate actions.
 If the Exception Management is deactivated
and
 If all confirm/sent orders are valid
then, Triple'A Plus Core will automatically save the session as final (see section Order
Session Status) If, however, at least one invalid order is detected, Triple'A Plus Core will
save the session as a checked session and you will need to manually save the session using
the Save Session button. (For more information about Exception Management and validity of
confirm/sent orders, see section Exception Management).
If the Exception Management is activated, the behaviour is a little different. In this case,
orders can be split into two sessions or the initial session saved with different status
according to the exception encountered:
 All orders of the session are valid: the initial session is saved with status Final, and all
orders for all portfolios and the portfolio hierarchy referenced in the session are
published.
 All portfolios contain one or several invalid orders: the initial session is saved with
status Checked, and no orders are published. If load portfolio hierachy is enabled, if at
least one porfolio of a hierarchy contains one or several invalid orders, the entire
portfolio hierarchy is considered to be in exception state, including portfolios of the
hierarchy containing only valid orders; this means that none of the orders of the
hierarchy are published.
 Some portfolios contain one or several invalid orders: all orders of portfolios or the
portfolio hierarchy (if load hierarchy is enabled) having one or many invalid orders are
moved into a new session for exception handling, and this session is saved with status
Draft, and the orders are not published. The orders of the portfolio or the portfolio
hierarchy (if load hierarchy is enabled) that do not have any invalid orders remain in
the initial session, and this session is saved with status Final. This means that at the
end of the process, there is one (new) session for exception handling with status Draft
that groups all orders of portfolios or the portfolio hierarchy containing at least one
invalid order; and one session (initial session) with status Final, containing all orders of
portfolios or the portfolio hierarchy that do not contain any invalid orders.
 This approach is applied whatever the portfolio dimensions of the context (domain):
portfolio, client, portfolio list, manager (admin manager), advisor (commercial
manager), or query. This means that in the case of a client with several portfolios, or
the case of a portfolio list or a manager or an advisor or a query, and if the session is
split, some portfolios can be put into a session for exception handling and some other
portfolios kept in the initial session that is then saved as Final.
 If the load hierarchy option is enabled, the portfolio hierarchy is considered as one
entity. If even one order in one portfolio of the hierarchy is invalid, all orders of all
portfolios of the hierarchy are considered to be in exception state and cannot be
published. For example, the initial session based on a single portfolio hierarchy is saved

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

Execute Allocate Order No orders are


or Reconcile Strategy generated
function

Domain is set with


"Check & Publish".
This setting can be An order session is
done with a default Status of the session created and orders
is Draft. are generated
value or manually
by the user.

Execute An order session is


Order Entry created
function

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

Exception Management is activated if the


parameter SESSION_EXC EPTION_HANDLING
is set with 1. If it is set with 0, then the
No orders are
Exception Management is deactivated Some orders are invalid confirmed/sent and All orders are invalid
session is saved as
C hecked Session
The validity of an order depends whether
the C ase Management C omponent (C MC )
is activated or not:
All orders are valid All orders are valid
With C ase Management C omponent activated
(parameter C ASE_AC TIVATION_FLAG = 1), All orders are
an order is invalid as soon as it generates a confirmed/sent and
case requiring a clarification or it blocks the session is saved as
saving of the session. Final

With C ase Management C omponent


deactivated (parameter
C ASE_AC TIVATION_FLAG = 0), an order is
invalid as soon as its confirm flag is set to No Session on a Portfolio or a Portfolio Hierarchy Some orders are invalid
(can be set manually, or be caused by, for
example, the breach of a constraint) or if it
triggers an input control with error message.
Session on a set of Portfolios or/and Portfolio Hierarchies

All orders are New session for All orders related to


kept in the exception is created Portfolios or Portfolio
initial session Hierarchies, having no
invalid orders, are kept in
the initial session
All orders related to
Initial session is Portfolios or Portfolio
saved as C hecked Hierarchies, having
Session and its Initial session is saved as
invalid orders, are
orders are not Final and its orders are
moved in the session for
confirmed/sent confirmed/sent
exception

Session for exception


is saved as Draft and
its orders are not
confirmed/sent

Check and Publish order generation with or without Exception Management

23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 106
3 Portfolio Group Rebalancing

3.1 Business requirements


This chapter describes how to rebalance individual portfolios and portfolio groups (parent
and child portfolios in Triple'A Plus Core). On-shore sites, in particular, focus on portfolio
structures (groups of portfolios) that are consolidated for strategic (productivity) reasons.
Triple'A Plus Core gives priority to the specificities of the individual portfolios included in the
portfolio group. In most cases, these settings define legal and tax aspects. Currently, such
specificities are implemented using linked constraints. They are then manually checked
against the portfolios in the group.
Depending on the site implementation, group rebalancing can be based on rules or
exceptions. Even in the case of off-shore implementations, group rebalancing is encountered
for example if:
 income and capital need to be separated for legal or tax reasons
 in the case of family portfolios that are managed on a consolidated basis (such as
Estate Freeze when a main account is closed and subdivided into 2 or more accounts)
 in the case of several accounts held at the same financial entity by a single client

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

3.3 Global overview

3.3.1 Portfolio groups


Many financial institutions need to process sets of portfolios on a consolidated basis. In a set
of portfolios, there can be different types of portfolios:
 Group members: main portfolio
Most of the transactions in a portfolio group occur in the main portfolio. Once the
consolidated assets of the group have been compared, rebalancing of the group first
generates transactions in the main portfolio (Buys or Sells).
 Group members: subordinate (secondary) portfolios
Mandate changes, regulations and other rules can trigger transactions in subordinate
accounts, especially in the case of large asset allocation changes. If the transactions
required for a group (consolidated) rebalancing cannot completely be absorbed in the
main portfolio of the group (e.g., due to restrictions such as overdraft or short Sells),
the remainder is allocated to the secondary portfolios of the group.
Depending to a large part on the applicable legislation, some sites may encounter
transactions for secondary portfolios more or less frequently.
For the most part, intra-group transactions occur as cash is generated through the sale of
assets from one part of the portfolio group and is then reinvested and used for purchases in
another segment of the portfolio group. In any case, due to the special requirements of such
operations, the processing falls outside the scope of modelling and rebalancing.
Intra-group transaction processing can be currently performed by specific Triple'A Plus Core
operations such as Transfers or Portfolio Transfers.

3.3.1.1 Group consolidation


Investment objectives are always set and checked at group level. The portfolios of a group
are consolidated and the consolidated holdings are compared with the references from the
investment profile (asset allocation, model portfolios, etc.).
All the portfolio members of a group are included in the rebalancing processing. If a portfolio
no longer needs to be included as part of the group, you must remove the link between the
portfolio and its parent portfolio (the group). If additional portfolios need to be included for
other reasons (e.g., reporting, return, performance, etc.), they must be included in lists
along with the portfolios of the group.

3.3.1.2 Portfolio vs. portfolio group


Portfolio holdings are driven mainly by administrative and legal reasons. Most of these rules
are related to tax benefits. The deals and the portfolio holdings must strictly follow the rules.
Example:
Tax-free portfolios such as ISA portfolios with a maximum of £7,000, exemption limit for
CGT of £7,200, etc.
Portfolio group holdings, on the other hand, are driven by asset management (financial)
purposes. This means that portfolio modelling and return on investments are handled at the
group level while constraints and restrictions are processed at both the group and individual
portfolio levels.

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.

3.3.3 Hierarchy positions loading - Load hierarchy


The following diagram shows an example of a portfolio hierarchy with the
ORDER_IN_PARENT_PTF_RULE system parameter set to 0 (default):

Parent Portfolio
(shell)

Child Portfolio 1 Child Portfolio n


Set 1 of Positions ... Set n of Positions
(instruments and cash) (instruments and cash)
Hierarchy
Load

Parent Portfolio
Set 1 of Positions (instruments and cash
Child Portfolio 1)
...

Set n of Positions (instruments and cash


Child Portfolio n)

Example of a portfolio hierarchy with the ORDER_IN_PARENT_PTF_RULE system


parameter set to 0

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).

3.3.3.2 Hierarchy List Notes


You may have to run reports and perform rebalancing using lists consisting of portfolios and
portfolio groups (parent portfolios plus associated child portfolios).
The lists that include one or more hierarchies must:
 Load the contents of the hierarchies.
 Only include child portfolios that belong to hierarchies (even if a child portfolio satisfies
the criteria to belong to the list as an individual portfolio, they must only be included as
part of a parent-child portfolio hierarchy).
When a list is loaded, the parent and child portfolios are loaded first before portfolios that
are not parent portfolios. If the non-parent portfolios already belong to the list as the child
portfolios of an already loaded parent, they are not loaded.

3.3.4 Allocation rules

3.3.4.1 General Rules


Sell orders generated by the comparison of the hierarchy with its objectives must be
allocated first to the portfolio in the hierarchy that holds the highest quantity.
Buy orders generated by the comparison of the hierarchy with its objectives must be
allocated first to the portfolio that holds the highest cash balances.

3.3.4.2 Private (User-Defined) Rules


Besides the general rules described above, taxes and other considerations can lead to orders
first being allocated to specific portfolios or portfolio sets. The default rules that are applied
afterwards refine the processing order.

3.3.5 Constraints in Triple'A Plus Core - Overview


Constraints are split into several categories, according to their financial impact:
 Holding Constraints
Strategy entity: passive constraints that act on the whole set of portfolio positions. The
Holding Constraints category corresponds to the non-structuring constraints currently
available (e.g., CHECK_SUM defined on position criteria). In both types of order
generation (top-down or bottom-up), the constraints are checked a posteriori (after the
fact), for example, do not hold over 10% positions at the same custodian.
 Trading Constraints
Trading Constraint entity: Active constraints that act on individual orders (trads) are
part of the Advanced Constraint Management module, which must be acquired
separately. Contact your Temenos Account Manager for further details.

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

3.4 Allocation rule

3.4.1 Default Allocation rule


The system-wide allocation rules have been enhanced to:
 Consider buy and sell order allocation rules separately
 Consider market segment rank (instrument) criteria
 Add new methods to process buy and sell orders

3.4.2 Order Allocation rules


The allocation rules are applied to sell orders exclusively, using the ORDER_ALLOC_RULE
system parameter setting. Processing covers both sell and buy orders. It is also possible to
apply distinct rules to sell and buy orders. This is done using a new system parameter,
ORDER_BUY_ALLOC_RULE, along with the existing ORDER_ALLOC_RULE parameter. Both buy and
sell allocation rules are system-wide settings. You set them by selecting a predefined
enumerated value in the proposed allocation rules.

3.4.2.1 Sell Allocation Rule: ‘ORDER_ALLOC_RULE' parameter


The ORDER_ALLOC_RULE system-wide parameter lets you choose the allocation rule that you
want to apply to sell order allocation (only), in accordance with your company's policy. The
rule defines the sorting order of the allocation when a Sell is split among several opened
positions. The permitted values are the following:

Value Allocation Rule


0 FIFO

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.

3.4.2.2 Buy Allocation Rule: ORDER_BUY_ALLOC_RULE parameter


The ORDER_BUY_ALLOC_RULE system parameter value is applied using the same procedure as
for the ORDER_ALLOCATION_RULE parameter. This system-wide parameter allows your
organisation to choose between several allocation rules for buy order allocation across
multiple portfolios.
The parameter values are:

Value Allocation Rule


0 Current

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.

3.4.3 Market segment ranking

3.4.3.1 Priority and rank


When order proposals are processed, some securities must be processed before others,
depending on the instrument's characteristics. To process buy and sell orders in a user-
defined sequence, you must set priorities for the underlying grid structure as well as for the
instruments in the market segments. This is useful for solving tax related issues.
For example, market segment ranking makes it possible to buy overseas stock and domestic
stocks in a certain order and comply with tax requirements of certain customers. For
example, in the case of UK domestic banking, qualifying PEP/ISA stocks (top rank market
segment) can be purchased before overseas stocks (lower rank market segment).
This ranking of market segments is based on the attribute priority_n in the Strategy Element
entity. This attribute must not be unique. The attribute rank_n is used to determine the
order in the display.
In model portfolios and recommendation lists, the attributes priority_n and rank_n apply to
the instruments in the same way as for the market segments described above.

3.4.3.2 Market segment processing Order (ORDER_SEGMENT_RANK)


The ORDER_SEGMENT_RANK system parameter defines the priorities. The parameter takes two
possible values:
 0: without market segment or instrument priority
 1: with market segment and instrument priority
If enabled, the market segment ranking rule is applied before the Buy/Sell order allocation
rules (i.e., holding and cash balance rules).

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.

3.5 Objectives and constraints

Allocation
Model Portfolio
Constraints 0
...
Cstr To PARENT

Parent Portfolio

Child Portfolio 1 ... Child Portfolio n

Cstr To CHILD 1 Cstr To CHILD n

Constraints 1 Constraints n
... ...

Link management for portfolio hierarchies

The link management for the portfolio hierarchies assumes:


 Investment objectives, such as allocations and model portfolios, are only processed at
parent portfolio level

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.

3.5.1 Allocation process


Depending on the default rule set in the system parameters (for Buy and Sell orders as well
as market segment rank, as described above) and the classification selected in the domain,
an order generated for a hierarchy of portfolios is allocated to the component portfolios,
using the following combined sorting algorithm:
 To sort the grouped orders (orders for the set of portfolios)
 Order direction (Sell/Buy)
 Market segment/instrument rank (Buy orders only)
 High quantity (Sell)/ High Cash (Buy)
 To determine the allocation of the orders among the portfolios in the set (hard coded
sort)
 Order direction (Sell/Buy)
 (Market segment/instrument) rank (Buy orders only)
 Portfolio characteristics (type, for example, ISA … or other characteristics)
 High quantity (Sell)/ High Cash (Buy)
Note: In the latter case above, Sell orders will always be limited by the existing holding. The
existing holding is always correct since it serves as the basis for determining if the portfolio
is overweight, which entails the grouped order being proposed in the first place.

3.5.2 Processing steps


1. Load Hierarchy. This includes loading all the positions in all the instruments for all the
portfolios in the hierarchy, as well as computing the grouped position.
2. Load links for all the portfolios in the hierarchy. Keep track of the origin of the links.
3. Load positions (holdings) for all the portfolios in the hierarchy.
4. Group position (by instrument).
5. Compare grouped positions to the allocation linked with the top portfolio (parent). This
results in grouped orders being proposed for the group of portfolios.
6. Check the trading constraints linked to the top of the consolidated hierarchy. The
grouped orders are accepted or rejected. Rejected orders are no longer submitted to the
allocation process.
7. Allocate orders to the component portfolios. The allocation process takes both the
system-wide (default allocation rules) and the specific (user-defined allocation rules)
allocation rules into account.
8. Check the trading constraints linked to the individual portfolios. Individual orders are
accepted or rejected. If any individual orders are rejected, the sum of the individual
orders is, of course, different from the original number of grouped orders at the

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.

4.1.1.1 Extended Operation


This structure contains a draft of the order proposals.

4.1.1.2 Extended Strategy Link


Go to Productivity > Check Strategy, select a Portfolio List, etc. and click Apply button in the
Domain screen to open the Check Strategy screen. The hierarchy displayed on the screen (in
the Node column) shows fields drawn from the associated strategies and the grids that the
strategies are based on are Strategy/Parent Strategy, Grid/Parent Grid. Fields that are
inherited from the strategy links are Begin Date/End Date/Priority.
If the strategy is checked, a green tick ( ) is displayed in the Check column.

4.1.1.3 Extended Strategy Element


Go to Productivity > Check Strategy, select a portfolio, and click Apply button in the Domain
screen to display the Check Strategy screen. The hierarchy displayed on the fields are drawn
from:
 Associated Strategy Elements and instruments or market segments on which the
strategies are based:
 Strategy
 Parent Strategy
 Grid
 Market Segment
 Parent Market Segment
 Abscissa Classification
 Ordinate Classification
 Abscissa List
 Ordinate List
 etc.
 Positions in the portfolio:
 Dates
 Currencies
 Status
 Cost data

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.

4.1.1.4 Access to the Portfolio table


Note that you have access to the logical attributes of the Portfolio table from all the
Productivity functions (Allocate Order, Check Strategy, etc.), irrespective of the reference
entity (ext_operation, ext_strategy_link and ext_strategy_element). The ext_operation,
ext_strategy_link and ext_strategy_element tables have a portfolio_id foreign key.
For example, you can access the following attributes in the portfolio table:
 market value (mkt_val_m)
 net value (net_val_m)
 risk market value (risk_mkt_val_m)
 risk net value (risk_net_val_m)
 net asset value (net_asset_val_m)
This means that you can use a script like the following to obtain the portfolio market value in
all the lines returned by the function:
portfolio_id.mkt_val_m
In Strategy Reconciliation and Allocate Order, these amounts (market value, etc.) take the
Fees and Taxes related to the order proposals into account. In other words, the system
computes the ex-post portfolio market value. Even after performing a Simulation the
amounts are updated. That is, you can update your order proposals and run the Simulation
function to see the effect on your investment objectives. When you do this, the system
simultaneously recomputes the final portfolio market value.

4.2 Formats and View Facilities


Note that three formats are useful when you display the results of the Check Strategy
function. For more details, refer to the Triple’A Plus Core Format and UDS Reference Guide.
 Cell Format: although you can use this format anywhere, it has been used extensively
in the default formats. In particular, it is used to represent the check / uncheck signs
and colours.
 Establishing hierarchical links: when you use dynamic lists, you must include the
following two format elements with their SQL names and definitions:
 For Extended Strategy Elements:
id and disp_parent_ext_strat_elem_id
 For Extended Strategy Links:

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.

4.2.1.1 Copy to Clipboard


In productivity dynamic list formats, you can copy the list to the clipboard. To do that, go to
Document > Copy to Clipboard. This option Copy to Clipboard also copies relevant contextual
information such as the portfolio, portfolio currency, Initial Date, Strategy Date, etc.. Open
the application to which you want to copy the list and press [CTRL]+[V] to paste the copy.

4.2.1.2 Efficient Extended Operation Formats


By efficient, we mean creating Extended Operation formats in the Order Entry, Order List,
Allocate Order and Strategy Reconciliation functions that are less time-consuming.
As you know, you can specify an attribute_dict_id in the format elements. It allows you to
make these format elements editable if you set the Edit Flag to Yes. If the Edit Flag is set to
No, the corresponding attribute is only displayed in the format. Consequently, you can
display an Extended Operation attribute in two different ways:
 create the corresponding script definition (i.e., quantity_n)
 specify the attribute_dict_id in the format element (i.e., quantity_n)
The difference between the two methods is as follows. In the first case, you manipulate an
extra column. This means that in addition to the Extended Operation record returned to the
Client (i.e., including the quantity attribute), Triple'A Plus Core creates and returns a format
element column to display the quantity. This takes more time if a large number of portfolios
are processed.
We advise you to display the Extended Operation attributes using the attribute_dict_id
attribute and not the format element script definition.

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:

Save function Description


Create & Keep When a record is saved, the status of the function simply changes to Modify and
the details of the active record remain on screen. Note that if users only have
the right to create and not update operations, the status of the function simply
changes to View and the details of the active record remain on screen.

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].

4.4 User-defined Screens


Triple'A Plus Core can use "smart" screen selection when users manipulate operations and
orders. This means that Triple'A Plus Core chooses the most appropriate screen composition
for an operation or order, depending on the data users enter.
This applies to View and Modify screens for the following functions:
 Operation List
 Order Entry
 Order List
 Allocate Order
 Strategy Reconciliation

4.4.1 Screen Profiles


Screen profiles are assigned to users to allow them access to user-defined screens (see the
Triple’A Plus Core Format and UDS Reference Guide). Screen profiles contain screen profile
compositions.

4.4.1.1 Screen Profile Composition


Screen profile compositions are simply screen/matching criteria pairs. That means, a screen
that the administrator has prepared using the Triple'A Plus Core screen design functionality
is associated with a set of matching criteria. The matching criteria consist of a table and its
attributes. The attributes are used as filters to narrow down the choice of screens. A set of
matching criteria is composed of the following items:

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

Subtype Attribute of the corresponding entity + a value (financial instrument 'subtype_id' +


Attribute 'Open').

Function Business function on which the screens apply.

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.

4.5 Selection process


Depending on the user's screen profile, Triple'A Plus Core retrieves and displays the most
appropriate screen for the function you are using:
 Operation List
 Order Entry
 Order List
 Allocate Order
 Strategy Reconciliation
The process is as follows:
1. Depending on the data (i.e., operation nature, type, etc.) of the operation performed by
the user, Triple'A Plus Core pre-selects a list of screens. The screens are those whose
matching criteria correspond to the current context.
2. The most appropriate screen is displayed, based on the number of matching criteria that
are met.

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.

4.6 Default Values, Filters, and Input Controls


User-defined screens let you define:
 specific default values
 specific filter
 specific input control
There is a hierarchy of priorities for dealing with System/User/User-defined screen default
values and input controls.
Input controls are accumulated. This means that the Input Control linked to the user-defined
screen is executed in addition to the User or System Input Control (if User = NULL). This lets
you define general controls and then add specific controls for particular contexts.
Input controls are executed in the following cases:
 when you save Extended Operations (i.e., when you save a draft session)
 when you modify an Extended Operation through an administration screen (and not
through an editable cell)
 when you save Operations (i.e., save all operations or a session)
Note that Triple'A Plus Core gives priority to the default values and filter in the following
order:

23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 122
 User-defined screen
 User
 System

4.6.1 Order Life-Cycle


The order life-cycle is described in more detail later (see section Block Order/Child Order
relationship). The different steps are:
1. Create (RAM).
2. Save to the Extended Operation table in the database used for draft orders. You can
modify the draft orders from Order Entry.
3. Save to Operation, Position and Balance Position tables in the database used for saved
orders.
Note: Input controls are executed only when the order proposals are confirmed (saved to
the Operation table) or saved as order proposals to the Extended Operation table.

4.7 Default Administration Screens


By default, Triple'A Plus Core provides users with administration screens for the application's
different entities. The user and system default values/input controls are applied. If Screen
Profiles are linked to users, access to the default administration screen is defined as follows:
 Super Users always have access to the default administration screen when an object is
created and the "Use screen flag" (Edit > Use Screen option) when an object is
manipulated.
 Ordinary users do not have access to the "Use screen flag" (Edit > Use Screen option)
but can manipulate Triple'A Plus Core objects through the default administration screen
in the following circumstances:
 The user screen profile does not have any screens defined for the modified
entity.
 The DEFAULT_SCREEN_ACCESS_FLAG system parameter is set to 1.

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.

5.2 Creating Function Results

5.2.1 Compute Data Field


The Compute Data field in the domain screen lets you create a new function result set
(Compute New) or replace an existing one (Replace Old) when you run Productivity
functions. If you select Compute New from the Compute Data drop-down list, Triple'A Plus
Core prompts you for a code for the function result it is storing. By default, the following
system default value is executed:
IF (code=NULL,
{then} IF (STRLEN(user_id.code) > 12,
{then} PRINTF("AAA%s%05d", LEFT(user_id.code, 12), NEW_INDEX(NULL, SYSDATE(),
3).index_n),
{else} PRINTF("AAA%s%05d", user_id.code, NEW_INDEX(NULL, SYSDATE(), 3).index_n)
)
)

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.

Delete All Deletes all the strategy checks.

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.

5.2.4 Deleting Results


Storing function results means to keep track of thousands of records. It means that your
database volume will increase accordingly. Consequently, we advice to maintain these
function results regularly.

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.

5.2.4.2 Store Procedure


When you run a business function in Triple'A Plus Core (Valuation, Check Strategy, etc.), the
results are stored in the main database in various tables referenced by the Function Results
table. As Super User, you should clear these entries on a regular basis. You can do this using
the del_function_result_by_args stored procedure.

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.

@modif_d Modification date. This parameter type is datetime_t. It functions like


@calc_from_d. If you specify null as the 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.

@function_result_cd Code of the function result


You can use the * and % wildcard characters.

Mandatory Fields and Rules


In delete mode, one (or both) of @calc_from_d and @modif_d must be entered.
If @status_e is used, @function_name must also be used. This is because @status_e is
dependent on the value of @function_name.

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.

Column_name Data Type Description


id id_t function_result.id

code code_t function_result.code

function_name longname_t dict_function.name

domain_id id_t function_result.domain_id

dim_port_sqlname_c sysname_t set to Null (reserved for internal usage)

port_object_code code_t set to Null (reserved for internal usage)

dim_instr_sqlname_c sysname_t set to Null (reserved for internal usage)

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)

dim_strat_sqlname_c sysname_t set to Null (reserved for internal usage)

strat_object_code code_t set to Null (reserved for internal usage)

min_status_e enum_t domain.min_status_e

max_status_e enum_t domain.max_status_e

modif_d datetime_t function_result.modif_d

calc_from_d datetime_t function_result. calc_from_d

calc_till_d datetime_t function_result. calc_till_d

calc_ref_d datetime_t function_result. calc_ref_d

calc_strat_d datetime_t function_result. calc_strat_d

calc_freq_d datetime_t function_result. calc_freq_d

status_e enum_t function_result. status_e

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.

null Omits a parameter.

sp* User that begins with sp (* will be replaced with the % SQL wildcard).

Order Entry Order Entry function name (wildcards are not allowed here!).

2 status_e with 2 as value.

AAA* function_result_cd that begins with AAA.

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.

6.2 Order Compliance Check Workflow


The workflow to run a compliance check on a set of orders from a third party system is as
follows:
1. Import the order session(s) from the third-party system.
2. Import the orders that reference the order session.
3. Run the Order Entry function with the function result from the imported draft session
(see step 1).
4. Run the Update Draft function to update the orders.
5. Run the Compliance Check. In this step the orders are transformed into positions and the
effective weight attribute is computed in the extended_strategy_element table.
6. Modify/update orders to fit the strategy used for the compliance check. In this step, you
can use Update Draft to automatically update the orders.
7. Run the Compliance Check again.
8. Repeat steps 5 and 6 if the portfolios are not compliant.
9. When the portfolios are compliant, you can save the session.
10. Send the orders to the Gateway to import them to a third-party system.
The following diagram summarises the workflow:

23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 129
Order Compliance Check Workflow

6.3 Inserting Order Sessions


To import order sessions through the interface, you must define a function result code that
can be identified by the portfolio manager.
To be able to import a function result, you must first import a domain since a session is
identified by a domain in Triple'A Plus Core. The attributes required to insert a record in the
domain table are the following:
 Function result code: a unique code that identifies the order session
 Initial Date (calc_from_d): the date at which the function is launched
 Function name: the name of the business function that is run. It is forced to Order
Entry.
The command to insert the domain is insert domain.
You can only import Order Entry domains that have the status draft.

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.4 Deleting Order Sessions


To delete an order session, you use the function result code that identifies the order session
and the ‘delete’ command. See the example in section Examples below. The orders that
belong to the session that are stored in the extended_operation table are automatically
deleted at the same time.

6.5 Examples

6.5.1 Order Session insertion


CMD INSERT domain
ATT func_result_code function_dict_id.name user_id.code dim_port_dict_id.sqlname_c
port_object_id.code(list[portfolio])
DAT ORDER_SESSION_1;Order Entry;YDE;list;T_PTF_LIST2

CMD INSERT order_session


ATT nature_e portfolio instr quantity_n operation_d account_d value_d
function_result_id.code status_e remark_c ud_saisie_quant_f
DAT 1; T_AI_PTF3; T_AI_CHF_RO; 150; 01-02-2004; 01-02-2004; 01-02-2004;
ORDER_SESSION_1; 1; Initial Order Session;0
DAT 1; T_AI_PTF3; T_AI_CHF_KUD; 1500; 14-02-2004; 14-02-2004; 14-02-2004;
ORDER_SESSION_1; 1; Initial Order Session;0
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
DAT 1; T_AI_PTF3; T_AI_CHF_RO; 150;01-02-2004; 01-02-2004; 01-02-2004;
ORDER_SESSION_1; 1; Initial Order Session;0
DAT 1; T_AI_PTF3; T_AI_CHF_KUD; 1500; 14-02-2004; 14-02-2004; 14-02-2004;
ORDER_SESSION_1; 1; Initial Order Session;0

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

6.5.2 Order Session Delete


CMD DELETE domain
ATT func_result_code calc_from_d
DAT SESSION1;01-01-2006
DAT SESSION2;01-01-2006
DAT SESSION3;01-01-2006
DAT SESSION4;01-01-2006
DAT SESSION5;01-01-2006
DAT SESSION6;01-01-2006
DAT SESSION7;01-01-2006
DAT SESSION8;01-01-2006
DAT SESSION9;01-01-2006
DAT SESSION10;01-01-2006
DAT SESSION11;01-01-2006
DAT SESSION12;01-01-2006
DAT SESSION13;01-01-2006

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

7.2.1 Assigning a Function Security Profile


To associate a specific Function Security Profile with a user, do the following:
1. Click Administration > Security > User and select the user you want to give access to from
the list in the Select User screen.
2. Click Modify button to display the Modify User screen.
3. In the Modify User screen, enter the correct Function Security Profile in the field of that
name or use the Browse button to browse for it. The general multi-function profile
delivered with Triple'A Plus Core is called DEF_FUNC_SECU_PROF.

7.2.2 Defining Security Profile components


To define Security Profile components:
1. Go to Administration > Security > Profiles > Function Security Profile.

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

7.2.3 Specifying access rights to an operation business function and security


Open the Create 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 (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.
5. You can specify access rights to operations in the following cases. When you select one
of the following functions in the Function field, the Entity field is enabled:

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.

7.2.4 Restricting Administration Rights


This section describes how to define the Function Security Profile components so as to
restrict the users' access rights to operations. For example, you can limit the Buy operations
a user can create to Confirmed orders or only orders with the statuses Cancelled to
Confirmed. To do that, open the Create/Modify Function Security Profile Comp screen as
follows:
1. Select 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.
The principles are the following:
 If you allow access to an operation business function, you must create a record in the
entity All.
 The rights assigned to an operation nature (i.e., Entity buy_operation, sell_operation,
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
modification of all operations except the buy and sell operations whose status is Order.
Examples:
Users cannot create any objects but buy and sell operations with the statuses Order and
Confirmed. Note that these statuses are not sequential. Once an order has been saved, it
cannot be modified. Finally, order input is restricted to the Create Operation menu.

Function Entity Min Status Max Status Create_f Update_f Delete_f


Administration All Cancelled Accounted No No No

Buy Operation Order Order Yes No No

Buy Operation Confirmed Confirmed Yes No No

Sell Operation Order Order Yes No No

Sell Operation Confirmed Confirmed Yes No No

Imagine other users who can only update buy operations whose status is Pre-Confirmed
from the Order List function:

Function Entity Min Status Max Status Create_f Update_f Delete_f


Order List All Cancelled Accounted No No No

Buy Operation Pre-Confirmed Pre-Confirmed No Yes No

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.

7.4 Instrument Trading Place and Trading Currency


When you define a trade on a particular instrument, two pieces of information are required
to perform an execution:
 Trading place
 Trading currency
This means that a specific instrument, identified by its code, can be traded in different places
with different currencies.
The entities ‘Trading Place’ and ‘Trading Currency’ are logical attributes of the instrument
table. ‘Trading Place’ represents the link between an instrument, a trading place and a
trading currency. It is composed of the following attributes:

Attribute Description
Identifier Technical identifier of the link instrument – market place – currency.

Instrument Unique identifier of the instrument.

Market Identifier of the market place.


Place

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.

Market Place Identifier of the market place.

Currency Identifier of the currency.

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.

7.5 Order Grouping


Order Grouping generates a block order for all orders that match the same grouping criteria.
Note that you can take advantage of the Order Grouping (index) function mainly from the
GUI. Since Release 13, the financial server also offers the Order Grouping functionality
through the Reconcile Strategy and Allocate Order functions but the Order Grouping (index)
function can still only be run through the GUI. The Order Grouping function allows you to:
 Use flexible grouping criteria
 Initialise block orders
 Apply extensive security rights
 Benefit from mandatory input parameters
 Benefit from multiple order grouping function occurrences
 Use enhanced processing

7.5.1 Grouping Criteria


Trades in equity are not grouped in the same way as in fixed incomes or forwards. Grouping
criteria differ from one asset class to another. Also, you cannot, for example, group orders in
a specific asset class with radically different amounts. This means that an order grouping
tool must not be restricted by predefined limited parameters.
Consequently, the new tool provides all the flexibility required for advanced order grouping.
You define the criteria used to group the individual orders in a script. You can create the
script in the Order Grouping Definition menu. The objective is to generate a unique string for
all the trades that match the same grouping criteria.
To create your script, go to Administration > Function Script > Order Grouping Definition from
the main Triple'A Plus Core menu. Enter your script in the Order Grouping Definition screen.
Example:
Say you want to group all trades of the same instrument and same deposit. In this case, you
would enter the following script:
PRINTF(“%d-%d", instr_id, deposit_id)

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.

7.5.2 Initialising Block Orders


The grouping criteria are user-definable and totally open. As a consequence, the system
cannot itself initiate the block orders generated by the Order Grouping functions. You have
to say which information is used to create the new block order. If the grouping criteria are
the instrument and the deposit, then you have to say that both data items are inherited at
the block order level.
As mentioned above, the grouping criteria also apply to the block order. If the grouping
criteria are not defined in the block order itself, the system creates a new specific block
order for each individual order.
Block order initialisation is handled by the Order Grouping Block Init menu option. It is similar
to the default value mechanism. But, in this case, you can refer to the constituent child
orders of the block using the INIT() script keyword.
Examples:
 INIT().deposit_id as the Block Init default value for the deposit_id attribute of the Buy
and Sell operation entities
 INIT().instr_id as the Block Init default value for the instr_id attribute of the Buy and
Sell operation entities

7.5.3 Initialising Child Orders


Similarly to Block Order initialisation, when you run the Order Grouping business function
you can initialise or override existing Child Order attribute values with the “Order Grouping
Child Init” function script menu.
Note that orphan orders that have not reached the MIN_CHILD_ORDERS_PER_BLOCK can also
be taken into account by the Order Grouping Child Init function scripts when the system
parameter ORDER_GROUPING_ORPHAN_INIT is set to 1.

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.

7.5.5 Mandatory Input Parameters


In addition to the function security rights, there are some specific criteria you must set to
access the Order Grouping functions:
 The Generate Global Order parameter in the current function domain must be set to
Generate Global Order (1)
 The Book Portfolio parameter in the current function domain must be set. The portfolio
specified is used to initiate the block orders generated by the order grouping function.
You cannot launch the Order Grouping functions on orders whose Parent Operation Nature is
set to Block Order, Child Order or Unallocated Block Order. In other words, you can only run
these functions on orders that have not yet been grouped.
Note: you can only run Order Grouping functions from specific formats:
 Nature = Detailed List (i.e., not Summary List or Dynamic List)
 No break criteria
 No sub-totals
 Only one format can be assigned to your order list function occurrence in your format
profile. This means that you cannot display the result of the order grouping function in
two separate formats.

7.5.6 Order Grouping Occurrences


Order Grouping is a generic function. This means that you can create different specific
occurrences of it. You can define, for example, the Equity Grouping and Fixed Income
Grouping functions, etc. To add this function to Triple'A Plus Core, you must run the
ins_upd_dict_function_usr procedure with the following parameters:

Parameter Value
Name “Equity Grouping”

Procedure Name “equity_grouping”

Parent Function “order_grouping”

Help Node NULL

Icon Name NULL

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.

7.5.8 Grouping Order by Batch


You can launch the order grouping functions through the financial servers. From a user’s
point of view it means that it is not mandatory to open the graphical user interface to group
orders.
This feature allows defining batches that will automatically group the concerned orders. All
the flexibility and facilities described in the previous sections are enabled in this context and
include also the business functions Allocate Order and Reconcile Strategy.
The grouping function by batch is called by using the fin_analysis_all_domain (remote
procedure call) RPC. The function requires the domain parameters. The concerned function is
the grouping function. When calling this function the following actions are performed by the
system.
 An order list is performed that returns the orders following the domain parameters.
 The grouping function is applied to all returned lines.
 The block orders are generated.
 The child orders are updated.
 The orders not grouped are updated (if ORDER_GROUPING _ORPHAN_INIT is
set to “1”.
 The new orders are saved in the database and the existing orders are updated.
Example
Let us suppose the following facts:

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:

Parameter Mandatory? Description


@function yes ”Equity Grouping” or “Bond Grouping”

@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

Instrument no Equity list or Bond list.


dimension

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.

7.6 Order Grouping Index


The function ‘Order Grouping Index’ bulks individual orders. It sets a unique common
identifier for a group of orders that complies with the same grouping criteria. Consequently,
in this case Triple'A Plus Core does not generate a physical block order.
Note that you cannot take advantage of the Order Grouping function from the financial
server. Only the GUI can run the Order Grouping (Index) functions.
The Order Grouping Index function is similar to the Order Grouping function. It lets you:
 Use flexible grouping criteria
 Generate indexes
 Apply extensive security rights
 Benefit from mandatory input parameters
 Benefit from multiple order grouping function occurrences

23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 141
 Use enhanced processing

7.6.1 Grouping Criteria


Refer to the Grouping Criteria subsection of the Order Grouping function.

7.6.2 Index Generation


When you run the Order Grouping Index function, instead of creating block orders, the
system updates the different orders. In fact, it sets a unique identifier for all the records that
match the same grouping criteria.
This unique identifier is generated by default value using the NEW_INDEX script keyword. To
define the appropriate script definition, go to Administration > Function Script > Grouping Index
Definition from the main Triple'A Plus Core menu.
The information generated by the function is stored in the grouping code attribute in the
order table.

7.6.3 Function Security Rights


As the administration of Function Security rights are the same as for the Order Grouping
function, refer to the relevant section above.

7.6.4 Mandatory Parameters


You cannot run the Order Grouping Index functions on orders that have already been
grouped.

7.6.5 Order Grouping Function Occurrences


Refer to section Order Grouping.

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.

These functions are described in the following sections:


 Create Child Order
 Order Allocation

7.7.2 Create Child Order


The Create Child Order function aims to simultaneously create a block order and allocate it
to different portfolios.

7.7.2.1 Function Security Access Rights


You can only access this function from Order Entry.
You can restrict users' access rights to the Create Child Order function as you would to any
other Triple'A Plus Core function. This mechanism relies on the user Function Security Profile,
which allows you to restrict the orders a user can allocate to specific natures, statuses and
types. For more information, see section Update Fields function.
Note that the administration rights on the child orders (i.e., authorised statuses, types and
sub-types) are handled by the corresponding Order Entry function rights. These rights are
defined, as usual, in the Function Security Profile.
In addition to the function security rights, there are specific criteria you must set to access
the Create Child Order function:
 The parent operation nature must be set to Unallocated Block Order
 You must specify an instrument

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.

7.7.3 Order Allocation


The Order Allocation function aims to allocate a block order that has already been confirmed.

7.7.3.1 Function Security Access Rights


You can only access this function from Order List.
You can restrict users' access rights to the Order Allocation function. This mechanism is
based upon the user Function Security Profile, which allows you to restrict the orders a user
can allocate to specific natures, statuses and types. However, in this case, the ex-ante
access rights are distinguished from the ex-post creation rights.
The ex-ante access rights cover the orders a user can allocate. These orders are handled by
the Run Order Allocation function, which means that you must have specific rights defined
for this function in your user Function Security Profile.
The ex-post creation rights cover the child orders created in the allocation process (i.e.,
statuses, nature, types and sub-types). These orders are handled by the Order Allocation
function. This means that in your user Function Security Profile you must have specific rights
defined for this function.

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.

Unspecified Unspecified Quantity is a semi-automatic allocation method in which the system


Quantity initialises orders with zero quantities. An order for each portfolio in the list specified in
the Order Allocation domain is initialised if there are no child orders for the portfolio.
Orders already allocated to the portfolio list are shown as non-editable rows and cannot
be modified anymore. To edit an order with a zero quantity you must first specify a
quantity before you can edit the other order parameters. When you save the Order
Allocation session, only orders with a specified quantity are saved; the remaining orders
with zero quantities are deleted.

7. Complete the other domain fields.


8. You can now run the function.
9. If you want, you can allocate the block order exactly like the pre-allocation.
When a new order is inserted, the system correctly initiates the order. This means that it
inherits information from the block order (refer to the block order administration for more
details on this) and a link is set with it. The portfolio manager has to enter a portfolio and a
quantity. The new order has no impact on the block order but does affect its Effective Child

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 Reversal function and Update Fields function


In this section, you will learn about:
 Reversal function
 Update Fields function

7.8.1 Reversal function


Triple'A Plus Core provides users with a GUI option that reverses operations.

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.

Function Entity Min Status Max Status Create_f Update_f Delete_f


Reversal All Cancelled Accounted No No No

Buy Operation Accounted Accounted Yes No No

Sell Operation Accounted Accounted Yes No No

7.8.1.2 Reversal Content and Processing


Reversal content:
Triple'A Plus Core handles the selection of reversed operation items that are copied into
reversal operations.
Depending on the FUSION_REVERSAL_INHERIT_RULE setting (enabled by setting the
FUSION_REVERSAL_RULE value to 1), you can define the reversal items that are kept when
you insert a reversal operation into the database in a reversal script.
A reversal script defines specific selection options for the available attributes. The select
options correspond to the values of the FUSION_REVERSAL_INHERIT_RULE system parameter
(0, 1, 2 and 3).
The script that is provided for these attributes is taken into account in the final reversal
operation. The FUSION_REVERSAL_INHERIT_RULE parameter can take one of the following
values:
 Default selection: FUSION_REVERSAL_INHERIT_RULE = 0.
Reversal inheritance (from the reversed operation) is ensured except for the items in
the following list (called LIST_default) and operation_d.
 LIST_default:
code
source_code
accounting_code
remark_c

 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 Update Fields function


An order is an operation that is typified by its status. The status is a stage in the life cycle of
the order. The various stages in an order's life cycle can be defined by the Triple'A Plus Core
Super User.
In addition, Triple'A Plus Core includes the Update Fields function for implementing secured
order workflow. This means that you can define how an accounted operation passes through
the different statuses. Update Fields is a generic function and is a GUI shortcut that calls a
script to update selected operations in a secure manner.
The main advantage of this new function is that it lets you distinguish the right to modify an
operation with a status from the right to access that status when you modify an operation.

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.

7.8.2.2 Update Fields script


To create the scripts to apply to the selected operations, go to Administration > Function
Script > Update Fields Definition. The script works just like default values applied to the
different attributes of the selected entity (e.g., buy, sell operation etc.).
Example:

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).

Function Entity Min Status Max Status Create_f Update_f Delete_f


Update Fields All Cancelled Accounted No No No

Buy Operation Order Order Yes No Yes

Buy Operation Confirmed Confirmed No Yes No

Sell Operation Order Order Yes No Yes

Sell Operation Confirmed Confirmed No Yes No

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:

Function Entity Min Status Max Status Create_f Update_f Delete_f


Update Fields All Cancelled Accounted No No No

Buy Operation Simulation Order Yes No No

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:

Function Entity Min Status Max Status Create_f Update_f Delete_f


Update Fields All Cancelled Accounted No No No

Buy Operation Simulation Simulation Yes No No

Buy Operation Order Order Yes Yes Yes

Buy Operation Confirmed Confirmed No Yes No

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.

7.8.2.4 Update Fields User-Defined Screens


Note that you can display the output of the Update Fields function through a User-Defined
Screen. This lets you do one of the following:
 Cancel the modifications
 Confirm the modifications directly
 Update some elements (quantity, execution price etc.) and confirm afterwards the
modifications
The principles are the following:
1. Create your UDS (defined on buy, sell operations etc.).
2. In your Screen Profile Composition, create records that link your screens to:
 The Update Fields functions (Function attribute in Screen Profile Compo)
 Optionally, specific operations (e.g., through the Nature Attribute and Nature,
etc.).
Note: The matching criteria defined at the Screen Prof Compo level apply to the Updated
operation. By Updated operation is meant the operation after you have run the script on it.

7.8.2.5 Update Fields function occurrences


Update Fields is a generic function. This means that you can create different specific
occurrences of it. You can define, for example, the Cancel and Confirm functions, etc.
To add this function to Triple'A Plus Core, you must run the ins_upd_dict_function_usr
procedure. The parameters are the following:

Parameter Value
Name “Confirm”

Procedure Name “confirm”

Parent Function “upd_field”

Help Node NULL

Icon Name NULL

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 Update and cancellation requests process


Orders that have already been sent outside of Triple’A Plus to the Order Management
System (OMS) can still be cancelled or modified provided that the OMS accepts the request
and sends back that information to Triple’A Plus. This process uses a feature of the
subscription mechanism (known as Acknowledgement) that sends information to an external
system (in this case, the OMS) and takes action depending on the response sent by the
external system.
Through scripting in formats elements, Input Controls, or Update Field functions, specific
behaviours and rights can be defined to control manipulations allowed by the user. These
actions can also be configured when defining the subscriptions that must catch changes that
occur to orders (e.g., creation, update, deletion).
In the subscription, it is possible to define a set of subscriptions that will be triggered by the
same action in the system but having only some of them executed right away, while the
remaining ones will be executed only upon a positive response from the external system.

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)

7.10 Order workflow and interface


As mentioned previously, an order is an operation that is characterized by its status. The
status is a stage in the life cycle of the order. The various stages in an order's life cycle can
be defined by the Triple'A Plus Core Super User.
In addition, Triple'A Plus Core lets users implement secured order workflow through the
interface. This means that you can communicate with a third party application to execute
your orders.
The following sections describe:
 Business keys
 IMPORT_UPDATE_STATUS
 UPDATE_STATUS import command
 EXECUTION_SOURCE_CODE

7.10.1 Business keys


Most users are familiar with inserting and updating operations in Triple'A Plus Core using
import files in a back-to-front configuration. The order workflow in Triple'A Plus Core raises
specific issues, notably it means updating the operation status. However, this attribute (the
operation status) belongs to the operation business key. This means that it identifies an
operation in the database. Consequently, it complicates the retrieval of the operation to
update from the database.
For example, take the following operation registered in the database:

Code (BK) Status (BK) Portfolio Instrument Quantity Etc.


ABC Order 001 IBM 150 Etc.

Then, say, you import the following operation (update mode):

Code (BK) Status (BK) Portfolio Instrument Quantity Etc.


ABC Confirmed 001 IBM 150 Etc.

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.

7.10.3 UPDATE_STATUS import command


When you define the order workflow, you identify many order status modifications. This
means that you can regularly update the order status through the interface. In this case, you
do not need to update any other fields or execute the default value. This simple task must be
executed very quickly. To meet these needs, the system provides you with an import
command UPDATE_STATUS:
 It replaces the other INSERT and INSERTUPDATE commands to update orders through
the interface. Its role is limited to updating the order status.
 It does not run the default value execution.
 It does not execute input controls.
 In the case of a block order update, the child orders are not automatically updated.
 Only the subscription audit tracks this action (and not the audit trail). However, the
subscription mechanism cannot run the subscription record script definition in the case
of UPDATE_STATUS. In practical terms, this means that all subscriptions based on a
script definition cannot track the UPDATE_STATUS actions. In the case of an audit, in this
context, the system only writes one record containing the new and old operation
business keys to the audit table.
 The subscription event does not track the updates performed by this import command.
 You cannot update the status of an operation that has a current status equal or above
the accounting status.
The command syntax is quite simple: UPDATE_STATUS [(+/-) value]
 You specify directly the new status (value)
 Or you specify the new status modification (+/- value)
Then you provide the following attributes: code, sequence number, status and nature.
Example:
SET QUOTE NONE
SET DATAFORMAT DELIMITED
SET DATEFORMAT DD-MM-YYYY
SET SEPARATOR ;
REM SET AUTOMATIC_FUSION ON
CMD UPDATE_STATUS [2]
ATT code sequence_no_n status_e nature_e
DAT AAA00001;NULL;1;1
DAT AAA00002;NULL;1;1
DAT AAA00003;NULL;1;1

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:

Code Status Portfolio Instrument Quantity Source Execution


(BK) (BK) code Nature
ABC Order 001 IBM 150 <None>

Then you import the following operation (update mode):

Code Status Portfolio Instrument Quantity Source Execution


(BK) (BK) code Nature
ABC Confirmed 001 IBM 100 Partial Upd
Mode*

* Execution nature. See section Execution methods.


Finally, you have the following operations in the database. The second operation is
automatically generated by Triple'A Plus Core.

Code Status Portfolio Instrument Quantity Source Execution


(BK) (BK) code Nature
ABC Confirmed 001 IBM 100 <None>

DEF Order 001 IBM 50 ABC <None>

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:

Code Status Portfolio Instrument Quantity Source Execution


(BK) (BK) code Nature
ABC Order 001 IBM 150 <None>

Then you import the following operation (update mode):

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.

Code Status Portfolio Instrument Quantity Source Execution


(BK) (BK) code Nature
ABC Confirmed 001 IBM 100 <None>

DEF Order 001 IBM 50 ABC <None>

At the next execution on the same order, you import the following operation:

Code Status Portfolio Instrument Quantity Source Execution


(BK) (BK) code Nature
ABC Confirmed 001 IBM 50 Total Upd Mode

Finally, you have the following operations in the database.

Code Status Portfolio Instrument Quantity Source Execution


(BK) (BK) code Nature
ABC Confirmed 001 IBM 100 <None>

DEF Confirmed 001 IBM 50 <None>

7.11 Order Execution


Partial order executions: This functionality covers equity and fixed income (i.e., securities)
purchases and sales execution (i.e., buy and sell operations).
Triple'A Plus Core distinguishes between three major events in the order lifecycle:
 The order creation by portfolio managers
 The order executions input by the trading system
 The order execution accounting by the back office
In this mechanism, the order, its executions and the corresponding accounted operations are
three separate objects. Therefore, a (partial) execution does not overwrite the original order.
In addition, the accounting operation does not overwrite the corresponding executions. Yet
all this data is related. Consequently, even after the whole order lifecycle, users can keep
track of each occurrence: once the accounting process is finished, the original order and its
executions remain in the system as historical data. It is essential to delete them after a
certain period of time to avoid overheads in the database.
Orders and operations are produced as Extended Operations (i.e., buy, sell operation) in the
interface and the GUI. On the other hand, there are entities to represent order executions
and execution fees. The data model description is detailed afterwards.
Bear in mind at this stage that with this mechanism you insert executions through a data
format (i.e., the execution entity and not the Extended Operation entity). The order code
and a sequence number are used to identify an order execution.
When you insert a partial order execution, a new record with the remaining quantity is not
generated automatically in the database. The business functions, however, provide the
information you want.

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.1 Execution Fees


There is a distinction between specific execution fees and global execution fees.
Specific execution fees are those directly specified in the execution (i.e., execution entity).
Each execution has its own fees and taxes amounts.
Global execution fees associate fees with multiple order executions. They are inserted via a
dedicated entity: global execution fee. Typically, this entity correctly handles the fixed
execution fees issue in the case of partial execution. Instead of assigning fees to each
execution of an order, you logically regroup these executions and compute fees for each
logical group, for example, all the order executions with the same operation and value date.
The execution grouping criterion is specified in the Execution Set Criteria field of the Execution
and Global Execution Fee records.

7.11.2 Function "Execution List"


The Execution List function lets you access the list of all the executions of an order.
Execution List is a sub-function of the Order List function. Only formats linked to executions
can use this function. It is accessible in the Actions menu of an Order List screen when a
single executed order is selected.
Access to this function is controlled by the Function Security Profile.

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

Instrument France Telecom

Currency EUR

Status Managed

2. Insert a first partial execution (i.e., execution entity) with:

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

Operation Date 26/05/2002

Value Date 28/05/2002

Execution Set Criteria 28 (i.e., set by default value)

Status Executed

3. Insert a global execution fee (i.e., global_execution_fee entity) with:

Field Value
Order Code (ext_order_id) Alpha

Execution Set Criteria 28 (i.e., set by default value)

F&T

Operation Date 26/05/2002

Value Date 28/05/2002

Status Executed

4. Insert a second execution (i.e., execution entity) with:

Field Value
Order Code (ext_order_id) Alpha

Sequence Number 2

Quantity 45

Quote 116

Operation Date 26/05/2002

Value Date 28/05/2002

Execution Set Criteria 28 (i.e., set by default value)

Status Executed

5. Insert the accounting operation (ext_operation) with:

Field Value
Nature Buy

Code Beta

23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 159
Field Value
Status Accounted

Order Code (ext_order_id) Alpha

Quantity 100

Quote 114.35

Instrument France Telecom

Currency EUR

Operation Date 26/05/2002

Value Date 28/05/002

7.12 Block Order/Child Order relationship


Order operations in Triple'A Plus Core come in three types: Ordinary Orders, Block Orders
and Child Orders.
 Operations always belong to a portfolio. This is the case for Block Order and Child Order
operations as well for standard operations. A Block Order belongs to a portfolio that
acts as a Book portfolio. This type of portfolio has the Book Portfolio nature to
distinguish it from other portfolios.
 Typically, global orders, or Block Orders, are orders that are the sum of several
individual orders, or Child Orders. The relationship between a Block Order and its
constitutive Child Orders is based on the following features:
 An operation is a global order if its Parent Operation Nature field is set to Block
Order. The Nature field is located in the Parent Operation group on the Ref. tab:

 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.

7.12.1 Maintaining Block Orders


In the following sections, you will learn about:
 Creating Block Orders
 Updating Block Orders or Unallocated Block Orders
 Deleting Block Orders or Unallocated Block Orders
 Detaching block orders

7.12.1.1 Creating Block Orders


You must create the Block Order before you create its constitutive Child Orders. You then
reference the Block Order in the Child Orders when you create them.
You can, however, also use the Strategy Reconciliation and Allocate Order financial functions
to create Block Orders and their constitutive Child Orders in the same process. The
productivity functions create Block Orders automatically in the following manner.
All the order proposals generated by the functions are grouped by the following criteria:
 Instrument
 Operation Status
 Operation Nature
Also, the GLOBAL_ORDER_LOG_ID_RULE system parameter adds additional grouping criteria. It
specifies the logical id rule to use to compute the global order. This can be different from the
logical id rule of the individual portfolios.

23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 161
Value Meaning Description
0 Default No additional criteria.
1 Basic

2 PosCurr Operation currency (op_currency_id, operation entity) is an additional


criterion for grouping orders.

3 Deposit Deposit (deposit_id, operation entity) is an additional criterion for grouping


orders.

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:

Parameter Mandatory? Description


Portfolio yes Book Portfolio specified in the domain.

Instrument yes Instrument.

Operation yes Operation Status of the combination.


Status

Operation yes Operation Nature of the combination.


Nature

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.

Operation no Operation Currency of the combination.


Currency

Deposit no Deposit of the combination.

Note that you can use the Order Grouping function as well.

7.12.1.2 Updating Block Orders or Unallocated Block Orders


The effect on Child Orders of updating Block Orders depends on two things:
 The value of the Check Parent field (the default value of this field means that
modification has an impact).
 The field that is modified in the Block Order.
The following cases are possible:
 Case 1: Check Parent = No Impact
Updating the Block Order has no effect on its constitutive Child Orders. No Impact = 1.
 Case 2: Check Parent = Impact
Updating the Block Order affects the Child Orders. Impact = 0.
Note that all operations are saved with the Check Parent field set to Impact (0).
The effect depends on the field that is modified in the operation:
 Instrument
Users can modify the instrument of a block order or an unallocated block order. This
change can be made in different screens: Order List, Operation List, Operation level.

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:

Quantity Fees_1 (CHF)


Block Order 100 25

Child Order1 20 7

Child Order2 50 10

Child Order3 30 8

Afterwards, you add a brokerage fee (FEES_2) of CHF 50:

Quantity Fees_1 Fees_2 (CHF)


(CHF)
Block Order 100 25 50

Child Order1 20 7 10 (i.e., 20/100*50)

Child Order2 50 10 25 (i.e., 50/100*50

Child Order3 30 8 15 (i.e., 30/100*50)

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:

Quantity Fees_1 (CHF)


Block Order 100 25

Child Order1 20 7 (i.e., 5 + 10% * Qty)

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:

Quantity Fees_1 (CHF)


Block Order 100 25

Child Order1 20 6 (i.e., 20/100 * 30)

Child Order2 50 15 (i.e., 50/100 * 30)

Child Order3 30 9 (i.e., 30/100 *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 Order1 16 6.6

Child Order2 40 9

Child Order3 24 7.4

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.

7.12.1.3 Deleting Block Orders or Unallocated Block Orders


When you delete a Block Order, its constitutive Child Orders are automatically deleted.

7.12.1.4 Detaching block orders


To detach all the child orders from a block order you simply set the Parent Operation
Nature from the block to Detached Block Order. Then the system automatically updates
the constituent child orders: they lose their link with the block order and become simple
individual orders.

7.12.2 Maintaining Child Orders


 Creating Child Orders
 Updating Child Orders
 Deleting Child Orders

7.12.2.1 Creating Child Orders


See the previous section for the location of the fields used.
The following cases are possible:
 Case 1: Check Parent = No Impact.
Creating a Child Order has no effect on the parent Block Order. No Impact = 1.
 Case 2: Check Parent = Impact (0).
Creating a Child Order changes the quantity of the parent Block Order (except in the
case of an Unallocated Block Order). This ensures that the quantity of the parent Block
Order is always equal to the sum of the quantities of its constitutive Child Orders.
The only way to create a Block Order and its Child Orders in the same process is to use
the Strategy Reconciliation or Allocate Order financial functions.

7.12.2.2 Updating Child Orders


The following cases are possible:
 Case 1: Check Parent = No Impact
Updating Child Orders has no effect on the parent Block Order. No Impact = 1.
 Case 2: Check Parent = Impact (0).
Updating Child Orders affects the parent Block Order.
The type of effect depends on the field you modify in the Child Order.
 Quantity

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.

7.12.2.3 Deleting Child Orders


When you delete a Child Order, the quantity of the parent Block Order is modified
accordingly (that is, it is reduced by the quantity of the deleted Child Order).

7.12.3 Executing Block Orders


An Operation Execution is basically the creation of an operation that references the Executed
Operation. You can execute an operation totally (<None>) or partially (<Partial Execution in
Update Mode>) without inserting a new operation.
The Nature field's drop-down list contains the following options:

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

Code Code of the reversed operation.

Status Status of the reversed operation.

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.

7.12.5 Block Order Data Security Rights


In addition to the function administration rights on operations defined through the Function
Security Profile infrastructure, you can specify data administration rights on operations
defined through the Data Profile infrastructure. This procedure consists in restricting access
rights (i.e., view, modify or delete rights) to a specific set of operations. In fact, operations
inherit their access rights from the Data Security Rights of their portfolio.
A Block Order's Data Security Rights depend on the Data Security Rights of all its children.
This means that you cannot update or delete a Block Order if you cannot update or delete all
of its child orders.

7.12.6 Purging Order function


The Purge Order function allows you to delete undesirable orders and purge them from
Triple'A Plus Core. Using this function, you can display, delete and/or extract orders. Orders
have a short life cycle and performance in this domain is essential. When a lot of orders are
cancelled or no longer need to be kept in the Triple'A Plus Core database, they must be
deleted or deleted and archived, if necessary.
You select the orders you want to purge using a domain screen that is similar to the Order
List function screen.

7.12.6.1 Using Purge Order


Go to Operations > Special Functions > Purge Order to display the Domain screen, as shown
below. When you complete the fields and click OK button (or Apply button), Purge Order
performs a multi-criteria search on operations. Note the following points:
 The search is not restricted to the domain fields but applies to most of the attributes of
the Extended Operation entity.
 As in the Order List function, the Initial Date and Final Date are not mandatory.

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 Order Description


Method
None Displays the selected transactions. This is the best way to validate the data you
want to delete or/and archive.

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

7.13 Combined Orders


Combined Order in Triple'A Plus Core means to link several operations together. These
operations can have different natures of operation, different instruments, different
currencies, etc. The only common element is their origin, the same "business" order. For
example, a "switch of instrument" order is transformed in Triple'A Plus Core to one sell
operation, one buy operation and one combined operation to link the sell and buy operations
together.
 The combined operation has no accounting element; it is an operation that exists only
as a link between other operations. A Combined Order is always stored in
Extended_operation, so it can only be shown in the Order List function. The only
important fields are in the Operation Parent block:
 Check parent = "No impact"
 Parent Combined Order = "Combined Order"
 Parent code is not used
 Portfolio is mandatory only for technical reasons, but has to be the same as the
portfolio of Child Combined Orders.
 Status is mandatory only for technical reasons. Its value has no effect on Child
Combined Orders.
 Dates (operation, accounting and value) are mandatory only for technical reasons.
Their values have no effect on Child Combined Orders.
 Type of operation can be used to store the kind of order that lead to the Combined
Order. To obtain this behaviour, you need to create "Types of Operation" in the Triple'A
Plus Core infrastructure and add a default value for "type of operation" in "combined
operation".
 Combined operation:

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

7.13.1 Maintaining Child Combined Orders


In the following sections, you will learn about:
 Creating Child Combined Orders
 Updating Child Combined Orders
 Deleting Child Combined Order

7.13.1.1 Creating Child Combined Orders


For the location of the used fields, see section Combined Orders.
Only "Check Parent = No Impact" is possible.
Creating a Child Combined Order has no effect on the parent Combined Order.
No Impact = 1.
Creating a Child Order changes any fields of the Combined Order.
The only way to create a Combined Order and its Child Combined Orders in the same
process is to use the Allocate Order financial functions.

7.13.1.2 Updating Child Combined Orders


Only "Check Parent = No Impact" is possible.
Updating Child Combined Orders has no effect on the parent Combined Order.
No Impact = 1.

7.13.1.3 Deleting Child Combined Order


When you delete a Child Combined Order, only this child is deleted without effect on its
parent (Combined Order).

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

7.13.2.1 Creating Combined Orders


For the location of the used fields, see section Combined Orders.
Only "Check Parent = No Impact" is possible.
Creating a Combined Order has no effect on its Child Combined Orders. No Impact = 1.

7.13.2.2 Updating Combined Orders


Only "Check Parent = No Impact" is possible.
Updating Combined Orders has no effect on its Child Combined Orders. No Impact = 1.

7.13.2.3 Deleting Combined Order


When you delete a Combined Order, the Combined Order and all its children are deleted.

7.14 Compound Order


Compound Order is a synthetic order with multiple legs order structure that belongs to a
pre-configured pattern, which defines the characteristics of the composition.
The goal is to have all stages of the order life cycle available for a single order also
applicable for a multiple leg order; each Compound Order is managed as a single order
whatever the number of leg orders involved in its definition.
The intention is to provide an advanced order management feature to support the ability to
manage orders with a complex structure that can be modelled via a composition of single
orders as a new type of order for the end user.
At the position management level, each leg order impacts the appropriate position as a
single order. There is no compound position representing the Compound Order itself.
The main interest for the bank is that the composition patterns are pre-defined, and it
guarantees that all orders based on a type of Compound Order will have the same
composition every time.
Each Compound Order is a set of orders linked together via a Compound Order code with
one master leg order and one or many slave leg orders.

23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 175
Compound Order

<<ext_operation>> 1 1..* <<ext_operation>>


Master Leg Order Slave Leg Order

Compound Order Code

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

<<ext_operation>> 1 1..* <<ext_operation>>


Master Leg Order Slave Leg Order

Compound Order Code

Compound Order Rules Configuration

Master Compound Order Rules Element 1 1..* Slave Compound Order Rules Element

1..*

Compound Order Rules

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.

7.14.1 Compound Order definition


The Compound Order management is applied to all stages of the life of an order and
operation. For this purpose, the following attributes are available to identify the
order/operation belonging to a Compound Order:

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.

These attributes are available for the following entities:


 Extended Operations
 Extended Orders
 Operations

7.14.2 Compound Order rules configuration


Compound Orders belong to a pattern that is pre-defined through Compound Order rules.
These rules let you define the different types of Compound Orders and the different kinds of
events applicable for each type.
Each event is managed by a composition of one master element order with one or many
slave element orders. For each leg order, it is possible to specify the default value, input
control, and filter applicable.
Example
For option strategy Call Spread and to manage long Call Spreads and short Call Spreads,
there is one Compound Order rule defined with one master leg based on operation nature

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

7.14.2.1 Compound Order rules definition


The Compound Order rule is the functional container applicable to define each type of
Compound Order.
Each Compound Order rule includes a set of master elements with slaves linked to each
master to manage the different events associated with a type of Compound Order.

Attribute Description
Code Code of the Compound Order rule.

Name Name of the Compound Order rule.

Denomination Denomination of the Compound Order rule.


It is possible to define multiple language denominations.

7.14.2.2 Compound Order rule master element definition


The Compound Order master element is the main operation driving a kind of event about a
type of Compound Order.
Each event is composed by one master having one or many slaves.

Attribute Description
Compound Order rule Master element of the slave.

Code Code of the master.

Name Name of the master.

Denomination Denomination of the master.


It is possible to define multiple language denominations.

Nature Sets the operation nature of the slave element.


Mandatory.

Type Sets the type of the master element.

Sub-Type Sets the sub-type of the master element.

Order Type Sets the order type of the master element.

Screen Assigns a specific screen to the master element.


The default value and filter defined in this screen have the
higher priority for the order belonging to the master element.

7.14.2.3 Compound Order rule slave element definition


To manage the composition of an event, one or several slaves are linked to the master
element.

23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 178
Attribute Description
Compound Order master Master element of the slave.

Code Code of the slave.

Name Name of the slave.

Denomination Denomination of the slave.


It is possible to define multiple language denominations.

Nature Sets the operation nature of the slave element


Mandatory.

Type Sets the type of operation

Sub-Type Sets the sub-type of operation

Order Type Sets the order type of operation

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.

Maximum Leg Number Applicable for leg nature multiple.


Defines a maximum number of occurrences.

7.14.3 Compound Order management


A standard user interface for the management of Compound Order is provided through the
Triple'A Plus Web User Interface (WUI) only. All services to initiate, create, read, update, and
delete Compound Orders are provided through the Triple’A Service Layer (TSL) layer.
The creation of Compound Order includes a top-down approach from the master to generate
the slave(s). The initiation of a Compound Order requires the nature, type, sub-type, and
order type to identify the master element of a Compound Order and to generate the multiple
leg order structure derived from the master identified.
The screen optionally defined in the master and slave legs are applied in any case. The aim
is to define through this screen the main business rules that are applicable in any way to the
type of Compound Order.
The creation (also known as saving a new Compound Order in the database), update, and
deletion includes the all-or-nothing approach to guarantee that all leg orders of the same
Compound Order are processed according to the action applied.

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.1 Initiate Order


The Initiate Order module creates functions that initiate the order attributes from a data
display. Typically, you can select a set of positions in a Valuation result screen, run your
customised function on the selection and Triple'A Plus Core will generate the orders by
applying the defined rules. A simple example is a Spot Change that buys cash in the portfolio
currency from a cash position in a different currency.
Initiate Order means you can manage cash positions and Currency Hedging in Triple'A Plus
Core.
Cash management, in this context, means generating spot changes in a portfolio. These spot
changes generate orders. After settlement of the orders there is only one position in cash in
the main account of the portfolio. Also, if the cash holdings come to a large amount of
money, order proposals for buying term deposits are automatically generated.
Currency hedging in Triple'A Plus Core typically means that the system can propose orders to
control the risk linked to the currency diversification. The proposed orders are based on the
risk valuation of the portfolio. For example, Triple'A Plus Core can propose buy and sell
orders on forwards that lead to an exposure of the currency of the portfolio.
The Initiate Order function is a generic tool that allows Super Users to create actions (in the
dict_function table) that satisfy the requests described above. Initiate Order does not by
itself provide any business functionality but is used to create business functions.
In general, Initiate Order creates a mapping between the financial function result (format
element set) and the operation. This mapping means that the order settings depend on a
row returned in the financial result. For example, if the valuation of a portfolio leads to the
position 1500 USD, “1500” and “USD” are used with other details of the position to generate
an order, Buy or Sell 1500 USD. For more detailed examples, see section Examples.

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.

8.2.2 Creating actions and sub-actions


To create an action, you must use the stored procedure exec ins_upd_dict_function_usr.
This stored procedure inserts an action into the database. The syntax is as follows:
Exec ins_upd_dict_function_usr "name", "proc_name",
"parent_function_proc_name", "help_node_c", "icon_name", rank_n,
"entity_sqlname_c", "order_entry_funct_proc_name"
Where
Name is the name of the business function or action,
Proc_name is the technical name of the function,
Parent_function_proc_name is the parent function (for an action it is initiate_order).
The other attributes are not used in the action context, or, to be more precise, only
order_entry_funct_proc_name is used, as described below.
The creation of the Change Spot action is performed by running the stored procedure with
the command:
Exec ins_upd_dict_function_usr "Spot Change", "spot_change", "initiate_order",
NULL, NULL, NULL, NULL, NULL
To create a sub-action, use the same stored procedure but this time the parent function is
one of the actions defined previously. To create the functions, run the command:
Exec ins_upd_dict_function_usr "Spot Change Sell", "spot_change_sell", "
spot_change ", NULL, NULL, 1, “buy_operation”, “order_entry”
Exec ins_upd_dict_function_usr "Spot Change Buy", "spot_change_buy", "
spot_change ", NULL, NULL, 2, “buy_operation”, “order_entry”

8.2.2.1 Actions vs. sub-actions


At this stage, you need a clear understanding of the role of actions and sub-actions in
Triple'A Plus Core and the difference between the two objects.

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.

8.2.3 Rights and definitions of action and sub-actions


To return to the example of the Change Spot action, from a business point of view this action
can only initiate orders from cash positions. This means that Triple'A Plus Core should not
initiate an order for each position selected in the Valuation format. To define which positions
the function applies to, you must link a script to the action. This script is a Right to run the
action.
Once the action has been created, go to Infrastructure > Function Script > Action Rights in the
GUI to link the script. The Action Right screen is displayed.
The rights must be linked to formats and the Extended Strategy Element table, because the
action can be run from formats based on the Extended Position (Valuation and Journal) or
Extended Strategy Element table (Check Strategy and Reconcile Strategy). In the example
of the Spot Change action you must create the following script in the Extended Position table
(as shown in the screenshot above):
IF(@instr_nat == 4 AND @ptf_curr <> @pos_curr,1,0)

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.4 Defining sub-actions


Generally speaking, the definition of a sub-action can be considered as a mapping from the
format element to the operation entity linked to the sub-action (buy_operation,
sell_operation, etc.). To enter the definition of this mapping, go to Infrastructure > Function
Script > Action Definition from the main Triple'A Plus Core menu in the GUI.
The Portfolio field is initialized with the portfolio referenced in the current selected line
(position, operation ...). If no information is available on portfolio in the current line in the
displayed format, the initiate order is not available on this position. You can modify the
proposed portfolio via the sub-action definition, but an order will be created only if you have
the right to create orders on the new proposed portfolio.
For the Spot Change action, you would typically put in the quantity of the order, the quantity
appearing in the position if the position is long (sell sub-action) and the quantity with a
negative sign if the position is short (buy sub-action). For more details, see section Sub-
actions.

8.2.5 Implementing Initiate Order by batch


An example of an implementation of Initiate Order launched by batch is described in the
Triple’A Plus Core Operations, Positions, and Fusions Guide. The example explains how to
implement the Initiate Order facility to manage Margin Calls on Futures.

8.2.6 Extra functionalities


There are two more facilities available, such as:
 Manually enter data.
 Choosing the order entry format for displaying the initiated orders.

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.6.2 Order Entry


An action can lead to the generation of orders that have different business meanings. It may
be the case that you do not want to see all the initiated orders in the same Order Entry
session. For example, if an action generates operations in cash instruments and term
deposits, you may not be interested in a common display. To allow a choice of sessions in
which orders are displayed, you can link a sub-order entry to a sub-action (see section Cash
Management). In this example, the orders on a cash account are displayed in one Order
Entry format and the orders on term deposits in another.
To link an Order Entry format to a sub-action, perform the following steps:
1. Create a sub-order entry function (insertion in the database)
2. Add this function to the Function Security Profile.
3. Create a format for this specific sub-order entry function.
4. Add the format to the format profile.
5. Indicate in the sub-action description that the order entry to use is the one you created
(using the order_entry_function_dict_id in the dict_function table).

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.1 Spot Change


This action to levels all the balances of cash positions to the cash account in the portfolio
reference currency. In other words, the goal is to change all debit and credit balances on
cash accounts into the cash account in the portfolio reference currency.
This means that if the cash position is long (credit balance), you will buy the cash instrument
in the portfolio reference currency and debit the cash position.
For example, if you have a portfolio in EUR with a credit balance in the USD cash account of
10,000 USD, Initiate Order will generate the following order:
Buy 12,000 EUR and debit 10,000 USD in the USD cash account
Note: For the purpose of this example, 1 USD = 1.2 EUR.
If the cash position is short (credit balance), you will also generate a buy order but this time
you will buy the cash instrument that appears in the negative cash position and debit the
corresponding amount in the cash instrument in the portfolio reference currency.
For example, if you have a portfolio in EUR with a debit balance in the USD cash account of
10,000 USD, Initiate Order will generate the following order:
Buy 10,000 USD and debit 12,000 EUR in the EUR cash account
This example shows that if you run the Spot Change Action on all the cash positions held in a
given portfolio and you save the proposed orders you will end up with only one cash position
in the portfolio reference currency with an amount corresponding to the sum of all the cash
positions.
For a more detailed example, see section Examples.

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.

8.3.1.3 Cash Management


This action groups the two actions described above into one that manages the cash.
Basically, the function works as follows:
 If the cash position in the portfolio reference currency is less than 100,000 in the
System Currency (the figure is arbitrary), nothing happens.
 If the cash position in a different currency from the portfolio reference currency is lower
than 0, Initiate Order buys the amount corresponding to the debited balance of the
cash account in the portfolio reference currency.
 If the cash position is between 0 and 100,000 in System Currency but not in the
portfolio currency, you would buy a cash instrument in the portfolio currency and debit
the account displayed in the position.
 If the cash position in any currency is more than 100,000 in the System Currency,
Initiate Order will buy a Deposit.
Take an example with 3 portfolios in EUR (system currency = EUR). The Cash Management
action will generate (after showing the information for the Deposit buy) the following orders:

Portfolio 1
10,000 EUR No order

150,000 USD Buy USD Term Deposit for 150,000 USD

-20,000 CHF Buy 20,000 CHF by debiting EUR.

30,000 GBP Buy EUR for 30,000 GBP

Portfolio 2
120,000 EUR Buy EUR Term Deposit for 120,000 EUR

-50,000 USD Buy 50,000 USD by debiting EUR.

-20,000 CHF Buy 20,000 CHF by debiting EUR.

30,000 GBP Buy EUR for 30,000 GBP

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’.

Name Meta dict. name Description


Meta dict. proc name
Spot PCK_IO_CASH_MGT_SPOT Rights are only given if the Spot Change action is started
change from a format dedicated to this action, namely
pck_io_cash_mgt_spot PCK_IO_VL_SPOT or PCK_IO_VL_GLOBAL, if the position is
a cash position and if the currency of the instrument is
different from the portfolio currency. In script terms this is:
IF(FORMAT().code IN
("PCK_IO_VL_SPOT","PCK_IO_VL_GLOBAL") AND
@ACCOUNT_ID<>@INSTR_ID,1,0)

Note: The condition that the position must be in a cash


account is not stated explicitly. The reason is that the two
formats dedicated to that function only show the cash
positions so it is not mandatory to state this condition in the
script.

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:

Sub-action of Spot Change


For this action, there are two sub-actions. Two sub-actions are required to deal with long
positions (positive amounts) and short positions (negative amounts).
Long Spot Change
For this action the rights are simply linked to the quantity. In other words an order is only
initiated if the quantity held is positive. In script terms, this is:
IF(@QUANTITY > 0,1,0)
The mapping from the position (format element) to the order (buy_operation) is:

Attribute Definition Format Element Definition


instr_id @ACCOUNT_ID GET_BEST_OBJECT(GET_ENTITY("instrument"),
portfolio_id.currency_id=&ref_curr_id AND
&nature_e=4 AND &default_f=1).id

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

quantity_n @ACC_AMOUNT ref_net_amount_m

portfolio_id @PORTFOLIO_ID portfolio_id

Short Spot Change


For this action, the rights are simply linked to the quantity. In other words, an order is
initiated only if the quantity held is negative. In script terms, this becomes:
IF(@QUANTITY < 0,1,0)
The mapping from the position (format element) to the order is:

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.

Sub-action of Term Deposit


There is only one sub action because the action is performed on positive positions only and
always generates a buy operation. There are no rights linked to the sub action because the
authorisation is in the right linked to the action itself. The mapping is as follows:

Attribute Definition Format Element Definition


portfolio_id @PORTFOLIO_ID portfolio_id

account_id @INSTR_ID instr_id

quantity_n @QUANTITY quantity_n

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.

Sub-action of Cash Management


With this action, the generated order depends on the currency and the amount. The order
that can be initiated can be a buy for short positions, a buy for long positions or a term
deposit buy. This means, then, that there must be three sub-actions linked to this action.
Short Change
This action is performed if the amount is negative and the currency of the instrument held is
different from the portfolio currency. The right linked to this sub-action is then:
IF(@SYS_NET_AMT<0 AND @ACCOUNT_ID<>@INSTR_ID,1,0)
The mapping for this sub-action is:

Attribute Definition Format Element Definition


instr_id @INSTR_ID instr_id

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

quantity_n -@QUANTITY quantity_n

portfolio_id @PORTFOLIO_ID portfolio_id

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:

Attribute Definition Format Element Definition


instr_id @ACCOUNT_ID See above

account_id @INSTR_ID instr_id

quantity_n @ACC_AMOUNT ref_net_amount_m

portfolio_id @PORTFOLIO_ID portfolio_id

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:

Attribute Definition Format Element Definition


portfolio_id @PORTFOLIO_ID portfolio_id

account_id @INSTR_ID instr_id

quantity_n @QUANTITY quantity_n

8.3.2.3 Sub functions of Order Entry


This section describes the sub functions of the Order Entry Function. These sub functions are
linked to sub actions in order to generate the orders in different Order Entry sessions. For
these examples we built two different “sub order entry”, one to present the spot orders and
one to present the buy of term deposit.

Name Meta dict. name Parent function


Meta dict. proc name
Spot Change PCK_IO_CASH_MGT_SPOT Order Entry
pck_io_cash_mgt_spot

Term deposit PCK_IO_CASH_MGT_DEPO Order Entry


pck_io_cash_mgt_depo

In the description of the sub-actions (field order_entry_function_dict_id of the entity


dict_function) we link the first sub-function to all the sub-actions that generates change spot
orders and the second to all the sub-actions that generated term-deposit orders.

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.

8.3.2.4 Formats, Screens and Profiles


Basically, we only need formats to present cash positions, because all the actions defined
start from cash positions. To build the formats, we started from the standard valuation
format PCK_PM_VL_CASH.
For the spot change we add some few fields in order that the function rights could be
evaluated and that the sub actions mapping can be applied. This means that we add the
following format elements:

Format Description
ACCOUNT_ID Identifier of the account linked to the portfolio.

INSTR_ID Identifier of the instrument of the position.

QUANTITY Holding quantity of the instrument.

SYS_NET_AMT Net amount of the position in the system currency.

ACC_AMOUNT Net amount of the position in the portfolio currency.

PORTFOLIO_ID Identifier of 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.

The definition of the account_id (as described above) is the following


GET_BEST_OBJECT(GET_ENTITY("instrument"),
portfolio_id.currency_id=&ref_curr_id AND
&nature_e=4 AND &default_f=1).id
It retrieves the generic cash account in the portfolio currency. The one that have a default
flag set to yes.
For the second format we also add a break criterion in order to present the cash position in
different currencies in different tabs.
We also have a format of nature domain. Its code is PCK_IO_VL_DOMAIN.
For the sub functions of Order Entry we have four formats:

Format Description
PCK_IO_ORD_EN_SPOT Detailed list for the spot change orders.

PCK_IO_ORD_EN_DEPO Detailed list for the term deposit buy orders.

PCK_IO_OE_DOM_SPOT Domain for the spot change orders.

PCK_IO_OE_DOM_DEPO Domain for the term deposit buy 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:

Attribute Default Filter Edit Rank


Value
Instr_id &nature_e = 5 AND Insert/Update 1
&ref_curr_id=fi_currency_id Filter

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"))

All infrastructures are grouped into three profiles:

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_CASH_MGT_SPOT Spot Change action.

PCK_IO_GLB_CASH_MGT Cash management action.

PCK_IO_OE_CM_SPOT Sub function of order entry to display spot change orders.

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_VL_SPOT Valuation of Cash position

PCK_IO_VL_GLOBAL Valuation of Cash position

PCK_IO_OE_DOM_SPOT Domain for the spot change orders.

PCK_IO_OE_SPOT OE Cash Management spot

PCK_IO_OE_DOM_DEPO Domain for the term deposit buy orders.

PCK_IO_OE_DEPO OE Cash Management Deposit

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”.

8.3.3.1 Spot Change


The valuation (important to set the default currency flag to ‘yes’ to get the good reference
net amount, which is used to initiate orders) on the list of portfolio gives the following result
in the format PCK_IO_VL_SPOT.

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.

Remarks on the order generation


Number of orders: The only requirement to generate an order is that the instrument we hold
is different of the portfolio default account. The system generates one order for each
selected position, because we do not hold any positions in the default account. In this case,
it means 23 orders.

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.

8.3.3.2 Term Deposit


The following image of the Valuation - Portfolio List screen displays the valuation results in a
view that shows the positions in a different tab for each instrument currency. For the
instrument in “EURO”, we have:

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).

8.3.3.3 Cash Management


The selection of all positions in “CHF” and the run of the action lead to the opening of the
term deposit screen. Following the rights linked to the sub actions, we see that only one

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.

9.1 Security and Profiles


This section describes how security is applied to this module and how to authorise a specific
user to use this feature.
Basically, security is managed through the standard Triple'A Plus Core security. This specific
module, however, there are a few differences worth noting.
The following sections describe the particularities of the Execution Matching module and its
configuration.

9.1.1 Licence Key and Function Security Profile


The Execution Matching Tool is a module. To use the module you must have system-level
authorisation. The set-up and configuration must be performed by a Temenos consultant.
Basically, 0 to N licences for the module can be assigned, where N is the number of core
licences.
Once you have the licence and its key, you must modify the Function Security Profile
assigned to the users who are going to use the functions.
Three new functions (not including the sub-functions) can be added to the Function Security
Profile:
 Administration of the unmatched_execution and unmatched_global_execution_fee
entities
 Unmatched Execution List
 Search Matching Order
To add a function:
1. Go to Administration > Profiles > Function Security Profile.
2. Select the profile you want to modify, click Modify button and then Composition button.

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.

9.1.2 Data Profile


There is no specific Data Profile management in the Unmatched Execution module. This
means that the unmatched execution cannot be secured through this kind of profile.
Moreover, a user that is allowed to run the Unmatched Execution List function is potentially
allowed to insert, update and delete executions at every status. The Data Profile of the
portfolio involved is not taken into account.
The reason for this approach is that the tool is more a middle-office tool and is meant to be
restricted to specific users.

9.1.3 Formats, Search and Screens Profile


Before users can run the functions, you must add formats for the functions. If you want to
customise the functionality, you can add screens and a Search Profile and assign them to the
relevant users.
All these objects can be administered using the standard Triple'A Plus Core Administration
functionality. You can find more details and examples of the facilities in section Packaging
and Implementation. At this point, only the objects that you can define are listed.
 Formats for:
 Unmatched Execution List (UEL) function and its sub-functions
 Search Matching Order function (SMO) and its sub-functions
 Screens for:
 Domain for UEL and its sub-functions
 Domain for SMO and its sub-functions
 Screens for the Create Unmatched Execution function. More precisely, you can
define one screen for the creation of Unmatched Executions and one for
Unmatched Global Execution Fees.
 Specific screens for editing unmatched executions for the UEL function
 Specific screens for editing unmatched executions for the SMO function
 Search Profile Composition and Search Criteria:
 You can add search criteria to the UEL functions and sub-functions
 You can add search criteria to the SMO functions and sub-functions

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.

9.2 Importing Data


This section describes how to import data to the execution table. The details provided largely
depend on the business scope of the module.

9.2.1 Workflow Process


Importing execution data can generate one of two messages. A ‘SUC’ message (for success)
if the data is successfully stored in the database or an ‘ERR’ message if the data cannot be
stored in the database. In the second case, additional information explains why the data was
not imported. The main reasons are:
 A foreign key is not resolved
 The business key is not resolved
 A duplicate key row included
 An input control stopped the record from being saved
 Technical error
In the case of an error you can also perform a redirection of an execution that cannot be
imported. To set up this facility, you must add the following command to your import file:
SET REDIRECTION ON
Once this is done, the data that produced an ‘ERR’ message generates a ‘ROD’ message
(Redirection of Data).
In this case, the imported execution is saved in the Triple'A Plus Core database but not in
the Execution table which stores successful imports. Instead, the data is stored in the
Unmatched Execution table. If you do not enable the redirection, the system only produces
the error message without redirecting the faulty data. The workflow is as illustrated below:

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

Data Import workflow

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

9.2.2.1 “Order Not Found”


In this case, say that the following execution is received:
INSERT-UPDATE 60 IBM @ 51.5 USD, order code =EXT_PTF0001, sequence
number=2
The data cannot be stored or updated (in technical terms, the ext_order_id foreign key
cannot be resolved), because there are no orders in the system.
If you set the redirection to on, you will have the following record in the unmatched
execution table:

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_failed_e Order Not Found

Import_mode_e Insert-Update

In the log import file, the following messages are recorded:


ROD EXT_PTF0001IBM;60;51.5;2
MSG 46 file IMP_File.txt, line 18: Unresolved reference on 'light_order' - code :
'EXT_PTF0001'
MSG aaa, laurs55b, 2004/03/16 16:46:08, IMP_File.txt:16 : closing IMP_File.txt

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>

9.2.2.2 “Execution not Found”


In this case, say that you receive the following execution:
UPDATE 60 IBM @ 50.5 USD, order code =AAA_PTF0001, sequence number=2
You will not be able to update the data, because there are no executions with the sequence
number equal to two in the AAA_PTF0001 order in the system.

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_failed_e Execution Not Found

Import_mode_e Update

In the log import file, the following messages are recorded:


ROD AAA_PTF0001;IBM;60;50.5;2
MSG 47 file IMP_Fie.txt, line 18: Unable to update record, execution not found
MSG aaa, laurs55b, 2004/03/16 16:46:08, IMP_File.txt:16 : closing IMP_File.txt

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>

9.2.2.3 “Input Control Failed”


In this case, say that you receive the following execution:
UPDATE-INSERT 40 IBM @ 60 USD, order code =AAA_PTF0001, sequence number=1
Also suppose that you have implemented an input control that does not allow an update to
be performed on a record if the quote_n field is changed by more than 10 %. In this case,
the price for the execution in the database is 50 and the update is 60, so the input control
criterion is not satisfied and you end up with the following record in the Unmatched
Execution table:

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_failed_e InputControl Failed

Import_mode_e Update-Insert

In the log import file, the following messages are recorded:

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

9.2.2.4 “Duplicate Key Row”


In this case, suppose that you receive the following execution:
INSERT 30 IBM @ 51 USD, order code==AAA_PTF0001, sequence number=1
There is a duplicate key row, because the business key of an execution is the order code and
the sequence number.
If SET REDIRECTION ON is set to on, the following record is stored in the Unmatched
Execution table:

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_failed_e Duplicate Key Row

Import_mode_e Insert

The following messages are recorded to the log import file:


ROD AAA_PTF0001;IBM;30;51;1
MSG 30 file IMP_File.txt, line 16: Unable to insert record - Attempt to insert dup
licate key row in object 'execution_qty' with unique index 'execution_qty_bk_idx'
MSG aaa, laurs55b, 2004/03/16 16:46:08, ImpFile.txt:16 : closing ImpFile.txt

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.

9.3 Unmatched Execution List Function


This section describes the Unmatched Execution List (UEL) function and the Graphical User
Interface (GUI) screens that display the results.
Note that you can create sub-functions of the Unmatched Execution List function. The
description below also applies to the sub-functions.

9.3.1 Server Characteristics


The Unmatched Execution List function is similar to the Order List function. The main
difference is that this function returns records from the Unmatched Execution entity and not

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.

9.3.2 Graphical User Interface Facilities


This section describes the different actions you can perform on the results of the Unmatched
Execution List function. The available actions depend on the rights assigned to the user.
The Unmatched Execution screen lets you:
 Delete an unmatched execution
 Modify an unmatched execution and save it to the execution table
 Run a Search Order command on the unmatched execution
Note: The buttons on the Unmatched Execution screen are enabled only if the user has the
associated rights. More precisely, the buttons are enabled or not depending on the flag
linked to the Unmatched Execution List function in the Function Security Profile. The Copy
and Create buttons are enabled if the create_f flag is set to ‘Yes’. The Delete button is
enabled if the delete_f flag is set to ‘Yes’, and the Modify button if the Update flag is set to
‘Yes’.
The Delete, Create and Copy options work as elsewhere in Triple'A Plus Core. Note that both
multi-line and full row selection ([Ctrl] + [A]) are available for the Delete option.
The Modify option also works as standard, except for the following two points:
 The default values evaluated apply to the execution table and not the unmatched
execution table

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.

9.3.3 Save Button


When you click the Save button, Triple'A Plus Core performs the action specified in the
import_mode_e field on the relevant record. This action is performed on the execution table
and not the unmatched execution table.
The following table shows the effects of the different import modes, input controls and GUI
modifications:

Import Case Description Result of the “Save”


Mode
All Import Triple'A Plus Core order code not provided. A No modification in the Triple'A
message is displayed to indicate that the business Plus Core DB
Modes key is incomplete.

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.

9.3.4.1 Business Cases


Let us assume that the following operations have taken place:
Portfolio A

Order: Buy 100 IBM @ 111.1 code=AAA_PTFA_001 10/03/2004

No Execution on this order.


Portfolio B

Order: Sell 300 IBM @ 111.1 code=AAA_PTFB_001 15/03/2004

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

One partial 50 @ 112 sequence no=2 16/03/2004

Portfolio C

Order: Buy 200 DEC @ 117 code=AAA_PTFC_001 17/03/2004

Executions: One partial 150 @ 118 17/03/2004

One total 50 @ 119 17/03/2004

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)

9.3.4.2 Unmatched Execution List Results


This section shows the results obtained when you run the Unmatched Execution List function
with three different domain parameters.
With the following domain parameters:

The following results are returned:

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):

The following results are returned:

Internal Code External Sequence Import Failed Reason Instrument


Code Number Mode
AAA_PTFB_001 2 Update Input Control Failed IBM

9.3.4.3 User Actions


This section describes some of the possible user actions:

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)

9.3.4.4 Saving Your Modifications


This section describes what happens when you click the Save button. A summary of all the
cases is shown in the table in section Save Button.

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:

Internal Code External Sequence Import Failed Reason Instrument


Code Number Mode
AAA_PTFB_001 Delete Execution Not Found

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.

9.4 Search Matching Order Function


This section describes the last but most useful and powerful option that you can perform on
an unmatched execution listed in the UEL function results. This is the Search Matching Order
action. Basically, this option lets you retrieve all the orders in Triple'A Plus Core that respond
to the criteria of the selected unmatched execution. You can define the criteria.
In the previous section, it was assumed that the user knew the order code or the sequence
number of a given unmatched execution but in reality this is often not the case. In this
situation, the Search Matching Order function will help the user to find the right order or the
right execution and correct the data.

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.

9.4.1 Running the Function


You can only run the function from an Unmatched Execution List result screen. You double-
click the record you want to match, then right-click with the mouse to display the context
menu and choose the function you want (Search Matching Orders or Sub-functions).
If the Real Time flag linked to the chosen function in the Function Security Profile is set to 0,
Triple'A Plus Core opens a domain for the function (real time flag=0). If the Real Time flag is
set to 1, no domain screen is displayed (real time flag=1).
The pertinent criteria can be defined per function (see section Packaging and Implementation
for examples). Three types of criteria can be defined:
 Search Criteria (act as a filter): When searching a matching order, only the orders that
satisfy the conditions are returned. For example, market IN (NASDQ, OTC_Market, etc.)
 Matching Criteria: If you select Matching Criteria, you must also select an arithmetic
operator (=, >=, etc.). The orders returned for a specific unmatched execution are
those that satisfy the matching conditions.
 Selected Matching Criteria: Same as for Matching Criteria except they are selected by
default when you open a domain screen. This option is specifically useful for the direct
function (real time flag = 1) since the user is not allowed to define the domain options.
When you click OK or Apply, Triple'A Plus Core performs a loop on each selected unmatched
execution and returns all the orders that satisfy the specified criteria. For each returned
order, the existing executions and global execution fees are also returned.
The result of the matching is in the ext_transaction structure. This structure contains the
source_entity_dict_id field which specifies if the order is an unmatched execution, an order,
an execution or a global execution fee.
The easiest way to display the results is to use a Dynamic List format. The returned data
contains a field called parent_ext_transaction_id. This field contains:
 For an order, the unmatched execution it is matched with
 For an execution or a global execution fee, the order to which it applies
If you take the example of the second unmatched execution processed in section Business
Cases and run the Search Matching Order on the order code, you obtain the following
results:

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:

And the following proposal is returned:

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.2 GUI Processing of the Results, Matching and Saving


This section describes the possible operations on the Search Matching Orders results that
you can perform from the GUI. From the point of view of editing unmatched executions,
there is no difference from the Unmatched Execution List results.
The new facility concerns the matching possibilities. As you can see from the results shown
above, a screen is displayed, showing the proposed orders and the linked executions, if there
are any. The executions screen is only displayed if the import mode is not the insert mode.
The rules are the following:
 You can only match one order for an unmatched execution
 For a given order you can only have one unmatched execution
These two rules are managed by the Graphical User Interface. When you select a different
order for an unmatched execution, a previously selected order is unselected.

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.

9.5 Other Facilities

9.5.1 Create Unmatched Execution


With this function, users are authorised (if the function is referenced in the user's Function
Security Profile) to create records in the unmatched execution table through the GUI.
You can link a user defined screen to this function. To run the function, go to
Operation > Create Unmatched Execution > Unmatched Execution from the main menu. If you
want to create an unmatched execution of the global execution fee nature, go to Unmatched
Global Execution Fee.
You can then complete the data entry fields. Please note:
 The import mode and the import failed reason are set to Gui-Insert and are not
editable. This is to indicate to users that the specific unmatched execution was created
manually. Consequently, you cannot insert an unmatched execution to update or delete
an execution through the GUI.
 Even if it is possible to add the field ext_order_id to the Create Unmatched Execution
screens, it is strongly recommended not to do so. In fact, if you know the ext_order_id
then you can create an execution directly and you do not have to use this function. To
enter the code, you must use the ext_order_code field.
 No checks are performed on the duplicate row. If you enter the same unmatched
execution twice, no control is performed and it will be saved twice. In technical terms,
this means that there is no business key for this entity.

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.5.2 Event Subscriptions


You can create subscription events for the execution, global execution fee and the
unmatched execution table. These subscription events work in the standard way (see the
Triple’A Plus Core Gateway Reference Guide).
Subscriptions are useful if you want to track the actions performed on the unmatched
execution records. You simply define a subscription referencing the execution, global
execution fee and unmatched execution table.
For example, if you set a subscription for the delete events that occur in the unmatched
execution table and for all the database events in the execution table, a record will be
entered in the audit table when a match proposition is accepted (delete in the unmatched
execution table and, at the same time, an insert, update or delete in the execution or global
execution fee table).

9.6 Packaging and Implementation


This section describes the implementation required for the new module. This description is
based on the delivered PCK objects.

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:

Function Name Entity Create Update Delete Real-


Time
Administration unmatched_execution Yes No No No

Administration unmatched_global_execution_fee Yes No No No

Unmatched Execution Yes Yes Yes No


List

Search Matching Order Yes Yes Yes Yes

SMO Instrument and Yes Yes Yes Yes


Quantity

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_UNMAT_GEF To create unmatched execution fees through the GUI.

PCK_MT_FCT_UEXEC To modify unmatched executions in the unmatched execution list


and search for matching orders.

PCK_MT_FCT_UGEF To modify unmatched execution fees in the unmatched execution


list and search for matching orders.

PCK_MT_DOM_UNMTCH_EXEC_LIST To define the Unmatched Execution List domain.

PCK_MT_DOM_SRCH_MTCH_ORDER To define the Search Matching Order domain.

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:

Function Nature Rank Format


Unmatched Execution Detailed 10 PCK_MT_UEL
List List

Unmatched Execution Domain 20 PCK_MT_UEL_DOM


List

Search Matching Order Dynamic 30 PCK_MT_SMO


List

SMO Instrument & Detailed 40 PCK_MT_SMO_IQ


Quantity List

SMO Several Criteria Detailed 50 PCK_MT_SMO_SC


List

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.

9.6.4 Search Criteria


The delivered search criteria are defined for the Unmatched Execution List and Search
Matching Order functions and their sub-functions. They define the criteria for each function.
They are all included in the PCK_MT_SEARCH_PROF search profile. The composition is:

Code Function Entity


PCK_MT_UEL_CRIT UnmatchedExecutionList unmatched_execution

PCK_MT_UEL_CRIT Search Matching Order ext_transaction

PCK_MT_SMO_IQ_CRIT SMO on Instrument & ext_transaction


Quantity

PCK_MT_SMO_SC_CRIT SMO Several Criteria ext_transaction

The composition of each of the search criteria is:

Search criterion Composition


PCK_MT_UEL_CRIT  Deposit
 Market
 Nature of unmatched (execution or global execution fee)
 Nature of execution (partial or total)
 Reason why the importation failed
 Mode of importation
All the criteria are of the search nature.

PCK_MT_UEL_CRIT  Order code as a selected matching attribute with operator “=”

PCK_MT_SMO_IQ_CRIT  instrument as selected matching attribute with operator “=”


 quantity as selected matching attribute with operator “>=”

PCK_MT_SMO_SC_CRIT  order code as a matching attribute with operator “=”


 instrument as a selected matching criteria with operator “=”
 quantity as a selected matching criteria with operator “>=”
 deposit as a matching criteria
 market as a matching criteria

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.

10.2 Implementation Description I: Copy Dynamic Weight function

10.2.1 Step 1: Sub-function Copy Dynamic Weight


To create a sub-function of the Automatic Data Update function, append the line:
exec ins_upd_dict_function_usr "Copy Dynamic Weight", "copy_dyn_weight", "upd_data",
NULL, NULL, 1

to the following file:


$AAAHOME/ddl/src/dict_function_dat.usr.sql
To install the sub-function, run the following command on your Unix machine:
$AAAHOME/ddl/install_ddl install_ddl {aaa_owner} {aaa_passwd} {sa_passwd} dat
dict_function {environ|dbg} {charset_name|default_charset}

10.2.2 Step 2: Execution rights


In the GUI, go to Administration > Function Script > Automatic Data Update Rights. From this
screen you can provide the execution context for the Copy Dynamic Weight function (i.e.,
specify when your end users can use the function).
Copy Dynamic Weight is limited to an Edit Strategy context in which the user wants to
compute dynamic weights in Edit Strategy Objectives. 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 217
Copy Dynamic Weight, Step 2: Execution Rights

10.2.3 Step 3: Execution definition


In the GUI, go to Administration > Function Script > Automatic Data Update Definition. Here, you
can decide the logic behind the copy (i.e., which data is copied to which attribute).
Copy Dynamic Weight works by copying a computed dynamic weight to the current weight
attribute. The script describes the execution: whenever the Copy Dynamic Weight function is
run, Triple'A Plus Core makes the attribute obj_weight_n (current weight that will be saved
as a strategy objective) equal to the dynamic weight (unless obj_weight_n is null):

Copy Dynamic Weight, Step 3: Execution Definition

10.2.4 Step 4: Granting end user rights


Finally, you must grant your end users the right to call this function, using the Function
Security Profile. Go to Administration > Security > Profiles > Function Security Profile and select
the security profile you want to update, click Modify and then Composition. The list of

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:

Copy Dynamic Weight, Step 4

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.

10.2.5 Edit Strategy Objectives formats and screen


Ensure that your version of Triple'A Plus Core uses the latest Edit Strategy Objectives
formats: PCK_PM_STRT_EDT_DOM and PCK_PM_STRT_EDT, as well as their child formats.
If you are using customised formats and a customised screen for the Edit Strategy
Objectives domain, you need to add the following items:
 Format for Model Portfolio in Edit Strategy Objectives
Add two format elements, one for the objectives at the last date (old_obj_weight_n)
and one for the dynamic objectives (dynamic_obj_weight_n). If you want to display
these two columns only when the user has activated dynamic weighting from the
domain, set the Display Context to ‘Dynamic Weight’.
 Screen for the Edit Strategy Objectives domain
Create a screen for the Search Link entity and make sure that you add a Dynamic
Weight checkbox. Copy Dynamic Weight is supported for a single Model Portfolio
strategy. If you customise the screen, make sure that the checkbox is only available in
this context.
Alternatively can use the packaged PCK_PM_DOM_EDIT_STRAT_OBJ screen.
Important note on search link in scripts
The above screen relies on the Search Link entity. When you define a script based on the
Search Link entity (as in the example in subsection Step 2: Execution rights of section
Implementation Description I: Copy Dynamic Weight), you need to use the DOMAIN()
keyword. Apply the following mapping when retrieving information in Search Link (the
highlighted attributes are those from which mapping is not straightforward):

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

10.3 Implementation Description II: Allocate Remainder function

10.3.1 Step 1: Sub-function Allocate Remainder


To create a sub-function of the Automatic Data Update function, run the following SQL
script:
exec ins_upd_dict_function_usr "Allocate Remainder", "allocate_remainder",
"upd_data", NULL, NULL, 2

10.3.2 Step 2: Execution rights


In the GUI, go to Administration > Function Script > Automatic Data Update Rights. From this
screen you can provide the execution context for the Copy Allocated Remainder function
(i.e., specify when your end users can use the function).
Allocated Remainder is limited to a context in which the strategy is not exactly allocated to
100% and the user applies the selection to one and only one row. 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 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%).

10.3.4 Step 4: Granting end user rights


Follow the instructions provided in subsection Step 4: Granting end user rights of section
Implementation Description I: Copy Dynamic Weight.

10.3.5 Formats and screen


Follow the instructions provided in subsection Edit Strategy Objectives formats and screen of
section Implementation Description I: Copy Dynamic Weight.

10.4 Implementation description III: Proportional Allocation function

10.4.1 Step 1: Sub-function Proportional Allocation


To create a sub-function of the Automatic Data Update function, run the following SQL
script:
exec ins_upd_dict_function_usr "Proportional allocation", "proportional_allocation",
"upd_data", NULL, NULL, 3

10.4.2 Step 2: Execution Rights


In the GUI, go to Administration > Function Script > Automatic Data Update Rights. From this
screen you can provide the execution context for the Proportional Allocation function (i.e.,
specify when your end users can use the function).

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).

10.4.3 Step 3: Execution eefinition


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). Proportional allocation proportionally distributes the unallocated part of the
strategy across the rows that the user selected.

10.4.4 Step 4: Granting end user rights


Follow the instructions provided in subsection Step 4: Granting end user rights of section
Implementation Description I: Copy Dynamic Weight.

10.5 Implementation description IV: Relative Allocation function

10.5.1 Step 1: Sub-function Relative Allocation


To create a sub-function of the Automatic Data Update function, run the following SQL
script:
exec ins_upd_dict_function_usr "Relative allocation", "relative_allocation",
"upd_data", NULL, NULL, 4

10.5.2 Step 2: Execution rights


In the GUI, go to Administration > Function Script > Automatic Data Update Rights. From this
screen you can provide the execution context for the Relative Allocation function (i.e.,
specify when your end users can use the function).
Relative Allocation is limited to a context in which the strategy is not exactly allocated to
100% and multiple rows are selected. Relative 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.

10.5.4 Step 4: Granting End-user Rights


Follow the instructions provided in subsection Step 4: Granting end user rights of section
Implementation Description I: Copy Dynamic Weight.

10.5.5 Formats and Screen


Follow the instructions provided in subsection Edit Strategy Objectives formats and screen of
section Implementation Description I: Copy Dynamic Weight.

23 June 2015 Triple’A Plus™ Core 15.06 - Orders and Productivity Guide 223
11 Appendix

11.1 Keyboard shortcuts


The table below summarises the keyboard shortcuts available with the Order Entry function.

Action Option Shortcut


Edit Create Ctrl + N or Insert button

View Ctrl + O

Modify (call a detailed Ctrl + E


screen)

Copy Ctrl + C

Cut (for a single cell) Ctrl + X

Paste Ctrl + P

Delete Delete key

Select the row Shift + Home key or Shift + End key

New Session Ctrl + W

Save Session Ctrl + S

Save Draft Ctrl + T

Move Beginning of row Home key

End of row End key

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 -

Collapse All Shift -

Full Collapse Alt -

Full Collapse All Shift Alt -

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

You might also like