Calendar shows daily closed trade count and PnL with emotion-day highlighting; day click loads review-first trade list. Use exchange-only entry average and improve vnpy position sync after CTP reconnect.
Reduce poll pressure on phone/tablet, cache key prices, and handle live API errors gracefully. Rework mobile position and close cards with inline direction, compact P/L line, and detail modal.
Co-authored-by: Cursor <cursoragent@cursor.com>
Mobile gets compact trade/records UI with detail modals; static assets are cache-busted and settings cards fold correctly on tablet grid layout.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace percent-based risk with system fixed amount, support market/breakout add modes only, allow pending submission outside trading hours, and fix short breakout geometry plus route registration.
Co-authored-by: Cursor <cursoragent@cursor.com>
Key monitors use 5m close triggers with WeChat alerts and box/convergence auto orders; add pending-order worker, structured WeChat notify, AI settings/messages, session clock, CTP margin sizing, and dual-layer position limits.
Co-authored-by: Cursor <cursoragent@cursor.com>
When SimNow or live CTP is disconnected, the tradable-products section shows four whitelisted symbols and calculates max lots from a fixed 100,000 capital instead of reference capital in settings.
Co-authored-by: Cursor <cursoragent@cursor.com>
When SimNow or live CTP is disconnected, default to the four-product whitelist regardless of reference capital. Trailing breakeven defaults off; when enabled hide take-profit and risk-reward, monitor exits via trailing stop only. Document both behaviors in TRADING.md and FEATURES.md.
Co-authored-by: Cursor <cursoragent@cursor.com>
Market page uses Sina for quotes and bars with an auto-follow toggle and incremental chart updates while panning. Settings lets users change username and password, persisting to the database and .env.
Co-authored-by: Cursor <cursoragent@cursor.com>
Back up futures.db and uploads to /root/qihuo_backup on a daily schedule, expose backup downloads in settings, and document cross-server restore.
Co-authored-by: Cursor <cursoragent@cursor.com>
Retry stats cache commits, serialize refresh, and fall back to read-only compute so the stats API does not return 500 when the database is briefly locked.
Co-authored-by: Cursor <cursoragent@cursor.com>
Remove stats recalculate button; login and home now open /positions without affecting refresh on other routes.
Co-authored-by: Cursor <cursoragent@cursor.com>
Disable cancel UI outside sessions, query exchange fills for records, and label local vs counterparty rows.
Co-authored-by: Cursor <cursoragent@cursor.com>