name: weekly-fno-trade-planner description: > Weekly F&O trade planning skill for Indian markets. Analyzes news/macro events, identifies trending sectors and instruments, determines probable direction, suggests option strategy with entry/exit levels, and manages stop-loss and profit booking after position entry. Use when user wants a weekly trade idea, F&O direction call, or ongoing position management for Nifty, Bank Nifty, or stock options.
Weekly F&O Trade Planner
Overview
A complete weekly trading workflow for Indian F&O markets — from macro thesis to position management. This skill identifies high-conviction directional trades by combining news analysis, sector screening, technical confirmation, and institutional flow data, then manages the position with structured stop-loss and profit-booking rules.
Designed for retail traders with limited capital who prefer option buying over selling. Supports both Groww MCP and Zerodha Kite MCP for live execution.
Phase 1: News & Macro Scan
Goal
Identify the dominant narrative driving markets this week.
Steps
- Fetch breaking news and macro events:
WebSearch: "Indian stock market news this week {current_date}"
WebSearch: "global markets impact India {current_week}"
WebSearch: "RBI SEBI announcement {current_month} {current_year}"
WebSearch: "geopolitical risk India market {current_date}"
- Categorize the macro environment:
| Category | Examples | Typical F&O Play |
|---|---|---|
| Geopolitical crisis | War, sanctions, oil shock | Index PUTs (Nifty/BankNifty) |
| Policy event | RBI rate decision, budget, SEBI circular | Straddle/strangle before event |
| Earnings season | IT/Banking results week | Stock options directional |
| Global risk-off | US recession fear, China slowdown, Fed hawkish | Index PUTs, IT stock CALLs (INR weak) |
| Domestic momentum | DII buying, reform news, GDP beat | Index CALLs, banking CALLs |
| Sector rotation | Defence order, pharma approval, EV policy | Sector-specific stock options |
| Low conviction | No clear driver, range-bound | Avoid or play iron condor |
- Rate the macro conviction (1-5):
- 5: Clear, strong catalyst with defined timeline (e.g., war escalation, surprise rate cut)
- 4: Strong theme but timing uncertain
- 3: Moderate — multiple conflicting signals
- 2: Weak — mostly noise
- 1: No conviction — skip the week or go very small
Rule: Only proceed to Phase 2 if conviction >= 3.
Phase 2: Sector & Instrument Identification
Goal
Find the ONE instrument most likely to move meaningfully this week.
Steps
- Screen market movers and sectors:
Use whichever broker MCP is connected:
# Groww MCP
fetch_market_movers_and_trending_stocks_funds(
discovery_filter_types=["TOP_GAINERS", "TOP_LOSERS", "VOLUME_SHOCKERS",
"YEARLY_HIGH", "YEARLY_LOW", "STOCKS_IN_NEWS"]
)
fetch_curated_fno(fno_filter_types=["GAINERS", "LOSERS", "TOP_TRADED"])
# Zerodha Kite MCP — use web search for movers, then:
# search_instruments(query="{sector_leader}")
-
Check institutional flows (invoke
fii-dii-flow-trackerskill):- FII net buy/sell trend (last 5-10 days)
- DII positioning
- Sector-wise FII allocation shifts
-
Narrow to ONE instrument using this priority:
- Index (Nifty/BankNifty): For macro/geopolitical/broad market themes
- Sector ETF or index: For sector rotation themes
- Single stock: For earnings/company-specific catalysts (must be in F&O list)
-
Validate F&O availability:
# Groww MCP
fno_mcx_contracts_search_tool(search_term="{instrument_name}")
# Zerodha Kite MCP
search_instruments(query="{instrument_name}", segment="NFO-OPT")
Selection Criteria
The ideal instrument has:
- Direct exposure to the identified macro theme
- High F&O liquidity (tight bid-ask spread)
- Clear technical setup (trending, not choppy)
- Manageable lot size for user's capital
Phase 3: Direction & Technical Confirmation
Goal
Determine the probable direction (bullish/bearish) with technical evidence.
Steps
- Fetch price data (daily and hourly):
# Groww MCP
fetch_historical_candle_data(
trading_symbol="{symbol}",
start_time="{60_days_ago} 09:15:00",
end_time="{today} 15:30:00",
interval_in_minutes="1440"
)
# Zerodha Kite MCP
get_historical_data(
instrument_token="{token}",
from_date="{60_days_ago}",
to_date="{today}",
interval="day"
)
- Run technical indicators:
# Groww MCP
get_historical_technical_indicators(
trading_symbol="{symbol}",
start_time="{30_days_ago} 09:15:00",
end_time="{today} 15:30:00",
interval_in_minutes="1440",
indicators=["sma", "ema", "rsi", "macd", "supertrend", "bollinger", "atr", "vwap"]
)
# Zerodha Kite MCP — fetch raw candles and compute indicators manually or via yfinance
-
Identify key levels:
- Support levels: Recent swing lows, round numbers, SMA/EMA zones
- Resistance levels: Recent swing highs, previous breakdown points
- Trend: Higher highs/lows (bullish) or lower highs/lows (bearish)
- Momentum: RSI, MACD crossover direction, SuperTrend signal
-
Check Open Interest for institutional positioning:
# Groww MCP
get_open_interest_analysis(symbol="{symbol}", view="all")
# Zerodha Kite MCP — use web search for OI data from NSE
- Heavy PUT writing at a strike = institutional support floor
- Heavy CALL writing at a strike = institutional resistance ceiling
- PCR > 1.2 = market leaning bullish (hedged)
- PCR < 0.8 = market leaning bearish
- Direction verdict:
| Signal | Bullish | Bearish |
|---|---|---|
| Trend | Higher lows | Lower highs |
| RSI | 40-60 rising | 40-60 falling |
| MACD | Bullish crossover | Bearish crossover |
| SuperTrend | Green/Buy | Red/Sell |
| FII flows | Net buying | Net selling |
| OI structure | Heavy PUT writing below | Heavy CALL writing above |
Rule: Need 4+ signals aligned for a directional trade. If mixed, skip or play non-directional.
Phase 4: Strategy & Entry Plan
Goal
Select the optimal option strategy and define precise entry levels.
Steps
- Check IV environment:
# Groww MCP
get_greeks_for_fno_contract(
search_queries=["{atm_option}"],
expiry="{expiry_date}"
)
get_atm_straddle_chart(symbol="{symbol}")
# Zerodha Kite MCP — compute IV from option price using Black-Scholes
- Select strategy based on conviction + IV:
| Conviction | IV Level | Direction | Strategy |
|---|---|---|---|
| High (4-5) | Low-Normal | Bullish | Buy ATM/slightly OTM CALL |
| High (4-5) | Low-Normal | Bearish | Buy ATM/slightly OTM PUT |
| High (4-5) | High | Bullish | Bull call spread (cap IV risk) |
| High (4-5) | High | Bearish | Bear put spread (cap IV risk) |
| Moderate (3) | Low | Either | Buy OTM option (cheap lottery) |
| Moderate (3) | High | Either | Sell far OTM opposite side (collect premium) |
| Any | Very High | Pre-event | Straddle/strangle (if event binary) |
-
Expiry selection:
- Current week expiry: Only if entering Mon-Tue with high conviction
- Next week expiry: Default choice — gives 7-12 days
- Monthly expiry: For lower conviction or swing trades
- Rule: Never buy options with < 3 days to expiry unless very high conviction
-
Strike selection:
- ATM or 1 strike OTM: High conviction, want delta exposure
- 2-3 strikes OTM: Moderate conviction, cheaper but needs bigger move
- Deep OTM: Avoid (low probability, theta destroys)
-
Position sizing:
# Groww MCP
calculate_fno_margin(
trading_symbol="{option_symbol}",
num_lots=1,
transaction_type="BUY",
product="NRML"
)
get_available_margin_details()
# Zerodha Kite MCP
get_margins()
- Max risk per trade: 30-40% of capital for single directional bet
- Preferred: Split into 2-3 lots for scaling in/out
- Never: Risk more than 50% of capital on a single trade
- Define entry plan:
- Entry trigger: Specific price level or technical confirmation
- Entry price range: Acceptable premium range
- Lot allocation: How many lots at entry vs. add-on
Output: Trade Card
TRADE IDEA — Week of {date}
━━━━━━━━━━━━━━━━━━━━━━━━━━━
Thesis: {1-line macro reason}
Instrument: {symbol}
Direction: {BULLISH/BEARISH}
Conviction: {3/4/5 out of 5}
Strategy: Buy {strike} {CE/PE} {expiry}
Entry: ₹{premium} (when {underlying} at {level})
Lots: {n} lots ({quantity} qty)
Capital: ₹{amount} ({%} of total)
Stop-Loss: ₹{sl_premium} ({underlying} at ~{level}) = -₹{loss}
Target 1: ₹{t1_premium} ({underlying} at ~{level}) = +₹{profit1}
Target 2: ₹{t2_premium} ({underlying} at ~{level}) = +₹{profit2}
Risk:Reward = 1:{ratio}
Max Loss: ₹{max_loss} ({%} of capital)
━━━━━━━━━━━━━━━━━━━━━━━━━━━
Phase 4.5: Gap Probability & Immediate Entry Decision
Goal
When analysis is run DURING MARKET HOURS or AFTER MARKET CLOSE (post 3:30 PM), assess whether the next trading day is likely to see a significant gap-up or gap-down. If high probability, recommend IMMEDIATE entry before close — do NOT defer to next morning.
THIS IS THE MOST CRITICAL PHASE FOR MULTIPLIED PROFITS. Buying OTM options before a gap is 2-5x cheaper than buying after the gap opens. Missing this window is the single biggest profit killer for retail F&O traders.
When to Trigger This Phase
- Always when running the skill after 2:00 PM on a trading day
- Always when running the skill after market close (post 3:30 PM)
- Always when conviction is >= 4 and direction is clear
- Always when an active geopolitical/macro crisis is ongoing
Steps
- Check GIFT Nifty / SGX Nifty (after hours):
WebSearch: "GIFT Nifty live today {current_date}"
WebSearch: "SGX Nifty futures {current_date} evening"
- GIFT Nifty trading > 100 pts below close = high gap-down probability
- GIFT Nifty trading > 100 pts above close = high gap-up probability
- Check overnight global cues:
WebSearch: "US futures S&P Nasdaq live {current_date}"
WebSearch: "Asian markets Japan China {current_date} evening"
WebSearch: "crude oil price Brent live tonight {current_date}"
- US futures down > 1% = gap-down signal
- Brent crude spike > 3% overnight = strong gap-down for India
- Asian markets deep red = confirms gap-down
- Check overnight news catalysts:
WebSearch: "{active_crisis} latest news tonight {current_date}"
WebSearch: "breaking news global markets after hours {current_date}"
- New escalation in active crisis = gap accelerator
- De-escalation / ceasefire = reverse gap
- Calculate Gap Probability Score:
| Factor | Bearish Gap | Bullish Gap |
|---|---|---|
| GIFT Nifty > 100 pts below close | +30% | — |
| GIFT Nifty > 200 pts below close | +50% | — |
| US futures down > 1% | +15% | — |
| Brent crude up > 3% overnight | +20% | — |
| Active geopolitical crisis escalating | +20% | — |
| FII selling > ₹3,000 cr today | +10% | — |
| GIFT Nifty > 100 pts above close | — | +30% |
| GIFT Nifty > 200 pts above close | — | +50% |
| US futures up > 1% | — | +15% |
| Ceasefire / de-escalation news | — | +25% |
| FII buying > ₹2,000 cr today | — | +10% |
Score > 60% = HIGH probability gap. RECOMMEND IMMEDIATE ENTRY.
- Immediate Entry vs Wait Decision:
| Gap Probability | Time | Action |
|---|---|---|
| > 60% | Before 3:15 PM | BUY NOW. Do not wait for tomorrow. |
| > 60% | After 3:30 PM | Alert user: Buy at 9:15 AM tomorrow. Pre-set limit order. |
| 40-60% | Any | Buy half position now, half at open |
| < 40% | Any | Wait for confirmation at open |
-
Pre-Gap Strike Selection (DIFFERENT from regular entry): When buying BEFORE a gap, select strikes that are currently 2-4 strikes OTM:
- These are cheap (₹50-150 range) = maximum leverage
- After the gap, they become ATM or slightly OTM = premium explodes
- Buy MORE lots of cheaper OTM options for max profit on the gap
- This is the "lottery ticket" entry — high R:R, limited downside
Example (Bearish gap expected):
- Nifty at 23,778 → Buy 23,000 PE at ₹109 (778 pts OTM)
- Next day gap to 23,200 → 23,000 PE jumps to ₹250+ (130% overnight gain)
- 6 lots × 65 × ₹141 profit = ₹55,000 on ₹42,500 invested
-
Output: Immediate Entry Alert:
🚨 GAP ALERT — {DIRECTION} GAP EXPECTED TOMORROW
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Gap Probability: {score}%
GIFT Nifty: {level} ({change} from close)
Key Catalyst: {reason}
⚡ IMMEDIATE ENTRY RECOMMENDED — BUY BEFORE CLOSE
Strategy: Buy {strike} {CE/PE} {expiry} (currently {X} pts OTM)
Premium: ₹{cheap_price} per unit
Lots: {max_lots} lots in ₹{budget}
Cost: ₹{total_cost}
Expected tomorrow open: ₹{estimated_premium} (+{%} overnight)
Expected profit: ₹{overnight_profit}
vs. buying AFTER gap: Premium will be ₹{expensive_price}
You'd get {fewer_lots} lots for same ₹{budget}
Profit potential: {reduced}% lower
⏰ WINDOW: Buy before 3:15 PM today
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Critical Rules for Pre-Gap Entry
- Only with conviction >= 4 — Don't gamble on uncertain gaps
- Max 40% of capital — Even with high conviction, respect position limits
- Always use monthly expiry for pre-gap entries — gives time if gap is delayed
- Set SL immediately — Pre-gap entries can go wrong (gap doesn't materialize)
- If gap doesn't happen next day — Hold if thesis is intact, exit if thesis breaks
- Don't chase if you miss the window — Post-gap premiums are 2-3x, reduce lots
Phase 5: Execution
Goal
Place the trade with proper order types.
Steps
- Verify live price before entry:
# Groww MCP
get_ltp(search_queries=["{option_symbol}"], segment="FNO", query_type="fno")
get_quotes_and_depth(search_query="{option_symbol}", segment="FNO", entity_type="fno")
# Zerodha Kite MCP
get_ltp(instruments=["NFO:{option_symbol}"])
get_quotes(instruments=["NFO:{option_symbol}"])
- Place the order (always ask user for confirmation):
# Groww MCP
place_fno_order(
trading_symbol="{option_symbol}",
num_lots={n},
transaction_type="BUY",
order_type="LIMIT",
price={limit_price},
product="NRML"
)
# Zerodha Kite MCP
place_order(
exchange="NFO",
tradingsymbol="{option_symbol}",
transaction_type="BUY",
quantity={quantity},
order_type="LIMIT",
price={limit_price},
product="NRML"
)
- Set GTT stop-loss immediately after fill:
# Groww MCP
place_fno_order(
trading_symbol="{option_symbol}",
num_lots={n},
transaction_type="SELL",
order_type="LIMIT",
price={sl_price},
trigger_price={sl_trigger},
smart_order_category="GTT",
trigger_direction="DOWN",
product="NRML"
)
# Zerodha Kite MCP
place_gtt_order(
trigger_type="single",
tradingsymbol="{option_symbol}",
exchange="NFO",
trigger_values=[{sl_trigger}],
last_price={current_ltp},
orders=[{
"transaction_type": "SELL",
"quantity": {quantity},
"price": {sl_price},
"order_type": "LIMIT",
"product": "NRML"
}]
)
- Set GTT profit target (same pattern as above with trigger_direction="UP")
Important GTT notes:
- GTT triggers on the OPTION's LTP, not the underlying price
- Always set trigger_price slightly before the limit price (e.g., trigger at ₹95, sell at ₹90 for SL)
- On Groww: GTT may show "verification failed" — this is a known display bug, the order is active
- After exiting a position, ALWAYS cancel orphaned GTTs
Phase 6: Position Management (Ongoing)
Goal
Manage the position daily with structured rules for SL tightening, partial exits, and full exit.
Daily Monitoring Checklist
- Check position P&L:
# Groww MCP
get_my_trading_positions_today()
get_specific_stock_position(trading_symbol="{option}", segment="FNO")
# Zerodha Kite MCP
get_positions()
- Check underlying price action:
# Use either broker MCP for live price + intraday chart
get_ltp(search_queries=["{underlying}"])
fetch_historical_candle_data(
trading_symbol="{underlying}",
start_time="{today} 09:15:00",
end_time="{today} 15:30:00",
interval_in_minutes="5"
)
- Check news for thesis changes:
WebSearch: "{macro_theme} latest news {current_date}"
- Check institutional flows (FII/DII daily data via
fii-dii-flow-trackerskill)
Stop-Loss Tightening Rules
| Premium Move | New SL Level | Logic |
|---|---|---|
| Entry | -30% of premium | Initial risk limit |
| +30% profit | Breakeven (entry price) | "Free trade" — can't lose |
| +50% profit | Entry + 20% | Lock 20% guaranteed profit |
| +100% profit | Entry + 50% | Lock 50%, let rest run |
| +150%+ profit | Trail by 30% from peak | Ride the momentum |
To tighten a GTT SL:
# Groww MCP
modify_order_with_confirmation(
groww_order_id="{gtt_order_id}",
quantity={qty},
segment="FNO",
order_type="LIMIT",
price={new_sl_price},
trigger_price={new_trigger},
trigger_direction="DOWN",
order_category="GTT"
)
# Zerodha Kite MCP
modify_gtt_order(
trigger_id={gtt_id},
trigger_type="single",
tradingsymbol="{option_symbol}",
exchange="NFO",
trigger_values=[{new_trigger}],
last_price={current_ltp},
orders=[{
"transaction_type": "SELL",
"quantity": {qty},
"price": {new_sl_price},
"order_type": "LIMIT",
"product": "NRML"
}]
)
Partial Profit Booking Rules
| Condition | Action | Remaining |
|---|---|---|
| Target 1 hit (+50-80%) | Exit 40-50% of position | 50-60% as runner |
| Target 2 hit (+100-150%) | Exit another 30% | 20-30% as runner |
| Momentum continues | Trail SL on remaining | Let it ride |
| Thesis weakens | Exit all remaining | Protect profits |
Full Exit Triggers
Exit the ENTIRE position when:
- SL hit: No questions, no hoping — exit immediately
- Thesis invalidated: Key news changes the setup (e.g., ceasefire in a war trade)
- Time decay risk: < 2 days to expiry and position is OTM
- IV crush: After a binary event, IV drops killing premium even if direction is right
- Weekend risk: For weekly expiry options, exit Friday unless very high conviction
- Overexposure: If unrealized P&L exceeds 50% of total capital, take some off
Exit Execution
# Market exit for urgency (Groww)
place_fno_order(
trading_symbol="{option_symbol}",
num_lots={remaining_lots},
transaction_type="SELL",
order_type="MARKET",
product="NRML"
)
# Zerodha Kite
place_order(
exchange="NFO",
tradingsymbol="{option_symbol}",
transaction_type="SELL",
quantity={remaining_qty},
order_type="MARKET",
product="NRML"
)
# ALWAYS cancel orphaned GTTs after exit
# Groww: cancel_order_with_confirmation(groww_order_id="{gtt_id}", segment="FNO", order_category="GTT")
# Zerodha: delete_gtt_order(trigger_id={gtt_id})
Risk Management Rules (Non-Negotiable)
- Max capital at risk: 40% of total capital per trade
- Always set SL: Never hold a position without a stop-loss GTT
- No averaging down: If SL is hit, accept the loss. Don't add to losers.
- Weekend rule: Exit weekly expiry options before Friday close unless thesis is very strong
- Theta awareness: Options lose ~30-50% of remaining time value over a weekend
- IV awareness: After a big event, IV crushes. Factor this into hold decisions.
- No revenge trading: If a trade is stopped out, wait for the next clean setup
- Position limit: Max 2 open F&O positions at any time
- Cancel orphaned GTTs: After every exit, clean up ALL related GTT orders
- Journal the trade: Record entry reason, exit reason, P&L, and lessons learned
Weekly Schedule
| Day | Activity |
|---|---|
| Sunday evening | Phase 1-4: Full analysis, generate Trade Card |
| Monday 9:00 AM | Phase 4.5: Check GIFT Nifty, assess gap probability |
| Monday 9:00-9:15 | Phase 5: Execute if setup confirms (pre-open or at open) |
| Mon-Thu (market hours) | Phase 6: Daily monitoring, SL tightening, partial exits |
| Mon-Thu (post 3 PM) | Phase 4.5: ALWAYS check for next-day gap opportunity |
| Mon-Thu (after close) | Phase 4.5: Check GIFT Nifty + overnight cues for gap alert |
| Friday | Decision: Exit before weekend or hold (apply weekend rule) |
| Weekend | Review, journal, prepare next week's analysis |
IMPORTANT: Evening Workflow (The Edge)
Every trading day after 2:30 PM or after market close, if an active position thesis exists or macro conviction >= 3, the skill MUST run Phase 4.5 to check for overnight gap opportunities.
The #1 profit multiplier in F&O is buying BEFORE the gap, not AFTER.
If the user invokes this skill in the evening / after hours:
- Skip Phases 1-3 if thesis is already established
- Go DIRECTLY to Phase 4.5 (Gap Probability)
- If gap score > 60%, issue Immediate Entry Alert
- NEVER say "wait for tomorrow" when gap probability is high and market is still open
- If market is closed, alert user to set pre-market limit order or buy at 9:15 sharp
Tools Used
Use whichever broker MCP is connected (Groww or Zerodha Kite):
| Action | Groww MCP | Zerodha Kite MCP | Fallback |
|---|---|---|---|
| Live price | get_ltp | get_ltp | yfinance |
| Market depth | get_quotes_and_depth | get_quotes | — |
| Historical data | fetch_historical_candle_data | get_historical_data | yfinance |
| Technical indicators | get_historical_technical_indicators | — (compute from candles) | yfinance + pandas |
| Open interest | get_open_interest_analysis | — | Web search (NSE) |
| Greeks/IV | get_greeks_for_fno_contract | — | Black-Scholes script |
| ATM straddle | get_atm_straddle_chart | — | Manual calculation |
| Margin check | calculate_fno_margin | get_margins | — |
| F&O search | fno_mcx_contracts_search_tool | search_instruments | — |
| Place order | place_fno_order | place_order | — |
| GTT orders | place_fno_order (GTT) | place_gtt_order | — |
| Modify GTT | modify_order_with_confirmation | modify_gtt_order | — |
| Cancel GTT | cancel_order_with_confirmation | delete_gtt_order | — |
| Positions | get_my_trading_positions_today | get_positions | — |
| Portfolio | get_equity_portfolio_holdings | get_holdings | — |
| Market movers | fetch_market_movers_and_trending_stocks_funds | — | Web search |
| F&O movers | fetch_curated_fno | — | Web search |
| Trading calendar | resolve_market_time_and_calendar | — | Web search |
| Screener | fetch_technical_screener | — | Web search |
| News | WebSearch | WebSearch | WebSearch |
| FII/DII flows | fii-dii-flow-tracker skill | fii-dii-flow-tracker skill | Web search |
| Calculator | calculator | — | Python |
Disclaimer
This skill provides analysis and trade suggestions based on publicly available data and technical/fundamental indicators. It is NOT financial advice. All F&O trading involves significant risk of loss. Users must make their own investment decisions and are responsible for their own trades. Past patterns do not guarantee future results.