Skip to main content

📋 Risk Rule Template

Risk Rule template has a lot of options, which are divided into 6 sections. This document will drill down into each one of the options.

Table of Contents


🔒 RMS

Restrict Order based on Exchange Freeze Quantity

Description: Exchange Freeze Quantity refers to the maximum number of shares or contract that a customer can buy or sell in a single order. Essentially it's a limit on a single order size to reduce potentially market disrupting trades being placed in one-go. The freeze quantity is received in exchange scrip master against respective scrip.

Applicability: This rule is applicable for CASH, FNO, Currency, Commodity and OFS Segment and not applicable for MF Segment.

⚙️ Implementation

  • If Rule is ON – System should Validate, and Reject the Order based on the Order quantity placed against Exchange Freeze Quantity
  • If Rule is OFF – System should not Validate the Order against Exchange Freeze Quantity

Exchange Freeze Quantity data will be received from Scrip Master file against each scrip.

Assume following data received through scrip master file:

📋 Cont📊 Seg.🔑 Sym📅 Exp. Date📦 Exchange Freeze Quantity
1NSE-EQTCS-1000
2NSE-EQACC-1000
2BSE-FNOINFY15-SEP-20203500

Assume that Rule is ON

Place Order:

📋 Cont📊 Seg.🔑 Sym💱 Buy/Sell📅 Exp. Date📦 Place Order Qty🟢 Order Status
1NSE-EQTCSBuy-1050Order should get Rejected
2NSE-EQACCBuy-800Order should get PASS
3BSE-FNOINFYSell15-SEP-20203600Order should get Rejected
note

In case of Exchange Freeze Qty value in the Scrip Master is received as '0' against respective token. System should not validate and restrict the order from the contract with freeze qty value as '0'.


Restrict Order based on Exchange Daily Price Range (DPR)

Description: DPR is defined as the Daily price range for a particular scrip by the exchanges. DPR sets the maximum and minimum price range for the scrip and any orders outside that range will be rejected by the exchange.

Source of data: DPR data will be received through offline and online mode against each scrip

  1. Offline – Through Scrip Master
  2. Online – Through broadcast during intraday trading session

⚙️ Implementation

  • If Rule is ON – System should Validate, and Reject the Order based on the Order Price placed against DPR
  • If Rule is OFF – System should not Validate the Order against DPR

Assume following data received through scrip master file and through Broadcast:

📋 Cont📊 Seg.🔑 Sym📅 Exp. Date📊 DPR
1NSE-EQTCS-200-300
2NSE-EQACC-350-500
3BSE-FNOINFY15-SEP-20201000-2200

Assume that Rule is ON

Place Order:

📋 Cont📊 Seg.🔑 Sym💱 Buy/Sell📅 Exp. Date💰 Place Order Price🟢 Order Status
1NSE-EQTCSBuy-250Order should get PASS
2NSE-EQACCBuy-345Order should get Rejected
3BSE-FNOINFYSell15-SEP-20202250Order should get Rejected

Restrict Order based on Exchange Maximum Single Transaction Value

Description: Maximum single transaction value is a restriction to manage risk at exchange level.

Source of data:

  • Max Single Transaction value data for MCX, NCDEX and Currency Segment will be received through Scrip Master File against each scrip. For NSE/BSE it might or might not be available in scrip master.
  • If Max single transaction value is not available for the scrips in the scrip master file, then system will consider the value configured in this rule/variable in the Master Config. The default value set by ARMS is 100000000.
  • If Max single Transaction value is available in Scrip Master file as well as Value is configured in the Master Config Variable, then system will consider the value specified in the Scrip Master file.
  • In case, if Value in the scrip Master file is mentioned as 0 or -1, then system will not consider the value specified in the scrip master file and in this case, it should consider the value configured in this rule.
  • System will refer the Value configured for the respective SIP in which the order falls.

⚙️ Implementation

  • If Rule is ON – System should Validate, and Reject the Order based on the Order Value placed against defined Max Single Transaction Value
  • If Rule is OFF – System should not Validate the Order against Max Single Transaction Value

Assume following data received through scrip master file and configured in System:

📋 Cont📊 Seg.📦 Ins🔑 Prod💰 Max Single Transaction Value configured in this rule
1NSE-EQAll Scrips/ContractsMargin6000
2All EquityAll Scrips/ContractsMargin8000
3MCXAll FutureCarryforward9000
4NCDEXAll FutureCarryforwardNot Configured in this Rule

Assume following Value available in the Scrip Master File:

📋 Cont📊 Seg.🔑 Sym📅 Exp. Date💰 Max Single Transaction Value available in Scrip Master File
1MCXGOLD15-SEP-202010000
2MCXSILVER15-SEP-20200
3NCDEXSILVER15-OCT-202012000

Assume Sequence Priority Master configured for Equity as ALL Equity >> All Scrips/Contracts >> Margin

Assume that Rule is ON

Place Order:

📋 Ord.📊 Seg.🔑 Sym💱 Buy/Sell📦 Qty💰 Price📅 Exp. Date💵 Order Value⚙️ System should Refer Max Single Transaction Value🟢 Order Status
1NSE-EQTCSBuy101000-100008000 (Rule)Order should get REJECTED
2NSE-EQACCBuy10700-70008000 (Rule)Order should get PASS
3MCXGOLDBuy10120015-SEP-20201200010000 (Scrip)Order should get REJECTED
4MCXSILVERBuy10100015-SEP-2020100009000 (Rule)Order should get REJECTED
5MCXNCDEXBuy10100015-SEP-20201000012000 (Scrip)Order should get PASS

📝 Transaction

Restrict Fresh Order based on Order validity

Description: User can restrict orders based on order validity (i.e., Day, IOC, GTC, AON etc…)

⚙️ Implementation

Custom variables for this rule:

🔑 Variable Name📦 Variable Type📊 Variable Value⚙️ Default
Normal orderMultiselect Combo0 - select, 1 - Day, 2 - IOC, 3 - EOS, 4 - GTD, 5 - GTC, 6 - GTT, 7 - AON0
Spread OrderMultiselect Combo0 - select, 1 - Day, 2 - IOC0
Multileg orderMultiselect Combo0 - select, 1 - Day, 2 - IOC0
  1. By default, this rule should be Disable.
  2. This rule is not applicable for Auction Order, Bulk Deal, Block Deal order types.
  3. By default all the orders with any validity is allowed however member can select the required validity to restrict order based on order sources and sip combination.
  4. As per order sources and its associated variable value, system shall allow or disallow order with this validity for particular SIP Combination.
  5. On Enabling the rule, system should not allow to place fresh, square-off and modification of order on the selected validity of respective variable.

Following are the list of Validity type where system should allow to restrict the order:

📋 Validity Type
Day, IOC, EOS, GTD, GTC, GTT, AON

Validity Restriction Rule is applicable for Normal Order, Spread Order and Multi-Leg Order.

Scenario 1 - Normal Order

🔑 Variable Name📦 Variable Type📝 Business Logic
Normal OrderDAY- Untick
IOC- Tick
EOS- Untick
GTD- Tick
GTC- Untick
GTT- Untick
AON- Untick
By default, Variable should be disabled.
As per example:
• System should ALLOW to place Fresh Normal Order in DAY, EOS and GTC Validity type.
• System should ALLOW to Modify the Order in DAY, EOS and GTC Validity type.
• System should ALLOW to place square-off order in DAY, EOS and GTC Validity type.
• System should REJECT the fresh order placed in IOC and GTD validity type.
• System should REJECT the order if member modifies the Validity from DAY to IOC.
• System should REJECT the order if member modifies the Order Qty of Previously placed IOC, GTD Order.
• System should REJECT the order if member modifies the Order Price of Previously placed IOC, GTD Order.
• System should REJECT the Square-off Order in IOC and GTD Validity type.
• This restriction rule is also applicable for orders placed from Bulk Order Entry.
• System should validate and reject the orders based on the Validity Type configured for respective SIP Combination.
• Proper Rejection reason message should be displayed on Order Validity rejection for Normal orders.

Scenario 2 - Multi Leg Order

🔑 Variable Name📦 Variable Type📝 Business Logic
Multi-Leg OrderDAY- Tick
IOC- Un-Tick
By default, this variable should be disable.
As per example:
• System should allow to place 2 Leg and 3 Leg Orders in IOC Validity.
• System should Reject 2 Leg and 3 Leg Orders placed in DAY Validity.
• Multileg Order should get rejected in case any one of the Leg gets rejected.
• Multi Leg order should get rejected for DAY Validity while placing Fresh order, on Modification of order and on placing Square-off Order.
• This restriction rule is also applicable for orders placed from Bulk Multileg Order Entry.
• System should validate and reject the orders based on the Validity Type configured in Multileg Order variable type for respective SIP Combination.
• Proper Rejection reason message should be displayed on Order Validity rejection for Multileg orders.

Scenario 3 - Spread Order

🔑 Variable Name📦 Variable Type📝 Business Logic
Spread OrderDAY- Tick
IOC- Un-Tick
By default, this variable should be disable.
As per example:
• System should allow to place Spread Orders in IOC Validity.
• System should Reject Spread Orders placed in DAY Validity.
• Spread orders should get rejected in case any one of the Leg gets rejected.
• Spread order should get rejected for DAY Validity while placing Fresh order, on Modification of Spread order and on placing Spread Square-off Order.
• System should validate and reject the orders based on the Validity Type configured in Spread Order variable type for respective SIP Combination.
• Proper Rejection reason message should be displayed on Order Validity rejection for Spread Orders.

Validation:

  • System should validate the Rules based on the SIP Combination as per the sequence priority define in the Sequence priority master for Segment and Instrument.
  • By default, all the Transaction Order Validity Restriction Rules should be disable.
  • This rule is applicable for Cash, Derivative, Currency and commodity segments and not applicable for MF and IPO segments.

Restrict Fresh Order based on Order Type

Description: User can restrict orders based on order types and every Order type will be mentioned in the variables (i.e., RL LIMIT, SL LIMIT, RL MKT, SL MKT, Bulk deal, Block deal, Auction Order).

⚙️ Implementation

By default, this rule should be Disable (i.e. Default Variable value as BLANK).

On Enabling the rule, system should not allow to place fresh and modification of order on the selected 'Order Type' of respective variable.

System should allow to select Multiple Order Type through multi select combo option.

Following are the list of Order Type where system should allow to restrict the order:

📋 Order Type
Regular Limit | Regular Market | Stop-Loss Limit | Stop-Loss Market
Block Deal | Bulk Deal | Auction Order

Following are the list of Applicable Order Type and Applicable Segments:

📋 Order Entry Mode📦 Applicable Order Type📊 Applicable Segments
Normal OrderRegular Limit
Regular Market
Stop-Loss Limit
Stop-Loss Market
Block Deal
Bulk Deal
Auction Order
Applicable for all All Segments whereas Auction Order, Block Deal and Bulk Deal Order types are applicable only for Equity segments.
Multi-Leg OrderRegular limit
Regular Market
Applicable for Derivative, Currency and Commodity Segments
Spread OrderRegular limit
Regular Market
Applicable for Derivative, Currency and Commodity Segments

