21894334f8
Co-authored-by: Cursor <cursoragent@cursor.com>
76 lines
2.5 KiB
Python
76 lines
2.5 KiB
Python
"""key_auto_order_lib 单元测试。"""
|
|
import unittest
|
|
|
|
from lib.key_monitor.key_auto_order_lib import (
|
|
check_monitor_type_add_allowed,
|
|
effective_entry_reason_options,
|
|
effective_stats_segment_defs,
|
|
load_key_auto_order_enabled,
|
|
)
|
|
from lib.trade.position_sizing_lib import MODE_FULL_MARGIN, MODE_RISK
|
|
|
|
FULL_OPTS = (
|
|
"趋势A",
|
|
"趋势B",
|
|
"趋势C",
|
|
"趋势D",
|
|
"趋势E",
|
|
"关键位箱体突破",
|
|
"关键位收敛突破",
|
|
"关键位斐波0.618",
|
|
"关键位斐波0.786",
|
|
"关键位假突破",
|
|
"关键位回调触价开仓",
|
|
"关键位突破触价开仓",
|
|
"趋势回调",
|
|
"顺势加仓",
|
|
)
|
|
|
|
STATS_DEFS = (
|
|
("all", "全部", {}),
|
|
("key_box", "箱体", {}),
|
|
("key_trigger", "触价", {}),
|
|
)
|
|
|
|
|
|
class KeyAutoOrderLibTest(unittest.TestCase):
|
|
def test_load_default_false(self):
|
|
self.assertFalse(load_key_auto_order_enabled({"KEY_AUTO_ORDER_ENABLED": "false"}))
|
|
self.assertFalse(load_key_auto_order_enabled({}))
|
|
self.assertTrue(load_key_auto_order_enabled({"KEY_AUTO_ORDER_ENABLED": "true"}))
|
|
|
|
def test_entry_reason_off(self):
|
|
out = effective_entry_reason_options(FULL_OPTS, MODE_RISK, False)
|
|
self.assertNotIn("关键位箱体突破", out)
|
|
self.assertNotIn("关键位回调触价开仓", out)
|
|
self.assertIn("顺势加仓", out)
|
|
|
|
def test_entry_reason_risk_on(self):
|
|
out = effective_entry_reason_options(FULL_OPTS, MODE_RISK, True)
|
|
self.assertIn("关键位箱体突破", out)
|
|
self.assertIn("关键位回调触价开仓", out)
|
|
|
|
def test_entry_reason_full_margin_on(self):
|
|
out = effective_entry_reason_options(FULL_OPTS, MODE_FULL_MARGIN, True)
|
|
self.assertNotIn("关键位箱体突破", out)
|
|
self.assertIn("关键位回调触价开仓", out)
|
|
|
|
def test_stats_segments_off(self):
|
|
segs = effective_stats_segment_defs(STATS_DEFS, MODE_RISK, False)
|
|
keys = {x[0] for x in segs}
|
|
self.assertIn("all", keys)
|
|
self.assertNotIn("key_box", keys)
|
|
|
|
def test_add_key_rs_always(self):
|
|
ok, _ = check_monitor_type_add_allowed("关键支撑阻力", MODE_RISK, False)
|
|
self.assertTrue(ok)
|
|
|
|
def test_add_key_trigger_off(self):
|
|
ok, msg = check_monitor_type_add_allowed("回调触价开仓", MODE_RISK, False)
|
|
self.assertFalse(ok)
|
|
self.assertIn("KEY_AUTO_ORDER_ENABLED", msg)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|