SniperGold_ML/ml/p3/smc_semantic/parity_choch_pivot_check.py

54 lines
2.1 KiB
Python
Raw Permalink Normal View History

# -*- coding: utf-8 -*-
"""P3-S.3 diagnostic: runtime-training pivot parity (strict vs equal-allowed) utk CHoCH."""
import os
import sys
import numpy as np
HERE = os.path.dirname(os.path.abspath(__file__))
REPO_ML = os.path.normpath(os.path.join(HERE, "..", "..", "..", "ml"))
REPO_P3 = os.path.normpath(os.path.join(REPO_ML, "p3"))
REPO_PARITY = os.path.normpath(os.path.join(REPO_ML, "parity"))
sys.path.insert(0, HERE)
sys.path.insert(0, REPO_ML)
sys.path.insert(0, REPO_P3)
sys.path.insert(0, REPO_PARITY)
import p3_common as P3
P3.DATA = r"D:\TradingTerminal\HFM Metatrader 5\MQL5\Files\AlgoForge\Data"
import smc_semantic_common as SC
import train_model as TM
import build_features_p2 as BFP
def main():
t, o, h, l, c, v, htf = SC.load_data()
n = len(c)
sw_at = np.zeros(n, dtype=int)
sw_s = TM.build_structure(o, h, l, c, SC.SWING_LEN, False, sw_at, begin=100)
inn_s = TM.build_structure(o, h, l, c, SC.INTERNAL_LEN, True,
sw_s["trend"].copy(), begin=100)
sw_e = BFP.build_structure_fast(o, h, l, c, SC.SWING_LEN, False, sw_at, begin=100)
inn_e = BFP.build_structure_fast(o, h, l, c, SC.INTERNAL_LEN, True,
sw_e["trend"].copy(), begin=100)
cd_s, cd_e = inn_s["choch_dir"], inn_e["choch_dir"]
cb_s, cb_e = inn_s["choch_bar"], inn_e["choch_bar"]
out = {
"n_bars": int(n),
"choch_dir_mismatch": int((cd_s != cd_e).sum()),
"choch_dir_mismatch_pct": round(float((cd_s != cd_e).sum()) / n * 100.0, 4),
"choch_bar_mismatch": int((cb_s != cb_e).sum()),
"onsets_strict": int((cb_s == np.arange(n)).sum()),
"onsets_equal_allowed": int((cb_e == np.arange(n)).sum()),
"note": "strict = train_model.build_structure (equal TIDAK allowed); "
"equal = build_features_p2.build_structure_fast / EA IsPivotHigh (equal allowed)",
}
print(out)
with open(os.path.join(HERE, "output", "parity_choch_pivot_strict_vs_equal.json"),
"w", encoding="utf-8") as f:
import json
json.dump(out, f, indent=2, default=str)
if __name__ == "__main__":
main()