Oracle3
Open-source trading engine and MCP server for prediction markets. Fee-aware no-arbitrage trading across related contracts, live on Kalshi, Polymarket and Solana or on paper.
Scan the option chain and value long calls for your price and date scenario
AI summary · README
FinancePython · TypeScriptGitHub @L26041040OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
L26041040/option-chaser
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Long Call scenario optimizer. Given YOUR scenario (target price + target date),
it scans the current option chain, filters for tradeability, valuates every
qualifying Long Call with Black-Scholes under your scenario, bands candidates
by Delta (conservative / balanced / aggressive), and prints a deterministic
plain-text report with price-ceiling guidance.
It does NOT predict stocks, judge your scenario, estimate probabilities, or
give investment advice. Same snapshot + same params = byte-identical output.
pip install -e .
Run (online; saves a snapshot under snapshots/)Read the full README ↗Long Call scenario optimizer. Given YOUR scenario (target price + target date), it scans the current option chain, filters for tradeability, valuates every qualifying Long Call with Black-Scholes under your scenario, bands candidates by Delta (conservative / balanced / aggressive), and prints a deterministic plain-text report with price-ceiling guidance.
It does NOT predict stocks, judge your scenario, estimate probabilities, or give investment advice. Same snapshot + same params = byte-identical output.
pip install -e .
option-chaser NVDA --target-price 220 --target-month 2026/9
option-chaser NVDA --target-price 220 --target-month 2026/9 \
--snapshot snapshots/NVDA_xxxx.json
--strategy long-call (default) bullish single leg
--strategy long-put bearish single leg
--strategy bull-call-spread bullish debit vertical (exhaustive same-expiry pairs)
--strategy bear-put-spread bearish debit vertical
Direction guard: bullish strategies need target > spot, bearish need target < spot (override with --force). Band-first candidates include a price×date P/L matrix (11 price rows spanning 4 bold anchor prices — spot, target, overshoot (target ±10%), adverse (spot ∓10%) — plus evenly-interpolated rows in between; × up to 7 date columns; add --matrix-all for every candidate).
--min-days-after / --delay-days and the stress-test section are gone —
the matrix supersedes them.
--target-month YYYY/M the scenario's target month; 2028/1, 2028/01, 28/1 and
28/01 all mean the same month. Expiries are chosen from
the chain around that month's third Friday (see below).
--iv-shifts CSV IV scenarios, default -0.2,0,0.2 (0 always included)
--min-return X L3 price ceiling = baseline value / (1+X)
--max-spread-pct / --spread-floor quality-flag threshold, not a hard
gate — open interest, volume, and spread width no
longer exclude candidates, they set the ⚠ flag
shown on each candidate — spec #61
--delta-bands A,B |Delta| banding thresholds, default 0.35,0.65
--matrix-all matrix on every candidate
--md PATH also write the report to a file
Snapshots are schema v2 (calls + puts). v1 snapshots must be re-fetched.
The interactive web app is a separate Vite + React (TypeScript) frontend
backed by a Python serverless API (FastAPI, imports this same
option_chaser engine directly) — see docs/deploy-vercel.md for the
full architecture, Vercel deployment steps, and connecting Neon Postgres
for persistence.
npm install
npm run dev # frontend dev server, http://localhost:5173
PYTHONPATH=. .venv/bin/python -m pytest # backend/API tests
The web app opens on the scenario library (create/list/archive scenarios,
refresh at the top level) and its detail view: summary -> main Heatmap for
the baseline expiry's top candidate -> Long Call catch-up price -> expiry
picker with a per-expiry Top 10 list -> candidate-pool diagnostics -> a
collapsed "advanced" area (redesigned analysis report, Spread cost history
chart, raw snapshot data with CSV download). The web app performs no
financial arithmetic of its own — every number on screen comes from this
same engine via the HTTP API (store.serialize_result), exactly like the
CLI. Scenario data persists to Postgres (Neon, via Vercel Storage) in
production; a scenario created without a connected database is kept only
in the serverless function's memory and does not survive a redeploy — see
docs/deploy-vercel.md to confirm persistence is actually connected
(GET /api/health's storage field).
(A Streamlit-based prototype frontend, webapp/, existed during the
rewrite and has been removed — this Vite/React app is now the only
frontend.)
python -m pytest
Specs: docs/superpowers/specs/2026-07-15-option-chaser-mvp-design.md (v1), docs/superpowers/specs/2026-07-19-option-chaser-v2-design.md (v2), docs/superpowers/specs/2026-07-19-option-chaser-v3-gui-design.md (v3), docs/superpowers/specs/2026-07-20-option-chaser-v4-design.md (v4)
你提供「劇本」(某檔美股會在某天到達某個價位),本工具掃描目前市場上 整條選擇權鏈,過濾掉不可交易的合約,用 Black-Scholes 在「劇本成立」的 假設下估算每個候選的損益,排名後輸出報告——每個級距首選附一張 「價格 × 日期」P/L 矩陣(同 optionsprofitcalculator.com 的矩陣體驗, 外加它做不到的自動掃鏈與多組合同場比較)。
本工具不預測股價、不判斷你的劇本對不對、不算機率、不構成投資建議。 同一份快照 + 同參數 = 逐位元相同的報告(可覆核、可重現)。
pip install -e .
# 看漲單腿(預設):TLT 在 2027-12-31 前到 110
option-chaser TLT --target-price 110 --target-month 2027/12
# 看漲垂直價差(同到期日全配對窮舉,降低成本、獲利封頂)
option-chaser TLT --strategy bull-call-spread --target-price 110 --target-month 2027/12
# 看跌單腿:TLT 在 2027-06-30 前跌到 70
option-chaser TLT --strategy long-put --target-price 70 --target-month 2027/6
# 看跌垂直價差
option-chaser TLT --strategy bear-put-spread --target-price 70 --target-month 2027/6
方向守衛:看漲策略要求目標價 > 現價、看跌策略要求目標價 < 現價, 方向相反時會擋下並提示加 --force 才放行。
每次線上執行會把市場快照存進 snapshots/。之後用 --snapshot 指定該檔 即可完全離線重現同一份報告(逐位元相同):
option-chaser TLT --target-price 110 --target-month 2027/12 \
--snapshot snapshots/TLT_xxxx.json
--target-month 年月 目標年月,2028/1、2028/01、28/1、28/01 皆可
--iv-shifts CSV IV 情境,預設 -0.2,0,0.2(0 必含)
--min-return X 要求報酬上限 L3 = 基準估值/(1+X)
--max-spread-pct / --spread-floor 品質標示門檻,不是硬過濾——未平
倉量、成交量、買賣價差寬度皆不影響候選是否
入選,只決定每個候選上的 ⚠ 標示,spec #61
--delta-bands A,B |Delta| 分級門檻,預設 0.35,0.65
--top N 每級距/清單候選數,預設 3
--matrix-all 每個候選都附矩陣(預設只有各級首選)
--md 路徑 報告另存檔案
--force 允許方向相反的劇本
互動網頁版是獨立的 Vite+React(TypeScript)前端,後端走 Python
serverless API(FastAPI,直接呼叫本 option_chaser 引擎)——完整架構、
Vercel 部署步驟、接上 Neon Postgres 持久化的方式見 docs/deploy-vercel.md。
npm install
npm run dev # 前端開發伺服器,http://localhost:5173
PYTHONPATH=. .venv/bin/python -m pytest # 後端/API 測試
網頁版開啟即是劇本庫(建立/列出/封存劇本,最上層可一鍵全部刷新),
詳細頁流程:摘要 → baseline 到期日第 1 名候選的主 Heatmap → Long Call
追平價格 → 到期日選單+單期 Top 10 → 候選池診斷 → 收合的「進階區」
(重排版的分析報告、Spread 淨成本走勢圖、原始快照資料+CSV 下載)。
網頁版本身不做任何金融公式運算——畫面上每個數字都經 HTTP API
(store.serialize_result)取自與 CLI 相同的引擎。劇本資料正式環境
存在 Neon(透過 Vercel Storage 掛的 Postgres);沒接資料庫時,新建的
劇本只存在 serverless 函式的記憶體裡,重新部署就消失——確認資料庫是
否真的接上,見 docs/deploy-vercel.md(GET /api/health 的 storage
欄位)。
(重寫期間曾有一版 Streamlit 前端雛型 webapp/,已於 Cutover 移除;
現在這個 Vite/React 前端是唯一的正式前端。)