cnhkmcp 2.0.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. cnhkmcp/__init__.py +125 -0
  2. cnhkmcp/untracked/APP/.gitignore +32 -0
  3. cnhkmcp/untracked/APP/MODULAR_STRUCTURE.md +112 -0
  4. cnhkmcp/untracked/APP/README.md +309 -0
  5. cnhkmcp/untracked/APP/Tranformer/Transformer.py +2192 -0
  6. cnhkmcp/untracked/APP/Tranformer/ace.log +0 -0
  7. cnhkmcp/untracked/APP/Tranformer/ace_lib.py +1489 -0
  8. cnhkmcp/untracked/APP/Tranformer/helpful_functions.py +180 -0
  9. cnhkmcp/untracked/APP/Tranformer/output/Alpha_candidates.json +1786 -0
  10. cnhkmcp/untracked/APP/Tranformer/output/Alpha_candidates_/321/207/320/264/342/225/221/321/204/342/225/233/320/233.json +654 -0
  11. cnhkmcp/untracked/APP/Tranformer/output/Alpha_generated_expressions_error.json +261 -0
  12. cnhkmcp/untracked/APP/Tranformer/output/Alpha_generated_expressions_success.json +170 -0
  13. cnhkmcp/untracked/APP/Tranformer/output/Alpha_generated_expressions_/321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/320/237/320/277/321/207/320/253/342/224/244/321/206/320/236/320/265/321/210/342/225/234/342/225/234/321/205/320/225/320/265Machine_lib.json +22 -0
  14. cnhkmcp/untracked/APP/Tranformer/parsetab.py +60 -0
  15. cnhkmcp/untracked/APP/Tranformer/template_summary.txt +408 -0
  16. cnhkmcp/untracked/APP/Tranformer/transformer_config.json +7 -0
  17. cnhkmcp/untracked/APP/Tranformer/validator.py +889 -0
  18. cnhkmcp/untracked/APP/ace.log +65 -0
  19. cnhkmcp/untracked/APP/ace_lib.py +1489 -0
  20. cnhkmcp/untracked/APP/blueprints/__init__.py +6 -0
  21. cnhkmcp/untracked/APP/blueprints/feature_engineering.py +347 -0
  22. cnhkmcp/untracked/APP/blueprints/idea_house.py +221 -0
  23. cnhkmcp/untracked/APP/blueprints/inspiration_house.py +432 -0
  24. cnhkmcp/untracked/APP/blueprints/paper_analysis.py +570 -0
  25. cnhkmcp/untracked/APP/custom_templates/templates.json +1257 -0
  26. cnhkmcp/untracked/APP/give_me_idea/BRAIN_Alpha_Template_Expert_SystemPrompt.md +400 -0
  27. cnhkmcp/untracked/APP/give_me_idea/ace_lib.py +1489 -0
  28. cnhkmcp/untracked/APP/give_me_idea/alpha_data_specific_template_master.py +247 -0
  29. cnhkmcp/untracked/APP/give_me_idea/helpful_functions.py +180 -0
  30. cnhkmcp/untracked/APP/give_me_idea/what_is_Alpha_template.md +11 -0
  31. cnhkmcp/untracked/APP/helpful_functions.py +180 -0
  32. cnhkmcp/untracked/APP/hkSimulator/ace.log +0 -0
  33. cnhkmcp/untracked/APP/hkSimulator/ace_lib.py +1476 -0
  34. cnhkmcp/untracked/APP/hkSimulator/autosim_20251205_145240.log +0 -0
  35. cnhkmcp/untracked/APP/hkSimulator/autosim_20251215_030103.log +0 -0
  36. cnhkmcp/untracked/APP/hkSimulator/autosimulator.py +447 -0
  37. cnhkmcp/untracked/APP/hkSimulator/helpful_functions.py +180 -0
  38. cnhkmcp/untracked/APP/mirror_config.txt +20 -0
  39. cnhkmcp/untracked/APP/operaters.csv +129 -0
  40. cnhkmcp/untracked/APP/requirements.txt +53 -0
  41. cnhkmcp/untracked/APP/run_app.bat +28 -0
  42. cnhkmcp/untracked/APP/run_app.sh +34 -0
  43. cnhkmcp/untracked/APP/setup_tsinghua.bat +39 -0
  44. cnhkmcp/untracked/APP/setup_tsinghua.sh +43 -0
  45. cnhkmcp/untracked/APP/simulator/alpha_submitter.py +404 -0
  46. cnhkmcp/untracked/APP/simulator/simulator_wqb.py +618 -0
  47. cnhkmcp/untracked/APP/ssrn-3332513.pdf +109188 -19
  48. cnhkmcp/untracked/APP/static/brain.js +528 -0
  49. cnhkmcp/untracked/APP/static/decoder.js +1540 -0
  50. cnhkmcp/untracked/APP/static/feature_engineering.js +1729 -0
  51. cnhkmcp/untracked/APP/static/idea_house.js +937 -0
  52. cnhkmcp/untracked/APP/static/inspiration.js +465 -0
  53. cnhkmcp/untracked/APP/static/inspiration_house.js +868 -0
  54. cnhkmcp/untracked/APP/static/paper_analysis.js +390 -0
  55. cnhkmcp/untracked/APP/static/script.js +2942 -0
  56. cnhkmcp/untracked/APP/static/simulator.js +597 -0
  57. cnhkmcp/untracked/APP/static/styles.css +3127 -0
  58. cnhkmcp/untracked/APP/static/usage_widget.js +508 -0
  59. cnhkmcp/untracked/APP/templates/alpha_inspector.html +511 -0
  60. cnhkmcp/untracked/APP/templates/feature_engineering.html +960 -0
  61. cnhkmcp/untracked/APP/templates/idea_house.html +564 -0
  62. cnhkmcp/untracked/APP/templates/index.html +911 -0
  63. cnhkmcp/untracked/APP/templates/inspiration_house.html +861 -0
  64. cnhkmcp/untracked/APP/templates/paper_analysis.html +91 -0
  65. cnhkmcp/untracked/APP/templates/simulator.html +343 -0
  66. cnhkmcp/untracked/APP/templates/transformer_web.html +580 -0
  67. cnhkmcp/untracked/APP/usage.md +351 -0
  68. cnhkmcp/untracked/APP//321/207/342/225/235/320/250/321/205/320/230/320/226/321/204/342/225/225/320/220/321/211/320/221/320/243/321/206/320/261/320/265/ace_lib.py +1489 -0
  69. cnhkmcp/untracked/APP//321/207/342/225/235/320/250/321/205/320/230/320/226/321/204/342/225/225/320/220/321/211/320/221/320/243/321/206/320/261/320/265/brain_alpha_inspector.py +712 -0
  70. cnhkmcp/untracked/APP//321/207/342/225/235/320/250/321/205/320/230/320/226/321/204/342/225/225/320/220/321/211/320/221/320/243/321/206/320/261/320/265/helpful_functions.py +180 -0
  71. cnhkmcp/untracked/APP//321/210/342/224/220/320/240/321/210/320/261/320/234/321/206/320/231/320/243/321/205/342/225/235/320/220/321/206/320/230/320/241.py +2393 -0
  72. cnhkmcp/untracked/arXiv_API_Tool_Manual.md +490 -0
  73. cnhkmcp/untracked/arxiv_api.py +229 -0
  74. cnhkmcp/untracked/forum_functions.py +998 -0
  75. cnhkmcp/untracked/mcp/321/206/320/246/320/227/321/204/342/225/227/342/225/242/321/210/320/276/342/225/221/321/205/320/255/320/253/321/207/320/231/320/2302_/321/205/320/266/320/222/321/206/320/256/320/254/321/205/320/236/320/257/321/207/320/231/320/230/321/205/320/240/320/277/321/205/320/232/320/270/321/204/342/225/225/320/235/321/204/342/225/221/320/226/321/206/342/225/241/320/237/321/210/320/267/320/230/321/205/320/251/320/270/321/205/342/226/221/342/226/222/321/210/320/277/320/245/321/210/342/224/220/320/251/321/204/342/225/225/320/272/forum_functions.py +407 -0
  76. cnhkmcp/untracked/mcp/321/206/320/246/320/227/321/204/342/225/227/342/225/242/321/210/320/276/342/225/221/321/205/320/255/320/253/321/207/320/231/320/2302_/321/205/320/266/320/222/321/206/320/256/320/254/321/205/320/236/320/257/321/207/320/231/320/230/321/205/320/240/320/277/321/205/320/232/320/270/321/204/342/225/225/320/235/321/204/342/225/221/320/226/321/206/342/225/241/320/237/321/210/320/267/320/230/321/205/320/251/320/270/321/205/342/226/221/342/226/222/321/210/320/277/320/245/321/210/342/224/220/320/251/321/204/342/225/225/320/272/platform_functions.py +2415 -0
  77. cnhkmcp/untracked/mcp/321/206/320/246/320/227/321/204/342/225/227/342/225/242/321/210/320/276/342/225/221/321/205/320/255/320/253/321/207/320/231/320/2302_/321/205/320/266/320/222/321/206/320/256/320/254/321/205/320/236/320/257/321/207/320/231/320/230/321/205/320/240/320/277/321/205/320/232/320/270/321/204/342/225/225/320/235/321/204/342/225/221/320/226/321/206/342/225/241/320/237/321/210/320/267/320/230/321/205/320/251/320/270/321/205/342/226/221/342/226/222/321/210/320/277/320/245/321/210/342/224/220/320/251/321/204/342/225/225/320/272/user_config.json +31 -0
  78. cnhkmcp/untracked/mcp/321/206/320/246/320/227/321/204/342/225/227/342/225/242/321/210/320/276/342/225/221/321/205/320/255/320/253/321/207/320/231/320/2302_/321/205/320/266/320/222/321/206/320/256/320/254/321/205/320/236/320/257/321/207/320/231/320/230/321/205/320/240/320/277/321/205/320/232/320/270/321/204/342/225/225/320/235/321/204/342/225/221/320/226/321/206/342/225/241/320/237/321/210/320/267/320/230/321/205/320/251/320/270/321/205/342/226/221/342/226/222/321/210/320/277/320/245/321/210/342/224/220/320/251/321/204/342/225/225/320/272//321/210/320/276/320/271AI/321/210/320/277/342/225/227/321/210/342/224/220/320/251/321/204/342/225/225/320/272/321/206/320/246/320/227/321/206/320/261/320/263/321/206/320/255/320/265/321/205/320/275/320/266/321/204/342/225/235/320/252/321/204/342/225/225/320/233/321/210/342/225/234/342/225/234/321/206/342/225/241/320/237/321/210/320/267/320/230/321/205/320/251/320/270.md +101 -0
  79. cnhkmcp/untracked/mcp/321/206/320/246/320/227/321/204/342/225/227/342/225/242/321/210/320/276/342/225/221/321/205/320/255/320/253/321/207/320/231/320/2302_/321/205/320/266/320/222/321/206/320/256/320/254/321/205/320/236/320/257/321/207/320/231/320/230/321/205/320/240/320/277/321/205/320/232/320/270/321/204/342/225/225/320/235/321/204/342/225/221/320/226/321/206/342/225/241/320/237/321/210/320/267/320/230/321/205/320/251/320/270/321/205/342/226/221/342/226/222/321/210/320/277/320/245/321/210/342/224/220/320/251/321/204/342/225/225/320/272//321/211/320/225/320/235/321/207/342/225/234/320/276/321/205/320/231/320/235/321/210/342/224/220/320/240/321/210/320/261/320/234/321/206/320/230/320/241_/321/205/320/276/320/231/321/210/320/263/320/225/321/205/342/224/220/320/225/321/210/320/266/320/221/321/204/342/225/233/320/255/321/210/342/225/241/320/246/321/205/320/234/320/225.py +190 -0
  80. cnhkmcp/untracked/platform_functions.py +2886 -0
  81. cnhkmcp/untracked/sample_mcp_config.json +11 -0
  82. cnhkmcp/untracked/user_config.json +31 -0
  83. cnhkmcp/untracked//321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/320/237/320/222/321/210/320/220/320/223/321/206/320/246/320/227/321/206/320/261/320/263_BRAIN_Alpha_Test_Requirements_and_Tips.md +202 -0
  84. cnhkmcp/untracked//321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/342/225/226/320/265/321/204/342/225/234/320/254/321/206/342/225/241/320/221_Alpha_explaination_workflow.md +56 -0
  85. cnhkmcp/untracked//321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/342/225/226/320/265/321/204/342/225/234/320/254/321/206/342/225/241/320/221_BRAIN_6_Tips_Datafield_Exploration_Guide.md +194 -0
  86. cnhkmcp/untracked//321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/342/225/226/320/265/321/204/342/225/234/320/254/321/206/342/225/241/320/221_BRAIN_Alpha_Improvement_Workflow.md +101 -0
  87. cnhkmcp/untracked//321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/342/225/226/320/265/321/204/342/225/234/320/254/321/206/342/225/241/320/221_Dataset_Exploration_Expert_Manual.md +436 -0
  88. cnhkmcp/untracked//321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/342/225/226/320/265/321/204/342/225/234/320/254/321/206/342/225/241/320/221_daily_report_workflow.md +128 -0
  89. cnhkmcp/untracked//321/211/320/225/320/235/321/207/342/225/234/320/276/321/205/320/231/320/235/321/210/342/224/220/320/240/321/210/320/261/320/234/321/206/320/230/320/241_/321/205/320/276/320/231/321/210/320/263/320/225/321/205/342/224/220/320/225/321/210/320/266/320/221/321/204/342/225/233/320/255/321/210/342/225/241/320/246/321/205/320/234/320/225.py +190 -0
  90. cnhkmcp-2.0.1.dist-info/METADATA +187 -0
  91. cnhkmcp-2.0.1.dist-info/RECORD +95 -0
  92. cnhkmcp-2.0.1.dist-info/WHEEL +5 -0
  93. cnhkmcp-2.0.1.dist-info/entry_points.txt +2 -0
  94. cnhkmcp-2.0.1.dist-info/licenses/LICENSE +21 -0
  95. cnhkmcp-2.0.1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,654 @@
