Next Strike Price
Returns the strike price at a specified offset from the at-the-money (ATM) strike. This function is essential for dynamically building option chains and option symbols.
Parameters
| Parameter | Required | Description |
|---|---|---|
| Symbol | Yes | Stock ticker symbol (e.g., AAPL, MSFT) |
| NumberOfStrike | Yes | Offset from ATM - can be numeric or special string (see below) |
| ExpirationDate | No | Specific expiration date |
Numeric Offset Values
| Value | Description | Call Position | Put Position |
|---|---|---|---|
| 0 | At-the-money | ATM | ATM |
| 1 | First strike above ATM | OTM | ITM |
| 2 | Second strike above ATM | Further OTM | Further ITM |
| -1 | First strike below ATM | ITM | OTM |
| -2 | Second strike below ATM | Further ITM | Further OTM |
Special String Parameters
ITM/OTM Strike Selection
For explicit control over ITM/OTM strikes, use these special string formats:
| Parameter | Description | Example |
|---|---|---|
otm_call_N |
Nth OTM call strike (above current price) | "otm_call_1", "otm_call_2" |
itm_call_N |
Nth ITM call strike (below current price) | "itm_call_1", "itm_call_2" |
otm_put_N |
Nth OTM put strike (below current price) | "otm_put_1", "otm_put_2" |
itm_put_N |
Nth ITM put strike (above current price) | "itm_put_1", "itm_put_2" |
Target Price Strike Selection
Find the strike nearest to a specific price:
| Parameter | Description | Example |
|---|---|---|
near_X |
Strike nearest to price X | "near_180", "near_250" |
Example: =StrikeNext("AAPL", "near_250") returns the strike closest to $250
Understanding ITM/OTM for Options
| Option Type | In-The-Money (ITM) | Out-of-The-Money (OTM) |
|---|---|---|
| Call | Strike < Stock Price | Strike > Stock Price |
| Put | Strike > Stock Price | Strike < Stock Price |
Example with AAPL at $255.53
| Parameter | Returns | Explanation |
|---|---|---|
"otm_call_1" |
262.5 | First strike above $255.53 (OTM for calls) |
"otm_call_2" |
265 | Second strike above $255.53 |
"itm_call_1" |
255 | First strike below $255.53 (ITM for calls) |
"itm_call_2" |
252.5 | Second strike below $255.53 |
"otm_put_1" |
255 | First strike below $255.53 (OTM for puts) |
"itm_put_1" |
262.5 | First strike above $255.53 (ITM for puts) |
Common Use Cases
This function is typically used with OptionSymbol() and ExpirationNext() to build dynamic option references:
=OptionSymbol("AAPL", ExpirationNext("AAPL",1), "Call", StrikeNext("AAPL","otm_call_1"))Notes
- Strike spacing varies by stock price and exchange rules
- Use 0 for the at-the-money strike
- Combine with ExpirationNext() for specific expirations
- Special string parameters provide explicit ITM/OTM selection without ambiguity
Examples
=StrikeNext("AAPL", 0)=StrikeNext("AAPL", 1)=StrikeNext("AAPL", -1)=StrikeNext("AAPL", 2)=StrikeNext("MSFT", 1, DATE(2026,2,21))=StrikeNext("AAPL", "otm_call_1")=StrikeNext("AAPL", "otm_call_2")=StrikeNext("AAPL", "itm_call_1")=StrikeNext("AAPL", "itm_call_2")=StrikeNext("AAPL", "otm_put_1")=StrikeNext("AAPL", "otm_put_2")=StrikeNext("AAPL", "itm_put_1")=StrikeNext("AAPL", "itm_put_2")=StrikeNext("AAPL", "near_250")=StrikeNext("AAPL", "near_180")=StrikeNext("SPY", "near_500")=OptionSymbol("AAPL", ExpirationNext("AAPL",1), "Call", StrikeNext("AAPL","otm_call_1"))=OptionSymbol("AAPL", ExpirationNext("AAPL",1), "Put", StrikeNext("AAPL","otm_put_2"))=StrikeNext(A1, B1)When to Use
- Find the ATM strike price (use 0)
- Build dynamic option symbols
- Create option chains programmatically
- Find OTM call strikes explicitly (use "otm_call_1", "otm_call_2", etc.)
- Find ITM call strikes explicitly (use "itm_call_1", "itm_call_2", etc.)
- Find OTM put strikes explicitly (use "otm_put_1", "otm_put_2", etc.)
- Find ITM put strikes explicitly (use "itm_put_1", "itm_put_2", etc.)
- Find strike nearest to a target price (use "near_250", "near_180", etc.)
- Price options at specific strike offsets
- Build covered call strategies (use "otm_call_N" for the short call)
- Build protective put strategies (use "otm_put_N" for the long put)
When NOT to Use
| Scenario | Use Instead |
|---|---|
| Need all available strikes | Strikes() |
| Need expiration dates | ExpirationNext() |
| Need option prices | Option_Last_Price() |
| Need full option chain | qm_option_chains() |
Common Issues & FAQ
Q: What does numberOfStrike=0 return? A: It returns the strike price closest to the current stock price (at-the-money).
Q: What's the difference between numeric and string parameters? A: Numeric offsets (1, -1) are relative to ATM. String parameters (otm_call_1, itm_put_1) explicitly specify ITM/OTM based on the option type. The "near_X" parameter finds the strike closest to a specific price.
Q: When should I use "otm_call_N" vs numeric offset? A: Use "otm_call_N" when you specifically want OTM calls regardless of ATM position. Numeric offsets are relative to ATM which may not align with ITM/OTM boundaries.
Q: How does "near_X" work?
A: "near_250" returns the available strike price closest to $250. This is useful when you want a specific price level rather than relative to ATM.
Q: How do I know what strikes are available?
A: Use Strikes() function to get all available strikes for a symbol and expiration.
Q: What does "itm_call_1" return? A: The first strike price below the current stock price - this is ITM for call options.
Q: What does "otm_put_1" return? A: The first strike price below the current stock price - this is OTM for put options.
Q: How do I build a complete option symbol?
A: Combine functions: =OptionSymbol("AAPL", ExpirationNext("AAPL",1), "Call", StrikeNext("AAPL","otm_call_1"))
