Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,17 @@ Notable changes to Quantum Terminal. The format follows

## [Unreleased]

## [1.2.0] — 2026-10-17

### Added

- **The OPTIONS QUANT page from public option chains:**
- US500, USTEC, XAUUSD, XAGUSD and XTIUSD from the SPY, QQQ, GLD, SLV and USO chains (yfinance);
- GEX, the gamma flip, walls, max pain, HVL, expected move, 25-delta skew, IV against realized vol,
put/call ratios, dealer scenarios, the structural and gravity ladders and the entropy card, for the
swing expiries and today's 0-DTE;
- levels moved into your feed's price space; refreshed every 15 minutes while New York trades.

- **Market regimes computed by the terminal** (the REGIMES strip above the chart, and its shading):
- **MICRO:** each instrument's volatility regime, calm to stressed, from a hidden Markov model on its
daily bars (2–4 states by BIC). It is refitted walk-forward every month, so no day is labelled with
Expand Down Expand Up @@ -139,5 +148,6 @@ Initial public pre-release: the Python backend and the Electron shell as source,
build.

[Unreleased]: https://github.com/wJubran/QuantumTerminal/compare/v1.1.0...HEAD
[1.2.0]: https://github.com/wJubran/QuantumTerminal/releases/tag/v1.2.0
[1.1.0]: https://github.com/wJubran/QuantumTerminal/releases/tag/v1.1.0
[0.1.0-alpha]: https://github.com/wJubran/QuantumTerminal/releases/tag/v0.1.0-alpha
37 changes: 31 additions & 6 deletions README.ar.md
Original file line number Diff line number Diff line change
Expand Up @@ -254,17 +254,16 @@ npm start # or: npm run start:sim
| **تطبيق سطح المكتب** | غلاف Electron اختياري يشغّل الـ backend ويعرض المنصة في نافذة مستقلة |
| **الأمان** | مفتاح التداول مُطفأ افتراضياً ويفرضه السيرفر أيضاً، والسيرفر محلي فقط، مع حماية من الطلبات القادمة من مواقع أخرى ومن هجمات DNS rebinding، ومفاتيح الـ API لا تعود أبداً إلى المتصفح |

### طبقات التحليل — تحتاج بيانات محسوبة مسبقاً
### مستويات الخيارات — من سلاسل الخيارات العامة

| اللوحة | ما تعرضه |
|---|---|
| **Options Quant** | الـ gamma exposure ‏(GEX) وجدران call/put والـ max pain ومراكز الـ dealers |
| **Options Quant** | الـ gamma exposure ‏(GEX) ونقطة الـ flip وجدران call/put والـ max pain والحركة المتوقعة والـ IV skew وسيناريوهات الـ dealers وسلالم المستويات |
| **Options Cockpit** | لوحة الخيارات في Stress Lab |

