惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Last Week in AI
Last Week in AI
有赞技术团队
有赞技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
人人都是产品经理
人人都是产品经理
博客园 - 司徒正美
博客园 - 聂微东
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 叶小钗
罗磊的独立博客
IT之家
IT之家
博客园 - 三生石上(FineUI控件)
V
Visual Studio Blog
T
Tailwind CSS Blog
大猫的无限游戏
大猫的无限游戏
Hugging Face - Blog
Hugging Face - Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
N
Netflix TechBlog - Medium
MyScale Blog
MyScale Blog
J
Java Code Geeks
L
LangChain Blog
S
SegmentFault 最新的问题
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Apple Machine Learning Research
Apple Machine Learning Research
G
Google Developers Blog

Hacker News - Newest: "AI"

AI can't read an investor deck AI as an attorney? Student uses ChatGPT, Gemini to sue UW over alleged racial discrimination Hacking MCP Servers in AI Systems – The Rug Pull: Tool Changes After Approval GitHub - MeepCastana/KubeezCut: Free Web based video editor Can AI judge journalism? A Thiel-backed startup says yes, even if it risks chilling whistleblowers Coming soon: 10 Things That Matter in AI Right Now DARPA built an AI to fact-check enemy weapons claims What explains heterogeneity in AI adoption? When AI Meets Muscle: Context-Aware Electrical Stimulation Promises a New Way to Guide Human Movements - Department of Computer Science AI Changed How We Build. It Did Not Change What Matters. Linux rules on using AI-generated code - Copilot is OK, but humans must take 'full responsibility for the… Meta spins up AI version of Mark Zuckerberg to engage with employees Code Mode: Let Your AI Write Programs, Not Just Call Tools | TanStack Blog GitHub - Delavalom/graft: Go framework for building AI agents. Type-safe tools, multi-provider (OpenAI, Anthropic, Gemini, Bedrock), zero vendor SDKs. India's TCS tops estimates, says new AI models did not dent services demand Gen Z's fading AI hype Strong feeling: we are in a folded AI reality GitHub - machinarii/total-recall-catalog: A reference catalog of latest knowledge retrieval, memory & RAG systems GitHub - mensfeld/code-on-incus: Give each AI agent its own isolated machine with root, Docker, and systemd. Active defense detects and stops threats automatically.. Quantization, LoRA, and the 8% Problem: Benchmarking Local LLMs for Production AI Iran war: We spoke to the man making Lego-style AI videos that experts say are powerful propaganda Powell, Bessent discussed Anthropic's Mythos AI cyber threat with major U.S. banks GitHub - immartian/bellamem: Persistent belief-graph memory for AI agents. Retrieves decisive context by importance — not recency, not RAG, not /compact. recursive-mode: The Repo-Native Operating System for AI Engineering After the attack on Sam Altman's home, will AI CEO's go on the offensive? The biggest advance in AI since the LLM Opus 4.6 vs GPT 5.4 One Prompt Unity World Generation Test “AI polls” are fake polls Client Challenge Can AI be a 'child of God'? Inside Anthropic's meeting with Christian leaders
GitHub - analyticalmonk/autotrader: Self-editing AI paper...
akashtndn · 2026-05-24 · via Hacker News - Newest: "AI"

autotrade

A paper-trading experiment on Indian equities (Nifty 500). Claude itself runs the trading loop on a free GCP VM and edits its own strategy between polls. Real Indian transaction costs (STT, GST, stamp duty, brokerage), real Kite Connect price feed, no real money.

Status: paused. Two-week run ended May 8 2026 at Rs 108,049 (+8.05% on Rs 1,00,000 starting capital). The repo is left in a state forkable for anyone who wants to continue or reuse the harness. The full writeup (sessions, incidents, what the experiment actually taught) is at https://www.akashtandon.in/autotrader/.

What's in here

  • live.py - single-shot polling loop. Fetches prices, runs strategy, executes paper trades, persists state.
  • strategy.py - trading signals + position sizing. The only file the agent is allowed to edit.
  • prepare.py - shared types (Signal, Position, Trade, Portfolio) and the Indian-equity cost calculator.
  • config.py - starting balance, Nifty 500 universe, polling config, cost rates.
  • kite_fetch.py / kite_login.py - Kite Connect data layer + daily OAuth helper.
  • corporate_actions.py - NSE ex-date blocklist + demerger entitlement minting.
  • program.md - full instructions for the trading agent.
  • VM_LOOP_PROMPT.md - the prompt Claude runs under /loop 5m on the VM.
  • DEPLOY.md - end-to-end VM setup guide (GCP e2-micro, free tier).
  • learnings.md - the original run's journal. Treat as historical; reset for your own run.

