Skip to main content

🚫 Scrip Basket Restricted Template

This template is used to restrict trading in selected set of scrips for one or more selected product type. Restriction Type can be either Fresh Buy or Fresh Sell or Square off or Rollover.

One or more Template can be mapped to an entity.

⚙️ Template Creation

Scrip Basket Restriction Template should be created with the combination of Market Segment, Instrument, Symbol, Series, Contract type, Expiry Date, Strike Price, Option Type. User can select single or multiple Restriction type, and can assigne an expiry date to it.

Either one or multiple scrip basket restricted template is allowed to map to the user\entity in template mapping window.

System should have a following set of fields to create, view and fetch Scrip Basket Restriction Template.

🔧 Template Controls

📝 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 "Restricted Scrip" grid view as per the template name selected in this field.
- System should allow to create multiple scrip basket restricted 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, scrip basket rules 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'
- On click of SAVE button, system should validate following conditions: Minimum one restriction type should be selected while saving the rule.
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" dropdown 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 scrip basket 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".

📦 Scrip Basket Rule Combination Selections

System should have following drop-down options to set applicable margin at scrip level

🔧 Control Name📝 Business Logic
Market Segment- Control Type: Drop-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 Dropdown list.
- "All Equity" option should be available in the dropdown list – "All Equity" refers to clubbing of All Equity Market Segment available in the system
- "All FNO" option should be available in the dropdown list – "All FNO" refers to clubbing of All Derivative Market Segment available in the system
- "All CDS" option should be available in the dropdown list – "All CDS" refers to clubbing of All Currency Market Segments available in the system
- "All COM" option should be available in the Dropdown list – "All COM" refers to clubbing of All Commodity Market Segment available in the system.
- Both Base exchange and Combined exchange should be available in Market Segment field.
Instrument Type- Control Type: Drop-Down list
- Should display the following Instrument type available in the dropdown.
- Future
- Option
Symbol- Control Type: Drop-Down list
- System should populate the list of symbols available for the respective segment and Instrument type selected.
- On entering the Keyword of the symbol name-system should fetch and populate the list of Scrips\Contracts available for the segment selected in "Market Segment" dropdown.
- (i.e.: if Market Segment is selected as "NSE Equity" and on search of 'AC' – system should populate "ACC" and for derivative segment is market segment "NSE Derivative" and on search of "APO"-System should populate "APOLLOHOSP"," APOLLOTYRE")
- For Derivative, Currency and commodity like segments, future and option contracts should get loaded on the same time.
Series- Control Type: Drop-Down list
- This field should get enable only for equity like segments i.e.: when Market Segment is selected as "All, All Equity, NSE Equity, BSE Equity and MSE Equity".
Contract Type- Control Type: Drop-Down list
- This field should get enable for derivative, currency, commodity like segments selected in the "Market Segment" drop-down.
- Drop-down list should contain the items like "Weekly" and "Monthly".
Expiry Date- Control Type: Entry for Date in DD/MM/YYYY format and Calendar Selection
- This field should get enable for derivative, currency, commodity like segments selected in the "Market Segment" drop-down.
- Drop-down should display the list of weekly Expiry Dates available in the system for the selected contract as "Current", "Current+1", "Current+2" till "Current+15"
- "ALL" option Should be available in the List. "ALL" refers to Clubbing of All Expiry Date available for the contract.
Strike Price- Control Type: Drop-Down list.
- This Drop down will have "ALL" option and disabled.
- This field should be mandatory only if Option contract is selected in the scrip combination.
- Send "-1" in strike price in API for "ALL".
- This field should get enable for derivative, currency, commodity like segments selected in the "Market segment drop-down.
Option Type- This field should get enable for derivative, currency, commodity like segments selected in the "Market Segment" drop down.
- Drop-down list should display the list of Option type available in the system (i.e.: CE and PE) for the contract loaded in "Symbol" and "Expiry Date" field.
- By default, field should be blank.
- This field should be mandatory only if Option contract is selected in the scrip combination.
ITM%(Away from the Spot)- Control Type: Entry percentagefield.
- System should allow to enter In The Money Percentage.
- This field is applicable for defining the ITM Percentage for Option Contracts.
- By Selecting Strike price as 'ALL', ITM% and OTM% fields shall get enable and allows to define the percentage to derive the contract range and validated as per new logic(i.e., Validate based on ITM/OTM range contract).
- By Selecting respective Strike price(other than 'ALL'), ITM% and OTM% shall not get enable and validate as per existing logic(i.e., Validate only for the respective strike price contract)
- By default value should be 0
OTM%(Away from the Spot)- Control Type: Entry percentagefield.
- System should allow to enter OUT Of Money Percentage.
- This field is applicable for defining the OTM Percentage for Option Contracts.
- By Selecting Strike price as 'ALL', ITM% and OTM% fields shall get enable and allows to define the percentage to derive the contract range and validated as per new logic(i.e., Validate based on ITM/OTM range contract).
- By Selecting respective Strike price(other than 'ALL'), ITM% and OTM% shall not get enable and validate as per existing logic(i.e., Validate only for the respective strike price contract)
- By default value should be 0
Product Type- Control Type: Drop-Down list.
- Should display the list of Product types available in the system.
- If New product type is added by the member in the system, then same should be displayed here in the dropdown list.
- Following item should be displayed in the drop-down list-
- Margin
- Delivery
- Intraday
- Carryforward
- Margi-Plus
- Bracket Order
Restriction Type- Control Type: Multi-select Drop-down
- By default, this field should be blank.
- Should display the following list of restriction type in the dropdown.
- Multi Selection Checkbox Option Should be provided against each items of Restriction Type.
- By default, Check box option should be Unchecked.
- At least one item of the combo, needs to be selected.
Restriction Till- Control Type: Entry for Date in DD/MM/YYYY format and Calendar Selection
- By default, this field should be blank.
- This field should not be a mandatory
- Calendar view should be displayed to select the date
- Past Dates should be in disable mode in calendar view.
- Past Dates should not be allowed to enter.

