Indian-trading-skills weekly-fno-trade-planner
git clone https://github.com/ajeeshworkspace/indian-trading-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/ajeeshworkspace/indian-trading-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/weekly-fno-trade-planner" ~/.claude/skills/ajeeshworkspace-indian-trading-skills-weekly-fno-trade-planner && rm -rf "$T"
skills/weekly-fno-trade-planner/SKILL.mdWeekly 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
skill):fii-dii-flow-tracker- 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
skill)fii-dii-flow-tracker
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 | | | yfinance |
| Market depth | | | — |
| Historical data | | | yfinance |
| Technical indicators | | — (compute from candles) | yfinance + pandas |
| Open interest | | — | Web search (NSE) |
| Greeks/IV | | — | Black-Scholes script |
| ATM straddle | | — | Manual calculation |
| Margin check | | | — |
| F&O search | | | — |
| Place order | | | — |
| GTT orders | (GTT) | | — |
| Modify GTT | | | — |
| Cancel GTT | | | — |
| Positions | | | — |
| Portfolio | | | — |
| Market movers | | — | Web search |
| F&O movers | | — | Web search |
| Trading calendar | | — | Web search |
| Screener | | — | Web search |
| News | | | |
| FII/DII flows | skill | skill | Web search |
| 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.