Order Type Restriction Rule is applicable for Normal Order, Spread Order and Multi-Leg Order.

Normal Order Validation

Assume member has set following configuration in the system for an SIP Combination in Risk Rule Template:

🔑 Variable Name📦 Variable Value📝 Business Logic
Normal OrderRegular Limit- Un-Tick
Stop-Loss Limit- Un-Tick
Block Deal- Un-Tick
Auction Order- Un-Tick
Regular Market- Tick
Stop-Loss Market- Tick
Bulk Deal- Tick
• Check box option should be provided against each items of Normal Order Variable.
• By default, all the checkbox option should be Un-ticked.
• System should allow to PASS the normal order for the order type which is Un-ticked and should REJECT the normal order for the order type which is Ticked
Assume, as per the member configuration set in Variable Value Column:
• System should allow to PASS Normal order placed for Order Type: Regular Limit, Stop-Loss Limit, Block Deal, Auction Order
• System should REJECT the Normal Order placed for Order Type: Regular Market, Stop-Loss Market, Bulk Deal
• Fresh Order placed in the Order Type which is selected should get REJECTED (i.e. Regular Market, Stop-Loss Market and Bulk Deal as per example).
• Modification of Order (i.e. either of Qty, Price) in the restricted order type should get REJECTED.
• System should REJECT the order type modification of Normal order from 'RL Limit' to 'RL Market' or 'SL Market' as per configuration set.
• System should REJECT the order type modification of Normal order from 'SL Limit' to 'SL Market' (or) 'RL Market' as per configuration set.
• This restriction rule is also applicable for normal orders placed from Bulk Order Entry.
• System should validate and reject the orders based on the Order Type configured for respective SIP Combination.
• Proper Rejection reason message should be displayed on Order Type rejection for Normal orders.

Multi-Leg Order Validation

Assume member has set following configuration in the system for an SIP Combination in Risk Rule Template:

🔑 Variable Name📦 Variable Value📝 Business Logic
Multi-Leg OrderRegular Limit- Un-Tick
Regular Market- Tick
• Check box option should be provided against each items of Multi-Leg Order Variable.
• By default, all the checkbox option should be Un-ticked.
• System should allow to PASS the Multi-Leg order for the Order Type which is Un-ticked and should REJECT the Multi-Leg order for the Order Type which is Ticked
Assume, as per the member configuration set in Variable Value Column:
• Fresh Multi-Leg Order (i.e 2-Leg or 3-Leg) placed in Order Type- 'Regular Limit' should get PASSED.
• Fresh Multi-Leg order (i.e 2-Leg or 3-Leg) placed in Order Type- 'Regular Market' System should REJECT.
• System should REJECT the Modification of Multi-Leg order (i.e 2-Leg or 3-Leg) placed in the Order Type which is selected (i.e. Regular Market order as per example).
• This restriction rule is also applicable for orders placed from Bulk Multileg Order Entry.
• System should validate and reject the orders based on the Order Type configured in Multileg Order variable type for respective SIP Combination.
• Proper Rejection reason message should be displayed on Order Type rejection for Multileg orders.

Spread Order Validation:

🔑 Variable Name📦 Variable Value📝 Business Logic
Spread OrderRegular Limit- Tick
Regular Market- Un-Tick
• Check box option should be provided against each items of Spread Order Variable.
• By default, all the checkbox option should be Un-ticked.
• System should allow to PASS the Spread Order for the Order Type which is Un-ticked and should REJECT the Multi-Leg order for the Order Type which is Ticked
Assume, as per the member configuration set in Variable Value Column:
• Fresh Spread Order placed in Order Type- 'Regular Limit' should get REJECT.
• Fresh Spread order placed in Order Type- 'Regular Market' System should REJECT.
• System should REJECT the Modification of Spread order placed in the Order Type which is selected (i.e. Regular Limit order as per example).
• This restriction rule is also applicable for Spread orders placed from Multileg Order Entry and bulk Multi-Leg Order Entry.
• System should validate and reject the orders based on the Order Type configured in Spread Order variable type for respective SIP Combination.
• Proper Rejection reason message should be displayed on Order Type rejection for Spread orders.

Validation:

  • System should validate the Rules based on the SIP Combination as per the sequence priority define in the Sequence priority master for Segment and Instrument.
  • By default, all the Transaction Order Type Restriction Rules should be disable.
  • This rule is applicable for Cash, Derivative, Currency and commodity segments and not applicable for MF and IPO segments.
  • This rule should get validated for FRESH buy/sell orders placed from different mode of order entries like Normal Order Entry, Multi-Leg Order Entry, Spread Order Entry, Bulk Order Entry and Bulk Multileg Order Entry.
  • This rule should get validated for MODIFICATION of buy/Sell order from different mode of order entries like Normal Order Entry, Multi-Leg Order Entry, Spread Order Entry, Bulk Order Entry and Bulk Multileg Order Entry.
  • Proper rejection reason should be displayed to the user

Restrict Order

Description: Restrict Order rule is used to restrict the orders, for example, restrict fresh buy or sell order.

⚙️ Implementation

By default, this rule should be Disable (i.e. Default Variable value as OFF).

On Enabling the rule, system should not allow to place Fresh Buy/Sell, Today's Buy/Sell Position Square off, Uploaded Buy/Sell Position Square off.

Rules Name: Restrict Order

🔑 Variable Name📦 Variable Type📊 Variable Value⚙️ Default
Fresh BuyToggleEnable / Disabledisable
Fresh SellToggleEnable / Disabledisable
Today's Buy Position Square offToggleEnable / Disabledisable
Today's Sell Position Square offToggleEnable / Disabledisable
Uploaded Buy Position Square offToggleEnable / Disabledisable
Uploaded Sell Position Square offToggleEnable / Disabledisable
  • Fresh Buy enable means that Fresh Buy Order is not allowed.
  • Fresh Sell enable means that Fresh Sell Order is not allowed.
  • Today's Buy Position Square off enable means that Todays Buy Position square off is not allowed. System will restrict the today's buy position square off (i.e., Sell) order against today's buy position
  • Today's Sell Position Square off enable means that Todays Sell Position square off is not allowed. System will restrict the today's sell position square off (i.e., Buy) order against today's sell position.
  • Uploaded Buy Position Square off enable means that Uploaded (Expiry) Buy Position square off is not allowed. System will restrict the Uploaded buy position square off (i.e., Sell) order against Uploaded buy position
  • Uploaded Sell Position Square off enable means that Uploaded (Expiry) Sell Position square off is not allowed. System will restrict the Uploaded sell position square off (i.e., Buy) order against Uploaded sell position

Validation

Fresh Buy Qty to be considering on following action:

  1. While Placing Buy order in any Scrip where Sell Open Position is Not available.
  2. While Placing Buy Qty greater than the Sell Open Position Qty.
  3. While Modifying Buy Pending Order Qty greater than the Previous Order Qty

Fresh Sell Qty to be considering on following action:

  1. While Placing Sell Order in any Scrip where Buy Open Position is Not available.
  2. While Placing Sell Qty greater than the Buy Open Position Qty.
  3. While Modifying Sell Pending Order Qty greater than the Previous Order Qty.

Today's Buy- Square-off to be consider on following action:

  1. While Placing Sell Order in any Scrip where Buy Open Position is available.

Today's Sell- Square-off to be consider on following action:

  1. While Placing Buy Order in any Scrip where Sell Open Position is available.

Uploaded Buy- Square-off to be consider on following action:

  1. While Placing Sell Order in any Scrip where Buy Open Uploaded Position is available.

Uploaded Sell- Square-off to be consider on following action:

  1. While Placing Buy Order in any Scrip where Sell Open Uploaded Position is available

Example

Assume having following data for User-RET1:

  1. RETK1- NSEEQ-ACC-BUY 10 QTY.
  2. RETK1- NSE FNO-BANKNIFTY-SELL 1 LOT

Assume the following Rule is ON:

🔑 Variable Name⚙️ ON/OFF
Fresh BuyON
Fresh SellOFF
Today's Buy Position Square offON
Today's Sell Position Square offON
Uploaded Buy Position Square offOFF
Uploaded Sell Position Square offON

Place Order:

📋 Cont📊 Seg.🔑 Sym💱 Buy/Sell📅 Exp. Date📦 Qty/lot🟢 Order Status
1NSE-EQTCSBuy-2Order should get REJECTED against FRESH BUY
2NSE-EQRELIANCESell-1Order should get PASS against FRESH SELL
2NSE-EQACCSell-1Order should get Rejected against TODAY'S BUY POSITION SQUARE OFF
3NSE-FNOBANKNFITYBUY15-SEP-20201Order should get Rejected against UPLOADED SELL POSITION SQUARE OFF

Restrict Fresh Order Based on LTP Based Price Band

Description: LTP Based Price Band is used to restrict the order in which the Order Price is out of derived Price range based on the LTP of respective scrips. In case, if LTP is not available for any of the scrip - then system shall consider the Last Close Price of the respective scrip to derive the price range.

Applicability: This rule is applicable for Cash, Derivative, Currency and Commodity Segment and not applicable for OFS, IPO and MF Segments.

Implementation

  • If Rule is ON – System should Validate, and Reject the Order based on the LTP-Based Price Band.
  • If Rule is OFF – System should not Validate the Order against LTP-Based Price Band.

Validation

  • System should not validate the Order from the scrip against this LTP Price Band rule if LTP of the scrip doesn't falls under the 'Lower LTP' and 'Upper LTP' value defined in this rule.
  • System should accept the order if Order Price is within the derived Price range based on current LTP of the scrip and defined LTP Price Band %.
  • In case of Buy Order – System should consider the Buy Lower Range for minimum and Buy Upper Range for maximum price.
  • In Case of Sell Order- System should consider the Sell Lower Range for minimum and Sell Upper Range for maximum price.
  • System should reject the order if Order Price is out of derived price range.

Configuration Example

Assume following data defined in LTP Based Price Band:

📋 Cont🏢 Seg.📊 Instrument📈 Range Start📈 Range End💰 Buy Lower Range💰 Buy Upper Range💰 Sell Lower Range💰 Sell Upper Range
1NSE-EQEQUITY20004000520640

Assume that Rule is ON

Place Order: TCS LTP Price: 3589.65

📊 Calculation📈 Percentage💰 Formula💰 Derived Value
Buy Lower Range5%=3589.65*5%= 179.4825=3589.65 - 179.4825 = 3410.1675
Buy Upper Range20%=3589.65*20%=717.93=3589.65 + 717.93 = 4307.58
Sell Lower Range6%=3589.65*6%=215.379=3589.65 - 215.379 = 3374.271
Sell Upper Range40%=3589.65*40%=1435.86=3589.65 + 1435.86 = 5025.51