Quick start (local)

One-time prerequisites (you do these, not Claude Code)

  1. Get Zerodha Kite Connect credentials. Sign up at https://developers.kite.trade, create an app, note the API key and API secret. Kite Connect costs Rs 500/month for real-time NSE quotes.
  2. Clone your fork and bootstrap the environment.
    git clone https://github.com/<your-username>/autotrade.git
    cd autotrade
    python3 -m venv .venv && source .venv/bin/activate
    pip install -r requirements.txt
    cp .env.example .env
    # Edit .env: set KITE_API_KEY and KITE_API_SECRET from step 1.
  3. Complete the daily Zerodha OAuth flow. Zerodha forbids scripted login, so this is manual: Open the printed URL in a browser. Log in to Zerodha. After login, your browser will get redirected to a URL that starts with http://127.0.0.1/...&request_token=... - the page won't load, but copy the full URL from the address bar. Then:
    python kite_login.py '<paste the full redirect URL here>'
    .kite_token is now seeded. You'll repeat this once per day (token expires near 6 AM IST).

Running it with Claude Code locally

Open Claude Code in this directory: claude (after source .venv/bin/activate). Then ask it to run one poll:

Read program.md for context, then run `python live.py` and tell me what happened.

Per-poll, Claude should:

  • Run python live.py (must be inside the activated venv, with a fresh .kite_token).
  • Read the output - portfolio snapshot, signals generated, trades executed.
  • Decide whether to edit strategy.py. Criteria are in VM_LOOP_PROMPT.md under "Criteria for Strategy Changes". Don't thrash - only edit on clear evidence across multiple polls.
  • If changing strategy: edit strategy.py, commit with strategy: prefix, append a note to learnings.md explaining why.

For continuous polling, use Claude Code's /loop 5m command and point it at VM_LOOP_PROMPT.md:

/loop 5m Follow VM_LOOP_PROMPT.md. Keep each iteration brief.

Expected output

  • Outside market hours (Mon-Fri 9:15-15:30 IST): live.py early-returns with a "MARKET CLOSED" / "outside market hours" line and does not fetch prices or update state.
  • Inside market hours, first poll: live_state.json is created; portfolio starts at Rs 1,00,000 cash, no positions; signals may or may not fire depending on the universe state.
  • Inside market hours, subsequent polls: state is loaded from live_state.json, prices refetched, strategy run, trades executed if signals fire. live.py enforces a minimum poll interval (config.POLL_INTERVAL_MINUTES, default 4 minutes) and skips early calls with a "Skipping" message.
  • Auth failure: live.py raises a clear error if .kite_token is missing or expired. Re-run the OAuth flow above.

Resetting

live_state.json, results.tsv, and logs/ are gitignored and start fresh on first run. To reset between experiments: rm live_state.json (next poll begins from Rs 1,00,000 again).

Running it autonomously on a VM

Read DEPLOY.md. The short version: free-tier GCP e2-micro + Ubuntu 24.04 + tmux + Claude Code's /loop 5m driving the observe-iterate-commit cycle. The agent edits strategy.py, commits, pushes; the next poll picks up the new code via hot-reload.

Cost: ~Rs 500/month for Kite Connect data. The VM is free. Claude Code usage is whatever your plan covers.

Forking and continuing

If you want to pick up where this left off, or run your own variant:

  1. Fork the repo, clone your fork.
  2. learnings.md is the original run's journal. Optionally archive and clear it before starting your own; live_state.json, results.tsv, and the daily logs are gitignored and will start fresh.
  3. Follow DEPLOY.md for the VM, or just run locally with python live.py.
  4. Read program.md for the trading-agent contract and CLAUDE.md for what Claude should and shouldn't edit.

Known issues (what the original run did not solve)

  • Loop liveness. The /loop-driven tmux session died silently twice during the run (May 5, May 7). No watchdog. A cron that pings the latest log file's mtime and alerts on staleness would close this.
  • No bid/ask in the simulator. Paper fills assume the observed quote. Slippage, spread, partial fills, and market impact are not modeled.
  • Latency. A 5-minute polling cadence is coarse for momentum trades.
  • Stale-price defenses are heuristic. The ex-date blocklist and market-state guard cover the bugs the original run hit, not the ones it didn't.

Constraints baked into the system

  • Loss floor at Rs 80,000 - portfolio below this triggers full liquidation.
  • No short selling, no leverage. Sell only shares held, buy only with available cash.
  • Real Indian equity delivery costs apply.
  • The agent may only edit strategy.py. Everything else is off-limits.

License

MIT. See LICENSE.