ifieryarrows commited on
Commit
0dc1053
·
verified ·
1 Parent(s): 75c2216

Sync from GitHub (tests passed)

Browse files
config/symbol_sets/challenger.json CHANGED
@@ -1,10 +1,10 @@
1
  {
2
- "run_id": "scr-20260121-01acc8",
3
- "generated_at": "2026-01-21T17:46:27Z",
4
- "screener_run_id": "scr-20260121-01acc8",
5
- "content_fingerprint": "sha256:0ea03719287924228105d1df7a8070c1386bc4a9047a86f8e004624d2e400a6c",
6
- "output_fingerprint": "sha256:0406e8ce45a8ba00a01ab24be8cfabcb458cc5bdb2429f9af0731c4d526d2ddb",
7
- "universe_content_fingerprint": "sha256:3c94a3eb2a5e4a75cf7bfb2711542a96af62f6bb8c21511ba475124351cca3f1",
8
  "selection_rules_version": "3.2.0",
9
  "target": "HG=F",
10
  "total_candidates": 141,
@@ -60,12 +60,12 @@
60
  },
61
  "excluded_reasons_summary": {
62
  "oos_n_obs_too_low": 0,
63
- "oos_abs_pearson_too_low": 63,
64
- "oos_rolling_std_too_high": 4,
65
  "oos_target_redundant": 1,
66
  "oos_metrics_missing": 0,
67
- "category_not_whitelisted": 39,
68
- "category_limit_reached": 19,
69
  "global_cap_reached": 0
70
  },
71
  "tie_break_rule": "alphabetical_ticker_within_same_score",
@@ -75,289 +75,289 @@
75
  "category": "macro_currency",
76
  "selection_source": "mandatory",
77
  "rank": 116,
78
- "score_composite": 0.3296,
79
- "is_pearson": -0.4365658515972881,
80
  "is_n_obs": 312,
81
  "is_best_lag": 0,
82
- "oos_pearson": -0.25589672032928534,
83
  "oos_pearson_sign": "negative",
84
- "oos_n_obs": 107,
85
- "oos_partial_corr": 0.1820077225456136,
86
- "oos_rolling_std": 0.09848538068512089,
87
  "oos_frozen_lag": 0,
88
- "oos_lag_corr_at_frozen": -0.25589672032928534
89
  },
90
  {
91
  "ticker": "CL=F",
92
  "category": "commodity_energy",
93
  "selection_source": "mandatory",
94
- "rank": 133,
95
- "score_composite": 0.2723,
96
- "is_pearson": 0.3464957346484408,
97
  "is_n_obs": 312,
98
  "is_best_lag": 0,
99
- "oos_pearson": 0.15655569439803313,
100
  "oos_pearson_sign": "positive",
101
- "oos_n_obs": 107,
102
- "oos_partial_corr": 0.14952098817008314,
103
- "oos_rolling_std": 0.19248057705038732,
104
  "oos_frozen_lag": 0,
105
- "oos_lag_corr_at_frozen": 0.15655569439803313
106
  },
107
  {
108
  "ticker": "COPX",
109
  "category": "etf_copper",
110
  "selection_source": "screener",
111
  "rank": 2,
112
- "score_composite": 0.7604,
113
- "is_pearson": 0.7841779211355742,
114
  "is_n_obs": 312,
115
  "is_best_lag": 0,
116
- "oos_pearson": 0.6956413804263578,
117
  "oos_pearson_sign": "positive",
118
- "oos_n_obs": 107,
119
- "oos_partial_corr": 0.6338861263834715,
120
- "oos_rolling_std": 0.12942713172730172,
121
  "oos_frozen_lag": 0,
122
- "oos_lag_corr_at_frozen": 0.6956413804263578
123
  },
124
  {
125
  "ticker": "PICK",
126
  "category": "etf_miners",
127
  "selection_source": "screener",
128
  "rank": 3,
129
- "score_composite": 0.7121,
130
- "is_pearson": 0.7269352585154228,
131
  "is_n_obs": 312,
132
  "is_best_lag": 0,
133
- "oos_pearson": 0.6578612359678409,
134
  "oos_pearson_sign": "positive",
135
- "oos_n_obs": 107,
136
- "oos_partial_corr": 0.5856942833071352,
137
- "oos_rolling_std": 0.10066353661183235,
138
  "oos_frozen_lag": 0,
139
- "oos_lag_corr_at_frozen": 0.6578612359678409
140
  },
