A natural-language layer for placing multi-leg option strategies, built 0-to-1 in five and a half weeks.
StratX is Motilal Oswal’s in-house algorithmic F&O trading platform: a marketplace of exchange-approved, back-tested derivative strategies, a no-code strategy builder, and a Python builder for custom algorithms.
It executes trades. It does not help anyone decide what to trade. A user still has to turn an intention into the platform’s vocabulary, either by choosing from the marketplace, learning the builder, or writing Python. Each route asks for expertise the platform does not supply.
I was AI product lead on a natural-language layer over it. The user says what they want and the system places it.
A survey of 3,400 participants set the scope and the build order. The first release covered 34 multi-leg strategies, limit and market orders, take-profit, stop-loss and trailing stop-loss, and tooling to read and square off open positions, across 15 existing StratX APIs. We built it in five and a half weeks against a 24-week estimate, using test-driven development with AI.
The straightforward design sends the user’s sentence to a language model and asks it for a structured order.
We did not build that. A multi-leg option strategy is several orders that only work as a set. A wrong strike, expiry or direction puts a position on the client’s book that they never asked for, in a live exchange session, and the exchange will not reverse it.
I had met this problem before. At Goldman Sachs I implemented the credit and fraud strategies that decided every Apple Card application, as final owner of the production decision layer. An automated system produced the decision, but a person remained accountable for it, and a wrong decision cost real money. Under those conditions the useful question is not how often the system is right. It is what the system does when it is unsure.
So intent parsing runs on deterministic natural language processing, schema validation and slot filling. The parser extracts strategy, legs, strikes, expiry and order type into a schema and validates them. Anything missing or ambiguous produces a question to the user rather than an inferred value. If the input does not resolve to a complete valid order, nothing reaches the exchange.
Intent classification was developed from fifteen prompt variants per capability. It reaches 95% on single-turn requests and 83% on multi-turn ones. The gap between those two numbers is why the system asks instead of guessing once a conversation runs past one exchange.
The model still does what models are good at. Per-user retrieval on MongoDB and Redis gives the assistant context on what the user actually holds. Voice input is native audio in Hindi, English and Hinglish, because most of these users do not describe their trades in English. We started on AWS Bedrock with Nova Pro and later moved to Gemini 2.5 Flash on Google Cloud Vertex.
Taking intent parsing off the model cut p95 latency from 4.3 seconds to 1.8, and input token cost by 62%.
It also removed the dependency on one frontier model’s behaviour. When we changed provider, we changed a component rather than rewriting the product.