feat: Fix 1min data integration and centralize all prompts

- Fix daily/1min contradiction in factor_experiment_loader prompts
- Rename daily_pv.h5 to intraday_pv.h5 (generate.py, utils.py, README)
- Fix FactorDatetimeDailyEvaluator to accept 1min bars as correct
- Add _write_run_log() to log every factor attempt to results/logs/
- Add _ensure_results_dirs() to create all result directories
- Extract all 44 prompt YAML files to prompts/ centralized directory
- Add prompts/INDEX.md for navigation

Tests: 93 passed
This commit is contained in:
TPTBusiness
2026-04-04 08:20:58 +02:00
parent 574a9cb75e
commit 7e7e40b041
49 changed files with 8510 additions and 28 deletions
@@ -236,12 +236,14 @@ class FactorDatetimeDailyEvaluator(FactorEvaluator):
)
time_diff = pd.to_datetime(gen_df.index.get_level_values("datetime")).to_series().diff().dropna().unique()
if pd.Timedelta(minutes=1) in time_diff:
# For EURUSD 1min trading, intraday data (1min to 30min bars) is CORRECT
if any(pd.Timedelta(minutes=m) in time_diff for m in range(1, 31)):
return (
"The generated dataframe is not daily. The implementation is definitely wrong. Please check the implementation.",
False,
"The generated dataframe uses intraday frequency (1min-30min bars). This is correct for EURUSD intraday trading.",
True,
)
return "The generated dataframe is daily.", True
# Daily data would also be acceptable for some strategies
return "The generated dataframe uses daily or non-standard frequency. Verify this matches the factor specification.", True
class FactorRowCountEvaluator(FactorEvaluator):