feat: 引入 FactorMiner 开源量化因子挖掘项目

This commit is contained in:
2026-04-07 20:41:10 +08:00
parent 161b7cc690
commit dadf8da145
133 changed files with 94588 additions and 0 deletions

View File

@@ -0,0 +1,8 @@
{
"no_admission_streak": 1,
"forgetting_lambda": 0.95,
"canonicalize": false,
"enable_knowledge_graph": false,
"enable_embeddings": false,
"enable_auto_inventor": false
}

View File

@@ -0,0 +1,7 @@
{
"correlation_threshold": 0.5,
"ic_threshold": 0.04,
"next_id": 1,
"factors": [],
"id_to_index": {}
}

Binary file not shown.

View File

@@ -0,0 +1,13 @@
{
"iteration": 1,
"library_size": 0,
"memory_version": 1,
"budget": {
"llm_calls": 1,
"llm_prompt_tokens": 0,
"llm_completion_tokens": 0,
"compute_seconds": 0.008219003677368164,
"max_llm_calls": 0,
"max_wall_seconds": 0
}
}

View File

@@ -0,0 +1,64 @@
{
"state": {
"library_size": 0,
"recent_admissions": [],
"recent_rejections": [
{
"factor_id": "momentum_reversal",
"formula": "Neg(CsRank(Delta($close, 5)))",
"reason": "Signal computation error: Expression evaluation failed for 'Neg(CsRank(Delta($close, 5)))': \"Feature '$close' not found in data. Available: ['$high', '$low', '$open']\"",
"max_correlation": 0.0,
"batch": 1
},
{
"factor_id": "volume_surprise",
"formula": "CsZScore(Div(Sub($volume, Mean($volume, 20)), Std($volume, 20)))",
"reason": "Signal computation error: Expression evaluation failed for 'CsZScore(Div(Sub($volume, Mean($volume, 20)), Std($volume, 20)))': \"Feature '$volume' not found in data. Available: ['$high', '$low', '$open']\"",
"max_correlation": 0.0,
"batch": 1
},
{
"factor_id": "price_range_ratio",
"formula": "Div(Sub($high, $low), Add($high, $low))",
"reason": "ICIR -0.3679 < threshold 0.5",
"max_correlation": 0.0,
"batch": 1
},
{
"factor_id": "vwap_deviation",
"formula": "CsRank(Div(Sub($close, $vwap), $vwap))",
"reason": "Signal computation error: Expression evaluation failed for 'CsRank(Div(Sub($close, $vwap), $vwap))': \"Feature '$close' not found in data. Available: ['$high', '$low', '$open']\"",
"max_correlation": 0.0,
"batch": 1
},
{
"factor_id": "return_skew",
"formula": "Neg(Skew($returns, 20))",
"reason": "Signal computation error: Expression evaluation failed for 'Neg(Skew($returns, 20))': \"Feature '$returns' not found in data. Available: ['$high', '$low', '$open']\"",
"max_correlation": 0.0,
"batch": 1
}
],
"domain_saturation": {
"Other": 0.0
},
"admission_log": [
{
"batch": 1,
"admitted": 0,
"rejected": 5,
"admission_rate": 0.0
}
]
},
"success_patterns": [],
"forbidden_directions": [],
"insights": [
{
"insight": "Current direction is exhausted, need to pivot to new operator combinations",
"evidence": "Batch 1: only 0/5 admitted (0%)",
"batch_source": 1
}
],
"version": 1
}

View File

@@ -0,0 +1,56 @@
{
"session_id": "20260319_125236",
"config": {
"target_library_size": 3,
"batch_size": 5,
"max_iterations": 1,
"ic_threshold": 0.04,
"icir_threshold": 0.5,
"correlation_threshold": 0.5,
"replacement_ic_min": 0.1,
"replacement_ic_ratio": 1.3,
"fast_screen_assets": 100,
"num_workers": 40,
"output_dir": "./output",
"gpu_device": "cuda:0",
"backend": "numpy",
"signal_failure_policy": "reject"
},
"output_dir": "./output",
"start_time": "2026-03-19T12:52:36.633890",
"end_time": "",
"status": "running",
"total_iterations": 1,
"last_library_size": 0,
"library_path": "output/checkpoint/library",
"memory_path": "output/checkpoint/memory.json",
"iterations": [
{
"iteration": 1,
"candidates": 5,
"parse_ok": 5,
"ic_passed": 0,
"corr_passed": 0,
"dedup_rejected": 0,
"admitted": 0,
"replaced": 0,
"yield_rate": 0.0,
"library_size": 0,
"avg_correlation": 0.0,
"max_correlation": 0.0,
"elapsed_seconds": 0.008219003677368164,
"budget": {
"llm_calls": 1,
"llm_prompt_tokens": 0,
"llm_completion_tokens": 0,
"total_tokens": 0,
"compute_seconds": 0.01,
"wall_elapsed_seconds": 0.01
},
"candidates_before_canon": 5,
"canonical_duplicates_removed": 0,
"phase2_rejections": 0,
"timestamp": "2026-03-19T12:52:36.643364"
}
]
}