141
  {
142
- "ticker": "SCCO",
143
  "category": "miner_major",
144
  "selection_source": "screener",
145
  "rank": 4,
146
- "score_composite": 0.7025,
147
- "is_pearson": 0.7085866126559941,
148
  "is_n_obs": 312,
149
  "is_best_lag": 0,
150
- "oos_pearson": 0.6087163075965507,
151
  "oos_pearson_sign": "positive",
152
- "oos_n_obs": 107,
153
- "oos_partial_corr": 0.5334391644308702,
154
- "oos_rolling_std": 0.15529979141258105,
155
  "oos_frozen_lag": 0,
156
- "oos_lag_corr_at_frozen": 0.6087163075965507
157
  },
158
  {
159
- "ticker": "FCX",
160
  "category": "miner_major",
161
  "selection_source": "screener",
162
  "rank": 5,
163
- "score_composite": 0.702,
164
- "is_pearson": 0.6989201642564743,
165
  "is_n_obs": 312,
166
  "is_best_lag": 0,
167
- "oos_pearson": 0.6201687537962907,
168
  "oos_pearson_sign": "positive",
169
- "oos_n_obs": 107,
170
- "oos_partial_corr": 0.5324484075842124,
171
- "oos_rolling_std": 0.14759110938554468,
172
  "oos_frozen_lag": 0,
173
- "oos_lag_corr_at_frozen": 0.6201687537962907
174
  },
175
  {
176
  "ticker": "RIO",
177
  "category": "miner_major",
178
  "selection_source": "screener",
179
  "rank": 6,
180
- "score_composite": 0.6706,
181
- "is_pearson": 0.6828595893612273,
182
  "is_n_obs": 312,
183
  "is_best_lag": 0,
184
- "oos_pearson": 0.5994364710809708,
185
  "oos_pearson_sign": "positive",
186
- "oos_n_obs": 107,
187
- "oos_partial_corr": 0.48517950608454813,
188
- "oos_rolling_std": 0.15700147666323397,
189
  "oos_frozen_lag": 0,
190
- "oos_lag_corr_at_frozen": 0.5994364710809708
191
  },
192
  {
193
  "ticker": "HBM.TO",
194
  "category": "miner_mid",
195
  "selection_source": "screener",
196
  "rank": 7,
197
- "score_composite": 0.6653,
198
- "is_pearson": 0.6560511147782789,
199
  "is_n_obs": 312,
200
  "is_best_lag": 0,
201
- "oos_pearson": 0.5648592455438034,
202
  "oos_pearson_sign": "positive",
203
- "oos_n_obs": 107,
204
- "oos_partial_corr": 0.4775168986074405,
205
- "oos_rolling_std": 0.14001446897643596,
206
  "oos_frozen_lag": 0,
207
- "oos_lag_corr_at_frozen": 0.5648592455438034
208
  },
209
  {
210
  "ticker": "BHP",
211
  "category": "miner_major",
212
  "selection_source": "screener",
213
  "rank": 8,
214
- "score_composite": 0.6527,
215
- "is_pearson": 0.6635623320785133,
216
  "is_n_obs": 312,
217
  "is_best_lag": 0,
218
- "oos_pearson": 0.5559001722822761,
219
  "oos_pearson_sign": "positive",
220
- "oos_n_obs": 107,
221
- "oos_partial_corr": 0.44239989298799065,
222
- "oos_rolling_std": 0.20336423420854333,
223
  "oos_frozen_lag": 0,
224
- "oos_lag_corr_at_frozen": 0.5559001722822761
225
  },