Order Status:

📋 Cont🏢 Seg.📊 Sym📈 Buy/Sell💰 Place Order Price✅ Order Status
1NSE-EQTCSBuy3380Order should get REJECTED
2NSE-EQTCSSELL3390Order should get PASS

Restrict Fresh Market Orders Based on Market Session

Description: Restrict Market Order Session based rule is to restrict Fresh Market Orders based on session. Session here are Considered as AMO(After Market Order) Session, PMO (Pre Market Order) Session, Normal Market Session.

Applicability: This rule is applicable for All the instruments, all the Exchanges, and all the products available in the system except mutual fund segment and its associated instrument / Product.

Implementation

  • If Rule is ON – System should Validate, and Reject the Fresh Orders based on the Market Session.
  • If Rule is OFF – System should not Validate the Fresh Order against Market Session.

Variables

⚙️ Variable Name📝 Variable Type🔑 Variable Value📊 Default
During AMO SessionMulti-select Combo1 - Normal Buy Order
2 - Normal Sell Order
3 - Spread Buy Order
4 - Spread Sell Order
5 - Multi-Leg Buy Order
6 - Multi-Leg Sell Order
All the values -Ticked
During PMO SessionMulti-select Combo1 - Normal Buy Order
2 - Normal Sell Order
3 - Spread Buy Order
4 - Spread Sell Order
5 - Multi-Leg Buy Order
6 - Multi-Leg Sell Order
All the values -Ticked
During Normal SessionMulti-select Combo1 - Normal Buy Order
2 - Normal Sell Order
3 - Spread Buy Order
4 - Spread Sell Order
5 - Multi-Leg Buy Order
6 - Multi-Leg Sell Order
All the values -Ticked

As per the variable Value (i.e Buy or Sell) Configured, system should validate the fresh orders placed in the AMO,PMO and Normal Session.

If the rule is enable, then system should not allow to place the fresh Market Order (i.e. RL Market and SL Market) in the AMO,PMO and Normal Session either from Normal Order, Spread Order or Multi-Leg Order as per the configuration.

Validation

Assume following configuration is done in the system:

⚙️ Variable📝 Value
AMO SessionNormal Buy Order – Ticked
Normal Sell Order – Un-Ticked
Spread Buy Order – Un-Ticked
Spread Sell Order – Un-Ticked
Multi-Leg Buy Order – Ticked
Multi-Leg Sell Order – Un-Ticked
PMO SessionNormal Buy Order – Ticked
Normal Sell Order – Ticked
Spread Buy Order – Un-Ticked
Spread Sell Order – Un-Ticked
Multi-Leg Buy Order – Ticked
Multi-Leg Sell Order – Ticked
Normal Market SessionNormal Buy Order – Un-Ticked
Normal Sell Order – Un-Ticked
Spread Buy Order – Un-Ticked
Spread Sell Order – Un-Ticked
Multi-Leg Buy Order –Un- Ticked
Multi-Leg Sell Order – Un-Ticked

Normal Order

As per configuration, assume if following Normal Orders are placed:

📋 Ord.📝 Ord. Entry🏢 Seg.📊 Sym.📦 Ins.📅 Exp.📈 B/S💰 Qty💵 Price⏰ Session✅ Order Status
1Normal OrderNSEACCBuy10Market OrderAMOOrder Should get REJECTED
2Normal OrderNSEACCSell10Market OrderAMOOrder Should get PASS

Spread Order

If any one Leg of Spread Order gets rejected as per the rule configuration, then whole order should get rejected.

Assume if Spread Order is Placed, as per configuration:

📋 Ord.📝 Ord. Entry🏢 Seg.📊 Sym.📦 Ins.📅 Exp.📈 B/S💰 Qty💵 Price⏰ Session✅ Order Status
3Spread OrderNSEFNOACCFUTSTKExp1: 23/06/2020
Exp2: 21-07-2020
Buy10Market OrderAMOOrder should get PASS
as 'Spread Order' is Un-Ticked in Applicable Order configuration

Multi-Leg Order

If any one Leg of Multi-Leg Order gets rejected as per the rule configuration, then whole order should get rejected.

Assume if Multi-Leg Order is Placed, as per configuration:

📋 Ord.📝 Ord. Entry🏢 Seg.📊 Sym.📦 Ins.📅 Exp.📈 B/S💰 Qty💵 Price⏰ Session✅ Order Status
4MultilegNSEFNOLeg1: ACC
Leg2: TCS
FUTSTKLeg1: 23-06-2020
Leg2: 21-07-2020
Leg1: Buy
Leg2: Sell
Leg1:5
Leg2:10
Market OrderAMOOrder should get REJECTED
as Leg1 is of BUY which is not allowed
5MultilegNSEFNOLeg1: ACC
Leg2: TCS
FUTSTKLeg1: 23-06-2020
Leg2: 21-07-2020
Leg1: Buy
Leg2: Buy
Leg1:5
Leg2:10
Market OrderAMOOrder should get REJECTED
as Leg1 and Leg2 is of BUY which is not allowed

Restrict Order based on Percentage Near to Daily Price Range (DPR)

Description: Restrict Order Based on Daily Price Range (DPR) is used to restrict the fresh order near Upper or Lower DPR depending on the order side (Buy or Sell) and % defined in the respective variable.

Implementation

  • If Rule is ON – System should Validate, and Reject the Order based on the Order Price placed Percentage near to DPR
  • If Rule is OFF – System should not Validate the Order placed Percentage near to DPR

Variables

⚙️ Variable Name📝 Variable Type🔑 Variable Value📊 Default
Fresh Sell Order near to Upper DPRPercentage field0.0000 to 1002(variable will be disable)
Fresh Buy Order near to Lower DPRPercentage field0.0000 to 1002(variable will be disable)

Assume following data received through scrip master file and through Broadcast:

📋 Cont🏢 Seg.📊 Sym📅 Exp. Date📈 DPR
1NSE-EQRELIANCE-1147.6-1402.6

Assume that Rule is ON

Following values defined in the variable:

⚙️ Variable Name📊 Variable Value
Fresh Sell Order near to Upper DPR6
Fresh Buy Order near to Lower DPR10

Calculation:

📊 RELIANCE📝 Type💰 Value📈 Percentage💵 Derived Value
Lower DPR1147.610%=1147.6*10% =114.76
Derived Lower DPR=1147.6+114.7= 1262.36
Higher DPR1402.66%= 1402*6% =84.156
Derived Higher DPR=1402.6-84.156 =1318.444

Place Order:

📋 Cont🏢 Seg.📊 Sym📈 Buy/Sell💰 Place Order Price✅ Order Status
1NSE-EQRELIANCEBuy1300Order should get PASS
3NSE-EQRELIANCESell1350Order should get Rejected

Restrict Fresh Order based on Expiry Date

Description: This rule is to restrict fresh order prior to expiry date. This rule is applicable for Derivative Segment (FNO, CURR & COMM) and its associated instruments.

Implementation

  • If Rule is ON – System should Validate, and Reject the Order based on the Expiry Date
  • If Rule is OFF – System should not Validate the Order based on the Expiry Date

As per this rule configuration, system should restrict fresh order prior to expiry date.

Variables

⚙️ Variable Name📝 Variable Type🔑 Variable Value📊 Default
Fresh Order on 'N' Days Before Expiry DateNumeric Value0-9992(when the option is selected)
TimerNumeric ValueValidation 24 hour time format only 00:00:00 - 23:59:5900:00:00

To restrict the fresh BUY or SELL order based on expiry date, system should consider the Rule value defined in No of Days, accordingly fresh buy or fresh sell order should be rejected.

Currently there is default value of 2 which comes even when the option is not selected which should now become zero if unticked.

Scenario: 1

Assume the Contract Details of FNO Segment is like:

🏢 Segment📊 Symbol📦 Instrument📅 Expiry date
NSEACCFUTSTK28-May-20
NSEACCFUTSTK25-Jun-20
NSEACCFUTSTK23-Jul-20
📋 Case📝 Rule🔢 No. of Days📋 Business Logic
1No of Days5As per the example-
System should restrict the Fresh Buy or Fresh Sell Order for contract
1. [NSE-ACC-FUTSTK-28/MAY/2020] from 23/MAY/2020 onwards.
2. [NSE-ACC-FUTSTK-25/JUN/2020] from 20/JUN/2020 onwards.
3. [NSE-ACC-FUTSTK-23/JUL/2020] from 18/JUL/2020 onwards.
2No of Days0As per the example-
System should restrict the Fresh Buy or Fresh Sell Order for contract
1. [NSE-ACC-FUTSTK-28/MAY/2020] only on 28/MAY/2020.
2. [NSE-ACC-FUTSTK-25/JUN/2020] only on 25/JUN/2020.
3. [NSE-ACC-FUTSTK-23/JUL/2020] only on 28/JUL/2020.
Note: ('0' refers to Exact expiry date)

Timer Examples

🔢 N Day value⏰ Timer📋 Behaviour expected
2 (Expiry - 2 Date)13:30:00All fresh order on or after 13:30:00 on (Expiry - 2 Date) shall be restricted.
1 (Expiry - 1 Date)15:00:00All fresh order on or after 15:00:00 on (Expiry - 1 Date) shall be restricted.
0 (Expiry Date)11:00:00All fresh order on or after 11:00:00 shall be restricted.

Restrict Fresh Order based on Tender Period

Description: This rule "Restrict Order Based on Tender Period" is to restrict fresh trading during tender period and this rule is applicable for commodity exchanges and its associated instruments.

This rule is applicable for Future Contract as option contract convert into future on expiry.

Implementation

  • If Rule is ON – System should Validate, and Reject the Order based on Tender Period
  • If Rule is OFF – System should not Validate the Order based on Tender Period

As per this rule configuration, system should restrict fresh trading during tender period.

Variables

⚙️ Variable Name📝 Variable Type🔑 Variable Value📊 Default
Restrict Fresh Order based on Tender PeriodCheck-BoxEnable / DisableDisable

Restrict Order Based on Tender Period

Tender Period refers to the Time Period before the expiry of the Contract. Tender Period is generally 4-5 days before the expiry of the contract.

This rule is applicable for Commodity Segment like MCX, NCDEX, NSE Commodity, BSE Commodity.

Variable 1: Restrict Fresh Order

  • By default, Variable is Enable.
  • If the key is enabled, then system should restrict the Fresh order placed in the contracts during the tender period.
  • If the key is disabled, then system should allow to place the fresh order placed in the contracts during tender period.
  • This Rule is applicable for future contracts (FUTCOM) whereas Tender Period is not applicable on OPTFUT (Option contract converts into future on expiry).
note

As of Now, this rule is applicable for Commodity segments where Tender Period for the contract is provided by the exchange in Scrip Master file.

Assume following scrip details available in the system:

