Add Entry opportunity training diagnostics
This commit is contained in:
@@ -11,6 +11,13 @@ def main() -> None:
|
||||
parser = argparse.ArgumentParser()
|
||||
add_common_args(parser)
|
||||
parser.add_argument("--max-rows", type=int, default=0)
|
||||
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)
|
||||
parser.add_argument("--conditional-entry-direction-labels", action="store_true")
|
||||
parser.add_argument("--conditional-entry-min-fit-rows", type=int, default=1000)
|
||||
args = parser.parse_args()
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
|
||||
import _bootstrap # noqa: F401
|
||||
from trader_training.good_trade_structure import diagnose_good_trade_structure
|
||||
from trader_training.io_utils import add_common_args, setup_logging
|
||||
|
||||
|
||||
def _float_tuple(value: str) -> tuple[float, ...]:
|
||||
return tuple(float(item.strip()) for item in value.split(",") if item.strip())
|
||||
|
||||
|
||||
def main() -> None:
|
||||
parser = argparse.ArgumentParser(description="Diagnose whether existing features separate good and bad Entry trades.")
|
||||
add_common_args(parser)
|
||||
parser.add_argument("--min-good-edge-bps", type=float, default=3.0)
|
||||
parser.add_argument("--bad-edge-bps", type=float, default=-3.0)
|
||||
parser.add_argument("--top-fractions", type=_float_tuple, default=(0.01, 0.05, 0.10))
|
||||
args = parser.parse_args()
|
||||
setup_logging()
|
||||
diagnose_good_trade_structure(args)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user