226
  {
227
  "ticker": "LUN.TO",
228
  "category": "miner_mid",
229
  "selection_source": "screener",
230
- "rank": 10,
231
- "score_composite": 0.6281,
232
- "is_pearson": 0.6287675265797077,
233
  "is_n_obs": 312,
234
  "is_best_lag": 0,
235
- "oos_pearson": 0.4691591604291037,
236
  "oos_pearson_sign": "positive",
237
- "oos_n_obs": 107,
238
- "oos_partial_corr": 0.37582943200137664,
239
- "oos_rolling_std": 0.22842925132202532,
240
  "oos_frozen_lag": 0,
241
- "oos_lag_corr_at_frozen": 0.4691591604291037
242
  },
243
  {
244
  "ticker": "XME",
245
  "category": "etf_metals",
246
  "selection_source": "screener",
247
  "rank": 12,
248
- "score_composite": 0.6115,
249
- "is_pearson": 0.5943772119915407,
250
  "is_n_obs": 312,
251
  "is_best_lag": 0,
252
- "oos_pearson": 0.46443515550885744,
253
  "oos_pearson_sign": "positive",
254
- "oos_n_obs": 107,
255
- "oos_partial_corr": 0.3362533803829553,
256
- "oos_rolling_std": 0.18804813880332064,
257
  "oos_frozen_lag": 0,
258
- "oos_lag_corr_at_frozen": 0.46443515550885744
259
  },
260
  {
261
  "ticker": "FXA",
262
  "category": "macro_currency",
263
  "selection_source": "screener",
264
- "rank": 15,
265
- "score_composite": 0.5827,
266
- "is_pearson": 0.555466611120134,
267
  "is_n_obs": 312,
268
  "is_best_lag": 0,
269
- "oos_pearson": 0.5091830531812065,
270
  "oos_pearson_sign": "positive",
271
- "oos_n_obs": 107,
272
- "oos_partial_corr": 0.3625125275585919,
273
- "oos_rolling_std": 0.12894669685695853,
274
  "oos_frozen_lag": 0,
275
- "oos_lag_corr_at_frozen": 0.5091830531812065
276
  },
277
  {
278
  "ticker": "VALE",
279
  "category": "miner_diversified",
280
  "selection_source": "screener",
281
- "rank": 27,
282
- "score_composite": 0.5598,
283
- "is_pearson": 0.601255642994768,
284
  "is_n_obs": 312,
285
  "is_best_lag": 0,
286
- "oos_pearson": 0.4425764243529336,
287
  "oos_pearson_sign": "positive",
288
- "oos_n_obs": 107,
289
- "oos_partial_corr": 0.29346039914390826,
290
- "oos_rolling_std": 0.20032867069171392,
291
  "oos_frozen_lag": 0,
292
- "oos_lag_corr_at_frozen": 0.4425764243529336
293
  },
294
  {
295
  "ticker": "GXC",
296
  "category": "macro_china",
297
  "selection_source": "screener",
298
- "rank": 38,
299
- "score_composite": 0.5041,
300
- "is_pearson": 0.5168835094918269,
301
  "is_n_obs": 312,
302
  "is_best_lag": 0,
303
- "oos_pearson": 0.4082885051741739,
304
  "oos_pearson_sign": "positive",
305
- "oos_n_obs": 107,
306
- "oos_partial_corr": 0.2939353746154297,
307
- "oos_rolling_std": 0.09201890516974226,
308
  "oos_frozen_lag": 0,
309
- "oos_lag_corr_at_frozen": 0.4082885051741739
310
  },
311
  {
312
  "ticker": "CEW",
313
  "category": "macro_em",
314
  "selection_source": "screener",
315
- "rank": 41,
316
- "score_composite": 0.4977,
317
- "is_pearson": 0.5536226976964501,
318
  "is_n_obs": 312,
319
  "is_best_lag": 0,
320
- "oos_pearson": 0.37194491590167394,
321
  "oos_pearson_sign": "positive",
322
- "oos_n_obs": 107,
323
- "oos_partial_corr": 0.13178363722975933,
324
- "oos_rolling_std": 0.13395906273656685,
325
  "oos_frozen_lag": 0,
326
- "oos_lag_corr_at_frozen": 0.37194491590167394
327
  },
