Keep the order host out of tbody wipes, sync pick-button labels, and retry/fallback OKX meta under rate limits so live contracts are not reported as missing.
Co-authored-by: Cursor <cursoragent@cursor.com>
Thead rows used a .hidden class with no CSS rule on instance pages, so both header sets stayed visible.
Co-authored-by: Cursor <cursoragent@cursor.com>
Move the theme toggle inside body and stack it above the form so flex no longer pushes the card to the right.
Co-authored-by: Cursor <cursoragent@cursor.com>
Header float PnL now uses bid recycle minus premium like position cards. Stats adds realized/open/total net PnL.
Co-authored-by: Cursor <cursoragent@cursor.com>
Position委托 row keeps the field empty for new entry and displays target value plus estimated PnL after arming.
Co-authored-by: Cursor <cursoragent@cursor.com>
Position and order forms can arm a target; right-side and hub panels show active monitors; expiry remains the stop with no separate SL.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace single S* with up/down targets across UI, preview, persist, monitor, and alerts so ranging breakouts can close the winner either way.
Co-authored-by: Cursor <cursoragent@cursor.com>
History shows contract names with clickable fill details; stats split perp vs options plans for win rate, profit factor, max win/loss, and drawdown.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use available (free) balances for full-amount ops, support sub-account scope, and show clear success/failure feedback.
Co-authored-by: Cursor <cursoragent@cursor.com>
Filter OKX positions-history to type 2/3/6, format premium and bid recovery to 2 decimals, and allow locally hiding rows via delete button.
Co-authored-by: Cursor <cursoragent@cursor.com>
Format prices by tickSz, move bid depth/recovery to card end with plain styling, and load option history from OKX positions-history instead of local DB.
Co-authored-by: Cursor <cursoragent@cursor.com>
Show average hold duration for wins and losses, open positions, and CSS ring/bar visualizations in the stats tab.
Co-authored-by: Cursor <cursoragent@cursor.com>
Default to in-the-money view with at-the-money contracts included; update expiry counts and empty states for the active filter.
Co-authored-by: Cursor <cursoragent@cursor.com>
Adds order_type to journal uploads, removes legacy swing/trend labels from entry reason options, and ensures review-edit buttons sync when the records tab loads dynamically.
Co-authored-by: Cursor <cursoragent@cursor.com>
System settings now use the same CSS tab layout as env config; sensitive env fields display masked values from .env while keeping save-on-empty behavior.
Co-authored-by: Cursor <cursoragent@cursor.com>
Merge Flask GET/POST routes, refresh prefs on tab revisit after preload, and reorganize system settings into separate cards.
Co-authored-by: Cursor <cursoragent@cursor.com>
P1-P4: configurable nav/section visibility in system settings, full .env editor with restart badges, password change, runtime hot overrides, and single-instance pm2 restart. Works in hub embed iframe.
Co-authored-by: Cursor <cursoragent@cursor.com>