Files
zhutoutoutousan 605faf5310 Prepare source-only public release for develop.
Add cluster audit pipeline, united EA updates, brochure generators, and publication hygiene (gitignore, MT5 path desensitization, pre-upload scan). Remove tracked reports, models, and binary artifacts from the repo.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-02 15:03:43 +02:00

58 lines
1.8 KiB
Python

"""Quick solo scan for low-margin stocks using NVDA-style RSI params."""
from __future__ import annotations
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parent.parent))
from cluster_audit.united_mt5_manifest import ALL_ENABLE_KEYS, HIGH_MARGIN_STOCK_ENABLES
from cluster_audit.united_mt5_runner import BASE_SET, deploy_united, mt5_context, patch_set, run_backtest
import cluster_audit.united_mt5_runner as runner
SYMBOLS = ("SNAP.NYS", "F.NYS", "SOFI.NAS", "PFE.NYS", "AAL.NAS", "NVDA.NAS", "BAC.NYS", "WBD.NAS")
NVDA_PARAMS = {
"RS_F_Symbol": "",
"RS_F_TimeFrame": 15,
"RS_F_RSI_Period": 8,
"RS_F_RSI_Overbought": 36,
"RS_F_RSI_Oversold": 38,
"RS_F_RSI_Target_Buy": 90,
"RS_F_RSI_Target_Sell": 70,
"RS_F_BarsToWait": 5,
"LOT_RS_F": 10,
}
def main() -> None:
ctx = mt5_context()
deploy_united(ctx["data"], ctx["mt5_path"])
print(f"{'symbol':14} {'trades':>6} {'PF':>6} {'net':>10}")
for sym in SYMBOLS:
o = {k: False for k in ALL_ENABLE_KEYS}
o["EnableRSIScalpingF"] = True
for k in HIGH_MARGIN_STOCK_ENABLES:
o[k] = False
o["GAP_Enable"] = False
o.update(NVDA_PARAMS)
o["RS_F_Symbol"] = sym
body = patch_set(BASE_SET, o)
report = f"scan_{sym.replace('.', '_')}"
old = runner.TEST_SYMBOL
runner.TEST_SYMBOL = sym
m = run_backtest(
ctx["data"], ctx["mt5_path"], ctx["login"], ctx["server"],
body, f"{report}.set", report,
)
runner.TEST_SYMBOL = old
print(
f"{sym:14} {int(m.get('total_trades') or 0):6} "
f"{float(m.get('profit_factor') or 0):6.2f} {float(m.get('net_profit') or 0):10.2f}"
)
if __name__ == "__main__":
main()