Building Custom Strategies
A custom strategy is a set of trades and properties that you want to associate together, and have the ability to reuse.
Choose Configuration > Strategy Builder to build custom strategies.
You can also use this window to specify strategy persistence settings for out-of-the-box strategies.
1. Creating Custom Strategies
Strategy Builder
The Strategy Builder appears like a blank pricing sheet.
» | A custom strategy is composed of multiple legs from existing strategies. Add as many legs as needed by selecting existing strategies. |
The values you set for the properties will be used as default values.
» | Then click Save Strategy - You will be prompted to name the strategy. To capture a trade using that newly created strategy, you need to add it to your profile under Configuration > Profile Configuration so that it is available for selection in a pricing sheet. The custom strategy will also appear under Properties, so that you can adjust the list of properties for that strategy. |
» | You can load an existing strategy, modify the properties as needed, and click Save Strategy as New . You will be prompted to supply a name for the strategy. |
You can also link properties between the legs of a strategy, and specify additional parameters. See below for details.
2. Leg Links
You can specify leg links for custom strategies.
To add a leg link, use the Add button in the Leg Links window. You can delete pre-configured links for a strategy with the Delete button. You can click the Show All Links button to view any associated links of the strategy.
Leg Links window
To add a leg link to a strategy, click Add and:
» | Select the legs to be effected by the link. |
» | Select the properties to drive the links. |
» | Enter the applicable operator from the Operator drop down. Operator selection will depend on the driver properties selected. |
EX: Selecting Settle Type as the property for leg links will only display "=" for the Operator as no other choice would be logical.
» | Click Add Link to save it to the strategy. |
If a single leg, e.g. "Leg 1", property is linked by an attribute, then select "Leg 1" for the Driven and the Driver Leg fields.
Ⓘ NOTE: Both driver and driven legs must be defined. You can then select "Constant" or "Strategy Attribute" from the Operand drop down. If "Strategy Attribute" is selected, defined strategy attributes will appear in Amount drop down. The value defined in the attribute will added to the leg. If "Constant" is selected, the amount and units must be entered. The constant value will be added to the leg.
If two legs, e.g. "Leg 1 and Leg 2" are selected for a link, select the driver and driven properties to link the legs. Driven Property selection display will depend on Driver Property selection. Enter the Operator value available in the drop down. The drop down value will be dependent on the property selection.
See the Strategy Attributes section below.
See Solving with Linked Properties for a sample scenario.
Enable Iterative Calculation
A user can enable multiple calculation passes when using the "Price" function.
Checkbox in "Leg Link" panel
This function makes solving premium dependent structures such as dual currency deposits in one action. This function may cause significant performance issues. The checkbox should only be ticked when pricing premium dependent structures (structures with an embedded option where the premium feeds back into another part of the structure).
3. Strategy Attributes
You can specify strategy attributes for custom strategies.
Simple Attributes
Strategy Attributes - Simple
» | Click Add to add an attribute, and give it a name in "Strategy Property". |
» | Select the function "Simple". Then select the output unit. |
» | Then enter the formula to compute the attribute. To do so, select an amount from one of the legs, and click ![]() |
User Editable Attributes
A user can define an attribute and set it to "User Editable". This will allow a user to input a value to drive other fields.
Strategy Attributes - User Editable
» | Click Add to add an attribute, and give it a name in "Strategy Property". |
» | Select the function "User_editable". Then select the output unit. |
» | Then select the parameters to compute the value: |
The location can be any leg selected in the strategy, or the strategy itself (to select strategy attributes).
The value is a property of the selected leg.
» | Then click Save. Strategy attributes appear in the Strategy Attributes window. |
Attributes may have to be added to and made editable in a particular strategy in order to be used.
Yield Attributes
A yield attribute can be used to build a dual currency deposit from a vanilla option and a fixed rate cashflow to reflect the enhanced coupon.
Strategy Attributes - Yield
» | Click Add to add an attribute, and give it a name in "Strategy Property". |
» | Select the function "Yield". Then select the output unit. |
» | Then select the parameters to compute the yield: |
The location can be any leg selected in the strategy, or the strategy itself (to select strategy attributes).
The value is a property of the selected leg.
» | Then click Save. |
4. Fee Configuration
You can define Fees for each product in a Strategy.
Fee Configuration panel
» | Click Add to add a fee. |
» | Enter a name for the fee. |
» | Select the fee type. |
» | Select the products to apply the fees. |
» | Then click Save. The new Fee appears as a property in the Pricing Sheet. |
Note that in order to see the Fee in the Pricing Sheet, first you need to make the new Fee property visible using Configuration > Profile Configuration.
The new Fee property will be displayed with the amount.
Fees have the following secondary properties:
• | Fee Legal Entity - Select a legal entity. |
• | Fee Calculation Method - Displays the calculation method. |
• | Fee Calculation Input - Input to the fee calculation method. |
• | Fee Date - The fee date. |
• | Fee Start Date - The fee start date. |
• | Fee End Date - The fee end date. Must be later than the Fee Start Date. |
• | Fee Known Date - The fee known date. Must be earlier than the Fee Date. |
• | Fee Description - The fee description. |
5. Strategy Persistence
The Strategy Persistence panel allows controlling how strategies (both custom and out-of-the-box) are saved.
Defaults values can be set for this panel in Global Preferences.
See Setting Global Preferences for details.
Strategy Persistence Panel
» | You can elect to save the trades of a strategy as separate trades or as a bundle. The fields are described below. |
Ⓘ NOTE: If you have defined strategy attributes, you must save the strategy as a bundle.
» | You can also elect to save strips of strategies as separate trades, as a bundle, or as a strip of bundles. |
Important Note
When you select Default for a given option, that option will be used when saving the trades by default. To change the default value upon saving, the fields need to be configured as available and user editable, and the user needs to use the Advanced Save to change the settings as needed.
Persistence Options Description
Bundle Options | Description |
---|---|
Save as Separate Trades |
Select Yes to allow saving strategies as separate trades. Can be set as Default. |
Save as Bundle |
Select Yes to allow saving strategies as bundles. If yes, additional properties are displayed. Can be set as default. |
Save as Structured Product |
This will help to create multilegged strategy to save as a single trade id. If the strategy is saved as Structured Product, it will create single trade. Currently only Equity Options are supported as sub type of structured product. |
Save as Strip of Bundles |
Select Yes to allow saving strips of strategies as a strip of bundles. If yes, additional properties are displayed. Can be set as default. |
Bundle Type |
Only applies if "Save as Bundle" or "Save as Strip of Bundles" is Yes. Select a bundle type - Bundles types can be added to domain "bundleType". The bundle name will be created by the system as "<bundle type>-<bundle number>" - The bundle number is given by the system. |
Use a Bundle Confirm |
Only applies if "Save as Bundle" or "Save as Strip of Bundles" is Yes. Select Yes to generate a single confirmation for all the trades in the bundle rather than individual confirmations per trade. This requires additional settings.
|
Create Mirror Bundle if all Internal Trades |
Only applies if "Save as Bundle" or "Save as Strip of Bundles" is yes, and all the trades/ legs are internal trades/legs. Select Yes to create a mirror trade bundle of specified type, and add the mirror trades to that bundle. The name of the mirror bundle will be created by the system as "Mirror Bundle <bundle name>". |
Mirror Bundle Same as original |
Only applies if "Create Mirror Bundle if all Internal Trades" is Yes. Select Yes to add the mirror trades to the same bundle as the original trades instead of the mirror trade bundle. You also need to add the value “MirrorBundle to the domain "TradeBundleAttributes". |
Trade Events Stay in Bundle |
Only applies if "Save as Bundle" or "Save as Strip of Bundles" is Yes. Check to keep trades issued from trade lifecycle actions into the same bundle as the original trades (like an option trade and a physical exercise). |
Sample trade saved as structured product is shown below:
6. Strategy Templates
A user can create templates from strategies to load to the Pricing Sheet for quick trading. Click Configuration > Manage Strategy Templates to open a template definition window.
To define a strategy template, select the strategy in the Pricing Sheet to build the template on. All values defined in the strategy will be saved to the template. Any leg in the defined strategy can be selected.
EX: A SwapSteepener strategy has 4 legs in the Pricing Sheet. Selecting leg 2 will select the entire strategy for a saved template.
Manage Strategy Templates window
Step 1 - Enter the Operation type from a drop down.
"Save as New" will prompt a user to enter a template name, template use value and date specification. Click Save as New after field definitions are chosen.
"Delete" will prompt a user to enter a template name to delete from a drop down list of defined names. Select the desired template and click Delete
"Update Existing" will prompt a user to enter a template name from a drop down to update. Using this function will update an existing template name with values from the selected strategy. Click Update Existing after the template is chosen.
Step 2 - Enter the template name.
This is a free form value when saving as new, and a drop down when updating or deleting a template.
Step 3 - Enter the Template use setting. This function only applies when defining a new template.
Set to "Public" to make the template available to all users in the system.
Set to "Private" to make the template available to users with the private access permissions.
Step 4 - Enter the Date definition. This function only applies when defining a new template.
Set to "Absolute" to lock the defined dates to the strategy template. Defined dates will always be loaded when the template is selected.
Set to "Relative" to the default date (today) loaded to the Pricing Sheet. The Start/End/Expiry dates will remain the same in the template. Opening a template with this setting will load the default date.
Template names will appear in the "Template" property row for the selected strategy. To load the template once the strategy has been added to the Pricing Sheet, double-click the Template cell under the strategy and select the desired template name from the drop-down list. Strategy template names will also appear for selection in the Pricing Grid under the selected product in the "Template" field.
To store trade keywords with the template, add the keyword names to the domain "tradeTmplKeywords".
Refer to the "Pricing Grid" documentation for more details.
7. Pricing Script Trade in the Pricing Sheet
A user can build a strategy using a Pricing Script.
Ⓘ [NOTE: Only Calypso-approved pricing scripts are supported]
Please refer to Calypso Pricing Script documentation for details on creating pricing scripts.
A base strategy is provided in the Strategy Builder when selecting a Script strategy. You can choose Pricing Script (single leg) or Pricing Script Swap (two legs).
The payout is selected from the Payout property.
» | Select the a Payout definition from the dropdown. |
» | Configure the strategy attributes as desired. |
» | Name the strategy by clicking Save Strategy as New. |
After the strategy has been defined, it can be added in Configuration > Profile Configuration.
7.1 Trading with the Pricing Script in the Pricing Sheet
A user will be able to price and save trades using the saved strategy. Configure the user layout as needed.
Entering trade details and right clicking the trade will allow a user to choose the Supplemental panel. Trade details are available here.
The supplemental panel displays five tabs:
Supplemental tab for FX TARF SCOT trade
The Pricing Script tab will display the payout formula currently in use. This panel is cannot be edited.
The Event Grid tab will display all event dates by defined event. It will also display the Accrual schedule and the product start date.
The Script Results tab will display measure results by trade date and time.
The Resets tab will display any resets associated with the trade.
The Complex Variables tab will allow a user to enter variables that cannot be displayed in the Pricing Sheet.
EX: Basket underlyings have input variables that cannot be entered in the Pricing Sheet. These values can be entered in the Supplemental panel.
» | Enter basket variables in the Complex Variables tab. |
Cashflows for Pricing Script trades are displayed on the Events panel.
7.2 Pricing Script Lifecycle Events
Lifecycle events available for Pricing Script trades in the Pricing Sheet are:
- Physical Delivery
- Knock Out
- Knock In
- Redemption
- Structured Event
8. Exotic Structure Trades in the Pricing Sheet
The Pricing Sheet supports pricing and saving exotic structures. You can define exotic payout formulas and add them to a Exotic Swap or Exotic Structured Flow strategy in the Strategy Builder. Swaps will have two configurable legs while a structured flow will have one.
Define exotic structures from the Calypso Navigator in Configuration > Product > Exotic Type Creator. The exotic leg type will be available for selection in the Leg Type attribute.
Strip generation is not supported for exotic type strategies.
Example Exotic Swap
» | Define an exotic structure. |
» | Select the exotic structure type in the Strategy Builder. |
» | Select the exotic definition from the Leg Type dropdown. |
» | Configure additional attributes as needed. |
» | Name and Save the strategy. |
» | Add it to the user profile menu in Configuration > Profile Configuration. |
Variables are set on eXSP strategies in Supplemental Panel of the Pricing Sheet. If variables are not set, the strategy will display a "Variables Not Set" message for the attribute.
9. Sample Usage
The following example shows how to define an interest rate swap butterfly in the Pricing Sheet.
Choose Help > View Help in the Pricing Sheet for complete details.
Pricing Sheet - Swap Butterfly