1
+ {
2
+ "group_rank(ts_mean(ts_delta(ts_backfill(<fundamental_field/>, <backfill_days/>), <delta_days/>), <mean_days/>) / ts_std_dev(ts_delta(ts_backfill(<fundamental_field/>, <backfill_days/>), <delta_days/>), <std_days/>), <group_field/>)": {
3
+ "template_explanation": "Generalized risk-adjusted fundamental momentum: replaces EPS with any quarterly fundamental, keeps the Sharpe-like score and intra-group ranking to isolate smooth, persistent trends while neutralizing structural differences across groups.",
4
+ "seed_alpha_settings": {
5
+ "instrumentType": "EQUITY",
6
+ "region": "GLB",
7
+ "universe": "TOPDIV3000",
8
+ "delay": 1,
9
+ "decay": 0,
10
+ "neutralization": "STATISTICAL",
11
+ "truncation": 0.01,
12
+ "pasteurization": "ON",
13
+ "unitHandling": "VERIFY",
14
+ "nanHandling": "ON",
15
+ "maxTrade": "OFF",
16
+ "language": "FASTEXPR",
17
+ "visualization": false,
18
+ "startDate": "2013-01-20",
19
+ "endDate": "2023-01-20"
20
+ },
21
+ "placeholder_candidates": {
22
+ "<fundamental_field/>": {
23
+ "type": "data_field",
24
+ "candidates": [
25
+ {
26
+ "id": "fnd23_icsm_m_vers",
27
+ "description": "[Quarterly] Revenue"
28
+ },
29
+ {
30
+ "id": "fnd72_s_pit_or_is_q_net_income",
31
+ "description": "Net Income"
32
+ },
33
+ {
34
+ "id": "mdl219_1_ocfmargin",
35
+ "description": "Operating cash flow margin calculated as operating cash flow divided by sales."
36
+ },
37
+ {
38
+ "id": "fnd23_tangible_bvps",
39
+ "description": "tangible book value per share."
40
+ },
41
+ {
42
+ "id": "ebitda_per_share_trailing_twelve_months",
43
+ "description": "EBITDA per share for the trailing twelve months."
44
+ }
45
+ ]
46
+ },
47
+ "<backfill_days/>": {
48
+ "type": "integer_parameter",
49
+ "candidates": [
50
+ {
51
+ "value": 252
52
+ },
53
+ {
54
+ "value": 504
55
+ },
56
+ {
57
+ "value": 756
58
+ },
59
+ {
60
+ "value": 1008
61
+ },
62
+ {
63
+ "value": 1260
64
+ }
65
+ ]
66
+ },
67
+ "<delta_days/>": {
68
+ "type": "integer_parameter",
69
+ "candidates": [
70
+ {
71
+ "value": 42
72
+ },
73
+ {
74
+ "value": 63
75
+ },
76
+ {
77
+ "value": 84
78
+ },
79
+ {
80
+ "value": 126
81
+ },
82
+ {
83
+ "value": 252
84
+ }
85
+ ]
86
+ },
87
+ "<mean_days/>": {
88
+ "type": "integer_parameter",
89
+ "candidates": [
90
+ {
91
+ "value": 20
92
+ },
93
+ {
94
+ "value": 40
95
+ },
96
+ {
97
+ "value": 60
98
+ },
99
+ {
100
+ "value": 80
101
+ },
102
+ {
103
+ "value": 120
104
+ }
105
+ ]
106
+ },
107
+ "<std_days/>": {
108
+ "type": "integer_parameter",
109
+ "candidates": [
110
+ {
111
+ "value": 20
112
+ },
113
+ {
114
+ "value": 40
115
+ },
116
+ {
117
+ "value": 60
118
+ },
119
+ {
120
+ "value": 120
121
+ },
122
+ {
123
+ "value": 252
124
+ }
125
+ ]
126
+ },
127
+ "<group_field/>": {
128
+ "type": "group_data_field",
129
+ "candidates": [
130
+ {
131
+ "name": "industry"
132
+ },
133
+ {
134
+ "name": "sector"
135
+ },
136
+ {
137
+ "name": "subindustry"
138
+ }
139
+ ]
140
+ }
141
+ }
142
+ },
143
+ "group_rank(ts_mean(ts_delta(<price_field/>, <short_delta/>), <medium_mean/>) / ts_std_dev(ts_delta(<price_field/>, <short_delta/>), <medium_std/>), <group_field/>)": {
144
+ "template_explanation": "Price-momentum version of the seed: uses returns instead of EPS change, still rewards consistent momentum within each sector/industry, producing a cleaner trend signal that is not distorted by industry-wide volatility regimes.",
145
+ "seed_alpha_settings": {
146
+ "instrumentType": "EQUITY",
147
+ "region": "GLB",
148
+ "universe": "TOPDIV3000",
149
+ "delay": 1,
150
+ "decay": 0,
151
+ "neutralization": "STATISTICAL",
152
+ "truncation": 0.01,
153
+ "pasteurization": "ON",
154
+ "unitHandling": "VERIFY",
155
+ "nanHandling": "ON",
156
+ "maxTrade": "OFF",
157
+ "language": "FASTEXPR",
158
+ "visualization": false,
159
+ "startDate": "2013-01-20",
160
+ "endDate": "2023-01-20"
161
+ },
162
+ "placeholder_candidates": {
163
+ "<price_field/>": {
164
+ "type": "data_field",
165
+ "candidates": [
166
+ {
167
+ "id": "close",
168
+ "description": "Daily close price"
169
+ },
170
+ {
171
+ "id": "open",
172
+ "description": "Daily open price"
173
+ },
174
+ {
175
+ "id": "vwap",
176
+ "description": "Daily volume weighted average price"
177
+ },
178
+ {
179
+ "id": "oth463_adjust_close",
180
+ "description": "Adjusted close price"
181
+ },
182
+ {
183
+ "id": "high",
184
+ "description": "Daily high price"
185
+ }
186
+ ]
187
+ },
188
+ "<short_delta/>": {
189
+ "type": "integer_parameter",
190
+ "candidates": [
191
+ {
192
+ "value": 5
193
+ },
194
+ {
195
+ "value": 10
196
+ },
197
+ {
198
+ "value": 21
199
+ },
200
+ {
201
+ "value": 42
202
+ }
203
+ ]
204
+ },
205
+ "<medium_mean/>": {
206
+ "type": "integer_parameter",
207
+ "candidates": [
208
+ {
209
+ "value": 10
210
+ },
211
+ {
212
+ "value": 21
213
+ },
214
+ {
215
+ "value": 42
216
+ },
217
+ {
218
+ "value": 63
219
+ },
220
+ {
221
+ "value": 126
222
+ }
223
+ ]
224
+ },
225
+ "<medium_std/>": {
226
+ "type": "integer_parameter",
227
+ "candidates": [
228
+ {
229
+ "value": 20
230
+ },
231
+ {
232
+ "value": 40
233
+ },
234
+ {
235
+ "value": 60
236
+ },
237
+ {
238
+ "value": 80
239
+ },
240
+ {
241
+ "value": 120
242
+ }
243
+ ]
244
+ },
245
+ "<group_field/>": {
246
+ "type": "group_data_field",
247
+ "candidates": [
248
+ {
249
+ "name": "industry"
250
+ },
251
+ {
252
+ "name": "subindustry"
253
+ },
254
+ {
255
+ "name": "sector"
256
+ }
257
+ ]
258
+ }
259
+ }
260
+ },
261
+ "group_rank((<fundamental_field/> - ts_delay(<fundamental_field/>, <lag_quarters/>)) / ts_std_dev(<fundamental_field/> - ts_delay(<fundamental_field/>, <lag_quarters/>), <std_quarters/>), <group_field/>)": {
262
+ "template_explanation": "SUE-style surprise on any quarterly metric: standardizes the YoY (or QoQ) jump by its own historical volatility, then ranks within peer groups to highlight genuine outliers while canceling systematic industry drift.",
263
+ "seed_alpha_settings": {
264
+ "instrumentType": "EQUITY",
265
+ "region": "GLB",
266
+ "universe": "TOPDIV3000",
267
+ "delay": 1,
268
+ "decay": 0,
269
+ "neutralization": "STATISTICAL",
270
+ "truncation": 0.01,
271
+ "pasteurization": "ON",
272
+ "unitHandling": "VERIFY",
273
+ "nanHandling": "ON",
274
+ "maxTrade": "OFF",
275
+ "language": "FASTEXPR",
276
+ "visualization": false,
277
+ "startDate": "2013-01-20",
278
+ "endDate": "2023-01-20"
279
+ },
280
+ "placeholder_candidates": {
281
+ "<fundamental_field/>": {
282
+ "type": "data_field",
283
+ "candidates": [
284
+ {
285
+ "id": "fnd72_s_pit_or_is_q_net_income",
286
+ "description": "Net Income"
287
+ },
288
+ {
289
+ "id": "star_rev_surprise_prediction_fy2",
290
+ "description": "Revenue predicted surprise pct - forward 2 years"
291
+ },
292
+ {
293
+ "id": "star_eps_smart_estimate_12m",
294
+ "description": "SmartEstimate F12M EPS"
295
+ },
296
+ {
297
+ "id": "ebitda_per_share_trailing_twelve_months",
298
+ "description": "EBITDA per share for the trailing twelve months."
299
+ },
300
+ {
301
+ "id": "mdl219_1_ocfmargin",
302
+ "description": "Operating cash flow margin calculated as operating cash flow divided by sales."
303
+ }
304
+ ]
305
+ },
306
+ "<lag_quarters/>": {
307
+ "type": "integer_parameter",
308
+ "candidates": [
309
+ {
310
+ "value": 1
311
+ },
312
+ {
313
+ "value": 4
314
+ },
315
+ {
316
+ "value": 8
317
+ }
318
+ ]
319
+ },
320
+ "<std_quarters/>": {
321
+ "type": "integer_parameter",
322
+ "candidates": [
323
+ {
324
+ "value": 8
325
+ },
326
+ {
327
+ "value": 12
328
+ },
329
+ {
330
+ "value": 16
331
+ },
332
+ {
333
+ "value": 20
334
+ }
335
+ ]
336
+ },
337
+ "<group_field/>": {
338
+ "type": "group_data_field",
339
+ "candidates": [
340
+ {
341
+ "name": "industry"
342
+ },
343
+ {
344
+ "name": "sector"
345
+ },
346
+ {
347
+ "name": "subindustry"
348
+ }
349
+ ]
350
+ }
351
+ }
352
+ },
353
+ "group_rank(ts_mean(ts_delta(ts_backfill(<alternative_field/>, <backfill_days/>), <delta_days/>), <mean_days/>) / ts_std_dev(ts_delta(ts_backfill(<alternative_field/>, <backfill_days/>), <delta_days/>), <std_days/>), <group_field/>)": {
354
+ "template_explanation": "Alternative-data momentum clone: applies the same risk-adjusted change logic to non-traditional data (web-traffic, sentiment, etc.), yielding a smooth, comparable signal that is industry-neutral and robust to data gaps.",
355
+ "seed_alpha_settings": {
356
+ "instrumentType": "EQUITY",
357
+ "region": "GLB",
358
+ "universe": "TOPDIV3000",
359
+ "delay": 1,
360
+ "decay": 0,
361
+ "neutralization": "STATISTICAL",
362
+ "truncation": 0.01,
363
+ "pasteurization": "ON",
364
+ "unitHandling": "VERIFY",
365
+ "nanHandling": "ON",
366
+ "maxTrade": "OFF",
367
+ "language": "FASTEXPR",
368
+ "visualization": false,
369
+ "startDate": "2013-01-20",
370
+ "endDate": "2023-01-20"
371
+ },
372
+ "placeholder_candidates": {
373
+ "<alternative_field/>": {
374
+ "type": "data_field",
375
+ "candidates": [
376
+ {
377
+ "id": "fnd23_intfvalld1_qkim",
378
+ "description": "Traffic acquisition costs (TAC) represent the cost for a company to acquire traffic to their site."
379
+ },
380
+ {
381
+ "id": "snt22pos_min_377",
382
+ "description": "minimum positive sentiment score."
383
+ },
384
+ {
385
+ "id": "mdl106_tre",
386
+ "description": "earnings revenue trend"
387
+ },
388
+ {
389
+ "id": "fnd23_intfvalld1_liim",
390
+ "description": "Click Rate, Total - %. It shows the frequency an advertisement downloaded with a webpage is clicked on. This is obtained using the number of clicks on an ad on a webpage, divided by the total number of times that the ad was downloaded with a page."
391
+ },
392
+ {
393
+ "id": "headline_sentiment_value",
394
+ "description": "Aggregate sentiment value computed for the news headline."
395
+ }
396
+ ]
397
+ },
398
+ "<backfill_days/>": {
399
+ "type": "integer_parameter",
400
+ "candidates": [
401
+ {
402
+ "value": 5
403
+ },
404
+ {
405
+ "value": 14
406
+ },
407
+ {
408
+ "value": 30
409
+ },
410
+ {
411
+ "value": 60
412
+ }
413
+ ]
414
+ },
415
+ "<delta_days/>": {
416
+ "type": "integer_parameter",
417
+ "candidates": [
418
+ {
419
+ "value": 5
420
+ },
421
+ {
422
+ "value": 10
423
+ },
424
+ {
425
+ "value": 21
426
+ },
427
+ {
428
+ "value": 42
429
+ },
430
+ {
431
+ "value": 63
432
+ }
433
+ ]
434
+ },
435
+ "<mean_days/>": {
436
+ "type": "integer_parameter",
437
+ "candidates": [
438
+ {
439
+ "value": 5
440
+ },
441
+ {
442
+ "value": 10
443
+ },
444
+ {
445
+ "value": 21
446
+ },
447
+ {
448
+ "value": 42
449
+ },
450
+ {
451
+ "value": 63
452
+ }
453
+ ]
454
+ },
455
+ "<std_days/>": {
456
+ "type": "integer_parameter",
457
+ "candidates": [
458
+ {
459
+ "value": 5
460
+ },
461
+ {
462
+ "value": 10
463
+ },
464
+ {
465
+ "value": 20
466
+ },
467
+ {
468
+ "value": 40
469
+ },
470
+ {
471
+ "value": 60
472
+ }
473
+ ]
474
+ },
475
+ "<group_field/>": {
476
+ "type": "group_data_field",
477
+ "candidates": [
478
+ {
479
+ "name": "industry"
480
+ },
481
+ {
482
+ "name": "sector"
483
+ },
484
+ {
485
+ "name": "subindustry"
486
+ }
487
+ ]
488
+ }
489
+ }
490
+ },
491
+ "group_rank(ts_corr(ts_delta(ts_backfill(<fundamental_field/>, <bf/>), <d1/>), ts_delta(<price_field/>, <d2/>), <corr_win/>), <group_field/>)": {
492
+ "template_explanation": "Earnings-to-price alignment factor: measures how tightly fundamental momentum co-moves with price momentum; high correlation within group flags firms where the market promptly rewards improving fundamentals, suggesting continued follow-through.",
493
+ "seed_alpha_settings": {
494
+ "instrumentType": "EQUITY",
495
+ "region": "GLB",
496
+ "universe": "TOPDIV3000",
497
+ "delay": 1,
498
+ "decay": 0,
499
+ "neutralization": "STATISTICAL",
500
+ "truncation": 0.01,
501
+ "pasteurization": "ON",
502
+ "unitHandling": "VERIFY",
503
+ "nanHandling": "ON",
504
+ "maxTrade": "OFF",
505
+ "language": "FASTEXPR",
506
+ "visualization": false,
507
+ "startDate": "2013-01-20",
508
+ "endDate": "2023-01-20"
509
+ },
510
+ "placeholder_candidates": {
511
+ "<fundamental_field/>": {
512
+ "type": "data_field",
513
+ "candidates": [
514
+ {
515
+ "id": "ern3_all_delay_1_next_reptime",
516
+ "description": "next report time"
517
+ },
518
+ {
519
+ "id": "star_rev_surprise_prediction_fy2",
520
+ "description": "Revenue predicted surprise pct - forward 2 years"
521
+ },
522
+ {
523
+ "id": "fnd72_s_pit_or_is_q_net_income",
524
+ "description": "Net Income"
525
+ },
526
+ {
527
+ "id": "ebitda_per_share_trailing_twelve_months",
528
+ "description": "EBITDA per share for the trailing twelve months."
529
+ },
530
+ {
531
+ "id": "fnd7_ointfund_qfcnif",
532
+ "description": "Quarterly Fundamental Item: Financing Activities -> Net Cash Flow (Statement of Cash Flows)"
533
+ }
534
+ ]
535
+ },
536
+ "<bf/>": {
537
+ "type": "integer_parameter",
538
+ "candidates": [
539
+ {
540
+ "value": 1
541
+ },
542
+ {
543
+ "value": 5
544
+ },
545
+ {
546
+ "value": 10
547
+ },
548
+ {
549
+ "value": 21
550
+ }
551
+ ]
552
+ },
553
+ "<d1/>": {
554
+ "type": "integer_parameter",
555
+ "candidates": [
556
+ {
557
+ "value": 5
558
+ },
559
+ {
560
+ "value": 10
561
+ },
562
+ {
563
+ "value": 21
564
+ },
565
+ {
566
+ "value": 63
567
+ },
568
+ {
569
+ "value": 126
570
+ }
571
+ ]
572
+ },
573
+ "<price_field/>": {
574
+ "type": "data_field",
575
+ "candidates": [
576
+ {
577
+ "id": "close",
578
+ "description": "Daily close price"
579
+ },
580
+ {
581
+ "id": "pv37_volume_13",
582
+ "description": "Trading volume"
583
+ },
584
+ {
585
+ "id": "srp_average_score",
586
+ "description": "Average score"
587
+ },
588
+ {
589
+ "id": "pv37_open_13",
590
+ "description": "Open price"
591
+ },
592
+ {
593
+ "id": "open",
594
+ "description": "Daily open price"
595
+ }
596
+ ]
597
+ },
598
+ "<d2/>": {
599
+ "type": "integer_parameter",
600
+ "candidates": [
601
+ {
602
+ "value": 5
603
+ },
604
+ {
605
+ "value": 10
606
+ },
607
+ {
608
+ "value": 21
609
+ },
610
+ {
611
+ "value": 42
612
+ },
613
+ {
614
+ "value": 63
615
+ }
616
+ ]
617
+ },
618
+ "<corr_win/>": {
619
+ "type": "integer_parameter",
620
+ "candidates": [
621
+ {
622
+ "value": 20
623
+ },
624
+ {
625
+ "value": 40
626
+ },
627
+ {
628
+ "value": 60
629
+ },
630
+ {
631
+ "value": 120
632
+ },
633
+ {
634
+ "value": 252
635
+ }
636
+ ]
637
+ },
638
+ "<group_field/>": {
639
+ "type": "group_data_field",
640
+ "candidates": [
641
+ {
642
+ "name": "industry"
643
+ },
644
+ {
645
+ "name": "subindustry"
646
+ },
647
+ {
648
+ "name": "sector"
649
+ }
650
+ ]
651
+ }
652
+ }
653
+ }
654
+ }