Skip to main content

📊 Limit Rule Template

Limit Rule Template is used by admin user or member to define the exposure on traded for different limit types available in the system like Gross Exposure, Buy Gross Exposure, Sell Gross Exposure, Turnover, Buy Turnover, Sell Turnover, Net Purchase, Net Sale, Net Write, Net Premium and Margin based on Multiplier with different limit inclusions or fixed value.

📋 Limit Types

Member can define the limit rules for following Limit Types:

Limit Type 📊Definition 📝
Gross ExposureGross exposure is sum of open Position value
Buy Gross ExposureBuy Gross exposure is sum of Buy open Position value
Sell Gross ExposureSell Gross exposure is sum of Sell open Position value
TurnoverTurnover is sum of total buy order value and total sell order value
Buy TurnoverBuy Turnover is sum of total buy Order value
Sell TurnoverSell Turnover is sum of total Sell Order value
Net PurchaseNet Purchase is sum of open buy position value
Net SaleNet Sale is sum of open Sell position value
Net PositionNet Position is sum of open position value
Net PremiumNet Premium is sum of Options contract open buy order value
MarginMargin is the utilization of order value as per margin defined
Span OnlySpan Only is the utilization of Span value

Key Configuration Points

  • Member can create Limit Rules for above mentioned Limit Type based on Various needed combination on Segment, Instrument & Product
  • Member can define limit rule either based on multiplier or fixed value i.e. for single limit type either rule can be defined based on multiplier or fixed value. In case of multiplier member need to select the deposit head
  • Member shall not be able to create duplicate rules of same combination. Combination here is Limit Type, Segment, instrument, Product & Deposit Head

⚙️ Template Creation

Limit Inclusion for different limit types should be set across combination of Segment, instrument and Product type with multiplier or value in template format.

System should have a field to create, view and fetch Product Template.

Control Name 📋Control Type ⚙️Business Logic 📝
Product TemplateEntry field + Drop down list·System should allow to enter the Template Name
·Numeric, Character, Special Character and Spaces are allowed to create the template Name
·Template Name should not be more than 20 characters
· Template Name list should be displayed in ascending order
·Duplicate template name creation should not be allowed
·System should sort the template names from the list on search of name
·System should fetch and display the available records in the limit type gird view as per the template name selected in this field.
·System should allow to create multiple limit rule template with different template name.
SaveButton·On click of SAVE button, records added for the Template should get saved into the system.
·Popup message should be displayed while on click of SAVE button without entering the template name. Popup String should be like "Template Name should not be blank'
Save AsButton·"SAVE AS" option is used to create the copy of existing template with new template name with a small modification in the records available in the existing template (or) without any modification.
·"Save As" option should get enable while after selecting the template Name in the "product template" drop-down list
·On Click of "Save As" button- system should popup a child Window with label as: "Product Template" and an entry field to enter the 'New template Name' with "OK" and "CANCEL" options.
· If "OK" is selected, then new template should get saved into the system with all limit rules else if "CANCEL" is selected then Child window should get closed without saving the record.
·System should validate the New template name with the existing templates available, if same name is entered, then system should popup an alert message as "Template Name Already Exists"

📝 Template Configuration Fields

Control Name 📋Business Logic 📝
Template Name
  • Control Type: Entry Field + Drop-Down list
  • Should allow to enter the Template Name with Alpha Numeric and allowable Special Characters
  • Template Name should not be more than length mentioned in API
  • Duplicate template name creation should not be allowed
  • Should display the list of Template Name on search of Key Name
  • System should allow to add\remove\update the scrips under the created template.
  • System should fetch and display the available records in the limit type gird view as per the template name selected in this field
  • System should allow to create multiple limit rule template with different template name.
  • Templates created here should be displayed in the "Template Mapping View" to map with entity \user.
Save
  • Control Type: Button
  • On click of SAVE button, records added for the Template should get saved into the system
  • Popup message should be displayed while on click of SAVE button without entering the template name. Popup String should be like "Template Name should not be blank'.
Save As
  • Control Type: Button