Action Controls

🔧 Control📦 Type📝 Business Logic
AddButton- Control Type: Button
- On Click of Add button, Selected options in the dropdown list like (Market Segment, Instrument name, Symbol, Series, Contract Type, Expiry Date, Strike Price, Option Type should be added to the Scrip Basket 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 Popup Window.
- (i.e. Combination of Segment, instrument, Symbol, Series, Contract type, Expiry Date, Strike Price, Option type and Restriction type)
- Message string in popup window should be like "Record already available for Combination in the system- Do you want to replace?" with an option of "YES" and "NO"
- If Admin user selects the option as "YES", then system should delete the Record available in the selected template with the same combination and should add the new record of the selected combination.
- If Admin user selects the Option as "NO", then system should not make any changes to the record available in the template and popup window should get close.
RemarksEntry field- Control Type: Entry field
- Maximum 50 characters should be allowed to enter in the Remarks
- Allow to enter Remarks with Character, numeric and special characters while adding\updating the deposit\limit.
- System should display the last updated remarks as per the template selection.
- Should allow to modify the remarks.

📊 Scrip Restriction Grid view

Scrip Restriction grid view should display the list of rules added for the user.

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

📋 Column Header
Market Segment
Instrument Type
Product Type
Symbol
Series
Contract Type
Expiry Date
Strike Price
Option Type
Restriction Type
Restriction Till

🔗 Template mapping

Scrip Basket Restricted 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.

✅ Validation

Once a scrip is identified in Scrip Basket Restricted Template then system shall validate restriction type and restriction date.

System shall check only active validation i.e. restriction date is greater then or equal to current date. in case of amo /pmo order, system shall refer respective variable mention above.

Based on the Validation Type, System shall either PASS or FAIL the order for this rule.

Validation Type:

🚫 Restriction Types

🔒 Restriction Type📝 Business Logic
Fresh BuyIn case such variable is selected then system shall not allow to place fresh buy order, This variable shall be checked for Buy Transactions
Fresh SellIn case such variable is selected then system shall not allow to place fresh sell order. This variable shall be checked for Sell Transactions
Buy Intraday Position Square offIn case such variable is selected then system shall not allow to place Sell order against intraday buy position
This Variable shall be checked for Sell Transaction
Sell Intraday Position Square offIn case such variable is selected then system shall not allow to place Buy order against intraday buy position
This Variable shall be checked for Buy Transaction
Buy Uploaded Position Square offIn case such variable is selected then system shall not allow to place Sell order against uploaded buy position
This Variable shall be checked for Sell Transaction
Sell Uploaded Position Square offIn case such variable is selected then system shall not allow to place Buy order against uploaded buy position
This Variable shall be checked for Buy Transaction
This is not applicable for CASH,OFS,MF SEGMENT
RolloverThis variable shall be checked for buy as well as sell transaction and applicable only for derivative segments.
In case such variable is selected This is applicable only for Derivative Segments(FNO, CURR & COMM)
Rollover shall be checked when Fresh Buy or Fresh Sell or Both is selected
DMA BuyThis variable shall be checked for Buy Order of IOB Transaction
DMA SellThis variable shall be checked for Sell Order of IOB Transaction

📊 ITM%(Away from the Spot) and OTM%(Away from the Spot)

  • Based on the percentage defined in ITM % and OTM % field, system shall derive the contract range to validate the variable selected in restriction type(fresh/square-off).

Percentage Framework Logic

🔢 S.NO📊 Strike price📈 ITM%📉 OTM%📝 Percentage Framework logic
1ALL0%100%For ITM- Orders gets rejected
For OTM-All orders will get pass
2ALL100%0%For ITM-All orders will get pass
For OTM-Orders gets rejected
3ALL100%100%All ITM & OTM- All ITM & OTM orders will get pass
4ALL0%0%Orders will get reject for all the Strike price
  • Example - Assume Underlying LTP of a contract is 1000 and ITM % is set as 10% and OTM % is set as 10%
  • On applying ITM 10% and OTM 10% on LTP: 1000,
    • 1000*10% = 100 = 1000 - 100 = 900
    • 1000*10% = 100 = 1000 + 100 = 1000
  • ITM contracts shall be derived as:
    • For CE, In the Range contract : 900 to 1000 & Out of the Range 600 to 850
    • For PE, In the Range contract : 1000 to 1100 & Out of the Range 1150 to 1400
  • OTM contracts shall be derived as:
    • For CE, In the Range contract : 1000 to 1100 & Out of the Range 1150 to 1400
    • For PE, In the Range contract : 900 to 1000 & Out of the Range 600 to 850
  • Assume "Fresh Buy" is restricted in restriction type, accordingly system shall restrict fresh buy order in "Out of the Range Contracts" of ITM and OTM.
  • "In the Range contracts" shall not be applicable for any validation and order shall be allowed.

🎛️ RRT RULE

As per this rule configuration, system should allow/disallow the scrip whether same is allowed for trading either to place fresh order or to place only square off order based on the restriction type mentioned against scrip.

Following are the list of variables for this rule

📝 Variable Name⚙️ Variable Type🔧 Variable Value🔄 Default
Restrict Order based on Scrip Basket RestrictedCheck-BoxEnable / DisableDisable

📋 Example:1

Investor is having following position.

ACC 10 BUY INTRADAY POSITION

ACC 5 BUY UPLOADED POSITION

Member defined following restriction type validation for the above mentioned scrip:

FRESH BUY BUY INTRADAY SQARE OFF BUY UPLOADED SQAREOFF ROLLOVER

UNCHECK CHECK UNCHECK UNCHECK

Order place to sell 10 qty system will reject order against Buy intraday square off is checked

Order place to sell 5 qty system will reject order as system adjust it with 10 intraday buy position.

Order place to sell 15 qty system will reject order as system adjust with 10 intraday buy position and if still buy upload squareoff is uncheck than also as order is single it will reject.

Order place to buy 10 qty. order will pass as fresh buy is uncheck.

🔓 ByPass Basket Scrip

Currently as per scrip basket restricted rule, member is been able to not allowing to trade in certain scrips to a group. However based on business need, if he wants to exclude one scrip for a specific user, we are introducing "Bypass Basket Scrip" concept, in which: -

  • Member will be able to assign 1 scrip per user, in which above mentioned restriction will not happen.
  • Member need to select tradable scrip in the selection. (ExchangeId + Token)
  • Other applicable rules including margin will be validated as usual.
  • This will be available for the day only. The same will be cleaned on BOD.
  • Only one scrip is supported. This can be changed multiple time in a day, as per member's requirement.

"Bypass Basket Scrip" concept. For this in Entity Master UI (Also in EntityDashboard), we will have a scrip selection. In that User can select any scrip which he wants to bypass.

Example:

🔑 Bypass Token📊 Order in NSE EQ📊 Order in BSE EQ
NSE EQ-RelianceBypassAs per rule setting-Order reject
BSE EQ-RelianceAs per rule setting-Order rejectBypass
ALL EQ-RelianceAs per rule setting-Order rejectAs per rule setting-Order reject

Case 1 : In scrip basket restrict we have restricted Idea token in EQ

  • when we place order in following scrip we will get rejection.
  • Now if we select idea in bypass basket scrip then order will get passed.