📋 Con.🏢 Seg.📦 Inst.📊 Sym.📅 Exp.📅 TenderStartDate📅 TenderEndDate
1MCXFUTCOMGOLD05-Aug-2030-Jul-2005-Aug-20
2MCXFUTCOMSILVER05-Aug-2030-Jul-2005-Aug-20

And following orders placed in the system:

📋 Ord.🏢 Seg.📊 Sym.📦 Ins.📅 Exp.📈 B/S💰 Qty⏰ Order Placed On✅ Order Status
1MCXGOLDFUTCOM05-Aug-20Buy1029-Jul-20Order Should get PASSED
(As Order Placed away from Tender Period Range)
2MCXGOLDFUTCOM05-Aug-20Buy1001-Aug-20Order Should get REJECTED
(As Order Placed within Tender Period Range)

Restrict Order based on Issue Capital

Description: This rule is to restrict the transaction beyond certain amount of Issued capital. This rule is applicable for Cash Segment Only and not applicable for Derivative, Currency, Commodity, MF and IPO segments.

Implementation

  • If Rule is ON – System should Validate, and Reject the Order based on the Issue Capital
  • If Rule is OFF – System should not Validate the Order based on Issue Capital

Variables

⚙️ Variable Name📝 Variable Type🔑 Variable Value📊 Default
Restrict Fresh Buy Order when Buy volume is above n% of issued capitalPercentagebetween 0.00 to 999.9915(variable will be disable)
Restrict Fresh Sell Order when Sell volume is above n% of issued capitalPercentagebetween 0.00 to 999.9915(variable will be disable)
Restrict Order when volume is above n% of issued capitalPercentagebetween 0.00 to 999.9915(variable will be disable)

Assume following data received through scrip master file and through Broadcast:

📋 Cont🏢 Seg.📊 Sym📅 Exp. Date📈 DPR
1NSE-EQRELIANCE-1147.6-1402.6

Assume that Rule is ON

Following values defined in the variable:

⚙️ Variable Name📊 Variable Value
Restrict Fresh Buy Order when Buy volume is above n% of issued capital20
Restrict Fresh Sell Order when Sell volume is above n% of issued capital25
Restrict Order when volume is above n% of issued capital30

Scenario: 1

📋 Ord.👤 Inv.🏢 Seg.📈 B/S📊 Sym.📊 Prev. Buy Vol.💰 Issued Capital📈 % Defined in rule💰 Derived Max Buy Qty Allowed💵 Place Buy Order Qty✅ Order Status
1CLI1NSEBuyACC11000600002012000500Order should get PASS
2CLI1NSEBuyACC110006000020120001500Order should get REJECTED

Scenario: 2

📋 Ord.👤 Inv.🏢 Seg.📈 B/S📊 Sym.📊 Prev. Sell Vol.💰 Issued Capital📈 % Defined in rule💰 Derived Max Buy Qty Allowed💵 Place Sell Order Qty✅ Order Status
1CLI1NSESellACC14000600002515000500Order should get PASS
2CLI1NSESellACC140006000025150001500Order should get REJECTED

Scenario: 3

📋 Ord.👤 Inv.🏢 Seg.📈 Place B/S📊 Sym.📊 Prev. Buy Vol.📊 Prev. Sell Vol.💰 Issued Capital📈 % Defined in rule💰 Derived Max Buy/sell Qty Allowed💵 Order Qty✅ Order Status
1CLI1NSEBuyACC90008000600003018000500Order should get PASS
2CLI1NSEBuyTCS1300045006000030180001500Order should get REJECTED

Restrict Fresh Order based on Current Day Traded Volume

Description: This rule is to restrict the fresh order in the illiquid scrips based on Today's market volume basis. This rule is applicable for all the exchanges (i.e., Cash, Derivative, Currency and Commodity Segments) except MF, OFS, IPO and its associated instruments.

Implementation

  • If Rule is ON – System should Validate, and Reject the Order based on the Current Day Traded Volume for the illiquidity scrips
  • If Rule is OFF – System should not Validate the Order based on the Current Day Traded Volume

Variables

⚙️ Variable Name📝 Variable Type🔑 Variable Value📊 Default📋 Template
Restrict Fresh Buy Order in scrip which have Today's Traded Volume less than (in terms of Lot)Numeric Value0 to 9999999999100000(variable will be disable)Risk Rule
Restrict Fresh Sell Order in scrip which have Today's Traded Volume less than (in terms of Lot)Numeric Value0 to 9999999999100000(variable will be disable)Risk Rule

Assume that Rule is ON

note

System should consider the Current day volume received in Broadcast.

ARMS → Scrip and Contract Info → Market Data Info

📋 Cont.🏢 Seg.📊 Sym.📊 Today Traded Qty
1NSE-FNO-EXP1-FUTACC10,000
2NSE-FNO-EXP1-FUTTCS5,000

Assume following values defined in the variable in the system: RRT

⚙️ Variable Name📊 Variable Value
Restrict Fresh Buy Order in scrip which have Today's Traded Volume less than (in terms of Lot)20
Restrict Fresh Sell Order in scrip which have Today's Traded Volume less than (in terms of Lot)25

Derived Values:

📋 Cont.🏢 Seg.📊 Sym.🔢 Exchange Lot size📊 Assume Exchange Current Day Volume📈 Lot -Defined in this Variable for Buy💰 Derived Maximum Allowed Qty -Buy📈 Lot -Defined in this Variable for Sell💰 Derived Maximum Allowed Qty Sell
1NSE-FNOACC30010,000206000257500
2NSE-FNOTCS1755,000203500254375

Accordingly, assume if following order is placed in the system:

👤 Client📋 Ord.🏢 Seg.📊 Sym.💵 Place Order✅ Status
CLI11NSE-FNOACCPlace Buy Order
Qty: 1200(4 lots)
Order should get PASS as Max allowed Qty is 10000 for ACC
CLI12NSE-FNOTCSPlace Sell Order
Qty: 1750(10 lots)
Order should get REJECTED as Max allowed Qty is 5000 for TCS in which CLI 1 current order qty is 1750 which is greater than Derived Maximum Allowed Qty-Sell

Restrict Fresh Order based on Current Day Traded Value

Description: This rule is to restrict the fresh order in the illiquid scrips based on Today's market value basis. This rule is applicable for all the exchanges (i.e., Cash, Derivative, Currency and Commodity Segments) except MF, OFS, IPO and its associated instruments.

Implementation

  • If Rule is ON – System should Validate, and Reject the Order based on the Current Day Traded Value for the illiquidity scrips
  • If Rule is OFF – System should not Validate the Order based on the Current Day Traded Value

Variables

⚙️ Variable Name📝 Variable Type🔑 Variable Value📊 Default📋 Template
Restrict Fresh Buy Order in scrip which have Today's Traded Value less thanNumeric Value0.0000 to 900000000000000.0000500000(variable will be disable)Risk Rule
Restrict Fresh Sell Order in scrip which have Today's Traded Value less thanNumeric Value0.0000 to 900000000000000.0000500000(variable will be disable)Risk Rule

Assume that Rule is ON

note

System should consider the Current day value received in Broadcast.

ARMS → Scrip and Contract Info → Market Data Info

📋 Cont.🏢 Seg.📊 Sym.💰 Today Traded Value
1NSE-FNO-EXP1-FUTACC4,00,000
2NSE-FNO-EXP1-FUTTCS7,00,000
3NSE-FNO-EXP1-FUTICICI5,00,000

Assume following values defined in the variable in the system: RRT

⚙️ Variable Name📊 Variable Value
Restrict Fresh Buy Order in scrip which have Today's Traded Volume less than5,00,000
Restrict Fresh Sell Order in scrip which have Today's Traded Volume less than6,00,000

Accordingly, assume if following order is placed in the system against the contract:

📋 Cont.🏢 Segment📦 Inst.📊 Sym.📅 Exp.💵 Place Order✅ Order Status
1NSEFNOFUTSTKACCEXP-1Buy
Qty: 1 (in Lot)
Price: 500
Order should get REJECTED as Today's traded value for ACC received through broadcast is: 4,00,000 which is less than the defined value '5,00,000' in the variable.
2NSEFNOFUTSTKTCSEXP-1Buy
Qty: 1 (in Lot)
Price: 2200
Order should get PASS as Today's traded value for TCS received through broadcast is: 7,00,000 which is greater than the defined value '5,00,000' in the variable.
3NSEFNOFUTSTKICICIEXP-1Sell
Qty: 1 (in Lot)
Price: 500
Order should get REJECTED as Today's traded value for ICICI received through broadcast is: 5,00,000 which is less than the defined value '6,00,000' in the variable

Restrict Fresh Order based on Previous Day Traded Volume

Description: This rule is to restrict the fresh order in the illiquid scrips based on Previous Day market volume basis. This rule is applicable for all the exchanges (i.e., Cash, Derivative, Currency and Commodity Segments) except MF, OFS, IPO and its associated instruments.

Implementation

  • If Rule is ON – System should Validate, and Reject the Order based on the Previous Day Traded Volume for the illiquidity scrips
  • If Rule is OFF – System should not Validate the Order based on the Previous Day Traded Volume

Variables

⚙️ Variable Name📝 Variable Type🔑 Variable Value📊 Default📋 Template
Restrict Fresh Buy Order in scrip which have Previous Traded Volume less than (in terms of Lot)Numeric Value0 to 9999999999100000(variable will be disable)Risk Rule
Restrict Fresh Sell Order in scrip which have Previous Traded Volume less than (in terms of Lot)Numeric Value0 to 9999999999100000(variable will be disable)Risk Rule

Assume that Rule is ON

note

System should consider the Previous day volume received in Broadcast.

ARMS → Scrip and Contract Info → Bhav Copy Info

📋 Cont.🏢 Seg.📊 Sym.📊 Volume
1NSE-FNO-EXP1-FUTACC10,000
2NSE-FNO-EXP1-FUTTCS5,000

Assume following values defined in the variable in the system: RRT

⚙️ Variable Name📊 Variable Value
Restrict Fresh Buy Order in scrip which have Previous Day Traded Volume less than (in terms of Lot)20
Restrict Fresh Sell Order in scrip which have Previous Day Traded Volume less than (in terms of Lot)25

Derived Values:

📋 Cont.🏢 Seg.📊 Sym.🔢 Exchange Lot size📊 Assume Exchange Previous Day Volume📈 Lot -Defined in this Variable for Buy💰 Derived Maximum Allowed Qty -Buy📈 Lot -Defined in this Variable for Sell💰 Derived Maximum Allowed Qty Sell
1NSE-FNOACC30010,000206000257500
2NSE-FNOTCS1755,000203500254375

Accordingly, assume if following order is placed in the system:

👤 Client📋 Ord.🏢 Seg.📊 Sym.💵 Place Order✅ Status
CLI11NSE-FNOACCPlace Buy Order
Qty: 1200(4 lots)
Order should get PASS as Max allowed Qty is 10000 for ACC
CLI12NSE-FNOTCSPlace Sell Order
Qty: 1750(10 lots)
Order should get REJECTED as Max allowed Qty is 5000 for TCS in which CLI 1 current order qty is 1750 which is greater than Derived Maximum Allowed Qty-Sell