تقرأ هذه اللوحات ملفات تحليل محسوبة مسبقاً من ذاكرة التخزين المحلية (cache) نفسها التي تُكتب فيها
الـ cones والـ bands. **هذا المستودع لا ينتج هذه الملفات بعد**، لذلك تبقى هذه اللوحات فارغة بعد التثبيت،
ويظهر في أعلى المنصة <code dir="ltr">SERVER ○ NONE</code> لأنه لا يوجد سيرفر بيانات مُعدّ. توسيع المحرك
المحلي ليشمل مستويات الخيارات هو أول بند في [خطة التطوير](#خطة-التطوير).
تحسب المنصة هذه اللوحات بنفسها للأدوات US500 وUSTEC وXAUUSD وXAGUSD وXTIUSD من سلاسل خيارات SPY وQQQ
وGLD وSLV وUSO (التفاصيل في [كيف تُبنى صفحة Options Quant](#كيف-تبنى-صفحة-options-quant)). وتبقى ثلاثة
أجزاء تحتاج بيانات لا ينتجها المستودع بعد: سطح الخريطة الحرارية (Heat Map)، وبطاقة Retail Trap، وبطاقة Vanna/Charm.

## مصادر البيانات

Expand Down Expand Up @@ -507,6 +506,32 @@ MetaTrader 5 أو TradingView أو NinjaTrader كما هي. والإطار ال
الرمز الذي لا يمكن تنزيله يُستبعد بدلاً من عرضه بلا تغيّر. وتحتاج الصفحة اتصالاً بالموقع
<code dir="ltr">query1.finance.yahoo.com</code>، أما أشكال خريطة العالم فتأتي من <code dir="ltr">cdn.jsdelivr.net</code>.

## كيف تُبنى صفحة Options Quant

كل 15 دقيقة أثناء تداول نيويورك (وكل ساعتين في غير ذلك) تنزّل المنصة سلاسل خيارات SPY وQQQ وGLD وSLV
وUSO من Yahoo Finance ‏(yfinance، بدون مفتاح، وأسعار الخيارات فيه متأخرة نحو 15 دقيقة)، وتكتب الملف
<code dir="ltr">{T}_options.json</code> للأدوات US500 وUSTEC وXAUUSD وXAGUSD وXTIUSD، إذا كانت ضمن قائمة أدواتك
وكان لمصدر بياناتك سعر لها.

- **تواريخ الانتهاء:** خيارات اليوم (0-DTE حتى الساعة 16:00 بتوقيت نيويورك)، والتواريخ الثمانية التالية
(عرض الـ swing)، وأقرب تاريخين شهريين.
- **التقلب الضمني:** قيم Yahoo بعد حذف القيم غير المنطقية وقيم الحل الفاشل، ثم منحنى smile واحد لكل
تاريخ من الجهة out-of-the-money.
- **الـ GEX:** نفترض أن الـ dealers يشترون الـ calls ويبيعون الـ puts التي يتداولها العملاء. ويُقاس بالدولار
لكل حركة 1%. والـ **flip** هو السعر الذي تتغير عنده إشارة مجموع الـ GEX. والـ **call wall** هو الـ strike
فوق السعر الحالي صاحب أكبر gamma للـ calls، والـ **put wall** الـ strike تحته صاحب أكبر gamma للـ puts،
والـ **HVL** الـ strike صاحب أكبر gamma إجمالاً. أما الـ **max pain** والـ **حركة المتوقعة** (سعر الـ
straddle عند السعر الحالي) فمن أول تاريخ انتهاء بعد اليوم.
- **دلتا الـ dealers والسيناريوهات** بعدد أسهم الـ ETF: كم ستتغير تغطيتهم إذا تحرك السعر 0.5% أو 1% في
أي اتجاه. والـ asymmetry هي نسبة بيعهم إلى شرائهم عبر ±1%.
- **Structural Integrity وVolatility Gravity** بمعادلات الواجهة نفسها
(<code dir="ltr">frontend/src/lib/options_0dte_derivations.js</code>) بعد نقلها إلى Python.
- **مقياس الأسعار:** يُضرب كل مستوى في سعر مصدر بياناتك مقسوماً على سعر الـ ETF، وكلاهما في لحظة تسعير
الـ ETF، فتقع الخطوط على الرسم البياني لديك (مثلاً SPY عند 680 ← US500 عند 6,800).

تحتاج اتصالاً بالموقعين <code dir="ltr">query1.finance.yahoo.com</code> و<code dir="ltr">query2.finance.yahoo.com</code>.
وإذا فشل التنزيل يبقى آخر ملف. هذه المستويات تصف مراكز السوق، وليست إشارات تداول وحدها.

## كيف تعمل المنصة

يتصل الـ backend بمصدر البيانات النشط عبر واجهة موحّدة للمزوّدين (providers)، ويرسل الأوامر إلى حساب
Expand Down
40 changes: 33 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -237,17 +237,17 @@ electron-builder to distribute it.
| **Desktop app** | Optional Electron shell that starts the backend and opens the terminal in its own window |
| **Safety** | Trading switch off by default and enforced by the server, local-only server, protection against cross-site requests and DNS rebinding, API keys never sent back to the browser |

### Analysis overlays — need pre-computed data
### Options levels — from public option chains

| Panel | What it shows |
|---|---|
| **Options Quant** | Gamma exposure (GEX), call/put walls, max pain and dealer positioning |
| **Options Quant** | Gamma exposure (GEX), the gamma flip, call/put walls, max pain, expected move, IV skew, dealer scenarios and the level ladders |
| **Options Cockpit** | The options view in Stress Lab |

These panels read pre-computed analysis files from the same local cache the cones and bands are written
to. **This repository does not produce them yet**, so out of the box they stay empty, and the header
shows `SERVER ○ NONE` because no data server is configured. Extending the local engine to options
levels is the top item on the [roadmap](#roadmap).
The terminal computes these itself for US500, USTEC, XAUUSD, XAGUSD and XTIUSD from the SPY, QQQ, GLD,
SLV and USO option chains (see [How the Options Quant page is built](#how-the-options-quant-page-is-built)).
Three parts still need data the repository does not produce: the Heat Map surface, the Retail Trap card
and the Vanna/Charm card.

## Data sources

Expand Down Expand Up @@ -485,6 +485,32 @@ The **MONEY FLOW** page is rebuilt every hour from daily ETF prices and volumes
A ticker that can't be downloaded is left out rather than shown as flat. The page needs internet
access to `query1.finance.yahoo.com`, and the world map's shapes come from `cdn.jsdelivr.net`.

## How the Options Quant page is built

Every 15 minutes while New York trades (every 2 hours otherwise) the terminal downloads the option chains
of SPY, QQQ, GLD, SLV and USO from Yahoo Finance (yfinance, no key; Yahoo's option quotes are about 15
minutes delayed) and writes `{T}_options.json` for US500, USTEC, XAUUSD, XAGUSD and XTIUSD, when they are
in your universe and your data source has a price for them.

- **Expiries:** today's (0-DTE, until 16:00 New York), the next eight after today (the swing view) and the
next two monthly expiries.
- **Implied vols:** Yahoo's, cleaned of out-of-range values and of its failed solves, then one smile per
expiry from the out-of-the-money side.
- **GEX:** dealers are assumed long the calls and short the puts customers trade. GEX is in dollars per
1% move. The **flip** is the price where total swing GEX changes sign. The **call wall** is the strike
above spot with the most call gamma, the **put wall** the strike below spot with the most put gamma, and
**HVL** the strike with the most gamma overall. **Max pain** and the **expected move** (the ATM
straddle) use the first expiry after today.
- **Dealer delta and scenarios** are in shares of the ETF: how much the dealers' hedge would change if
price moved 0.5% or 1% either way. The asymmetry is their selling over their buying across ±1%.
- **Structural Integrity and Volatility Gravity** use the UI's own formulas
(`frontend/src/lib/options_0dte_derivations.js`), ported to Python.
- **Price space:** every level is multiplied by your feed's price over the ETF's price, both taken at the
time of the ETF quote, so the lines sit on your chart (for example SPY 680 → US500 6,800).

It needs internet access to `query1.finance.yahoo.com` and `query2.finance.yahoo.com`. When a download
fails the last file stays. These levels describe positioning; they are not trade signals on their own.

## How it works

```mermaid
Expand Down Expand Up @@ -631,7 +657,7 @@ Finance may be delayed.
- **الأمان:** السيرفر محلي فقط، ولا تستطيع أي صفحة ويب تزورها إرسال أوامر عبر منصتك، ومفاتيح الـ API لا
تغادر جهازك إلا إلى مصدرها.

لوحة Options Quant تحتاج بيانات تحليل محسوبة مسبقاً لا ينتجها المستودع بعد، فتبقى فارغة حالياً. التفاصيل في [النسخة العربية الكاملة](README.ar.md).
تحسب المنصة مستويات Options Quant بنفسها من سلاسل خيارات SPY وQQQ وGLD وSLV وUSO العامة، ما عدا الخريطة الحرارية وبطاقتي Retail Trap وVanna/Charm. التفاصيل في [النسخة العربية الكاملة](README.ar.md).

### المتطلبات

Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.1.0
1.2.0
Loading
Loading