Auto-fill 期期 sheets from trading balance with same-sheets default.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user