API Reference / ConditionalTriggers
Class: ConditionalTriggers
Defined in: src/resources/ConditionalTriggers.ts:70
Conditional Trigger Orders (Alert Orders) API wrapper.
This wraps the /v2/alerts/orders endpoints for placing orders triggered by price or technical indicators. Unlike standard GTT/Forever orders, conditional triggers support:
- PRICE_WITH_VALUE: Trigger when price crosses a specific value
- TECHNICAL_WITH_VALUE: Trigger when an indicator (SMA, RSI, etc.) crosses a value
- TECHNICAL_WITH_INDICATOR: Trigger when one indicator crosses another (e.g., SMA_20 > SMA_50)
- Multiple orders can be triggered from a single condition
See
https://dhan.co/help/docs/api/v2/#alerts-orders
Constructors
Constructor
new ConditionalTriggers(
httpClient):ConditionalTriggers
Defined in: src/resources/ConditionalTriggers.ts:71
Parameters
httpClient
Returns
ConditionalTriggers
Methods
list()
list():
Promise<GetAlertResponse[]>
Defined in: src/resources/ConditionalTriggers.ts:76
List all conditional trigger orders.
Returns
Promise<GetAlertResponse[]>
getById()
getById(
alertId):Promise<GetAlertResponse>
Defined in: src/resources/ConditionalTriggers.ts:87
Get a specific conditional trigger order by ID.
Parameters
alertId
string
Returns
Promise<GetAlertResponse>
place()
place(
request):Promise<AlertOrderResponse>
Defined in: src/resources/ConditionalTriggers.ts:139
Place a new conditional trigger order.
Parameters
request
PlaceConditionalTriggerRequest
Returns
Promise<AlertOrderResponse>
Example
// Price-based trigger: Buy NIFTY 24500 CE when Nifty spot crosses 24,500
await client.conditionalTriggers.place({
dhanClientId: process.env.DHAN_CLIENT_ID!,
condition: {
comparisonType: "PRICE_WITH_VALUE",
exchangeSegment: "IDX_I",
securityId: "1333", // Nifty 50 index
operator: "GREATER_THAN",
comparingValue: 24500,
frequency: "ONCE",
},
orders: [{
transactionType: "BUY",
exchangeSegment: "NSE_FNO",
productType: "INTRADAY",
orderType: "MARKET",
validity: "DAY",
securityId: "44000", // NIFTY 24500 CE
quantity: 50,
}],
});
// Technical trigger: Buy when RSI crosses above 30
await client.conditionalTriggers.place({
dhanClientId: process.env.DHAN_CLIENT_ID!,
condition: {
comparisonType: "TECHNICAL_WITH_VALUE",
exchangeSegment: "NSE_EQ",
securityId: "26009", // RELIANCE
indicatorName: "RSI_14",
timeFrame: "FIFTEEN_MIN",
operator: "CROSSING_UP",
comparingValue: 30,
frequency: "ONCE",
},
orders: [ { transactionType: "BUY", exchangeSegment: "NSE_FNO", productType: "INTRADAY", orderType: "MARKET", validity: "DAY", securityId: "44000", quantity: 50 } ],
});modify()
modify(
alertId,request):Promise<AlertOrderResponse>
Defined in: src/resources/ConditionalTriggers.ts:153
Modify an existing conditional trigger order.
Parameters
alertId
string
request
ModifyConditionalTriggerRequest
Returns
Promise<AlertOrderResponse>
cancel()
cancel(
alertId):Promise<AlertOrderResponse>
Defined in: src/resources/ConditionalTriggers.ts:168
Cancel/delete a conditional trigger order.
Parameters
alertId
string
Returns
Promise<AlertOrderResponse>
buildPriceCondition()
staticbuildPriceCondition(options):AlertConditionInput
Defined in: src/resources/ConditionalTriggers.ts:188
Helper: Build a price-based condition for options buying stop-loss.
Parameters
options
exchangeSegment
"IDX_I" | "NSE_EQ" | "BSE_EQ" | undefined
securityId
string
triggerAbove?
number
triggerBelow?
number
frequency?
"ONCE"
Returns
Example
const condition = ConditionalTriggers.buildPriceCondition({
exchangeSegment: "IDX_I",
securityId: "1333", // Nifty
triggerAbove: 24500, // Trigger when Nifty goes above 24500
});buildTechnicalCondition()
staticbuildTechnicalCondition(options):AlertConditionInput
Defined in: src/resources/ConditionalTriggers.ts:240
Helper: Build a technical indicator-based condition.
Parameters
options
exchangeSegment
"IDX_I" | "NSE_EQ" | "BSE_EQ" | undefined
securityId
string
indicatorName
"SMA_5" | "SMA_10" | "SMA_20" | "SMA_50" | "SMA_100" | "SMA_200" | "EMA_5" | "EMA_10" | "EMA_20" | "EMA_50" | "EMA_100" | "EMA_200" | "BB_UPPER" | "BB_LOWER" | "RSI_14" | "ATR_14" | "STOCHASTIC" | "STOCHRSI_14" | "MACD_26" | "MACD_12" | "MACD_HIST" | undefined
timeFrame?
"DAY" | "ONE_MIN" | "FIVE_MIN" | "FIFTEEN_MIN"
crossingAbove?
number
crossingBelow?
number
frequency?
"ONCE"
Returns
Example
const condition = ConditionalTriggers.buildTechnicalCondition({
exchangeSegment: "NSE_EQ",
securityId: "26009", // RELIANCE
indicatorName: "SMA_20",
timeFrame: "FIFTEEN_MIN",
crossingAbove: 2500, // Trigger when SMA_20 crosses above 2500
});