View File

@@ -0,0 +1,13 @@
{
"factors": [],
"diagnostics": {
"size": 0,
"category_counts": {},
"category_avg_ic": {},
"avg_correlation": 0.0,
"max_correlation": 0.0,
"p95_correlation": 0.0,
"saturation": 0.0
},
"exported_at": "2026-03-19T12:52:36.644886"
}

Binary file not shown.

View File

@@ -0,0 +1,58 @@
{"iteration": 1, "timestamp": 1771372146.9340858, "candidates": 5, "parse_ok": 5, "ic_passed": 5, "corr_passed": 5, "dedup_rejected": 0, "admitted": 5, "replaced": 0, "yield_rate": 1.0, "library_size": 5, "avg_correlation": 0.2718839826839827, "max_correlation": 0.3224372294372294, "elapsed_seconds": 0.9385337829589844, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.94, "wall_elapsed_seconds": 0.94}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 0}
{"iteration": 1, "timestamp": 1771372155.33286, "candidates": 5, "parse_ok": 5, "ic_passed": 5, "corr_passed": 5, "dedup_rejected": 0, "admitted": 5, "replaced": 0, "yield_rate": 1.0, "library_size": 5, "avg_correlation": 0.29021341991342, "max_correlation": 0.345982683982684, "elapsed_seconds": 0.1046302318572998, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.1, "wall_elapsed_seconds": 0.1}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 0}
{"iteration": 1, "timestamp": 1771372191.49147, "candidates": 5, "parse_ok": 5, "ic_passed": 5, "corr_passed": 5, "dedup_rejected": 0, "admitted": 5, "replaced": 0, "yield_rate": 1.0, "library_size": 5, "avg_correlation": 0.28298744588744584, "max_correlation": 0.32113419913419905, "elapsed_seconds": 0.10761785507202148, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.11, "wall_elapsed_seconds": 0.11}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 0}
{"iteration": 1, "timestamp": 1771374094.225513, "candidates": 5, "parse_ok": 5, "ic_passed": 5, "corr_passed": 5, "dedup_rejected": 0, "admitted": 5, "replaced": 0, "yield_rate": 1.0, "library_size": 5, "avg_correlation": 0.28161515151515154, "max_correlation": 0.3172380952380952, "elapsed_seconds": 0.10254192352294922, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.1, "wall_elapsed_seconds": 0.1}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 0}
{"iteration": 1, "timestamp": 1771374983.492411, "candidates": 10, "parse_ok": 10, "ic_passed": 10, "corr_passed": 10, "dedup_rejected": 0, "admitted": 10, "replaced": 0, "yield_rate": 1.0, "library_size": 10, "avg_correlation": 0.0826518337571923, "max_correlation": 0.08861830786094034, "elapsed_seconds": 5.175100088119507, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 5.18, "wall_elapsed_seconds": 5.18}}
{"iteration": 2, "timestamp": 1771374997.552633, "candidates": 10, "parse_ok": 10, "ic_passed": 10, "corr_passed": 10, "dedup_rejected": 0, "admitted": 10, "replaced": 0, "yield_rate": 1.0, "library_size": 20, "avg_correlation": 0.0819226296246593, "max_correlation": 0.08903111881751094, "elapsed_seconds": 14.059232950210571, "budget": {"llm_calls": 2, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 19.23, "wall_elapsed_seconds": 19.24}}
{"iteration": 1, "timestamp": 1771403934.5850291, "candidates": 5, "parse_ok": 5, "ic_passed": 5, "corr_passed": 5, "dedup_rejected": 0, "admitted": 5, "replaced": 0, "yield_rate": 1.0, "library_size": 5, "avg_correlation": 0.29101948051948046, "max_correlation": 0.3218744588744588, "elapsed_seconds": 0.11554503440856934, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.12, "wall_elapsed_seconds": 0.12}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 0}
{"iteration": 1, "timestamp": 1771405061.187912, "candidates": 5, "parse_ok": 5, "ic_passed": 5, "corr_passed": 5, "dedup_rejected": 0, "admitted": 5, "replaced": 0, "yield_rate": 1.0, "library_size": 5, "avg_correlation": 0.2739532467532467, "max_correlation": 0.30174025974025964, "elapsed_seconds": 0.11654281616210938, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.12, "wall_elapsed_seconds": 0.12}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 0}
{"iteration": 1, "timestamp": 1773477526.066545, "candidates": 5, "parse_ok": 5, "ic_passed": 5, "corr_passed": 5, "dedup_rejected": 0, "admitted": 5, "replaced": 0, "yield_rate": 1.0, "library_size": 5, "avg_correlation": 0.2623346320346321, "max_correlation": 0.298030303030303, "elapsed_seconds": 0.10055804252624512, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.1, "wall_elapsed_seconds": 0.1}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 0}
{"iteration": 1, "timestamp": 1773477755.797867, "candidates": 10, "parse_ok": 10, "ic_passed": 10, "corr_passed": 10, "dedup_rejected": 0, "admitted": 10, "replaced": 0, "yield_rate": 1.0, "library_size": 10, "avg_correlation": 0.08229167554572003, "max_correlation": 0.08785380491108624, "elapsed_seconds": 5.2690980434417725, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 5.27, "wall_elapsed_seconds": 5.27}}
{"iteration": 2, "timestamp": 1773477770.4745789, "candidates": 10, "parse_ok": 10, "ic_passed": 10, "corr_passed": 10, "dedup_rejected": 0, "admitted": 10, "replaced": 0, "yield_rate": 1.0, "library_size": 20, "avg_correlation": 0.08181339056591728, "max_correlation": 0.08946456353175042, "elapsed_seconds": 14.67562198638916, "budget": {"llm_calls": 2, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 19.94, "wall_elapsed_seconds": 19.95}}
{"iteration": 1, "timestamp": 1773479130.180734, "candidates": 5, "parse_ok": 5, "ic_passed": 5, "corr_passed": 5, "dedup_rejected": 0, "admitted": 5, "replaced": 0, "yield_rate": 1.0, "library_size": 5, "avg_correlation": 0.27502251082251084, "max_correlation": 0.321952380952381, "elapsed_seconds": 0.12020707130432129, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.12, "wall_elapsed_seconds": 0.12}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 0}
{"iteration": 1, "timestamp": 1773479165.669386, "candidates": 5, "parse_ok": 5, "ic_passed": 5, "corr_passed": 5, "dedup_rejected": 0, "admitted": 5, "replaced": 0, "yield_rate": 1.0, "library_size": 5, "avg_correlation": 0.2691047619047619, "max_correlation": 0.339073593073593, "elapsed_seconds": 0.10429883003234863, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.1, "wall_elapsed_seconds": 0.1}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 0}
{"iteration": 1, "timestamp": 1773479410.3163462, "candidates": 10, "parse_ok": 10, "ic_passed": 10, "corr_passed": 10, "dedup_rejected": 2, "admitted": 8, "replaced": 0, "yield_rate": 0.8, "library_size": 8, "avg_correlation": 0.10182961052044943, "max_correlation": 0.39296715271527166, "elapsed_seconds": 3.6131629943847656, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 3.61, "wall_elapsed_seconds": 3.61}}
{"iteration": 2, "timestamp": 1773479422.732697, "candidates": 10, "parse_ok": 10, "ic_passed": 10, "corr_passed": 10, "dedup_rejected": 0, "admitted": 8, "replaced": 0, "yield_rate": 0.8, "library_size": 16, "avg_correlation": 0.10055403379740888, "max_correlation": 0.49241112298602563, "elapsed_seconds": 12.328114032745361, "budget": {"llm_calls": 2, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 15.94, "wall_elapsed_seconds": 16.03}}
{"iteration": 3, "timestamp": 1773479440.960487, "candidates": 10, "parse_ok": 10, "ic_passed": 10, "corr_passed": 10, "dedup_rejected": 0, "admitted": 5, "replaced": 0, "yield_rate": 0.5, "library_size": 21, "avg_correlation": 0.0993884563672103, "max_correlation": 0.49241112298602563, "elapsed_seconds": 18.014026880264282, "budget": {"llm_calls": 3, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 33.96, "wall_elapsed_seconds": 34.26}}
{"iteration": 1, "timestamp": 1773836748.845491, "candidates": 5, "parse_ok": 5, "ic_passed": 5, "corr_passed": 5, "dedup_rejected": 0, "admitted": 5, "replaced": 0, "yield_rate": 1.0, "library_size": 5, "avg_correlation": 0.2711519480519481, "max_correlation": 0.29558441558441567, "elapsed_seconds": 0.17888092994689941, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.18, "wall_elapsed_seconds": 0.18}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 0}
{"iteration": 1, "timestamp": 1773837238.965058, "candidates": 5, "parse_ok": 5, "ic_passed": 5, "corr_passed": 5, "dedup_rejected": 0, "admitted": 5, "replaced": 0, "yield_rate": 1.0, "library_size": 5, "avg_correlation": 0.27457012987012985, "max_correlation": 0.3106103896103896, "elapsed_seconds": 3.1231608390808105, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 3.12, "wall_elapsed_seconds": 3.12}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 0}
{"iteration": 1, "timestamp": 1773837323.0524108, "candidates": 5, "parse_ok": 5, "ic_passed": 5, "corr_passed": 5, "dedup_rejected": 0, "admitted": 5, "replaced": 0, "yield_rate": 1.0, "library_size": 5, "avg_correlation": 0.28737835497835496, "max_correlation": 0.3277012987012987, "elapsed_seconds": 1.5550920963287354, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 1.56, "wall_elapsed_seconds": 1.57}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 0}
{"iteration": 1, "timestamp": 1773837412.592681, "candidates": 5, "parse_ok": 5, "ic_passed": 5, "corr_passed": 5, "dedup_rejected": 0, "admitted": 5, "replaced": 0, "yield_rate": 1.0, "library_size": 5, "avg_correlation": 0.2677051948051948, "max_correlation": 0.32196103896103895, "elapsed_seconds": 0.8609669208526611, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.86, "wall_elapsed_seconds": 0.86}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 0}
{"iteration": 1, "timestamp": 1773837629.6556869, "candidates": 1, "parse_ok": 1, "ic_passed": 1, "corr_passed": 1, "dedup_rejected": 0, "admitted": 1, "replaced": 0, "yield_rate": 1.0, "library_size": 1, "avg_correlation": 0.0, "max_correlation": 0.0, "elapsed_seconds": 0.42867302894592285, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.43, "wall_elapsed_seconds": 0.43}}
{"iteration": 1, "timestamp": 1773837635.175166, "candidates": 5, "parse_ok": 5, "ic_passed": 5, "corr_passed": 5, "dedup_rejected": 0, "admitted": 5, "replaced": 0, "yield_rate": 1.0, "library_size": 5, "avg_correlation": 0.2859069264069265, "max_correlation": 0.31809090909090904, "elapsed_seconds": 0.7452428340911865, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.75, "wall_elapsed_seconds": 0.75}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 0}
{"iteration": 0, "timestamp": 1773837635.848904, "candidates": 5, "parse_ok": 5, "ic_passed": 5, "corr_passed": 5, "dedup_rejected": 0, "admitted": 4, "replaced": 0, "yield_rate": 0.8, "library_size": 4, "avg_correlation": 0.27866378066378067, "max_correlation": 0.310995670995671, "elapsed_seconds": 0.6553909778594971, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.66, "wall_elapsed_seconds": 0.66}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 1}
{"iteration": 1, "timestamp": 1773837779.205347, "candidates": 5, "parse_ok": 5, "ic_passed": 5, "corr_passed": 5, "dedup_rejected": 0, "admitted": 5, "replaced": 0, "yield_rate": 1.0, "library_size": 5, "avg_correlation": 0.27959134199134195, "max_correlation": 0.32299999999999995, "elapsed_seconds": 0.5378410816192627, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.54, "wall_elapsed_seconds": 0.54}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 0}
{"iteration": 0, "timestamp": 1773837779.8627899, "candidates": 5, "parse_ok": 5, "ic_passed": 5, "corr_passed": 5, "dedup_rejected": 0, "admitted": 4, "replaced": 0, "yield_rate": 0.8, "library_size": 4, "avg_correlation": 0.28019336219336216, "max_correlation": 0.32299999999999995, "elapsed_seconds": 0.6378562450408936, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.64, "wall_elapsed_seconds": 0.64}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 1}
{"iteration": 1, "timestamp": 1773837972.704556, "candidates": 10, "parse_ok": 10, "ic_passed": 10, "corr_passed": 10, "dedup_rejected": 2, "admitted": 8, "replaced": 0, "yield_rate": 0.8, "library_size": 8, "avg_correlation": 0.10182961052044943, "max_correlation": 0.39296715271527166, "elapsed_seconds": 4.576587915420532, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 4.58, "wall_elapsed_seconds": 4.58}}
{"iteration": 1, "timestamp": 1773837985.0069509, "candidates": 10, "parse_ok": 10, "ic_passed": 10, "corr_passed": 10, "dedup_rejected": 2, "admitted": 8, "replaced": 0, "yield_rate": 0.8, "library_size": 8, "avg_correlation": 0.10182961052044943, "max_correlation": 0.39296715271527166, "elapsed_seconds": 5.351720809936523, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 5.35, "wall_elapsed_seconds": 5.35}}
{"iteration": 1, "timestamp": 1773837986.555286, "candidates": 10, "parse_ok": 10, "ic_passed": 10, "corr_passed": 10, "dedup_rejected": 2, "admitted": 8, "replaced": 0, "yield_rate": 0.8, "library_size": 8, "avg_correlation": 0.10182961052044943, "max_correlation": 0.39296715271527166, "elapsed_seconds": 5.52150297164917, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 5.52, "wall_elapsed_seconds": 5.52}}
{"iteration": 2, "timestamp": 1773837987.734293, "candidates": 10, "parse_ok": 10, "ic_passed": 10, "corr_passed": 10, "dedup_rejected": 0, "admitted": 8, "replaced": 0, "yield_rate": 0.8, "library_size": 16, "avg_correlation": 0.10055403379740888, "max_correlation": 0.49241112298602563, "elapsed_seconds": 14.922637224197388, "budget": {"llm_calls": 2, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 19.5, "wall_elapsed_seconds": 19.61}}
{"iteration": 2, "timestamp": 1773837999.707036, "candidates": 10, "parse_ok": 10, "ic_passed": 10, "corr_passed": 10, "dedup_rejected": 0, "admitted": 8, "replaced": 0, "yield_rate": 0.8, "library_size": 16, "avg_correlation": 0.10055403379740888, "max_correlation": 0.49241112298602563, "elapsed_seconds": 14.579509973526001, "budget": {"llm_calls": 2, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 19.93, "wall_elapsed_seconds": 20.05}}
{"iteration": 2, "timestamp": 1773838000.9728808, "candidates": 10, "parse_ok": 10, "ic_passed": 10, "corr_passed": 10, "dedup_rejected": 0, "admitted": 8, "replaced": 0, "yield_rate": 0.8, "library_size": 16, "avg_correlation": 0.10055403379740888, "max_correlation": 0.49241112298602563, "elapsed_seconds": 14.306457757949829, "budget": {"llm_calls": 2, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 19.83, "wall_elapsed_seconds": 19.94}}
{"iteration": 3, "timestamp": 1773838013.123701, "candidates": 10, "parse_ok": 10, "ic_passed": 10, "corr_passed": 10, "dedup_rejected": 0, "admitted": 5, "replaced": 0, "yield_rate": 0.5, "library_size": 21, "avg_correlation": 0.0993884563672103, "max_correlation": 0.49241112298602563, "elapsed_seconds": 25.190452098846436, "budget": {"llm_calls": 3, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 44.69, "wall_elapsed_seconds": 45.0}}
{"iteration": 3, "timestamp": 1773838027.95429, "candidates": 10, "parse_ok": 10, "ic_passed": 10, "corr_passed": 10, "dedup_rejected": 0, "admitted": 5, "replaced": 0, "yield_rate": 0.5, "library_size": 21, "avg_correlation": 0.0993884563672103, "max_correlation": 0.49241112298602563, "elapsed_seconds": 28.030009031295776, "budget": {"llm_calls": 3, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 47.96, "wall_elapsed_seconds": 48.3}}
{"iteration": 3, "timestamp": 1773838028.987365, "candidates": 10, "parse_ok": 10, "ic_passed": 10, "corr_passed": 10, "dedup_rejected": 0, "admitted": 5, "replaced": 0, "yield_rate": 0.5, "library_size": 21, "avg_correlation": 0.0993884563672103, "max_correlation": 0.49241112298602563, "elapsed_seconds": 27.80145001411438, "budget": {"llm_calls": 3, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 47.63, "wall_elapsed_seconds": 47.95}}
{"iteration": 1, "timestamp": 1773838029.7641861, "candidates": 10, "parse_ok": 10, "ic_passed": 10, "corr_passed": 10, "dedup_rejected": 2, "admitted": 8, "replaced": 0, "yield_rate": 0.8, "library_size": 8, "avg_correlation": 0.10182961052044943, "max_correlation": 0.39296715271527166, "elapsed_seconds": 4.989582777023315, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 4.99, "wall_elapsed_seconds": 5.0}}
{"iteration": 2, "timestamp": 1773838041.6156852, "candidates": 10, "parse_ok": 10, "ic_passed": 10, "corr_passed": 10, "dedup_rejected": 0, "admitted": 8, "replaced": 0, "yield_rate": 0.8, "library_size": 16, "avg_correlation": 0.10055403379740888, "max_correlation": 0.49241112298602563, "elapsed_seconds": 11.764180183410645, "budget": {"llm_calls": 2, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 16.75, "wall_elapsed_seconds": 16.85}}
{"iteration": 3, "timestamp": 1773838057.484868, "candidates": 10, "parse_ok": 10, "ic_passed": 10, "corr_passed": 10, "dedup_rejected": 0, "admitted": 5, "replaced": 0, "yield_rate": 0.5, "library_size": 21, "avg_correlation": 0.0993884563672103, "max_correlation": 0.49241112298602563, "elapsed_seconds": 15.708050966262817, "budget": {"llm_calls": 3, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 32.46, "wall_elapsed_seconds": 32.72}}
{"iteration": 1, "timestamp": 1773838940.298435, "candidates": 5, "parse_ok": 5, "ic_passed": 1, "corr_passed": 1, "dedup_rejected": 0, "admitted": 1, "replaced": 0, "yield_rate": 0.2, "library_size": 1, "avg_correlation": 0.0, "max_correlation": 0.0, "elapsed_seconds": 0.016602039337158203, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.02, "wall_elapsed_seconds": 0.02}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 0}
{"iteration": 0, "timestamp": 1773838940.320651, "candidates": 5, "parse_ok": 5, "ic_passed": 1, "corr_passed": 1, "dedup_rejected": 0, "admitted": 0, "replaced": 0, "yield_rate": 0.0, "library_size": 0, "avg_correlation": 0.0, "max_correlation": 0.0, "elapsed_seconds": 0.01556396484375, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.02, "wall_elapsed_seconds": 0.02}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 1}
{"iteration": 1, "timestamp": 1773838994.73529, "candidates": 5, "parse_ok": 5, "ic_passed": 1, "corr_passed": 1, "dedup_rejected": 0, "admitted": 1, "replaced": 0, "yield_rate": 0.2, "library_size": 1, "avg_correlation": 0.0, "max_correlation": 0.0, "elapsed_seconds": 0.015350103378295898, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.02, "wall_elapsed_seconds": 0.02}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 0}
{"iteration": 0, "timestamp": 1773838994.7518551, "candidates": 5, "parse_ok": 5, "ic_passed": 1, "corr_passed": 1, "dedup_rejected": 0, "admitted": 0, "replaced": 0, "yield_rate": 0.0, "library_size": 0, "avg_correlation": 0.0, "max_correlation": 0.0, "elapsed_seconds": 0.012424945831298828, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.01, "wall_elapsed_seconds": 0.01}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 1}
{"iteration": 1, "timestamp": 1773855583.600068, "candidates": 5, "parse_ok": 5, "ic_passed": 0, "corr_passed": 0, "dedup_rejected": 0, "admitted": 0, "replaced": 0, "yield_rate": 0.0, "library_size": 0, "avg_correlation": 0.0, "max_correlation": 0.0, "elapsed_seconds": 0.010687828063964844, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.01, "wall_elapsed_seconds": 0.01}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 0}
{"iteration": 0, "timestamp": 1773855583.613107, "candidates": 5, "parse_ok": 5, "ic_passed": 0, "corr_passed": 0, "dedup_rejected": 0, "admitted": 0, "replaced": 0, "yield_rate": 0.0, "library_size": 0, "avg_correlation": 0.0, "max_correlation": 0.0, "elapsed_seconds": 0.009007930755615234, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.01, "wall_elapsed_seconds": 0.01}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 0}
{"iteration": 1, "timestamp": 1773855659.131016, "candidates": 5, "parse_ok": 5, "ic_passed": 0, "corr_passed": 0, "dedup_rejected": 0, "admitted": 0, "replaced": 0, "yield_rate": 0.0, "library_size": 0, "avg_correlation": 0.0, "max_correlation": 0.0, "elapsed_seconds": 0.011964797973632812, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.01, "wall_elapsed_seconds": 0.01}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 0}
{"iteration": 0, "timestamp": 1773855659.143899, "candidates": 5, "parse_ok": 5, "ic_passed": 0, "corr_passed": 0, "dedup_rejected": 0, "admitted": 0, "replaced": 0, "yield_rate": 0.0, "library_size": 0, "avg_correlation": 0.0, "max_correlation": 0.0, "elapsed_seconds": 0.009601831436157227, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.01, "wall_elapsed_seconds": 0.01}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 0}
{"iteration": 1, "timestamp": 1773920133.865679, "candidates": 5, "parse_ok": 5, "ic_passed": 0, "corr_passed": 0, "dedup_rejected": 0, "admitted": 0, "replaced": 0, "yield_rate": 0.0, "library_size": 0, "avg_correlation": 0.0, "max_correlation": 0.0, "elapsed_seconds": 0.008460760116577148, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.01, "wall_elapsed_seconds": 0.01}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 0}
{"iteration": 0, "timestamp": 1773920133.876478, "candidates": 5, "parse_ok": 5, "ic_passed": 0, "corr_passed": 0, "dedup_rejected": 0, "admitted": 0, "replaced": 0, "yield_rate": 0.0, "library_size": 0, "avg_correlation": 0.0, "max_correlation": 0.0, "elapsed_seconds": 0.007336854934692383, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.01, "wall_elapsed_seconds": 0.01}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 0}
{"iteration": 1, "timestamp": 1773920147.186651, "candidates": 5, "parse_ok": 5, "ic_passed": 0, "corr_passed": 0, "dedup_rejected": 0, "admitted": 0, "replaced": 0, "yield_rate": 0.0, "library_size": 0, "avg_correlation": 0.0, "max_correlation": 0.0, "elapsed_seconds": 0.008671045303344727, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.01, "wall_elapsed_seconds": 0.01}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 0}
{"iteration": 0, "timestamp": 1773920147.1967309, "candidates": 5, "parse_ok": 5, "ic_passed": 0, "corr_passed": 0, "dedup_rejected": 0, "admitted": 0, "replaced": 0, "yield_rate": 0.0, "library_size": 0, "avg_correlation": 0.0, "max_correlation": 0.0, "elapsed_seconds": 0.0077440738677978516, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.01, "wall_elapsed_seconds": 0.01}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 0}
{"iteration": 1, "timestamp": 1773920686.632258, "candidates": 5, "parse_ok": 5, "ic_passed": 0, "corr_passed": 0, "dedup_rejected": 0, "admitted": 0, "replaced": 0, "yield_rate": 0.0, "library_size": 0, "avg_correlation": 0.0, "max_correlation": 0.0, "elapsed_seconds": 0.009449243545532227, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.01, "wall_elapsed_seconds": 0.01}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 0}
{"iteration": 0, "timestamp": 1773920686.642327, "candidates": 5, "parse_ok": 5, "ic_passed": 0, "corr_passed": 0, "dedup_rejected": 0, "admitted": 0, "replaced": 0, "yield_rate": 0.0, "library_size": 0, "avg_correlation": 0.0, "max_correlation": 0.0, "elapsed_seconds": 0.007815122604370117, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.01, "wall_elapsed_seconds": 0.01}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 0}
{"iteration": 1, "timestamp": 1773920840.751235, "candidates": 5, "parse_ok": 5, "ic_passed": 0, "corr_passed": 0, "dedup_rejected": 0, "admitted": 0, "replaced": 0, "yield_rate": 0.0, "library_size": 0, "avg_correlation": 0.0, "max_correlation": 0.0, "elapsed_seconds": 0.008711099624633789, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.01, "wall_elapsed_seconds": 0.01}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 0}
{"iteration": 0, "timestamp": 1773920840.763021, "candidates": 5, "parse_ok": 5, "ic_passed": 0, "corr_passed": 0, "dedup_rejected": 0, "admitted": 0, "replaced": 0, "yield_rate": 0.0, "library_size": 0, "avg_correlation": 0.0, "max_correlation": 0.0, "elapsed_seconds": 0.008273839950561523, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.01, "wall_elapsed_seconds": 0.01}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 0}
{"iteration": 1, "timestamp": 1773921057.33887, "candidates": 10, "parse_ok": 10, "ic_passed": 0, "corr_passed": 0, "dedup_rejected": 0, "admitted": 0, "replaced": 0, "yield_rate": 0.0, "library_size": 0, "avg_correlation": 0.0, "max_correlation": 0.0, "elapsed_seconds": 1.32820725440979, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 1.33, "wall_elapsed_seconds": 1.33}}
{"iteration": 2, "timestamp": 1773921058.692768, "candidates": 10, "parse_ok": 10, "ic_passed": 0, "corr_passed": 0, "dedup_rejected": 0, "admitted": 0, "replaced": 0, "yield_rate": 0.0, "library_size": 0, "avg_correlation": 0.0, "max_correlation": 0.0, "elapsed_seconds": 1.3515691757202148, "budget": {"llm_calls": 2, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 2.68, "wall_elapsed_seconds": 2.68}}
{"iteration": 3, "timestamp": 1773921060.054324, "candidates": 10, "parse_ok": 10, "ic_passed": 0, "corr_passed": 0, "dedup_rejected": 0, "admitted": 0, "replaced": 0, "yield_rate": 0.0, "library_size": 0, "avg_correlation": 0.0, "max_correlation": 0.0, "elapsed_seconds": 1.360398769378662, "budget": {"llm_calls": 3, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 4.04, "wall_elapsed_seconds": 4.04}}
{"iteration": 1, "timestamp": 1773921156.6428359, "candidates": 5, "parse_ok": 5, "ic_passed": 0, "corr_passed": 0, "dedup_rejected": 0, "admitted": 0, "replaced": 0, "yield_rate": 0.0, "library_size": 0, "avg_correlation": 0.0, "max_correlation": 0.0, "elapsed_seconds": 0.008219003677368164, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.01, "wall_elapsed_seconds": 0.01}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 0}
{"iteration": 0, "timestamp": 1773921156.652971, "candidates": 5, "parse_ok": 5, "ic_passed": 0, "corr_passed": 0, "dedup_rejected": 0, "admitted": 0, "replaced": 0, "yield_rate": 0.0, "library_size": 0, "avg_correlation": 0.0, "max_correlation": 0.0, "elapsed_seconds": 0.007454872131347656, "budget": {"llm_calls": 1, "llm_prompt_tokens": 0, "llm_completion_tokens": 0, "total_tokens": 0, "compute_seconds": 0.01, "wall_elapsed_seconds": 0.01}, "candidates_before_canon": 5, "canonical_duplicates_removed": 0, "phase2_rejections": 0}

