diff --git a/evolution/b_group_miner.py b/evolution/b_group_miner.py index 803aa325..f7a5759f 100644 --- a/evolution/b_group_miner.py +++ b/evolution/b_group_miner.py @@ -112,17 +112,22 @@ def _simulate_verify(market, regime, panel, cond, tp=20, sl=10, maxh=40): if ep <= 0: continue res = None - for _, fb in fut.iterrows(): + hold_days = maxh + for j, (_, fb) in enumerate(fut.iterrows()): if fb["close"] <= ep * (1 - sl / 100): res = -sl + hold_days = j + 1 break if fb["close"] >= ep * (1 + tp / 100): res = tp + hold_days = j + 1 break if res is None: res = (fut.iloc[-1]["close"] / ep - 1) * 100 + hold_days = len(fut) trades.append(res) trade_details.append({"entry_date": str(g.loc[i, "date"]), "pnl_pct": round(res, 2), + "profit_pct": round(res, 2), "hold_days": hold_days, "code": str(code)}) if not trades: return None