Restrict Fresh Order based on Previous Day Traded Value

Description: This rule is to restrict the fresh order in the illiquid scrips based on Previous market value basis. This rule is applicable for all the exchanges (i.e., Cash, Derivative, Currency and Commodity Segments) except MF, OFS, IPO and its associated instruments.

Implementation

  • If Rule is ON – System should Validate, and Reject the Order based on the Previous Day Traded Value for the illiquidity scrips
  • If Rule is OFF – System should not Validate the Order based on the Previous Day Traded Value

Variables

⚙️ Variable Name📝 Variable Type🔑 Variable Value📊 Default📋 Template
Restrict Fresh Buy Order in scrip which have Previous Traded Value less thanNumeric Value0.0000 to 900000000000000.0000500000(variable will be disable)Risk Rule
Restrict Fresh Sell Order in scrip which have Previous Traded Value less thanNumeric Value0.0000 to 900000000000000.0000500000(variable will be disable)Risk Rule

Assume that Rule is ON

note

System should consider the Previous day value received in Broadcast.

ARMS → Scrip and Contract Info → Bhav Copy Info

📋 Cont.🏢 Seg.📊 Sym.💰 Value
1NSE-FNO-EXP1-FUTACC4,00,000
2NSE-FNO-EXP1-FUTTCS7,00,000
3NSE-FNO-EXP1-FUTICICI5,00,000

Assume following values defined in the variable in the system: RRT

⚙️ Variable Name📊 Variable Value
Restrict Fresh Buy Order in scrip which have Today's Traded Volume less than5,00,000
Restrict Fresh Sell Order in scrip which have Today's Traded Volume less than6,00,000

Accordingly, assume if following order is placed in the system against the contract:

📋 Cont.🏢 Segment📦 Inst.📊 Sym.📅 Exp.💵 Place Order✅ Order Status
1NSEFNOFUTSTKACCEXP-1Buy
Qty: 1 (in Lot)
Price: 500
Order should get REJECTED as Today's traded value for ACC received through broadcast is: 4,00,000 which is less than the defined value '5,00,000' in the variable.
2NSEFNOFUTSTKTCSEXP-1Buy
Qty: 1 (in Lot)
Price: 2200
Order should get PASS as Today's traded value for TCS received through broadcast is: 7,00,000 which is greater than the defined value '5,00,000' in the variable.
3NSEFNOFUTSTKICICIEXP-1Sell
Qty: 1 (in Lot)
Price: 500
Order should get REJECTED as Today's traded value for ICICI received through broadcast is: 5,00,000 which is less than the defined value '6,00,000' in the variable

Restrict Fresh Order based on Open Interest Quantity

Description: This rule is to restrict the fresh order based on Open Interest. This Rule is applicable for Cash Derivative, Currency Derivative and Commodity Derivative Segments. This rule is not applicable for segments like CASH, MF and IPO.

Implementation

  • If Rule is ON – System should Validate, and Reject the Order based on the Open Interest Quantity
  • If Rule is OFF – System should not Validate the Order based on the Open Interest Quantity

As per this rule configuration, system should allow to place fresh order in the contract when Open Interest of the contract at exchange level is equal to or above the derived Open Position in the system as per value set in this variable.

Variables

⚙️ Variable Name📝 Variable Type🔑 Variable Value📊 Default📋 Template
Restrict Fresh Order in scrip which have Open Interest Qty less than (in terms of Lot)Numeric Value0 to 9999999999100000(variable will be disable)Risk Rule

Assume that Rule is ON

note

Open interest value is received from exchange for each contract through two modes:

  1. Through Broadcast
  2. Through Bhav-copy file

Assume following Open Position is available at exchange level for each contract:

📋 Contract🏢 Seg.📊 Sym.📅 Exp.📊 Current Open Position Qty at Exchange Level
1NSEACC27-Aug-2015000
2NSETCS27-Aug-204000

Assume following values defined in the variable in the system: RRT

⚙️ Variable Name📊 Variable Value
Restrict Fresh Order in scrip which have Open Interest Qty less than (in terms of Lot)25

Accordingly, assume if following order is placed in the system:

📋 Order🏢 Segment📊 Symbol📈 B/S💰 Qty🔢 Lot Size💵 Placed Order Qty📊 Current Open Position Qty at Exchange Level💰 Derived Maximum Open Position Qty✅ Status as per Rule
1NSEACCBuy2300600150007500Order should get PLACED as exchange level Position qty is greater than derived OI limit
2NSETCSBuy117517540004375Order should get REJECTED as exchange level Position qty is Less than derived OI limit

Restrict Fresh Order based on Open Interest Value

Description: This rule is to restrict the fresh order based on Open Interest Value. This Rule is applicable for Cash Derivative, Currency Derivative and Commodity Derivative Segments. This rule is not applicable for segments like CASH, MF and IPO.

Implementation

  • If Rule is ON – System should Validate, and Reject the Order based on the Open Interest Value
  • If Rule is OFF – System should not Validate the Order based on the Open Interest Value

As per this rule configuration, system should allow to place fresh order in the contract when Open Interest Value of the contract at exchange level is equal to or above the derived Open Position in the system as per value set in this variable.

Variables

⚙️ Variable Name📝 Variable Type🔑 Variable Value📊 Default📋 Template
Fresh Order in Scrip which have Open Interest Value less than (OI * LTP) for Future and (OI * (LTP + Strike Price)) for OptionNumeric Value0.0000 to 900000000000000.0000500000(variable will be disable)Risk Rule

Assume that Rule is ON

note

Open interest value is received from exchange for each contract through two modes:

  1. Through Broadcast
  2. Through Bhav-copy file

Assume following Open Position is available at exchange level for each contract:

📋 Contract🏢 Seg.📊 Sym.📅 Exp.📊 Current Open Position Qty at Exchange Level
1NSEACC27-Aug-2015000
2NSETCS27-Aug-204000

Assume following values defined in the variable in the system: RRT

⚙️ Variable Name📊 Variable Value
Fresh Order in Scrip which have Open Interest Value less than (OI * LTP) for Future and (OI * (LTP + Strike Price)) for Option90000

Open Interest Derivation Formula

📦 Instrument📝 Formula
FUTURE OI ValueOpen Interest * LTP * CVF
OPTION OI ValueOpen Interest * (LTP + Strike price) * CVF

Assume Open interest at the Exchange Level for the contract is:

📋 Contract🏢 Segment📦 Inst.📊 Sym.📅 Exp.💰 Strike Price📈 Opt. type💵 Open interest value at Exchange Level for the Contract
1NSEFUTSTKACC27-Aug-20--1000
2NSEFUTSTKTCS27-Aug-20900
3NSEOPTSTKTCS27-Aug-201500CE1200

As per Formula:

📋 Contract🏢 Seg.📦 Inst.📊 Sym.📅 Exp.💰 Str. Pri.📈 Opt type💵 LTP📊 OI received on Broadcast for the contract💰 Derived Open Interest value
1NSEFUTSTKACC27-Aug-20--80100010000
2NSEFUTSTKTCS27-Aug-20--165900148500
3NSEOPTSTKTCS27-Aug-201500CE3012001836000

And following Order is placed in the system:

📋 Ord.🏢 Seg.📦 Inst.📊 Sym.📅 Exp.💰 Str. Pri.📈 Opt type💵 Order Placed with Qty✅ Order Status
1NSEFUTSTKACC27-Aug-20--1Order should get REJECTED as Derived OI value (i.e. 40000 is less than define OI Value in Variable (i.e. 90000))
2NSEFUTSTKTCS27-Aug-20--1Order should get PASSED as Derived OI value (i.e. 148500 is greater than define OI Value in Variable (i.e. 90000))
3NSEOPTSTKTCS27-Aug-201500CE1Order should get PASSED as Derived OI value (i.e. 918000 is greater than define OI Value in Variable (i.e. 90000))

Restrict Fresh Order based on Strike Price Range

Description: This rule is to restrict fresh order in illiquid option contracts based on Strike Price Range. This rule is application for Derivative Segment (FNO, CURR & COMM) and its associated option related instruments.

Implementation

  • If Rule is ON – System should Validate, and Reject the Order based on the Strike Price Range
  • If Rule is OFF – System should not Validate the Order based on the Strike Price Range

As per this rule configuration, system should allow to place fresh order in the contract when Strike Price in the Option Contracts is away from the Spot defined in the variable.

Variables

⚙️ Variable Name📝 Variable Type🔑 Variable Value📊 Default
Fresh In the money Option Contracts (Away from Spot) - CallPercentageany value between 0.00 to 999.9910
Fresh Out the money Option Contracts (Away from Spot) - CallPercentageany value between 0.00 to 999.9910
Fresh In the money Option Contracts (Away from Spot) - PutPercentageany value between 0.00 to 999.9910
Fresh Out the money Option Contracts (Away from Spot) - PutPercentageany value between 0.00 to 999.9910
Perform theoretical price for out of range Contracttoggleenable / disabledisable
In the Money Fresh Order price beyond the theo price - CallPercentageany value between 0.00 to 999.99999.99
Out the Money Fresh Order price beyond the theo price - CallPercentageany value between 0.00 to 999.99999.99
In the Money Fresh Order price beyond the theo price - PutPercentageany value between 0.00 to 999.99999.99
Out the Money Fresh Order price beyond the theo price - CallPercentageany value between 0.00 to 999.99999.99

Derivation of ATM, ITM and OTM based on Underlying Stock Price

Scrip - TCS; Underlying Price of TCS- 2067.5; Nearby Round up strike price- 2100; Strike Price difference- 50

💰 Strike Price Difference📈 CE📉 PE
1800ITMOTM
1850ITMOTM
1900ITMOTM
1950ITMOTM
2000ITMOTM
2050ITMOTM
2100ATMATM
2150OTMITM
2200OTMITM
2250OTMITM
2300OTMITM
2350OTMITM
2400OTMITM

Variable 1: Fresh IN THE MONEY Option Contracts (Away from Spot) – CALL

This rule is applicable for ITM CALL OPTION Contracts

💰 Underlying TCS Stock Price📈 ITM-CE %💵 Derived Value📊 Difference
2067.510206.751860.75

System should REJECT the fresh order with in Strike Price which is near to the defined range from TCS Underlying Price.

As per the derived Strike Price (i.e. 1860.75):

  • Fresh order should ALLOWED in the contracts with strike price range of 1900 to 2100.
  • Fresh order should REJECTED in the contracts with strike price range of 1800 to 1850.

Variable 2: Fresh OUT THE MONEY Option Contracts (Away from Spot) – CALL

This rule is applicable for OTM CALL OPTION Contracts

💰 Underlying TCS Stock Price📈 OTM-CE %💵 Derived Value📊 Summing
2067.510206.752274.25

System should REJECT the fresh order with in Strike Price which is near to the defined range from TCS Underlying Price.

