fix顶栏总交易/胜率/盈亏比与账户结算口径对齐,新单仅计已冻结。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -99,6 +99,52 @@ class AccountPnlSettleTests(unittest.TestCase):
|
||||
self.assertAlmostEqual(float(stats["net_realized_pnl"]), 952.96, places=2)
|
||||
conn.close()
|
||||
|
||||
def test_header_stats_skip_unsettled_account_trades(self):
|
||||
from datetime import datetime, timezone
|
||||
|
||||
from lib.options.options_db import init_options_tables
|
||||
from lib.options.options_stats_lib import header_options_stats_for_window
|
||||
|
||||
conn = sqlite3.connect(":memory:")
|
||||
conn.row_factory = sqlite3.Row
|
||||
init_options_tables(conn)
|
||||
conn.execute(
|
||||
"""
|
||||
INSERT INTO options_trades(
|
||||
inst_id, underlying, opt_type, sheets, eth_amount,
|
||||
premium_paid, realized_pnl, premium_ccy, status,
|
||||
trading_usdt_before, pnl_settled, created_at, closed_at
|
||||
) VALUES (
|
||||
'ETH-USD-261009-2500-P', 'ETH', 'P', 1, 0.01,
|
||||
0.01, 0.01, 'ETH', 'closed',
|
||||
500.0, 0, '2026-10-08 10:00:00', '2026-10-08 12:00:00'
|
||||
)
|
||||
"""
|
||||
)
|
||||
conn.execute(
|
||||
"""
|
||||
INSERT INTO options_trades(
|
||||
inst_id, underlying, opt_type, sheets, eth_amount,
|
||||
premium_paid, realized_pnl, premium_ccy, status,
|
||||
trading_usdt_before, trading_usdt_after, realized_pnl_usdt,
|
||||
pnl_settled, created_at, closed_at
|
||||
) VALUES (
|
||||
'ETH-USD-261009-2500-P', 'ETH', 'P', 1, 0.01,
|
||||
0.01, 0.01, 'ETH', 'closed',
|
||||
1000.0, 1100.0, 100.0,
|
||||
1, '2026-10-08 08:00:00', '2026-10-08 09:00:00'
|
||||
)
|
||||
"""
|
||||
)
|
||||
conn.commit()
|
||||
win = {
|
||||
"start_utc": datetime(2026, 10, 1, tzinfo=timezone.utc),
|
||||
"end_utc": datetime(2026, 10, 31, 23, 59, 59, tzinfo=timezone.utc),
|
||||
}
|
||||
out = header_options_stats_for_window(conn, win, timezone.utc, None)
|
||||
self.assertEqual(int(out["total"]), 1)
|
||||
conn.close()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user