27 lines
902 B
Python
27 lines
902 B
Python
|
|
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()
|