· "SAVE AS" option is used to create the copy of existing template with new template name with a small modification in the records available in the existing template (or) without any modification.
·"Save As" option should get enable while after selecting the template Name in the "product template" drop-down list
·On Click of "Save As" button- system should popup a child Window with label as: "Product Template" and an entry field to enter the 'New template Name' with "OK" and "CANCEL" options.
· If "OK" is selected, then new template should get saved into the system with all limit rules else if "CANCEL" is selected then Child window should get closed without saving the record.
·System should validate the New template name with the existing templates available, if same name is entered, then system should popup an alert message as "Template Name Already Exists"

🔧 Combination of Selection option to Add records to the Product Template

Control Name 📋Control Type ⚙️Business Logic 📝
Limit TypeDrop Down List·Should display the list of limit types available in the system

Note: Refer below table to get the list of limit types
Market SegmentDrop Down List·Should display the list of Market Segment available in the system based on the license
·If license is update with New Segment, same should display here in the Drop-down list
·"All" option should be available in the drop-down list – "All" refers to clubbing of All the Market Segment available in the system
·"All Equity" option should be available in the drop-down list – "All Equity" refers to clubbing of All Equity Market Segment available in the system
·"All FNO" option should be available in the drop-down list – "All FNO" refers to clubbing of All Derivative Market Segment available in the system
·"All CDS" option should be available in the drop-down list – "All CDS" refers to clubbing of All Currency Market Segments available in the system
·"All COM" option should be available in the Drop-down list – "All COM" refers to clubbing of All Commodity Market Segment available in the system.
Base exchange shall also be available in Market Segment drop-down field.
Instrument NameDrop Down List·Should display the list of Instruments available in the system
·If New instrument type is added by the member for Limit Rule Template- Same should be displayed here in the dropdown list
Product typeDrop Down List·Should display the list of Product types available in the system
·If New product type is added by the member for Limit Rule Template- Same should be displayed here in the dropdown list
Limit InclusionDrop Down + Multi Selection checkbox option·Should display the list of Deposit heads available in the system
·If new deposit head is added or Existing deposit head is renamed by the admin user in "Deposit Master" window- Same should be displayed here in the drop-down list
·Check box option should be available against each deposit head available in the drop-down list
·By default, all checkbox should be "Un-Checked"
MultiplierEntry Field·Should allow to enter only numeric value. Characters and special characters should not be allowed.
·By default, value should be "1"
·Maximum of 3 digits should be allowed to enter followed by 4 digits after decimal (999.9999)
·If Admin user enters value in "Value" field, then this field should be disable and data entered in this field should be rollback to default.
·If Admin user makes the "Value" field as Blank or 0.0000, then this field should get enable.
·System should allow to enter the multiplier between the range of 0.0001 to 999.9999
·System should allow to increment/ decrements the values using Up/down arrow key in the keyboard.
·System should not allow to Add the record with Multiplier without selection of data in "Limit Inclusion" drop down list.
·A popup alert message should be displayed while adding record with Multiplier without selecting the deposit head in "Limit Inclusion" drop-down with message string as: "Limit inclusion is not selected" and focus should be on "Limit Inclusion" Drop-down
AddButton·On Click of Add button, Selected options in the drop-down list like (limit type, Market Segment, Instrument name, product Type, limit inclusion, Multiplier) should be added to the Limit type grid view
·On Click of "Add", If Same combination record is already available in the system for the template, then system should display an alert toaster message

📊 Limit Type Grid view

Limit type grid view should display the list of records added in the template by admin user.

Following are the List of columns should display in grid view:

Column Header 📋
Limit Type
Segment
Instrument
Product
Limit Inclusion
Multiplier
Delete

✅ Validation

  • System should validate the Limit rules in the templates in priority sequence of segment configured by the member.
  • System should validate the Limit rules in the templates in priority sequence of Instrument configured by the member.
  • System should validate the calculated exposure against the defined limit in the sequence of:

