agentsclimarketplace

Paper trade runner

Skill rahulcommercial/claude-code-for-indian-traders/skills/paper-trade-runner

Claude Code skills for Indian retail traders — Zerodha Kite, NSE option chains, paper trading, and EOD review.

Install
npx -y skills add rahulcommercial/claude-code-for-indian-traders --skill paper-trade-runner

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Runs a signal-only paper-trading loop for Indian markets — generates entry signals, simulates fills at LTP, manages stop-loss and target, resolves at EOD, and persists trade history. Never places real orders. Trigger when user wants to paper trade, backtest live, simulate a strategy, or generate intraday signals without risk.

SKILL.md

2.6 KB, as published. Nobody here has run it

Paper Trade Runner

The pattern behind a working signal-only daemon for Nifty / BankNifty intraday options.

When to use

  • User wants to test a strategy in live market conditions without real money.
  • User wants signals delivered (UI / log / notification) but no order execution.
  • User wants to build a P&L track record before sizing up.

Core loop

every N seconds during market hours (09:15 – 15:30 IST):
  1. fetch live quotes / candles
  2. evaluate entry rules → generate signal (or skip)
  3. for each open position:
       a. update mark-to-market
       b. check stop-loss / target / time-stop
       c. if hit → resolve, log, free capital
  4. at 15:20 IST → force-close all open positions (intraday safety)
  5. at 15:35 IST → write EOD summary

Required components

  • Signal generator — pure function: (market_state) → Signal | None. Easy to unit test.
  • Position store — JSON / SQLite. Each row: entry_time, instrument, side, qty, entry_price, sl, target, status, exit_time, exit_price, pnl.
  • Capital tracker — starting balance, available margin, blocked margin. Reject signals that exceed available capital.
  • Loss cap — hard stop at configurable daily DD (default: 5% of starting capital). Once hit, no new signals till next day.

Signal schema

{
  "id": "sig_20260606_0934_01",
  "instrument": "NIFTY26JUN24200CE",
  "side": "BUY",
  "qty": 50,
  "entry_price": 142.50,
  "stop_loss": 120.00,
  "target": 180.00,
  "rationale": "20EMA crossover + rising OI on 24200 CE",
  "generated_at": "2026-06-06T09:34:12+05:30"
}

EOD review

At 15:35 IST, emit:

  • Total signals generated / taken / passed
  • Win rate, avg win, avg loss, expectancy
  • Max DD intraday
  • Best and worst trade with rationale

Feed this into daily-pnl-reviewer skill for journaling.

Hard rules

  • No kite.place_order() call. Ever. This skill is signal-only.
  • No leveraged sizing assumptions. Use actual lot sizes and SEBI margin.
  • Square off at 15:20 IST — intraday convention; avoids auto-square-off charges.

Anti-patterns to refuse

  • "Make this place real orders" → refuse, point to risk of unsupervised execution.
  • "Remove the loss cap" → refuse, the cap is the moat.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.