328
  {
329
  "ticker": "PL=F",
330
  "category": "commodity_precious",
331
  "selection_source": "screener",
332
- "rank": 44,
333
- "score_composite": 0.4915,
334
- "is_pearson": 0.4836877560320039,
335
  "is_n_obs": 312,
336
  "is_best_lag": 0,
337
- "oos_pearson": 0.5105685707176206,
338
  "oos_pearson_sign": "positive",
339
- "oos_n_obs": 107,
340
- "oos_partial_corr": 0.4435428754676094,
341
- "oos_rolling_std": 0.11808532274711148,
342
  "oos_frozen_lag": 0,
343
- "oos_lag_corr_at_frozen": 0.5105685707176206
344
  },
345
  {
346
  "ticker": "ALI=F",
347
  "category": "commodity_base",
348
  "selection_source": "screener",
349
- "rank": 73,
350
- "score_composite": 0.4095,
351
- "is_pearson": 0.5018667089390717,
352
  "is_n_obs": 312,
353
  "is_best_lag": 0,
354
- "oos_pearson": 0.49570612185061425,
355
  "oos_pearson_sign": "positive",
356
- "oos_n_obs": 107,
357
- "oos_partial_corr": 0.4252316927738504,
358
- "oos_rolling_std": 0.09163426478282909,
359
  "oos_frozen_lag": 0,
360
- "oos_lag_corr_at_frozen": 0.49570612185061425
361
  }
362
  ]
363
  }
 
1
  {
2
+ "run_id": "scr-20260323-c74df2",
3
+ "generated_at": "2026-03-23T05:06:32Z",
4
+ "screener_run_id": "scr-20260323-c74df2",
5
+ "content_fingerprint": "sha256:f5de46455306636f11fbcc47d069279523ae3ed32fd98d921eb6e21060e814aa",
6
+ "output_fingerprint": "sha256:640f93b2c31dd5f2a257b156bc2ebebe4cd2d1dd4bd5dfcdb9e04eaa56786cad",
7
+ "universe_content_fingerprint": "sha256:68f29e3ef6f6005e6bb41339790c7c56effe1fca14b9b1dfbafaa435dd0d5f7c",
8
  "selection_rules_version": "3.2.0",
9
  "target": "HG=F",
10
  "total_candidates": 141,
 
60
  },
61
  "excluded_reasons_summary": {
62
  "oos_n_obs_too_low": 0,
63
+ "oos_abs_pearson_too_low": 64,
64
+ "oos_rolling_std_too_high": 3,
65
  "oos_target_redundant": 1,
66
  "oos_metrics_missing": 0,
67
+ "category_not_whitelisted": 37,
68
+ "category_limit_reached": 21,
69
  "global_cap_reached": 0
70
  },
71
  "tie_break_rule": "alphabetical_ticker_within_same_score",
 
75
  "category": "macro_currency",
76
  "selection_source": "mandatory",
77
  "rank": 116,
78
+ "score_composite": 0.3276,
79
+ "is_pearson": -0.4365658515972885,
80
  "is_n_obs": 312,
81
  "is_best_lag": 0,
82
+ "oos_pearson": -0.24923921865260898,
83
  "oos_pearson_sign": "negative",
84
+ "oos_n_obs": 116,
85
+ "oos_partial_corr": 0.14302635835345903,
86
+ "oos_rolling_std": 0.09814800174937098,
87
  "oos_frozen_lag": 0,
88
+ "oos_lag_corr_at_frozen": -0.24923921865260898
89
  },
90
  {
91
  "ticker": "CL=F",
92
  "category": "commodity_energy",
93
  "selection_source": "mandatory",
94
+ "rank": 138,
95
+ "score_composite": 0.241,
96
+ "is_pearson": 0.34649573464844113,
97
  "is_n_obs": 312,
98
  "is_best_lag": 0,
99
+ "oos_pearson": 0.052141377309148224,
100
  "oos_pearson_sign": "positive",
101
+ "oos_n_obs": 116,
102
+ "oos_partial_corr": 0.07074621074206999,
103
+ "oos_rolling_std": 0.20030688879528052,
104
  "oos_frozen_lag": 0,
105
+ "oos_lag_corr_at_frozen": 0.052141377309148224
106
  },