View File

@@ -0,0 +1,56 @@
{
"session_id": "20260319_125236",
"config": {
"target_library_size": 3,
"batch_size": 5,
"max_iterations": 1,
"ic_threshold": 0.04,
"icir_threshold": 0.5,
"correlation_threshold": 0.5,
"replacement_ic_min": 0.1,
"replacement_ic_ratio": 1.3,
"fast_screen_assets": 100,
"num_workers": 40,
"output_dir": "./output",
"gpu_device": "cuda:0",
"backend": "numpy",
"signal_failure_policy": "reject"
},
"output_dir": "./output",
"start_time": "2026-03-19T12:52:36.633890",
"end_time": "2026-03-19T12:52:36.644699",
"status": "completed",
"total_iterations": 1,
"last_library_size": 0,
"library_path": "output/checkpoint/library",
"memory_path": "output/checkpoint/memory.json",
"iterations": [
{
"iteration": 1,
"candidates": 5,
"parse_ok": 5,
"ic_passed": 0,
"corr_passed": 0,
"dedup_rejected": 0,
"admitted": 0,
"replaced": 0,
"yield_rate": 0.0,
"library_size": 0,
"avg_correlation": 0.0,
"max_correlation": 0.0,
"elapsed_seconds": 0.008219003677368164,
"budget": {
"llm_calls": 1,
"llm_prompt_tokens": 0,
"llm_completion_tokens": 0,
"total_tokens": 0,
"compute_seconds": 0.01,
"wall_elapsed_seconds": 0.01
},
"candidates_before_canon": 5,
"canonical_duplicates_removed": 0,
"phase2_rejections": 0,
"timestamp": "2026-03-19T12:52:36.643364"
}
]
}