[Gross Exposure > Buy Gross Exposure > Sell Gross Exposure > Turn over > Buy Turnover > Sell Turnover > Net Purchase > Net Sale > Net Position and Net Write] according to the limit types available in the template.

  • System should compute the Exposure on all the available SIP Combination in the mapped template where the scrip falls.
  • System should validate only the Limit types which is available in the template mapped to the entity/user of all SIP Combination.
  • System should Compute the Exposure only for the Limit rules available in the mapped template of respective User/Entity.
  • System should maintain the computed utilization of each Limit Rule for all SIP Combination available in the template.
  • System should compute the exposure on all hierarchy level (i.e. Client, Dealer, branch, Zone, Member) if Limit Rule template is mapped to a respective entity.
  • Exposure computed for each limit type should get validated against the limit defined for the respective limit type in the limit rule template.
  • Limit template for these exposures can be defined either based on multiplier so accordingly RMS System shall validate the calculated exposure against the defined limit for respective exposure (Limit Type) and SIP Combination.
  • RMS System shall validate the calculated exposure for each SIP Combination which is mentioned in Limit Rule Template.
  • System shall PASS or FAIL these checks accordingly.
  • PASS in case calculated value is less than or equal to the defined value for respective Exposure (Limit Type) and SIP Combination. In case of validation is passed then Validation shall be moved to next level of check
  • FAIL in case calculated value is greater than from defined value for respective Exposure (Limit Type) and SIP Combination. In case of validation is failed then System shall be rejected such order with rejection reason mentioned in rejection template for respective rejection type.

📐 Computation Logic of Exposure

All type of Exposures should get computed by the system on contract level based on the position available for the user/entity.

Assume following orders are available in the system.

Order Details

Ord.No.SegmentB/SSymbolProductQtyPriceUserStatus
1NSE EquityBuyACCMargin10450CLI1Partially Traded with 6 Qty
2NSE EquitySellACCMargin6530CLI1Fully Traded

Gross Exposure

Gross Exposure is the Sum of Contract level open position.

As per orders placed – Max Buy Net Qty = 4 which is greater than 0

whereas gross exposure is derived as Max (abs (4500 - 3180), abs (4500 – 3180), abs (2700 – 3180), (2700 - 3180)) = Max (1320, 1320, 480, 480) = 1320

Gross Exposure Value = 1320

Buy Gross Exposure

Buy Gross Exposure is the Sum of Contract Level Buy Open position.

As per orders placed – Max Buy Net Qty = 4 which is greater than 0

Whereas buy gross exposure is derived as Max ((4500 - 3180), (4500 – 3180), (2700 – 3180), (2700 - 3180)) = Max (1320, 1320, -480, -480) = 1320

Buy Gross Exposure Value = 1320

Sell Gross Exposure

Sell Gross Exposure is the Sum of Contract Level Sell Open position.

As per orders placed – Max Sell Net Qty = 0

Sell Gross Exposure Value = 0

Net Purchase

Net Purchase computation is the Sum of Open position value across contract if open position is on buy side.

As per orders placed – Max Buy Net Qty = 4 which is greater than 0

Whereas Net-Purchase is derived as Max ((4500 - 3180), (4500 – 3180), (2700 – 3180), (2700 - 3180)) = Max (1320, 1320, -480, -480) = 1320

Net Purchase Value = 1320

Net Sale

Net Sale computation is the Sum of Open position value across contract if open position is on Sell side.

As per orders placed – Max Sell Net Qty = 0 which is not greater than 0, Whereas Net-Sale is derived as '0'

Net Sale Value = 0

Net Position

Net Position computation is the Sum of Open position value across contract.

Max Net Qty = Max (4,4,0,0) = 4 which is not equal to '0' then Max of (1320, 1320, 480, 480) = 1320

Net Position Value = 1320

Turn Over

Turnover computation is Applicable for all available segment in the system other than Mutual Fund and OFS.

FormulaCalculation
Turnover = OBV + OSVTurnover = 4500 + 3180

Turn Over = 7680

Buy Turn Over

Buy Turnover computation is Applicable for all available segment in the system other than Mutual Fund and OFS.