107
  {
108
  "ticker": "COPX",
109
  "category": "etf_copper",
110
  "selection_source": "screener",
111
  "rank": 2,
112
+ "score_composite": 0.7588,
113
+ "is_pearson": 0.7841776863335453,
114
  "is_n_obs": 312,
115
  "is_best_lag": 0,
116
+ "oos_pearson": 0.690363949041162,
117
  "oos_pearson_sign": "positive",
118
+ "oos_n_obs": 116,
119
+ "oos_partial_corr": 0.625211906029331,
120
+ "oos_rolling_std": 0.12396096846273649,
121
  "oos_frozen_lag": 0,
122
+ "oos_lag_corr_at_frozen": 0.690363949041162
123
  },
124
  {
125
  "ticker": "PICK",
126
  "category": "etf_miners",
127
  "selection_source": "screener",
128
  "rank": 3,
129
+ "score_composite": 0.7117,
130
+ "is_pearson": 0.7269350967939731,
131
  "is_n_obs": 312,
132
  "is_best_lag": 0,
133
+ "oos_pearson": 0.6565284500254881,
134
  "oos_pearson_sign": "positive",
135
+ "oos_n_obs": 116,
136
+ "oos_partial_corr": 0.5773858976713295,
137
+ "oos_rolling_std": 0.09694498373603411,
138
  "oos_frozen_lag": 0,
139
+ "oos_lag_corr_at_frozen": 0.6565284500254881
140
  },
141
  {
142
+ "ticker": "FCX",
143
  "category": "miner_major",
144
  "selection_source": "screener",
145
  "rank": 4,
146
+ "score_composite": 0.7051,
147
+ "is_pearson": 0.6989201517417913,
148
  "is_n_obs": 312,
149
  "is_best_lag": 0,
150
+ "oos_pearson": 0.6304243561297919,
151
  "oos_pearson_sign": "positive",
152
+ "oos_n_obs": 116,
153
+ "oos_partial_corr": 0.5386866385737777,
154
+ "oos_rolling_std": 0.17642023792518888,
155
  "oos_frozen_lag": 0,
156
+ "oos_lag_corr_at_frozen": 0.6304243561297919
157
  },
158
  {
159
+ "ticker": "SCCO",
160
  "category": "miner_major",
161
  "selection_source": "screener",
162
  "rank": 5,
163
+ "score_composite": 0.7044,
164
+ "is_pearson": 0.7085866034886997,
165
  "is_n_obs": 312,
166
  "is_best_lag": 0,
167
+ "oos_pearson": 0.6152223233347587,
168
  "oos_pearson_sign": "positive",
169
+ "oos_n_obs": 116,
170
+ "oos_partial_corr": 0.540388045002868,
171
+ "oos_rolling_std": 0.1566317501769846,
172
  "oos_frozen_lag": 0,
173
+ "oos_lag_corr_at_frozen": 0.6152223233347587
174
  },
175
  {
176
  "ticker": "RIO",
177
  "category": "miner_major",
178
  "selection_source": "screener",
179
  "rank": 6,
180
+ "score_composite": 0.6703,
181
+ "is_pearson": 0.6828596492587814,
182
  "is_n_obs": 312,
183
  "is_best_lag": 0,
184
+ "oos_pearson": 0.5986438431068744,
185
  "oos_pearson_sign": "positive",
186
+ "oos_n_obs": 116,
187
+ "oos_partial_corr": 0.48282129354113945,
188
+ "oos_rolling_std": 0.1617803945652807,
189
  "oos_frozen_lag": 0,
190
+ "oos_lag_corr_at_frozen": 0.5986438431068744
191
  },
192
  {
193
  "ticker": "HBM.TO",
194
  "category": "miner_mid",
195
  "selection_source": "screener",
196
  "rank": 7,
197
+ "score_composite": 0.6671,
198
+ "is_pearson": 0.6560510784547535,
199
  "is_n_obs": 312,
200
  "is_best_lag": 0,
201
+ "oos_pearson": 0.5707657517893016,
202
  "oos_pearson_sign": "positive",
203
+ "oos_n_obs": 116,
204
+ "oos_partial_corr": 0.4849641232686483,
205
+ "oos_rolling_std": 0.16436234617877785,
206
  "oos_frozen_lag": 0,
207
+ "oos_lag_corr_at_frozen": 0.5707657517893016
208
  },