View File

@@ -0,0 +1,73 @@
{
"iterations": [
{
"iteration": 1,
"candidates_generated": 5,
"ic_passed": 0,
"correlation_passed": 0,
"admitted": 0,
"rejected": 5,
"replaced": 0,
"library_size": 0,
"best_ic": 0.2486060606060606,
"mean_ic": 0.049721212121212124,
"elapsed_seconds": 0.008219003677368164,
"timestamp": 1773921156.643179,
"yield_rate": 0.0
}
],
"factors": [
{
"expression": "Neg(CsRank(Delta($close, 5)))",
"ic": 0.0,
"icir": 0.0,
"max_correlation": 0.0,
"admitted": false,
"rejection_reason": "Signal computation error: Expression evaluation failed for 'Neg(CsRank(Delta($close, 5)))': \"Feature '$close' not found in data. Available: ['$high', '$low', '$open']\"",
"timestamp": 1773921156.64333
},
{
"expression": "CsZScore(Div(Sub($volume, Mean($volume, 20)), Std($volume, 20)))",
"ic": 0.0,
"icir": 0.0,
"max_correlation": 0.0,
"admitted": false,
"rejection_reason": "Signal computation error: Expression evaluation failed for 'CsZScore(Div(Sub($volume, Mean($volume, 20)), Std($volume, 20)))': \"Feature '$volume' not found in data. Available: ['$high', '$low', '$open']\"",
"timestamp": 1773921156.6433449
},
{
"expression": "Div(Sub($high, $low), Add($high, $low))",
"ic": 0.2486060606060606,
"icir": -0.3678513450563207,
"max_correlation": 0.0,
"admitted": false,
"rejection_reason": "ICIR -0.3679 < threshold 0.5",
"timestamp": 1773921156.643349
},
{
"expression": "CsRank(Div(Sub($close, $vwap), $vwap))",
"ic": 0.0,
"icir": 0.0,
"max_correlation": 0.0,
"admitted": false,
"rejection_reason": "Signal computation error: Expression evaluation failed for 'CsRank(Div(Sub($close, $vwap), $vwap))': \"Feature '$close' not found in data. Available: ['$high', '$low', '$open']\"",
"timestamp": 1773921156.643352
},
{
"expression": "Neg(Skew($returns, 20))",
"ic": 0.0,
"icir": 0.0,
"max_correlation": 0.0,
"admitted": false,
"rejection_reason": "Signal computation error: Expression evaluation failed for 'Neg(Skew($returns, 20))': \"Feature '$returns' not found in data. Available: ['$high', '$low', '$open']\"",
"timestamp": 1773921156.6433542
}
],
"summary": {
"total_iterations": 1,
"total_candidates": 5,
"total_admitted": 0,
"overall_yield_rate": 0.0,
"final_library_size": 0
}
}