As per the derived Strike Price (i.e. 2274.25):

  • Fresh order should ALLOWED in the contracts with strike price range of 2100 to 2300 of CE.
  • Fresh order should REJECTED in the contracts with strike price range of 2350 to 2400 of CE.

Variable 3: Fresh IN THE MONEY Option Contracts (Away from Spot) – PUT

This rule is applicable for ITM PUT OPTION Contracts

💰 Underlying TCS Stock Price📈 ITM-PE %💵 Derived Value📊 Summing
2067.510206.752274.25

System should REJECT the fresh order with in Strike Price which is near to the defined range from TCS Underlying Price.

As per the derived Strike Price (i.e. 2274.25):

  • Fresh order should ALLOWED in the contracts with strike price range of 2100 to 2300 of PE.
  • Fresh order should REJECTED in the contracts with strike price range of 2350 to 2400 of PE.

Variable 4: Fresh OUT THE MONEY Option Contracts (Away from Spot) – PUT

This rule is applicable for OTM PUT OPTION Contracts

💰 Underlying TCS Stock Price📈 OTM-PE %💵 Derived Value📊 Difference
2067.510206.751860.75

System should REJECT the fresh order with in Strike Price which is near to the defined range from TCS Underlying Price.

As per the derived Strike Price (i.e. 1860.75):

  • Fresh order should ALLOWED in the contracts with strike price range of 1900 to 2100.
  • Fresh order should REJECTED in the contracts with strike price range of 1800 to 1850.

Variable 5: Perform Theoretical Price for Out of Range Contract

Variable type for this key is to Enable or Disable the feature.

  • By default, variable should be Disable.
  • If the variable is enable, then system should Perform the Theoretical Price check for Out of Range Contracts and if this key is disable then system should not perform the Theoretical Price Check.

Out of Range Contracts means - Contracts with "Strike Price" which is not in the defined Range of:

  • "Fresh In the Money Option Contract- CALL (ITM-CALL)".
  • "Fresh Out The Money Option Contract- CALL (OTM- CALL)".
  • "Fresh In The Money Option Contract- PUT (ITM-PUT)".
  • "Fresh Out The Money Option-PUT (OTM_PUT).

If the Order Price of out of Range Contracts is in the range of Theoretical Price, then system should ALLOW to place.

If the Order Price of Out of Range Contracts is not in the range of Theoretical price, then system should REJECT the order.

Following variables are used to Perform the Theoretical Price Check for Out of Range Contracts.

Variable 6: In the Money – Fresh Order Price beyond the Theoretical Price- CALL

System should calculate the Order Price Range for "In the Money- CALL" Contracts as per the percentage defined in this variable. Derived price range will be different for Buy Order and Sell order.

  • System should allow to define the percentage from 0 to 999.99
  • By default, Percentage value should be 999.99.

Assume If Perform Theoretical Price for Out of Range Contract is Enable

As per example specified above for Contracts and example provided in Variable 1

Derived In The Money- CALL Contracts Strike Price Range is from 1900 to 2100 (i.e. Contract 3 to Contract 7) and Out of Range Contract Strike Price Range from 1800 to 1850 (i.e. Contract 1 to Contract 2).

Accordingly, system should check the order price placed in the Contracts 1 to Contract 2. If the Order Price placed is in the range of theoretical price, then system should ALLOW to Place the Fresh Order else if the Order Price is not in the range of theoretical price, then system should REJECT the Fresh Order placed.

📋 Case📊 Symbol📅 Exp Date💰 Strike Price📈 Opt Type📊 DPR Range💵 ** Assume Theo Price Range💰 Order Price✅ Status
1TCS25-Jun-201800CE0.05-35010-3005Order Should get REJECTED
2TCS25-Jun-201850CE0.05-31810-300100Order Should get PASS
3TCS25-Jun-201900CE0.05-2851900 Strike Price is in the Range of ITM-CE

Variable 7: Out the Money – Fresh Order Price beyond the Theoretical Price- CALL

System should calculate the Order Price Range for "Out the Money- CALL" Contracts as per the percentage defined in this variable. Derived price range will be different for Buy Order and Sell order.

  • System should allow to define the percentage from 0 to 999.99
  • By default, Percentage value should be 999.99.

Assume If Perform Theoretical Price for Out of Range Contract is Enable

As per example specified above for Contracts and example provided in Variable 2

Derived Out The Money- CALL Contracts Strike Price Range is from 2100 to 2300 (i.e. Contract 7 to Contract 11) and Out of Range Contract Strike Price Range from 2350 to 2400 (i.e. Contract 12 to Contract 13).

Accordingly, system should check the order price placed in the Contracts 12 to Contract 13. If the Order Price placed is in the range of theoretical price, then system should ALLOW to Place the Fresh Order else if the Order Price is not in the range of theoretical price, then system should REJECT the Fresh Order Placed.

📋 Case📊 Symbol📅 Exp Date💰 Strike Price📈 Opt Type📊 DPR Range💵 Theo Price Range💰 Order Price✅ Status
1TCS25-Jun-202300CE0.05-1202300 Strike Price is in the Range of OTM-CE
2TCS25-Jun-202350CE0.05-10710.05 - 905Order Should get REJECTED
3TCS25-Jun-202400CE0.05-9510.05 - 9080Order Should get PASS

Variable 8: In the Money – Fresh Order Price beyond the Theoretical Price- PUT

System should calculate the Order Price Range for "In the Money- PUT" Contracts as per the percentage defined in this variable. Derived price range will be different for Buy Order and Sell order.

  • System should allow to define the percentage from 0 to 999.99
  • By default, Percentage value should be 999.99.

Assume If Perform Theoretical Price for Out of Range Contract is Enable

As per example specified above for list of Contracts and example provided in Variable 3

Derived In The Money- PUT Contracts Strike Price Range is from 2100 to 2300 (i.e. Contract 20 to Contract 24) and Out of Range Contract Strike Price Range from 2350 to 2400 (i.e. Contract 25 to Contract 26).

Accordingly, system should check the order price placed in the Contracts 25 to Contract 26. If the Order Price placed is in the range of theoretical price, then system should ALLOW to place Fresh Order else if the Order Price is not in the range of theoretical price, then system should REJECT the Fresh Order Placed.

📋 Case📊 Symbol📅 Exp Date💰 Strike Price📈 Opt Type📊 DPR Range💵 Theo Price Range💰 Order Price✅ Status
1TCS25-Jun-202300PE302-8022300 Strike Price is in the Range of ITM-PE
2TCS25-Jun-202350PE338-853350 - 840340Order Should get REJECTED
3TCS25-Jun-202400PE376-904350 - 840380Order Should get PASS

Variable 9: Out the Money – Fresh Order Price beyond the Theoretical Price- PUT

System should calculate the Order Price Range for "Out the Money- PUT" Contracts as per the percentage defined in this variable. Derived price range will be different for Buy Order and Sell order.

  • System should allow to define the percentage from 0 to 999.99
  • By default, Percentage value should be 999.99.

Assume If Perform Theoretical Price for Out of Range Contract is Enable

As per example specified above for list of Contracts and example provided in Variable 4

Derived Out the Money- PUT Contracts Strike Price Range is from 1900 to 2100 (i.e. Contract 14 to Contract 18) and Out of Range Contract Strike Price Range from 1800 to 1850 (i.e. Contract 19 to Contract 20).

Accordingly, system should check the order price placed in the Contracts 19 to Contract 20. If the Order Price placed is in the range of theoretical price, then system should ALLOW to place Fresh Order else if the Order Price is not in the range of theoretical price, then system should REJECT the Fresh Order Placed.

📋 Case📊 Symbol📅 Exp Date💰 Strike Price📈 Opt Type📊 DPR Range💵 Theo Price Range💰 Order Price✅ Status
1TCS25-Jun-201800PE36-33050-30040Order Should get REJECTED
2TCS25-Jun-201850PE53-37550-300100Order Should get PASS

Restrict Order which are not part of Scrip Basket – Margin (allowed)

Description: This rule is to accept or reject the order based on availability of scrip in Scrip Basket. This Rule is applicable for all the segments like Cash, FNO, Currency, Commodity, SLBM & OFS except MF & IPO.

Implementation

  • If Rule is ON – System should Validate, and Reject the Order which are not part of Scrip Basket-Margin(Allowed)
  • If Rule is OFF – System should not Validate the Order based on the Scrip Basket-Margin(Allowed)

As per this rule configuration, system should allow order for the Scrips/Contracts only which are part of Scrip Basket Margin.

Variables

⚙️ Variable Name📝 Variable Type🔑 Variable Value📊 Default
Restrict Order which are not part of Scrip Basket-Margin(Allowed)Check-BoxEnable / DisableDisable

This Rule shall be validated for Fresh Order not for square off Order.

If this rule (Restrict Trading other than scrip basket Scrip) is checked then System shall check whether such scrip in which order is placed is part of assigned scrip basket template to the entity for which order is placed. Kindly note that "Multiple Scrip Basket - Margin" Template can be assigned. so scrip available in any of the assigned basket then system shall allow else reject.

Case 1: Rule Checked and Scrip Exists in assigned scrip basket- margin

System should pass such order for this rule and proceed for further rule validation.

Case 2: Rule Checked and Scrip does not exist in assigned scrip basket - margin

System should reject such order for this rule and generate the log i.e., Rule ID / Template Name/etc.

Case 3: Rule unChecked

System should not execute this rule and proceed for further rule validation.

Scrip Basket -Margin can be set for respective exchange token or combined token.

  • In case of interop - ON, System shall validate based on Combined token.
  • For Equity & SLBM segment, scrip basket shall have record of respective token.
  • For derivative segment (FNO, CURR & COMM), Scrip basket shall have record based in symbol, Expiry Combination (respective expiry, Expiry Type, all Expiry). In this case system shall check all three level for Future Contract, while checking the expiry date, system will first check respective expiry date i.e. 31-jul-2020 then expiry date type (current, Current +1, etc.) and then expiry date as "ALL".

Assume Interop is ON for EQ and FNO segment.

Example For EQ

ASSUMING in Scrip basket Template is having following records:

🏢 Segment📊 Symbol📋 Series
ALL EQACCEQ
ALL EQTCSEQ

With above example, System shall not allowed to place order in RELIANCE scrip as it is not part of Scrip Basket Margin Template.

Example for FNO (Future contract)

ASSUMING system have 3 expiry date for a particular contract i.e. 31-JUL-2020(Current), 30-AUG-2020(Current + 1), 30-SEP-2020 (Current + 2) and in Scrip basket Template is having following records:

🏢 Segment📊 Symbol📅 Expiry Date
ALL FNOACC31/JUL/2020
ALL FNOACCCurrent
ALL FNOACCCurrent +1

With above example, System shall not allowed to place order in ACC for Current + 2 expiry i.e. 30-SEP-2020.

Example for FNO (Option contract)