209
  {
210
  "ticker": "BHP",
211
  "category": "miner_major",
212
  "selection_source": "screener",
213
  "rank": 8,
214
+ "score_composite": 0.6525,
215
+ "is_pearson": 0.6635623527581717,
216
  "is_n_obs": 312,
217
  "is_best_lag": 0,
218
+ "oos_pearson": 0.5551633686072006,
219
  "oos_pearson_sign": "positive",
220
+ "oos_n_obs": 116,
221
+ "oos_partial_corr": 0.439351304682754,
222
+ "oos_rolling_std": 0.19763957666653081,
223
  "oos_frozen_lag": 0,
224
+ "oos_lag_corr_at_frozen": 0.5551633686072006
225
  },
226
  {
227
  "ticker": "LUN.TO",
228
  "category": "miner_mid",
229
  "selection_source": "screener",
230
+ "rank": 9,
231
+ "score_composite": 0.6325,
232
+ "is_pearson": 0.6287673772695176,
233
  "is_n_obs": 312,
234
  "is_best_lag": 0,
235
+ "oos_pearson": 0.48378139066866854,
236
  "oos_pearson_sign": "positive",
237
+ "oos_n_obs": 116,
238
+ "oos_partial_corr": 0.39759593400959636,
239
+ "oos_rolling_std": 0.24201588718683556,
240
  "oos_frozen_lag": 0,
241
+ "oos_lag_corr_at_frozen": 0.48378139066866854
242
  },
243
  {
244
  "ticker": "XME",
245
  "category": "etf_metals",
246
  "selection_source": "screener",
247
  "rank": 12,
248
+ "score_composite": 0.6154,
249
+ "is_pearson": 0.5943772186013415,
250
  "is_n_obs": 312,
251
  "is_best_lag": 0,
252
+ "oos_pearson": 0.47749140155299885,
253
  "oos_pearson_sign": "positive",
254
+ "oos_n_obs": 116,
255
+ "oos_partial_corr": 0.3499853954255169,
256
+ "oos_rolling_std": 0.18125758491863864,
257
  "oos_frozen_lag": 0,
258
+ "oos_lag_corr_at_frozen": 0.47749140155299885
259
  },
260
  {
261
  "ticker": "FXA",
262
  "category": "macro_currency",
263
  "selection_source": "screener",
264
+ "rank": 17,
265
+ "score_composite": 0.5769,
266
+ "is_pearson": 0.555465514750984,
267
  "is_n_obs": 312,
268
  "is_best_lag": 0,
269
+ "oos_pearson": 0.4898401022435348,
270
  "oos_pearson_sign": "positive",
271
+ "oos_n_obs": 116,
272
+ "oos_partial_corr": 0.32832693673580254,
273
+ "oos_rolling_std": 0.12350321412672499,
274
  "oos_frozen_lag": 0,
275
+ "oos_lag_corr_at_frozen": 0.4898401022435348
276
  },
277
  {
278
  "ticker": "VALE",
279
  "category": "miner_diversified",
280
  "selection_source": "screener",
281
+ "rank": 26,
282
+ "score_composite": 0.5604,
283
+ "is_pearson": 0.6012554629102538,
284
  "is_n_obs": 312,
285
  "is_best_lag": 0,
286
+ "oos_pearson": 0.4445675912928725,
287
  "oos_pearson_sign": "positive",
288
+ "oos_n_obs": 116,
289
+ "oos_partial_corr": 0.28976577357292094,
290
+ "oos_rolling_std": 0.19372627881337298,
291
  "oos_frozen_lag": 0,
292
+ "oos_lag_corr_at_frozen": 0.4445675912928725
293
  },
294
  {
295
  "ticker": "GXC",
296
  "category": "macro_china",
297
  "selection_source": "screener",
298
+ "rank": 35,
299
+ "score_composite": 0.5079,
300
+ "is_pearson": 0.5168833323419436,
301
  "is_n_obs": 312,
302
  "is_best_lag": 0,
303
+ "oos_pearson": 0.420875066025181,
304
  "oos_pearson_sign": "positive",
305
+ "oos_n_obs": 116,
306
+ "oos_partial_corr": 0.30734288156791845,
307
+ "oos_rolling_std": 0.09697106858358417,
308
  "oos_frozen_lag": 0,
309
+ "oos_lag_corr_at_frozen": 0.420875066025181
310
  },