FormulaCalculation
Buy Turnover = Sum of All (OBV)Buy Turnover = 4500

Buy Turn Over = 4500

Sell Turn Over

Sell Turnover computation is Applicable for all available segment in the system other than Mutual Fund and OFS.

Formula:

FormulaCalculation
Sell Turnover = Sum of All (OSV)Sell Turnover = 3180

Sell Turn Over = 3180

Net Premium

User has Daily Buy and Sell Pending Order

Order Placed on Contract: NSEFO_ACC_EXP1_SP:1200_OPTIONTYPE: CE

Daily Buy Price: 100 and Daily Sell Price: 120

DOBQDOBVDOSQDOSVOBQ-OSQOBQ-TSQTBQ-OSQTBQ-TSQOBV-OSVOBV-TSVTBV-OSVTBV-TSV
101000101200010-100-2001000-12000
ParameterComputed Value
Net Premium1000

💰 Limit Type Examples

Limit Type- Margin

Example 1: For AllFAO in LRT all scrip / contracts margin rule added with cash deposit tick in LRT with multiplier 1

Lets assume cash deposit is 5 Lakhs

Place 10 lot in nifty buy such that span = 300000 and exposure = 200000 per lot Total span + exposure for the order is 5L ( Span 3L & exposure 2L )

Buy order will be passed as our margin limit is 1 times of cash which is 5 lakhs.

Limit Type- Span Only

Example 1: For AllFAO in LRT all scrip / contracts margin rule added with cash deposit tick in LRT with multiplier 1

Lets assume cash deposit is 5 Lakhs

For AllFAO in LRT all scrip / contracts Span margin rule added with cash deposit tick in LRT with multiplier 0.5

Place 10 lot in nifty buy such that span = 300000 and exposure = 200000 per lot Total span + exposure for the order is 5L ( Span 3L & exposure 2L )

Buy order will be rejected due to span margin shortfall as our span limit is 0.5 times of cash which is only 2.5 Lakhs

🎯 RRT RULE

As per this rule configuration, System should calculate the and validate the exposure

Following are the list of variables for this rule

Category 📋Variable Name 📝Variable Type ⚙️Variable Value 📊Default 🔧
ExposureRestrict Fresh Order Based on TurnoverCheck-BoxEnable / DisableDisable
ExposureRestrict Order Based on Buy TurnoverCheck-BoxEnable / DisableDisable
ExposureRestrict Order Based on Sell TurnoverCheck-BoxEnable / DisableDisable
ExposureRestrict Order Based on Gross ExposureCheck-BoxEnable / DisableDisable
ExposureRestrict Order Based on Buy Gross ExposureCheck-BoxEnable / DisableDisable
ExposureRestrict Order Based on Sell Gross ExposureCheck-BoxEnable / DisableDisable
ExposureRestrict Order Based on Net PurchaseCheck-BoxEnable / DisableDisable
ExposureRestrict Order Based on Net SaleCheck-BoxEnable / DisableDisable
ExposureRestrict Order Based on Net PositionCheck-BoxEnable / DisableDisable
ExposureRestrict Order Based on Net PremiumCheck-BoxEnable / DisableDisable
MarginMarginCheck-BoxEnable / DisableDisable

Variable Applicable to execute this

Variable Name 📋Variable Type ⚙️Variable Value 📝Source 📍Description 📝
Consider Strike Price in Exposure Calculation for Buy OrderDrop down Multiselect1. Turnover
2. Gross Exposure
3. Margin
Master Config --> General --> miscif this option is enabled then system shall consider strike price in calculation for Buy Order else not
Consider Strike Price in Exposure Calculation Sell OrderDrop down Multiselect1. Turnover
2. Gross Exposure
3. Margin
Master Config --> General --> Miscif this option is enabled then system shall consider strike price in calculation for Sell Order else not

🗺️ LRT Template mapping

LRT Template created here will be allowed to Map to the entities like (Client, Dealer, Branch and Member) as well as for users through "Template Mapping" window.