For derivative segment (FNO, CURR & COMM), Scrip basket shall have record based in symbol, Expiry Combination (respective expiry, Expiry Type, all Expiry), Strike Price (ALL), Option Type, ITM %, OTM %. In this case system shall check all level for option contract.

Considering above scrip in system and underlying price as 10000, following records are available in scrip basket:

🏢 Segment📊 Symbol📅 Expiry Date📈 ITM%📉 OTM %📊 Option type
ALL FNOACC31/JUL/20205%10%CALL
ALL FNOACCCurrent10%10%CALL
ALL FNOACCCurrent +110%10%CALL

For Contract expiring on 31-JUL-2020, System will allow order where strike price is between 9500 - 11000 for call, other strike price order for this expiry shall get rejected.


Restrict Order based on Entity Level Direct Restriction

Description: This rule is to 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. This rule is applicable for all the segments except MF and its associated instruments.

Implementation

  • If Rule is ON – System should Validate and Reject the Order based on User Level Direct restriction
  • If Rule is OFF – System should not Validate the Order based on User Level Direct restriction

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.

Variables

⚙️ Variable Name📝 Variable Type🔑 Variable Value📊 Default
Restrict Order based on User Level Direct restrictionCheck-BoxEnable / DisableDisable

Member can define such restriction against user directly using Entity Level direct restriction.

Member can add the record in following combination:

  • Equity: Exchange- Symbol-Series-Product
  • Future: Exchange- Symbol-Contract Type-Expiry Date-Product
  • Options: Exchange- Symbol-Contract Type-Expiry Date-Strike price-Option Type-Product

In case of INTOP ON, Member can defined scrip basket template against combined segment based on Combined Scrip Master.

Once a scrip is identified against user in Entity Level direct restriction configuration 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 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 BuyThis variable shall be checked for Sell Order of IOB Transaction

Example

EXAMPLE 1 USER is having following position:

  • Intraday buy 10 qty in scrip ACC
  • Buy Uploaded 5 qty in scrip ACC
  • Intraday sell 10 qty in scrip DABUR
  • Sell uploaded 5 qty in scrip DABUR

Scrip ACC and DABUR are restricted for this USER. In different variable type combination following will be the impact.

Scenario 1:

Freshbuy CHECK | Freshsell CHECK | BuyIntradaySqOff UNCHECK | SellIntradaySqoff UNCHECK | BuyUploadedSQOFF UNCHECK | SellUploadedSQOFF UNCHECK

  • Order place to buy 10 qty ACC will reject against fresh buy check
  • Order place to sell 10 qty ACC will allow. Buy intraday sq off is uncheck
  • Order place to sell 15 qty ACC will allow. Buy intraday sq off and buy upload sq off is uncheck
  • Order place to sell 20 qty ACC will reject against fresh sell check.
  • Order place to sell 10 DABUR will reject against fresh sell check.
  • Order place to buy 10 qty DABUR will allow. Sell intraday sq off is uncheck
  • Order place to buy 15 qty DABUR will allow. Sell intraday sq off and Sell upload sq off is uncheck.
  • Order place to Buy 25 qty DABUR will reject against fresh buy is check.

Restrict Order based on Scrip Basket Restricted

Description: This rule is to 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. This rule is applicable for all the segments except MF and its associated instruments.

Implementation

  • If Rule is ON – System should Validate and Reject the Order based on Scrip Basket Restriction
  • If Rule is OFF – System should not Validate the Order based on Scrip Basket Restriction

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.

Variables

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

Member can define such restriction against scrip using Scrip Basket restricted Template.

Member can add the record in following combination:

  • Equity: Exchange- Symbol-Series-Product
  • Future: Exchange- Symbol-Contract Type-Expiry Date-Product
  • Options: Exchange- Symbol-Contract Type-Expiry Date-Strike price-Option Type-Product

In case of INTOP ON, Member can defined scrip basket template against combined segment based on Combined Scrip Master.

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

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 UNCHECK | BUY INTRADAY SQUARE OFF CHECK | BUY UPLOADED SQUAREOFF UNCHECK | ROLLOVER 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.

Example: 2

User is having following position:

1 lot buy Reliance future February month expiry uploaded position

2 lot buy reliance future February month daily position.

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

FRESH BUY CHECK | BUY INTRADAY SQUARE OFF UNCHECK | BUY UPLOADED SQUAREOFF UNCHECK | ROLLOVER UNCHECK

  • Order place to sell 1 lot Feb expiry. System will pass the order
  • Order place to buy 1 lot feb expiry. System will reject order against fresh buy is check
  • Order place to buy 1 lot march expiry. System will reject order against fresh buy is check

Restrict Position Conversion

Description: This rule is to restrict position conversion request from one product to another product. This rule is applicable for all the segments(i.e., Cash, Derivative, Currency and Commodity Segments) except MF & IPO and its associated instruments. The main feature of this rule is to restrict Position Conversion request between the product types (i.e. Intraday, Carry forward, Margin, Delivery, MTF, PTST) within the defined time range for the respective Position type.

Implementation

  • If Rule is ON – System should Validate and Reject the Position Conversion
  • If Rule is OFF – System should not Validate and Reject the Position Conversion.

As per this rule configuration, system should allow/disallow the position conversion.

Variables

⚙️ Variable Name📝 Variable Type🔑 Variable Value📊 Default
On Product Type (Destination Product)Combo MultiselectList of product available in Dynamic Product MasterAll Product Type shall be Selected
From Position TypeCombo - Multiselect1 -Uploaded Buy Position
2 - Uploaded Sell Position
3 - Daily Buy Position
4 - Daily Sell Position
All Position Type shall be Selected
Restrict only within the defined Time RangeToggleEnable/DisableDisable
Time range start atNumeric ValueValidation 24 hour time format only 00:00:00 - 23:59:5900:00:00
Time range end atNumeric ValueValidation 24 hour time format only 00:00:00 - 23:59:5923:59:59

On Product: Member need to select products in which position conversion has to be restricted.

  • Product type defined under this variable is considered as the Destination product. (i.e. Position Converted TO)
  • Product Type defined in the SIP Combination of Risk Rule Template under which this Rule is configured is considered as the Source Product (i.e. Position Converted FROM)

From Position Type is to restrict position conversion from Daily/Uploaded Position. i.e. If:

  • Uploaded Buy Position – If this variable is Checked, then system should restrict Position Conversions from Upload Buy position.
  • Uploaded Sell Position – If this variable is Checked, then system should restrict Position Conversions from Upload Sell position.
  • Daily Buy – If this variable is Checked, then system should restrict Position Conversions from Daily Buy position on all product types.
  • Daily Sell – If this variable is Checked, then system should restrict Position Conversions from Daily Sell position on all product types.

Restrict only within the defined Time Range is to restrict fresh position based on a timer with start and end range. If the toggle is enable then system shall validate the position conversion based on defined time range. If the toggle is off, then system shall not validate the position conversion based on time range.