311
  {
312
  "ticker": "CEW",
313
  "category": "macro_em",
314
  "selection_source": "screener",
315
+ "rank": 38,
316
+ "score_composite": 0.5003,
317
+ "is_pearson": 0.5536225367409852,
318
  "is_n_obs": 312,
319
  "is_best_lag": 0,
320
+ "oos_pearson": 0.38069003456546857,
321
  "oos_pearson_sign": "positive",
322
+ "oos_n_obs": 116,
323
+ "oos_partial_corr": 0.15417630118572548,
324
+ "oos_rolling_std": 0.1350927605389791,
325
  "oos_frozen_lag": 0,
326
+ "oos_lag_corr_at_frozen": 0.38069003456546857
327
  },
328
  {
329
  "ticker": "PL=F",
330
  "category": "commodity_precious",
331
  "selection_source": "screener",
332
+ "rank": 45,
333
+ "score_composite": 0.4808,
334
+ "is_pearson": 0.48368775603200487,
335
  "is_n_obs": 312,
336
  "is_best_lag": 0,
337
+ "oos_pearson": 0.47469989704669946,
338
  "oos_pearson_sign": "positive",
339
+ "oos_n_obs": 116,
340
+ "oos_partial_corr": 0.41015198316732004,
341
+ "oos_rolling_std": 0.113114497608784,
342
  "oos_frozen_lag": 0,
343
+ "oos_lag_corr_at_frozen": 0.47469989704669946
344
  },
345
  {
346
  "ticker": "ALI=F",
347
  "category": "commodity_base",
348
  "selection_source": "screener",
349
+ "rank": 75,
350
+ "score_composite": 0.3996,
351
+ "is_pearson": 0.5018667089390725,
352
  "is_n_obs": 312,
353
  "is_best_lag": 0,
354
+ "oos_pearson": 0.462995288684693,
355
  "oos_pearson_sign": "positive",
356
+ "oos_n_obs": 116,
357
+ "oos_partial_corr": 0.40895220453316294,
358
+ "oos_rolling_std": 0.10271550817716062,
359
  "oos_frozen_lag": 0,
360
+ "oos_lag_corr_at_frozen": 0.462995288684693
361
  }
362
  ]
363
  }
deep_learning/training/hyperopt.py CHANGED
@@ -124,7 +124,7 @@ def _objective(trial, base_cfg: TFTASROConfig, master_data: tuple) -> float:
124
  from deep_learning.models.tft_copper import create_tft_model
125
 
126
  trial_cfg = create_trial_config(trial, base_cfg)
127
- master_df, tv_unknown, tv_known, target_cols = master_data
128
 
129
  try:
130
  training_ds, validation_ds, test_ds = build_datasets(
 
124
  from deep_learning.models.tft_copper import create_tft_model
125
 
126
  trial_cfg = create_trial_config(trial, base_cfg)
127
+ master_df, tv_unknown, tv_known, target_cols, _ = master_data
128
 
129
  try:
130
  training_ds, validation_ds, test_ds = build_datasets(
deep_learning/training/trainer.py CHANGED
@@ -103,7 +103,7 @@ def train_tft_model(
103
  # ---- 1. Feature store ----
104
  logger.info("Building feature store ...")
105
  with SessionLocal() as session:
106
- master_df, tv_unknown, tv_known, target_cols = build_tft_dataframe(session, cfg)
107
 
108
  logger.info("Master DataFrame: %d rows x %d cols", *master_df.shape)
109
 
 
103
  # ---- 1. Feature store ----
104
  logger.info("Building feature store ...")
105
  with SessionLocal() as session:
106
+ master_df, tv_unknown, tv_known, target_cols, _ = build_tft_dataframe(session, cfg)
107
 
108
  logger.info("Master DataFrame: %d rows x %d cols", *master_df.shape)
109