Auto-fill 期期 sheets from trading balance with same-sheets default.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-07-19 00:56:35 +08:00
parent f21e4d1166
commit b3548240cc
7 changed files with 374 additions and 5 deletions
+51
View File
@@ -9,6 +9,8 @@ from lib.hedge_plan.hedge_plan_calc_lib import (
option_expiry_pnl,
option_premium_total,
perp_pnl,
resolve_oo_budget_usdc,
suggest_oo_sheets,
)
@@ -129,6 +131,55 @@ class TestHedgePlanCalc(unittest.TestCase):
self.assertEqual(floor_contracts_to_precision(4.569713, 0), 4.0)
self.assertEqual(floor_contracts_to_precision(0, 4), 0.0)
def test_oo_budget_min_trading_and_cap(self):
b = resolve_oo_budget_usdc(trading_usdc=11.07, trade_budget_usdc=10, buffer_ratio=0.95)
self.assertTrue(b["ok"])
self.assertAlmostEqual(b["trading_cap"], 11.07 * 0.95, places=4)
self.assertEqual(b["budget_usdc"], 10.0)
def test_suggest_oo_same_sheets_default(self):
# cost_a=1, cost_b=1 → pair=2; budget=10 → n=5
s = suggest_oo_sheets(
mode="same_sheets",
budget_usdc=10,
ask_a=100,
ct_mult_a=0.01,
ask_b=100,
ct_mult_b=0.01,
)
self.assertEqual(s["mode"], "same_sheets")
self.assertEqual(s["sheets_a"], 5)
self.assertEqual(s["sheets_b"], 5)
self.assertTrue(s["ok"])
def test_suggest_oo_split_budget(self):
# cost_a=1, cost_b=2; half=5 → nA=5, nB=2
s = suggest_oo_sheets(
mode="split_budget",
budget_usdc=10,
ask_a=100,
ct_mult_a=0.01,
ask_b=200,
ct_mult_b=0.01,
)
self.assertEqual(s["mode"], "split_budget")
self.assertEqual(s["sheets_a"], 5)
self.assertEqual(s["sheets_b"], 2)
def test_suggest_oo_depth_cap(self):
s = suggest_oo_sheets(
mode="same_sheets",
budget_usdc=100,
ask_a=100,
ct_mult_a=0.01,
ask_sz_a=2,
ask_b=100,
ct_mult_b=0.01,
ask_sz_b=50,
)
self.assertEqual(s["sheets_a"], 2)
self.assertEqual(s["sheets_b"], 2)
if __name__ == "__main__":
unittest.main()