2026-06-27 16:15:23 +08:00
|
|
|
from __future__ import annotations
|
|
|
|
|
|
|
|
|
|
import argparse
|
|
|
|
|
|
|
|
|
|
import _bootstrap # noqa: F401
|
|
|
|
|
from trader_training.io_utils import add_common_args, setup_logging
|
|
|
|
|
from trader_training.training import train_small_models
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def main() -> None:
|
|
|
|
|
parser = argparse.ArgumentParser()
|
|
|
|
|
add_common_args(parser)
|
|
|
|
|
parser.add_argument("--max-rows", type=int, default=0)
|
2026-06-28 09:27:59 +08:00
|
|
|
parser.add_argument(
|
|
|
|
|
"--conditional-entry-source",
|
|
|
|
|
choices=("none", "direction_label", "side_opportunity"),
|
|
|
|
|
default="none",
|
|
|
|
|
help="Entry 训练样本人群来源:不筛选、按 Direction 标签筛选、或按本方向未来机会阈值筛选。",
|
|
|
|
|
)
|
|
|
|
|
parser.add_argument("--conditional-entry-opportunity-bps", type=float, default=40.0)
|
2026-06-28 08:40:30 +08:00
|
|
|
parser.add_argument("--conditional-entry-direction-labels", action="store_true")
|
|
|
|
|
parser.add_argument("--conditional-entry-min-fit-rows", type=int, default=1000)
|
2026-06-27 16:15:23 +08:00
|
|
|
args = parser.parse_args()
|
|
|
|
|
setup_logging()
|
|
|
|
|
train_small_models(args)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
|
main()
|