Consider an Example:

  • RRT Template >> Template Name: RRT1
  • SIP is set as (All Equity + All Scrip's & Contracts + Margin) and
  • Rule: Restricted Position Conversion is Ticked and
  • Variable: On Product Type (Destination Product) Value is Ticked as "Delivery" and
  • Variable: From Position Type Value is Ticked as "Daily Buy"
  • Variable: Restrict only within the defined Time Range is ON
  • Variable: Time range start at: 11:00:00 and Time range end at: 15:00:00

Assume: Following Position available in the system for NSEEQ_ACC

📋 Product Type📊 EOBQ📊 EOSQ📊 ETBQ📊 ETSQ📊 DOBQ📊 DOSQ📊 DTBQ📊 DTSQ💰 Net Qty
Margin000010010010
Delivery000000000

Accordingly, w.r.t. above Position and RRT Settings:

Consider: At 11.15 - Position Conversion Request Sent From Margin to Delivery Product Type for 10Qty of Daily Buy

  • System should Restrict Position conversion From Margin Product Type To Delivery Product Types. (Position Conversion Request should be Rejected)

Consider: At 15.15 - Position Conversion Request Sent From Margin to Delivery Product Type for 10Qty of Daily Buy

  • System should Allow Position conversion From Margin Product Type To Delivery Product Types. (Position Conversion Request should be Accepted)

Consider: Position Conversion Request Sent From Margin to MTF Product Type for 10Qty of Daily Buy

  • System should Allow Position conversion From Margin Product Type To MTF Product Types. (Position Conversion Request should be Accepted)
note

w.r.t above Settings:

  • Position conversion request should be Accepted from Margin to any Other Product Type other than Delivery Product Configured in the Rule.
  • Position conversion request should be Accepted from Margin to Delivery Product Type other than Daily Buy Position Type Configured in the Rule.
  • Position conversion request should be Accepted from Margin to Delivery Product Type -time range before 11 and after 15.15.
  • If the time range toggle is off, then Position Conversion should be rejected without considering any time range.

Restrict Order based on Index Deviation Circuit Hit

Description: This rule is to restrict the order based on Index Deviation Circuit Hit. This index deviation is applicable for both cash segment and derivative segment.

Implementation

  • If Rule is ON – System should Validate and Reject the Order based on Index Deviation Circuit Hit.
  • If Rule is OFF – System should not Validate the Order based on Index Deviation Circuit Hit.

As per this rule configuration, system shall track the pre and post trigger condition of respective Index and accordingly accept or reject the order based on condition selected in pre trigger or post trigger.

Variables in RRT

⚙️ Variable Name📝 Variable Type🔑 Variable Value📊 Default
Restrict Order Based on Index DeviationCheck-BoxEnable/DisableDisable

Variables in Master Config

🔑 Key Name📝 Key Type🔑 Key Value📋 Source
Enable Index DeviationToggleOn / OffMaster Config
Base Index NameDrop-DownNIFTY
BANKNIFTY
SENSEX
SX40
Master Config
Index Deviation Pre Trigger %2D ArrayLevel | PercentageMaster Config
Index Deviation Post Trigger %2D ArrayLevel | PercentageMaster Config
Pre Index Deviation BehaviorMulti-Select1 - Only Market Order Allowed
2 - Restrict All Order
3 - Restrict Fresh Order
4 - Restrict Algo Order
5 - Cancel Pending Orders
Master Config
Post Index Deviation BehaviorMulti-select1 - Only Market Order Allowed
2 - Restrict All Order
3 - Restrict Fresh Order
4 - Restrict Algo Order
5 - Square-off Open Position
Master Config
Restrict Order Based on Index DeviationRisk RuleNARRT
Reset Post Market OpenToggleOn / OffMaster Config
  • Index Based Circuit hit based on Trigger Percentage set at 3 Levels (i.e. 9%, 13.5%, 18% for Pre Trigger and 9.5%, 14.25%, 19% for Post Trigger) of Previous day Closing Index Value.
  • Any level can be triggered once in a trading day i.e. in case level one is triggered based on % Change then Level 1 can not triggered again on same trading day, however in same trading day all three levels can be triggered.
  • Index Deviation shall be applicable for CASH & FNO Segments (i.e. NSE EQ, BSE EQ, MSE EQ, NSEFO, BSEFO, MSEFO) but Configuration of Index Deviation settings shall be defined at Underlying Segment level (i.e. CASH Segment) for validating both CASH and FNO Exchanges. i.e. NIFTY as index can be defined for NSE CASH & NSE FNO Exchange.
  • Based on Master Configuration Variable (i.e. Enable Index Deviation) and Risk Rule: "Restrict Order Based on Index Deviation" selection in RRT for an SIP, system shall validate index deviation conditions.
  • After triggering of Level one, system shall reset it to default once normal market session is open again as per the configuration done else system shall maintain the same state even after open of normal market session on same day.
  • Index deviation event can hit either of the side i.e. upward or downward direction.
  • Restrict order based on Index deviation - If this key is on in RRT, then restriction made in configuration will come into effect in case index touches circuit. If key is off than no restriction will applicable on trading activity even after Index breaches circuit.
  • Enable Index deviation – if this key is on in Master Config, then system will track the price movement of Index and generate triggered accordingly if this key is off than system will not track price movement of Index.

Example

For example is taken in Index of NSE NIFTY. Assume that previous day closing of NIFTY is 10000.

Then following are circuit criteria on next trading day:

UPSIDE Circuit:

  • 9% of 10000 = 900 points I.E 10000+900 = 10900 First level
  • 13.5% of 10000 = 1350 points I.E 10000+1350 = 11350 second level
  • 18% of 10000 = 1800 points I.E 10000+1800 = 11800 third level

Similarly, for downside calculation will be:

Downside circuit:

  • at 10%: 10000-900 = 9900 will be first level
  • At 15%: 10000-1350 = 8650 will be second level
  • At 20%: 10000-1800 = 8200 will be third level of circuit.

Hence when Nifty touches 10900 level pre trigger event start and system will generate as alert (either in message bar or pop up message flashed on screen). And when nifty touches 10950 level post trigger event start. So from 10900 to 10950 will call pre trigger event and from 10950 to 11000 will called post trigger event. Now member set following restriction for these events.

For pre trigger event:

🔒 Restrict fresh order🔒 restrict order📊 market order❌ cancel pending order📉 Square off open position
TICKTICKTICKUNTICKTICK

And an Investor is having following position:

  • 100 qty buy side in scrip ACC. (open position)
  • One pending order of 100 qty buy in RELIANCE.

Than following orders will restricted:

  • 100 qty buy order for ACC will rejected against restrict fresh order tick.
  • Modification of pending order of 100 qty buy in reliance rejected against restrict order.
  • 100 qty of acc sold by system against square off open position tick.

For Post trigger event member set following configuration:

🔒 Restrict fresh order🔒 restrict order📊 market order❌ cancel pending order📉 Square off open position
TICKTICKTICKTICKTICK

Then following orders will restricted:

  • 100 qty buy order for ACC will rejected against restrict fresh order tick.
  • Modification of pending order of 100 qty buy in reliance rejected against restrict order.
  • 100 qty of acc sold by system against square off open position tick.
  • Cancellation of pending order in 100 qty buy order in reliance will rejected against cancel pending order restricted.

Now member can set restriction same as he can configure in percentage basis trigger. And system will allow/disallow orders based on restriction set.

System will trigger alert for pre and post event either in percentage basis.

Member set this restriction master config. Apart from above restriction member can also set configuration and following scenario happen.

Restrict post market open: If index touches the pre trigger and post trigger event than by this variable member can set weather market will reopen or not. taken above example

Say nifty touches pre trigger level at 10900 and restriction applied after touching 10900 nifty again come down at 10800 level after some time, now if this variable is ON than trading will resume (i.e. System will allow to place Orders by Resetting all the Pre/ Post Trigger Events Defined) and if this variable is OFF then System shall not Reset the Pre/Post Trigger events Selected (i.e. System will still Restrict the Orders based on the Pre/Post Trigger Events defined).


Restrict Order based on Price Difference in Market Depth

Description: This rule is to restrict the order based on Price difference in Market depth. This rule is to handle the Illiquid contracts which has a high price gap between bid and ask price. This rule is applicable for all the Market Segment and Product Type.

Implementation

  • If Rule is ON – System should Validate and Reject the order based on the Price Difference in Market Depth
  • If Rule is OFF – System should not Validate the Order based on the Price Difference in Market Depth

As per this rule configuration, system shall allow/disallow the order based on the price difference in market depth.

Variables in RRT

⚙️ Variable Name📝 Data Type🔑 Field Type📊 Default
Allow Order if Same Side Market Depth AvailableToggleON/OFFOFF
Price Difference of Bid & Ask (%)Percentage260.5
Price Difference of Bid & Ask (Absolute Price)Numeric222

By default, rule shall be Un-ticked

This rule shall not be displayed for Base Exchanges where Interop is ON.

  • If the rule is selected, system shall 1st check the ON/OFF configuration of "Allow Order if Same Side Market Depth Available" variable.
  • If "Allow Order if Same Side Market Depth Available" is ON and buy order is placed, system shall check whether buy side market depth is available or not. If buy side market depth is available, then system shall allow to place the order without any price checking. In case buy side market depth is not available, then buy order shall be rejected.
  • If "Allow Order if Same Side Market Depth Available" is ON and sell order is placed, system shall check whether sell side market depth is available or not. If sell side market depth is available, then system shall allow to place the order without any price checking. In case sell side market depth is not available, then sell order shall be rejected.
  • If "Allow Order if Same Side Market Depth Available" is OFF and if market depth is not available for any of the side (i.e., buy side or sell side) is not available, then reject the order (i.e., either buy / sell) without any price checking.
    • If market depth available on both the side, then perform the price checking.
  • System shall refer top most buy and sell price on the market depth (i.e., on 0th index) to derive the price difference.
  • System shall derive the Price by applying the % defined in "Price Difference of Bid & Ask (%)" variable on Buy Depth Price.
  • System shall consider the Max (Price derived on applying % defined on Buy Depth Price, Absolute Price defined on "Price Difference of Bid & Ask (Absolute Price)") variable for validation.
  • System shall restrict only fresh order if the price difference between the Bid & Ask Price in market depth of a scrip/contract is greater the defined price in this rule.
  • System shall allow square-off orders irrespective of this rule validations.

Example: 1

  • Assume "Allow Order if Same Side Market Depth Available" is OFF and the market depth is available on both the side.
  • Assume "Price Difference of Bid & Ask (%)" set as 0.5% in rule.
  • Assume "Price Difference of Bid & Ask (Absolute Price)" set as 2 Rs in rule.
  • Assume Buy Depth Price is 1000 and Sell Depth Price is 1020.
  • Price Difference b/w Buy Depth Price & Sell Depth Price is (1020 -1000) = 20 Rs.
  • On Applying 0.5% on Buy Depth Price (i.e., 1000 * 0.5% = 5 Rs).
  • Consider Max of ( Derived Price on applying % defined, Absolute Price defined) (i.e., Max (5, 2) = 5)
  • From rule the max price difference acceptable to place fresh order is less than equals to 5 Rs between the Bid & Ask Price in Market Depth.
  • Here Acceptable Price difference is 5 Rs and actual price difference of the scrip/contract is 20 Rs.
  • In this case, system should reject the fresh order in respective contract.
  • In case square-off order placed in respective contract, system should allow to place the square-off order as this rule validation is not applicable for square-off orders.

Example: 2

  • Assume "Allow Order if Same Side Market Depth Available" is OFF and the market depth is not available on both the side.
  • In this case, system should reject the fresh order in respective contract. (As Buy and Sell Depth Price is not available)
  • In case square-off order placed in respective contract, system should allow to place the square-off order as this rule validation is not applicable for square-off orders.

Example: 3

  • Assume "Allow Order if Same Side Market Depth Available" is ON
  • Assume Buy Depth Price is not available and Sell Depth Price is 1020.
  • In this case, system should reject the fresh Buy order in respective contract. (As Buy Depth Price is not available)
  • In this case, system should accept the fresh Sell order in respective contract.(As Sell depth price is available)
  • In case square-off order placed in respective contract, system should allow to place the square-off order as this rule validation is not applicable for square-off orders.

Note: For example, if the user selects Restrict Normal Buy Order in PMO session timing, then the client order gets rejected if he places an order within PMO session timing.

  • Restrict Fresh Order based on percentage near to Daily Price Range (DPR)

    • Restrict Order Based on Daily Price Range (DPR) is used to restrict the fresh order near Upper or Lower DPR depending on the order side (Buy or Sell) and % defined in the respective variable.
  • Restrict Fresh Order based on the LTP-Based Price Band

    • User can Restrict orders based on LTP based price band. We have a separate menu for LTP, user can set the value as per their business need.
  • Restrict Order based on the Issue Capital

    • It is used to restrict based on based on Issue Capital
  • Restrict Fresh Order based on the expiry date

    • It is used to restrict fresh orders prior to the expiry date.
  • Restrict Fresh Order based on Current Day Traded Value

    • This rule is used to restrict fresh orders due to the Liquidity issues in a Scrip.
  • Restrict Fresh Order based on Current Day Traded Volume

    • This rule is used to restrict fresh orders due to the Liquidity issues in a Scrip.
  • Restrict Fresh Order based on Previous Day Traded Value

    • This rule is used to restrict fresh orders due to the Liquidity issues in a Scrip.
  • Restrict Fresh Order based on Previous Day Traded Volume

    • This rule is used to restrict fresh orders due to the Liquidity issues in a Scrip.
  • Restrict Fresh Order based on Open Interest Quantity

    • This rule is applicable for FNO, CURR and COMM segments and their associate instruments.
  • Restrict Fresh Order based on Open Interest Value

    • This rule is applicable for FNO, CURR and COMM segments and their associate instruments.
  • Restrict Fresh Order based on Strike Price Range

    • This rule is applicable for FNO, CURR and COMM segments and their associate instruments.
  • Restrict Order which are not part of Scrip Basket – Margin (allowed)

    • User can restrict the orders based on the availability of Scrip in Scrip Basket.
  • Restrict Order based on User Level Direct Restriction

    • If this rule is selected then, the system will validate the conditions defined in Entity Level Direct Restriction menu.
    • User can restrict the orders based on the condition defined for respective Scrip in Entity Level Direct Restriction Menu.
  • Restrict Order based on Scrip Basket restricted

    • If this rule is selected then, the system will validate the conditions defined in Scrip Basket Restriction Template.
    • This rule is used to restrict the Scrip to whether the 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 in Scrip Basket Restriction Template.
  • Restrict Position Conversion

    • Restrict Position Conversion rule is used to restrict Position Conversion requests from one Product to another Product based on the variable selection.
  • Restrict Fresh Order Based on Index Deviation Circuit Hit

    • If this rule is selected, system will refer the index deviation condition defined in master configuration menu in Segment tab and validate.