cnhkmcp 2.3.1__py3-none-any.whl → 2.3.2__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.
- cnhkmcp/__init__.py +1 -1
- cnhkmcp/untracked/APP/Tranformer/parsetab.py +60 -0
- cnhkmcp/untracked/APP/Tranformer/validator.py +78 -4
- cnhkmcp/untracked/APP/static/inspiration.js +41 -3
- cnhkmcp/untracked/APP/templates/index.html +26 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/enhance_template.py +132 -6
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-data-feature-engineering/SKILL.md +17 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-data-feature-engineering/output_report/GLB_delay1_fundamental72_ideas.md +292 -239
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/final_expressions.json +74 -136
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852468022627100.json +22 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852468554457600.json +14 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852469133324600.json +8 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852469704433900.json +10 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852470248911900.json +10 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852470805192900.json +8 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852471380158000.json +10 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852471944247400.json +22 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852472483548800.json +14 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852473053891800.json +22 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852473617716000.json +22 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852474172815700.json +14 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852474735778500.json +10 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852475315478500.json +14 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852475912897000.json +8 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852476474911100.json +10 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852978914367200.json +10 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852979426164800.json +10 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852979945511100.json +10 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852980480251500.json +10 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852981007315500.json +10 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769854621979784200.json +10 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769854622483457900.json +10 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769854623010559800.json +10 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769854623572902300.json +5 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769854624091016000.json +10 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_delay1.csv.bak_1769852868 +330 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_delay1.csv.bak_1769854511 +330 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/scripts/ace.log +12 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/scripts/validator.py +80 -4
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/template_final_enhance/op/321/206/320/220/342/225/227/321/207/342/225/227/320/243.md +24 -18
- 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 +14 -0
- cnhkmcp/untracked/skills/alpha-expression-verifier/scripts/parsetab.py +60 -0
- cnhkmcp/untracked/skills/alpha-expression-verifier/scripts/validator.py +78 -4
- {cnhkmcp-2.3.1.dist-info → cnhkmcp-2.3.2.dist-info}/METADATA +1 -1
- {cnhkmcp-2.3.1.dist-info → cnhkmcp-2.3.2.dist-info}/RECORD +49 -38
- cnhkmcp/untracked/APP/simulator/wqb20260130130030.log +0 -210
- cnhkmcp/untracked/APP/simulator/wqb20260130131757.log +0 -104
- cnhkmcp/untracked/APP/simulator/wqb20260130172245.log +0 -70
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769759441444909600.json +0 -38
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769759441920092000.json +0 -14
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769759442418767100.json +0 -14
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769759442902507600.json +0 -14
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769759443377036200.json +0 -10
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769759443845377000.json +0 -14
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769759444313546700.json +0 -10
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769759444784598600.json +0 -14
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769759445274311200.json +0 -14
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769759445747421700.json +0 -10
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769759446222137800.json +0 -22
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769759446686222600.json +0 -14
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769759447154698500.json +0 -10
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769759447629677000.json +0 -10
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769759448102331200.json +0 -10
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769759448573382000.json +0 -14
- {cnhkmcp-2.3.1.dist-info → cnhkmcp-2.3.2.dist-info}/WHEEL +0 -0
- {cnhkmcp-2.3.1.dist-info → cnhkmcp-2.3.2.dist-info}/entry_points.txt +0 -0
- {cnhkmcp-2.3.1.dist-info → cnhkmcp-2.3.2.dist-info}/licenses/LICENSE +0 -0
- {cnhkmcp-2.3.1.dist-info → cnhkmcp-2.3.2.dist-info}/top_level.txt +0 -0
|
@@ -1,3 +1,15 @@
|
|
|
1
1
|
2026-01-30 01:46:34,276 - ace - ERROR -
|
|
2
2
|
Incorrect email or password
|
|
3
3
|
|
|
4
|
+
2026-01-31 17:23:24,903 - ace - ERROR -
|
|
5
|
+
Incorrect email or password
|
|
6
|
+
|
|
7
|
+
2026-01-31 17:23:25,385 - ace - ERROR -
|
|
8
|
+
Incorrect email or password
|
|
9
|
+
|
|
10
|
+
2026-01-31 17:23:25,859 - ace - ERROR -
|
|
11
|
+
Incorrect email or password
|
|
12
|
+
|
|
13
|
+
2026-01-31 17:23:26,330 - ace - ERROR -
|
|
14
|
+
Incorrect email or password
|
|
15
|
+
|
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/scripts/validator.py
CHANGED
|
@@ -170,7 +170,10 @@ supported_functions = {
|
|
|
170
170
|
'scale_down': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'number'], 'param_names': ['x', 'constant']},
|
|
171
171
|
|
|
172
172
|
# Arithmetic 类别函数
|
|
173
|
-
|
|
173
|
+
# add(x, y, ..., filter=false)
|
|
174
|
+
# NOTE: add() is variadic (>=2 terms) with an optional boolean filter flag.
|
|
175
|
+
# We validate it with custom logic in validate_function().
|
|
176
|
+
'add': {'min_args': 2, 'max_args': 101, 'arg_types': ['expression'] * 101},
|
|
174
177
|
'multiply': {'min_args': 2, 'max_args': 100, 'arg_types': ['expression'] * 99 + ['boolean'], 'param_names': ['x', 'y', 'filter']}, # multiply(x, y, ..., filter=false)
|
|
175
178
|
'sign': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']},
|
|
176
179
|
'subtract': {'min_args': 2, 'max_args': 3, 'arg_types': ['expression', 'expression', 'boolean']}, # subtract(x, y, filter=false)
|
|
@@ -501,6 +504,10 @@ class ExpressionValidator:
|
|
|
501
504
|
if not function_info:
|
|
502
505
|
return [f"未知函数: {function_name}"]
|
|
503
506
|
|
|
507
|
+
# Custom validation for variadic functions with optional flags
|
|
508
|
+
if function_name == 'add':
|
|
509
|
+
return self._validate_add(args, is_in_group_arg)
|
|
510
|
+
|
|
504
511
|
errors = []
|
|
505
512
|
|
|
506
513
|
# 检查参数数量
|
|
@@ -591,9 +598,9 @@ class ExpressionValidator:
|
|
|
591
598
|
if arg.node_type != 'number':
|
|
592
599
|
errors.append(f"参数 {arg_index+1} 应该是一个数字,但得到 {arg.node_type}")
|
|
593
600
|
elif expected_type == 'boolean':
|
|
594
|
-
#
|
|
595
|
-
if arg.node_type
|
|
596
|
-
errors.append(f"参数 {arg_index+1} 应该是一个布尔值(0/1),但得到 {arg.node_type}")
|
|
601
|
+
# 布尔值可以是 true/false 或数字(0/1)
|
|
602
|
+
if arg.node_type not in {'boolean', 'number'}:
|
|
603
|
+
errors.append(f"参数 {arg_index+1} 应该是一个布尔值(true/false 或 0/1),但得到 {arg.node_type}")
|
|
597
604
|
elif expected_type == 'field':
|
|
598
605
|
if arg.node_type != 'field' and arg.node_type != 'category':
|
|
599
606
|
# 允许field或category作为字段参数
|
|
@@ -610,6 +617,75 @@ class ExpressionValidator:
|
|
|
610
617
|
# group函数的category参数可以是任何类型(field、category等),不进行类型校验
|
|
611
618
|
|
|
612
619
|
return errors
|
|
620
|
+
|
|
621
|
+
def _validate_add(self, args: List[Any], is_in_group_arg: bool = False) -> List[str]:
|
|
622
|
+
"""Validate add(x, y, ..., filter=false).
|
|
623
|
+
|
|
624
|
+
Rules:
|
|
625
|
+
- At least 2 positional expression terms.
|
|
626
|
+
- Optional filter flag can be provided as:
|
|
627
|
+
- named argument: filter=<boolean>
|
|
628
|
+
- last positional argument: <boolean>
|
|
629
|
+
"""
|
|
630
|
+
errors: List[str] = []
|
|
631
|
+
|
|
632
|
+
if len(args) < 2:
|
|
633
|
+
return [f"函数 add 需要至少 2 个参数,但只提供了 {len(args)}"]
|
|
634
|
+
|
|
635
|
+
named_filter_nodes: List[ASTNode] = []
|
|
636
|
+
positional_nodes: List[ASTNode] = []
|
|
637
|
+
|
|
638
|
+
for arg in args:
|
|
639
|
+
if isinstance(arg, dict) and arg.get('type') == 'named':
|
|
640
|
+
name = arg.get('name')
|
|
641
|
+
value = arg.get('value')
|
|
642
|
+
if name != 'filter':
|
|
643
|
+
errors.append(f"函数 add 不存在参数 '{name}'")
|
|
644
|
+
continue
|
|
645
|
+
if not hasattr(value, 'node_type'):
|
|
646
|
+
errors.append("函数 add 的参数 filter 格式错误")
|
|
647
|
+
continue
|
|
648
|
+
named_filter_nodes.append(value)
|
|
649
|
+
elif isinstance(arg, dict) and arg.get('type') == 'positional':
|
|
650
|
+
value = arg.get('value')
|
|
651
|
+
if hasattr(value, 'node_type'):
|
|
652
|
+
positional_nodes.append(value)
|
|
653
|
+
else:
|
|
654
|
+
errors.append("函数 add 的位置参数格式错误")
|
|
655
|
+
elif hasattr(arg, 'node_type'):
|
|
656
|
+
positional_nodes.append(arg)
|
|
657
|
+
else:
|
|
658
|
+
errors.append("函数 add 的参数格式错误")
|
|
659
|
+
|
|
660
|
+
if len(named_filter_nodes) > 1:
|
|
661
|
+
errors.append("函数 add 的参数 'filter' 只能出现一次")
|
|
662
|
+
|
|
663
|
+
positional_filter_node: Optional[ASTNode] = None
|
|
664
|
+
# Only infer a positional filter flag when:
|
|
665
|
+
# - no named filter is provided
|
|
666
|
+
# - there are at least 3 positional args (x, y, filter)
|
|
667
|
+
# - the last arg is boolean or numeric 0/1
|
|
668
|
+
if not named_filter_nodes and len(positional_nodes) >= 3:
|
|
669
|
+
last = positional_nodes[-1]
|
|
670
|
+
if last.node_type == 'boolean' or (last.node_type == 'number' and last.value in {0, 1}):
|
|
671
|
+
positional_filter_node = positional_nodes.pop()
|
|
672
|
+
|
|
673
|
+
if len(positional_nodes) < 2:
|
|
674
|
+
errors.append(f"函数 add 需要至少 2 个输入项(不含filter),但只提供了 {len(positional_nodes)}")
|
|
675
|
+
|
|
676
|
+
# Validate all term inputs as expressions (no-op, but keep recursion behavior consistent)
|
|
677
|
+
for idx, node in enumerate(positional_nodes):
|
|
678
|
+
errors.extend(self._validate_arg_type(node, 'expression', idx, 'add', is_in_group_arg))
|
|
679
|
+
|
|
680
|
+
# Validate filter, if present (named takes precedence; if both present, that's an error)
|
|
681
|
+
if positional_filter_node is not None and named_filter_nodes:
|
|
682
|
+
errors.append("函数 add 的 filter 不能同时用位置参数和命名参数传递")
|
|
683
|
+
if positional_filter_node is not None:
|
|
684
|
+
errors.extend(self._validate_arg_type(positional_filter_node, 'boolean', len(positional_nodes), 'add', is_in_group_arg))
|
|
685
|
+
if named_filter_nodes:
|
|
686
|
+
errors.extend(self._validate_arg_type(named_filter_nodes[0], 'boolean', len(positional_nodes), 'add', is_in_group_arg))
|
|
687
|
+
|
|
688
|
+
return errors
|
|
613
689
|
|
|
614
690
|
def validate_ast(self, ast: Optional[ASTNode], is_in_group_arg: bool = False) -> List[str]:
|
|
615
691
|
"""递归验证抽象语法树"""
|
|
@@ -194,27 +194,36 @@ days_from_last_change(A) / last_diff_value(A,d)
|
|
|
194
194
|
场景:
|
|
195
195
|
因子是“事件驱动型”的(评级变动、ESG 评级更新等),只在变动后若干天内才有信号;
|
|
196
196
|
可以构造“距上次变化时间”的信号。
|
|
197
|
-
七、
|
|
197
|
+
七、Vector Operator*
|
|
198
|
+
这些用于处理“向量类型数据”,需要先生成统计特征才能用。
|
|
198
199
|
|
|
199
|
-
|
|
200
|
+
补充:常用 Vector Operators(Combo, Regular)
|
|
200
201
|
|
|
201
|
-
|
|
202
|
+
> 一句话描述:Vector 字段(例如一只股票一天里的一串向量值)不能直接参与普通的算术/时序/截面运算,通常需要先用 `vec_*` 把它“降维”为标量特征(均值/分位/波动/偏度等),再进入后续流程。
|
|
202
203
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
204
|
+
- `vec_avg(x)`(base):对向量求均值。例:输入 (2,3,5,6,3,8,10) 输出 37/7=5.29
|
|
205
|
+
- `vec_sum(x)`(base):对向量求和。例:输入 (2,3,5,6,3,8,10) 输出 37
|
|
206
|
+
- `vec_count(x)`(genius):向量元素个数
|
|
207
|
+
- `vec_choose(x, nth=k)`(genius):取向量中第 k 个元素(从 0 开始计数)
|
|
208
|
+
- `vec_max(x)`(genius):向量最大值
|
|
209
|
+
- `vec_min(x)`(genius):向量最小值
|
|
210
|
+
- `vec_range(x)`(genius):向量极差(max-min)
|
|
211
|
+
- `vec_stddev(x)`(genius):向量标准差
|
|
212
|
+
- `vec_ir(x)`(genius):向量信息比率(均值/标准差)
|
|
213
|
+
- `vec_skewness(x)`(genius):向量偏度
|
|
214
|
+
- `vec_kurtosis(x)`(genius):向量峰度
|
|
215
|
+
- `vec_norm(x)`(genius):向量范数(所有元素绝对值之和)
|
|
216
|
+
- `vec_percentage(x, percentage=0.5)`(genius):向量分位数(如 0.5 为中位数)
|
|
217
|
+
- `vec_powersum(x, constant=2)`(genius):向量幂和(对每个元素做幂后求和)
|
|
218
|
+
- `vec_filter(vec, value=nan)`(genius):按值过滤向量(可一次过滤多个值,例如 `"nan 0 10"`)。注意:输出仍然是 VECTOR 类型(还未降维)。
|
|
219
|
+
|
|
220
|
+
注意:
|
|
221
|
+
- Vector type 数据不能直接用;你必须先用一个 `vec_*` 把它变成标量特征后再做后续组合。
|
|
222
|
+
- `vec_*` 只能作用在 VECTOR 类型数据上;普通 MATRIX 字段不能直接喂给 `vec_*`。
|
|
207
223
|
|
|
208
|
-
场景:
|
|
209
|
-
多个不同构造方式的同主题因子(比如多个 ESG 变体)组合,提升稳健性;
|
|
210
|
-
单一指标不够可靠,想自动根据历史 IR 给权重。
|
|
211
|
-
self_corr(A)
|
|
212
224
|
|
|
213
|
-
场景:
|
|
214
|
-
研究同因子在截面上的相关结构,比如 ESG 因子和某个 sector pattern 是否极度重叠;
|
|
215
|
-
更偏研究/调试,不是直接构造单因子。
|
|
216
|
-
小结(对应你说的那些“现实情景”):
|
|
217
225
|
|
|
226
|
+
小结:
|
|
218
227
|
只头部/尾部有信号:
|
|
219
228
|
想起:rank + bucket + 逻辑算子(greater/less/if_else/trade_when)、right_tail / left_tail。
|
|
220
229
|
中间区间是噪音:
|
|
@@ -396,11 +405,8 @@ ts_delta(B,d) / days_from_last_change(B)
|
|
|
396
405
|
例如 volume 爆量那几天放大 A,平时保持中立:
|
|
397
406
|
b_spike = greater(ts_delta(B,1), thresh)
|
|
398
407
|
core = trade_when(b_spike, 1.5*A, A)。
|
|
399
|
-
七、Reduce / Combo 等
|
|
400
408
|
|
|
401
|
-
多数用于多维/多因子的情况,不再一一展开;简单原则:
|
|
402
409
|
|
|
403
|
-
若 B 其实是一组值(如多个 volume 相关字段),先用 reduce_avg/reduce_max 合成一个 B_agg,再按前面逻辑当作单一 B 处理。
|
|
404
410
|
最后给一个总的“使用从属 B 的模板公式”
|
|
405
411
|
|
|
406
412
|
可以抽象成:
|
|
@@ -2683,6 +2683,13 @@ def inspiration_enhance_template():
|
|
|
2683
2683
|
api_key = request.form.get('apiKey')
|
|
2684
2684
|
base_url = request.form.get('baseUrl')
|
|
2685
2685
|
model = request.form.get('model')
|
|
2686
|
+
data_type = request.form.get('dataType') or 'MATRIX'
|
|
2687
|
+
|
|
2688
|
+
session_id = request.headers.get('Session-ID') or flask_session.get('brain_session_id')
|
|
2689
|
+
session_info = brain_sessions.get(session_id) if session_id else None
|
|
2690
|
+
|
|
2691
|
+
if data_type not in ("MATRIX", "VECTOR"):
|
|
2692
|
+
data_type = "MATRIX"
|
|
2686
2693
|
|
|
2687
2694
|
if not idea_files or not api_key:
|
|
2688
2695
|
return jsonify({'success': False, 'error': 'Missing ideaFiles or apiKey'}), 400
|
|
@@ -2722,12 +2729,19 @@ def inspiration_enhance_template():
|
|
|
2722
2729
|
env = os.environ.copy()
|
|
2723
2730
|
env['IDEA_JSON'] = idea_path
|
|
2724
2731
|
env['MOONSHOT_API_KEY'] = api_key
|
|
2732
|
+
env['DATA_TYPE'] = str(data_type)
|
|
2725
2733
|
if base_url:
|
|
2726
2734
|
env['MOONSHOT_BASE_URL'] = base_url
|
|
2727
2735
|
if model:
|
|
2728
2736
|
env['MOONSHOT_MODEL'] = model
|
|
2729
2737
|
env['PYTHONIOENCODING'] = 'utf-8'
|
|
2730
2738
|
|
|
2739
|
+
# Inherit BRAIN auth from the logged-in web session (same as run-pipeline).
|
|
2740
|
+
# Do NOT accept raw credentials from the enhance form.
|
|
2741
|
+
if session_info and session_info.get('username') and session_info.get('password'):
|
|
2742
|
+
env['BRAIN_USERNAME'] = session_info['username']
|
|
2743
|
+
env['BRAIN_PASSWORD'] = session_info['password']
|
|
2744
|
+
|
|
2731
2745
|
log_queue.put(f"=== 开始处理: {name} ({idx}/{total}) ===")
|
|
2732
2746
|
proc = subprocess.Popen(
|
|
2733
2747
|
[sys.executable, enhance_script],
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
|
|
2
|
+
# parsetab.py
|
|
3
|
+
# This file is automatically generated. Do not edit.
|
|
4
|
+
# pylint: disable=W,C,R
|
|
5
|
+
_tabversion = '3.10'
|
|
6
|
+
|
|
7
|
+
_lr_method = 'LALR'
|
|
8
|
+
|
|
9
|
+
_lr_signature = 'ASSIGN BOOLEAN CATEGORY COMMA DIVIDE EQUAL FIELD FUNCTION GREATER GREATEREQUAL IDENTIFIER LESS LESSEQUAL LPAREN MINUS NOTEQUAL NUMBER PLUS RPAREN STRING TIMESexpression : comparison\n| expression EQUAL comparison\n| expression NOTEQUAL comparison\n| expression GREATER comparison\n| expression LESS comparison\n| expression GREATEREQUAL comparison\n| expression LESSEQUAL comparisoncomparison : term\n| comparison PLUS term\n| comparison MINUS termterm : factor\n| term TIMES factor\n| term DIVIDE factorfactor : NUMBER\n| STRING\n| FIELD\n| CATEGORY\n| IDENTIFIER\n| BOOLEAN\n| MINUS factor\n| LPAREN expression RPAREN\n| function_callfunction_call : FUNCTION LPAREN args RPARENargs : arg_list\n| emptyarg_list : arg\n| arg_list COMMA argarg : expression\n| IDENTIFIER ASSIGN expressionempty :'
|
|
10
|
+
|
|
11
|
+
_lr_action_items = {'NUMBER':([0,4,12,15,16,17,18,19,20,21,22,23,24,27,46,47,],[6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,]),'STRING':([0,4,12,15,16,17,18,19,20,21,22,23,24,27,46,47,],[7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,]),'FIELD':([0,4,12,15,16,17,18,19,20,21,22,23,24,27,46,47,],[8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,]),'CATEGORY':([0,4,12,15,16,17,18,19,20,21,22,23,24,27,46,47,],[9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,]),'IDENTIFIER':([0,4,12,15,16,17,18,19,20,21,22,23,24,27,46,47,],[10,10,10,10,10,10,10,10,10,10,10,10,10,44,44,10,]),'BOOLEAN':([0,4,12,15,16,17,18,19,20,21,22,23,24,27,46,47,],[11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,]),'MINUS':([0,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30,31,32,33,34,35,36,37,38,44,45,46,47,],[4,22,-8,4,-11,-14,-15,-16,-17,-18,-19,4,-22,4,4,4,4,4,4,4,4,4,4,-20,4,22,22,22,22,22,22,-9,-10,-12,-13,-21,-18,-23,4,4,]),'LPAREN':([0,4,12,14,15,16,17,18,19,20,21,22,23,24,27,46,47,],[12,12,12,27,12,12,12,12,12,12,12,12,12,12,12,12,12,]),'FUNCTION':([0,4,12,15,16,17,18,19,20,21,22,23,24,27,46,47,],[14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,]),'$end':([1,2,3,5,6,7,8,9,10,11,13,25,28,29,30,31,32,33,34,35,36,37,38,45,],[0,-1,-8,-11,-14,-15,-16,-17,-18,-19,-22,-20,-2,-3,-4,-5,-6,-7,-9,-10,-12,-13,-21,-23,]),'EQUAL':([1,2,3,5,6,7,8,9,10,11,13,25,26,28,29,30,31,32,33,34,35,36,37,38,43,44,45,49,],[15,-1,-8,-11,-14,-15,-16,-17,-18,-19,-22,-20,15,-2,-3,-4,-5,-6,-7,-9,-10,-12,-13,-21,15,-18,-23,15,]),'NOTEQUAL':([1,2,3,5,6,7,8,9,10,11,13,25,26,28,29,30,31,32,33,34,35,36,37,38,43,44,45,49,],[16,-1,-8,-11,-14,-15,-16,-17,-18,-19,-22,-20,16,-2,-3,-4,-5,-6,-7,-9,-10,-12,-13,-21,16,-18,-23,16,]),'GREATER':([1,2,3,5,6,7,8,9,10,11,13,25,26,28,29,30,31,32,33,34,35,36,37,38,43,44,45,49,],[17,-1,-8,-11,-14,-15,-16,-17,-18,-19,-22,-20,17,-2,-3,-4,-5,-6,-7,-9,-10,-12,-13,-21,17,-18,-23,17,]),'LESS':([1,2,3,5,6,7,8,9,10,11,13,25,26,28,29,30,31,32,33,34,35,36,37,38,43,44,45,49,],[18,-1,-8,-11,-14,-15,-16,-17,-18,-19,-22,-20,18,-2,-3,-4,-5,-6,-7,-9,-10,-12,-13,-21,18,-18,-23,18,]),'GREATEREQUAL':([1,2,3,5,6,7,8,9,10,11,13,25,26,28,29,30,31,32,33,34,35,36,37,38,43,44,45,49,],[19,-1,-8,-11,-14,-15,-16,-17,-18,-19,-22,-20,19,-2,-3,-4,-5,-6,-7,-9,-10,-12,-13,-21,19,-18,-23,19,]),'LESSEQUAL':([1,2,3,5,6,7,8,9,10,11,13,25,26,28,29,30,31,32,33,34,35,36,37,38,43,44,45,49,],[20,-1,-8,-11,-14,-15,-16,-17,-18,-19,-22,-20,20,-2,-3,-4,-5,-6,-7,-9,-10,-12,-13,-21,20,-18,-23,20,]),'RPAREN':([2,3,5,6,7,8,9,10,11,13,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,48,49,],[-1,-8,-11,-14,-15,-16,-17,-18,-19,-22,-20,38,-30,-2,-3,-4,-5,-6,-7,-9,-10,-12,-13,-21,45,-24,-25,-26,-28,-18,-23,-27,-29,]),'COMMA':([2,3,5,6,7,8,9,10,11,13,25,28,29,30,31,32,33,34,35,36,37,38,40,42,43,44,45,48,49,],[-1,-8,-11,-14,-15,-16,-17,-18,-19,-22,-20,-2,-3,-4,-5,-6,-7,-9,-10,-12,-13,-21,46,-26,-28,-18,-23,-27,-29,]),'PLUS':([2,3,5,6,7,8,9,10,11,13,25,28,29,30,31,32,33,34,35,36,37,38,44,45,],[21,-8,-11,-14,-15,-16,-17,-18,-19,-22,-20,21,21,21,21,21,21,-9,-10,-12,-13,-21,-18,-23,]),'TIMES':([3,5,6,7,8,9,10,11,13,25,34,35,36,37,38,44,45,],[23,-11,-14,-15,-16,-17,-18,-19,-22,-20,23,23,-12,-13,-21,-18,-23,]),'DIVIDE':([3,5,6,7,8,9,10,11,13,25,34,35,36,37,38,44,45,],[24,-11,-14,-15,-16,-17,-18,-19,-22,-20,24,24,-12,-13,-21,-18,-23,]),'ASSIGN':([44,],[47,]),}
|
|
12
|
+
|
|
13
|
+
_lr_action = {}
|
|
14
|
+
for _k, _v in _lr_action_items.items():
|
|
15
|
+
for _x,_y in zip(_v[0],_v[1]):
|
|
16
|
+
if not _x in _lr_action: _lr_action[_x] = {}
|
|
17
|
+
_lr_action[_x][_k] = _y
|
|
18
|
+
del _lr_action_items
|
|
19
|
+
|
|
20
|
+
_lr_goto_items = {'expression':([0,12,27,46,47,],[1,26,43,43,49,]),'comparison':([0,12,15,16,17,18,19,20,27,46,47,],[2,2,28,29,30,31,32,33,2,2,2,]),'term':([0,12,15,16,17,18,19,20,21,22,27,46,47,],[3,3,3,3,3,3,3,3,34,35,3,3,3,]),'factor':([0,4,12,15,16,17,18,19,20,21,22,23,24,27,46,47,],[5,25,5,5,5,5,5,5,5,5,5,36,37,5,5,5,]),'function_call':([0,4,12,15,16,17,18,19,20,21,22,23,24,27,46,47,],[13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,]),'args':([27,],[39,]),'arg_list':([27,],[40,]),'empty':([27,],[41,]),'arg':([27,46,],[42,48,]),}
|
|
21
|
+
|
|
22
|
+
_lr_goto = {}
|
|
23
|
+
for _k, _v in _lr_goto_items.items():
|
|
24
|
+
for _x, _y in zip(_v[0], _v[1]):
|
|
25
|
+
if not _x in _lr_goto: _lr_goto[_x] = {}
|
|
26
|
+
_lr_goto[_x][_k] = _y
|
|
27
|
+
del _lr_goto_items
|
|
28
|
+
_lr_productions = [
|
|
29
|
+
("S' -> expression","S'",1,None,None,None),
|
|
30
|
+
('expression -> comparison','expression',1,'p_expression','validator.py',386),
|
|
31
|
+
('expression -> expression EQUAL comparison','expression',3,'p_expression','validator.py',387),
|
|
32
|
+
('expression -> expression NOTEQUAL comparison','expression',3,'p_expression','validator.py',388),
|
|
33
|
+
('expression -> expression GREATER comparison','expression',3,'p_expression','validator.py',389),
|
|
34
|
+
('expression -> expression LESS comparison','expression',3,'p_expression','validator.py',390),
|
|
35
|
+
('expression -> expression GREATEREQUAL comparison','expression',3,'p_expression','validator.py',391),
|
|
36
|
+
('expression -> expression LESSEQUAL comparison','expression',3,'p_expression','validator.py',392),
|
|
37
|
+
('comparison -> term','comparison',1,'p_comparison','validator.py',399),
|
|
38
|
+
('comparison -> comparison PLUS term','comparison',3,'p_comparison','validator.py',400),
|
|
39
|
+
('comparison -> comparison MINUS term','comparison',3,'p_comparison','validator.py',401),
|
|
40
|
+
('term -> factor','term',1,'p_term','validator.py',408),
|
|
41
|
+
('term -> term TIMES factor','term',3,'p_term','validator.py',409),
|
|
42
|
+
('term -> term DIVIDE factor','term',3,'p_term','validator.py',410),
|
|
43
|
+
('factor -> NUMBER','factor',1,'p_factor','validator.py',417),
|
|
44
|
+
('factor -> STRING','factor',1,'p_factor','validator.py',418),
|
|
45
|
+
('factor -> FIELD','factor',1,'p_factor','validator.py',419),
|
|
46
|
+
('factor -> CATEGORY','factor',1,'p_factor','validator.py',420),
|
|
47
|
+
('factor -> IDENTIFIER','factor',1,'p_factor','validator.py',421),
|
|
48
|
+
('factor -> BOOLEAN','factor',1,'p_factor','validator.py',422),
|
|
49
|
+
('factor -> MINUS factor','factor',2,'p_factor','validator.py',423),
|
|
50
|
+
('factor -> LPAREN expression RPAREN','factor',3,'p_factor','validator.py',424),
|
|
51
|
+
('factor -> function_call','factor',1,'p_factor','validator.py',425),
|
|
52
|
+
('function_call -> FUNCTION LPAREN args RPAREN','function_call',4,'p_function_call','validator.py',453),
|
|
53
|
+
('args -> arg_list','args',1,'p_args','validator.py',457),
|
|
54
|
+
('args -> empty','args',1,'p_args','validator.py',458),
|
|
55
|
+
('arg_list -> arg','arg_list',1,'p_arg_list','validator.py',465),
|
|
56
|
+
('arg_list -> arg_list COMMA arg','arg_list',3,'p_arg_list','validator.py',466),
|
|
57
|
+
('arg -> expression','arg',1,'p_arg','validator.py',473),
|
|
58
|
+
('arg -> IDENTIFIER ASSIGN expression','arg',3,'p_arg','validator.py',474),
|
|
59
|
+
('empty -> <empty>','empty',0,'p_empty','validator.py',481),
|
|
60
|
+
]
|
|
@@ -170,7 +170,10 @@ supported_functions = {
|
|
|
170
170
|
'scale_down': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'number'], 'param_names': ['x', 'constant']},
|
|
171
171
|
|
|
172
172
|
# Arithmetic 类别函数
|
|
173
|
-
|
|
173
|
+
# add(x, y, ..., filter=false)
|
|
174
|
+
# NOTE: add() is variadic (>=2 terms) with an optional boolean filter flag.
|
|
175
|
+
# We validate it with custom logic in validate_function().
|
|
176
|
+
'add': {'min_args': 2, 'max_args': 101, 'arg_types': ['expression'] * 101},
|
|
174
177
|
'multiply': {'min_args': 2, 'max_args': 100, 'arg_types': ['expression'] * 99 + ['boolean'], 'param_names': ['x', 'y', 'filter']}, # multiply(x, y, ..., filter=false)
|
|
175
178
|
'sign': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']},
|
|
176
179
|
'subtract': {'min_args': 2, 'max_args': 3, 'arg_types': ['expression', 'expression', 'boolean']}, # subtract(x, y, filter=false)
|
|
@@ -501,6 +504,10 @@ class ExpressionValidator:
|
|
|
501
504
|
if not function_info:
|
|
502
505
|
return [f"未知函数: {function_name}"]
|
|
503
506
|
|
|
507
|
+
# Custom validation for variadic functions with optional flags
|
|
508
|
+
if function_name == 'add':
|
|
509
|
+
return self._validate_add(args, is_in_group_arg)
|
|
510
|
+
|
|
504
511
|
errors = []
|
|
505
512
|
|
|
506
513
|
# 检查参数数量
|
|
@@ -591,9 +598,9 @@ class ExpressionValidator:
|
|
|
591
598
|
if arg.node_type != 'number':
|
|
592
599
|
errors.append(f"参数 {arg_index+1} 应该是一个数字,但得到 {arg.node_type}")
|
|
593
600
|
elif expected_type == 'boolean':
|
|
594
|
-
#
|
|
595
|
-
if arg.node_type
|
|
596
|
-
errors.append(f"参数 {arg_index+1} 应该是一个布尔值(0/1),但得到 {arg.node_type}")
|
|
601
|
+
# 布尔值可以是 true/false 或数字(0/1)
|
|
602
|
+
if arg.node_type not in {'boolean', 'number'}:
|
|
603
|
+
errors.append(f"参数 {arg_index+1} 应该是一个布尔值(true/false 或 0/1),但得到 {arg.node_type}")
|
|
597
604
|
elif expected_type == 'field':
|
|
598
605
|
if arg.node_type != 'field' and arg.node_type != 'category':
|
|
599
606
|
# 允许field或category作为字段参数
|
|
@@ -610,6 +617,73 @@ class ExpressionValidator:
|
|
|
610
617
|
# group函数的category参数可以是任何类型(field、category等),不进行类型校验
|
|
611
618
|
|
|
612
619
|
return errors
|
|
620
|
+
|
|
621
|
+
def _validate_add(self, args: List[Any], is_in_group_arg: bool = False) -> List[str]:
|
|
622
|
+
"""Validate add(x, y, ..., filter=false).
|
|
623
|
+
|
|
624
|
+
Rules:
|
|
625
|
+
- At least 2 positional expression terms.
|
|
626
|
+
- Optional filter flag can be provided as:
|
|
627
|
+
- named argument: filter=<boolean>
|
|
628
|
+
- last positional argument: <boolean> or 0/1
|
|
629
|
+
"""
|
|
630
|
+
errors: List[str] = []
|
|
631
|
+
|
|
632
|
+
if len(args) < 2:
|
|
633
|
+
return [f"函数 add 需要至少 2 个参数,但只提供了 {len(args)}"]
|
|
634
|
+
|
|
635
|
+
named_filter_nodes: List[ASTNode] = []
|
|
636
|
+
positional_nodes: List[ASTNode] = []
|
|
637
|
+
|
|
638
|
+
for arg in args:
|
|
639
|
+
if isinstance(arg, dict) and arg.get('type') == 'named':
|
|
640
|
+
name = arg.get('name')
|
|
641
|
+
value = arg.get('value')
|
|
642
|
+
if name != 'filter':
|
|
643
|
+
errors.append(f"函数 add 不存在参数 '{name}'")
|
|
644
|
+
continue
|
|
645
|
+
if not hasattr(value, 'node_type'):
|
|
646
|
+
errors.append("函数 add 的参数 filter 格式错误")
|
|
647
|
+
continue
|
|
648
|
+
named_filter_nodes.append(value)
|
|
649
|
+
elif isinstance(arg, dict) and arg.get('type') == 'positional':
|
|
650
|
+
value = arg.get('value')
|
|
651
|
+
if hasattr(value, 'node_type'):
|
|
652
|
+
positional_nodes.append(value)
|
|
653
|
+
else:
|
|
654
|
+
errors.append("函数 add 的位置参数格式错误")
|
|
655
|
+
elif hasattr(arg, 'node_type'):
|
|
656
|
+
positional_nodes.append(arg)
|
|
657
|
+
else:
|
|
658
|
+
errors.append("函数 add 的参数格式错误")
|
|
659
|
+
|
|
660
|
+
if len(named_filter_nodes) > 1:
|
|
661
|
+
errors.append("函数 add 的参数 'filter' 只能出现一次")
|
|
662
|
+
|
|
663
|
+
positional_filter_node: Optional[ASTNode] = None
|
|
664
|
+
# Only infer a positional filter flag when:
|
|
665
|
+
# - no named filter is provided
|
|
666
|
+
# - there are at least 3 positional args (x, y, filter)
|
|
667
|
+
# - the last arg is boolean or numeric 0/1
|
|
668
|
+
if not named_filter_nodes and len(positional_nodes) >= 3:
|
|
669
|
+
last = positional_nodes[-1]
|
|
670
|
+
if last.node_type == 'boolean' or (last.node_type == 'number' and last.value in {0, 1}):
|
|
671
|
+
positional_filter_node = positional_nodes.pop()
|
|
672
|
+
|
|
673
|
+
if len(positional_nodes) < 2:
|
|
674
|
+
errors.append(f"函数 add 需要至少 2 个输入项(不含filter),但只提供了 {len(positional_nodes)}")
|
|
675
|
+
|
|
676
|
+
for idx, node in enumerate(positional_nodes):
|
|
677
|
+
errors.extend(self._validate_arg_type(node, 'expression', idx, 'add', is_in_group_arg))
|
|
678
|
+
|
|
679
|
+
if positional_filter_node is not None and named_filter_nodes:
|
|
680
|
+
errors.append("函数 add 的 filter 不能同时用位置参数和命名参数传递")
|
|
681
|
+
if positional_filter_node is not None:
|
|
682
|
+
errors.extend(self._validate_arg_type(positional_filter_node, 'boolean', len(positional_nodes), 'add', is_in_group_arg))
|
|
683
|
+
if named_filter_nodes:
|
|
684
|
+
errors.extend(self._validate_arg_type(named_filter_nodes[0], 'boolean', len(positional_nodes), 'add', is_in_group_arg))
|
|
685
|
+
|
|
686
|
+
return errors
|
|
613
687
|
|
|
614
688
|
def validate_ast(self, ast: Optional[ASTNode], is_in_group_arg: bool = False) -> List[str]:
|
|
615
689
|
"""递归验证抽象语法树"""
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
cnhkmcp/__init__.py,sha256=
|
|
1
|
+
cnhkmcp/__init__.py,sha256=G9clG05CkloiDhFF62zD-wR4p-dqavWRoU7lSOzv7lA,2759
|
|
2
2
|
cnhkmcp/untracked/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
3
|
cnhkmcp/untracked/arXiv_API_Tool_Manual.md,sha256=I3hvI5mpmIjBuWptufoVSWFnuhyUc67oCGHEuR0p_xs,13552
|
|
4
4
|
cnhkmcp/untracked/arxiv_api.py,sha256=-E-Ub9K-DXAYaCjrbobyfQ9H97gaZBc7pL6xPEyVHec,9020
|
|
@@ -125,13 +125,14 @@ cnhkmcp/untracked/APP/setup_tsinghua.bat,sha256=9dLWCaQTULf3d2LqiAlvQrA4wuM1dysG
|
|
|
125
125
|
cnhkmcp/untracked/APP/setup_tsinghua.sh,sha256=mMDXTqCRIXtSHa_1pU0jCnNF-xajqfZDlUA72XpcAOk,1195
|
|
126
126
|
cnhkmcp/untracked/APP/ssrn-3332513.pdf,sha256=GEwf1Srtk-fTvF03dhTEjXJstHBARIUg31k7s5kxS98,2082078
|
|
127
127
|
cnhkmcp/untracked/APP/usage.md,sha256=t7D-5b2P_JZIn6F7ZRFOSZCYl3Vr5fvHGNVy73Nf_N0,16140
|
|
128
|
-
cnhkmcp/untracked/APP/运行打开我.py,sha256=
|
|
128
|
+
cnhkmcp/untracked/APP/运行打开我.py,sha256=p_j06SsMIgodYbGPxR3jShEIAvrtCjdFsfVr2vq-Gp0,116632
|
|
129
129
|
cnhkmcp/untracked/APP/Tranformer/Transformer.py,sha256=C65g1A5iVdEKcDUImL9MOYHws0CtHsFHykvX0FDfrTA,189021
|
|
130
130
|
cnhkmcp/untracked/APP/Tranformer/ace_lib.py,sha256=nSnmM5zfI6lxIln1vctz7TCwjAWcljVXITy7R4gS3Q0,53947
|
|
131
131
|
cnhkmcp/untracked/APP/Tranformer/helpful_functions.py,sha256=Jc8gclRkvGx7el0XgTmZ67qwMSHrSluYheCUvzd6mbg,6640
|
|
132
|
+
cnhkmcp/untracked/APP/Tranformer/parsetab.py,sha256=L_XJWx4AmYWASQ-krdrcyu7cEFbRdKS5MWppZ0Qfjlo,7650
|
|
132
133
|
cnhkmcp/untracked/APP/Tranformer/template_summary.txt,sha256=gWz5LFlPtOmw0JnLj68hgWsoSFNyA18uCJWIYWHLbe8,111054
|
|
133
134
|
cnhkmcp/untracked/APP/Tranformer/transformer_config.json,sha256=ene-WntIVbcoN3_H1ztlwtZK6eadSXCfqs1SSgrGAIg,179
|
|
134
|
-
cnhkmcp/untracked/APP/Tranformer/validator.py,sha256=
|
|
135
|
+
cnhkmcp/untracked/APP/Tranformer/validator.py,sha256=qsqDg58YK40F5VJDzG-GrZ1ETAfnQ5Cw9Yvbu1NkOAI,54348
|
|
135
136
|
cnhkmcp/untracked/APP/Tranformer/output/Alpha_candidates.json,sha256=vMw3zhzcwARGm92ykdGTeYTsrCje_RHt0sWv17R0qUs,368947
|
|
136
137
|
cnhkmcp/untracked/APP/Tranformer/output/Alpha_candidates_示例.json,sha256=K40tcWPiUKaPnrtMdfsN2BOBG5IzqSz04XT6gRz7FVE,23139
|
|
137
138
|
cnhkmcp/untracked/APP/Tranformer/output/Alpha_generated_expressions_error.json,sha256=T1PNoYwrqgwDVLtfmj7L5e0Sq02OEbqHPC8RFhICuUU,2
|
|
@@ -155,14 +156,11 @@ cnhkmcp/untracked/APP/hkSimulator/autosimulator.py,sha256=KHiwi4tCoLeOKg-14ZW06g
|
|
|
155
156
|
cnhkmcp/untracked/APP/hkSimulator/helpful_functions.py,sha256=Jc8gclRkvGx7el0XgTmZ67qwMSHrSluYheCUvzd6mbg,6640
|
|
156
157
|
cnhkmcp/untracked/APP/simulator/alpha_submitter.py,sha256=Wxx7DyFr0VwH709JhxXPj1Jiz8dShaVaYar3HTVMgv4,15652
|
|
157
158
|
cnhkmcp/untracked/APP/simulator/simulator_wqb.py,sha256=NsPSTs9jmVRguN5_y3qJRNr3hSFUs9JFQgh6y_mxyHw,23774
|
|
158
|
-
cnhkmcp/untracked/APP/simulator/wqb20260130130030.log,sha256=w1ifUFcpGBHaU2w2CVt3yChPeEYe6B9Olet61CB_d5A,7597
|
|
159
|
-
cnhkmcp/untracked/APP/simulator/wqb20260130131757.log,sha256=JLrmpE5IAuyer_zWhY2yaRszPTC5Zkcx-nDT4JRSAlw,5389
|
|
160
|
-
cnhkmcp/untracked/APP/simulator/wqb20260130172245.log,sha256=BXKHwA83tbpaTzusjhU9ab1hE1y_ulQ6kv915D9LzBI,3111
|
|
161
159
|
cnhkmcp/untracked/APP/static/brain.js,sha256=pIRQdvyx6_LFzgRLiYfRhInr2WHd5dEjfM57-9VzUjg,20533
|
|
162
160
|
cnhkmcp/untracked/APP/static/decoder.js,sha256=sKyfgsleHvokCMw6Zp-XfcjixkT8cyMvw6ASDhN6b9I,61987
|
|
163
161
|
cnhkmcp/untracked/APP/static/feature_engineering.js,sha256=X6nis3FmytrNAE8mM-U6-VqmqZMAQ2X59Iy9RmOF5_8,73895
|
|
164
162
|
cnhkmcp/untracked/APP/static/idea_house.js,sha256=dg6zt1mFr99gONdIDqNN_P3ChPEMzCmnWTF0OW09x9w,34225
|
|
165
|
-
cnhkmcp/untracked/APP/static/inspiration.js,sha256=
|
|
163
|
+
cnhkmcp/untracked/APP/static/inspiration.js,sha256=3Hkd9AT28GObia6OH4Rts1dl6URlnAQJ7ytHXdZKwsc,31391
|
|
166
164
|
cnhkmcp/untracked/APP/static/inspiration_house.js,sha256=U3L5vyguy10z7Ww-EFz59OlZUDw3KtIK_JyQzXYtdZ4,31795
|
|
167
165
|
cnhkmcp/untracked/APP/static/paper_analysis.js,sha256=EWD6fTfC6hMLL6IeqDmstP9w6Cezq5607ucUpEpuHkg,16939
|
|
168
166
|
cnhkmcp/untracked/APP/static/script.js,sha256=pal4txqlDGtD0u0Dkw6gpce_1B5ocuzecwXHKYaZdOE,113996
|
|
@@ -172,23 +170,23 @@ cnhkmcp/untracked/APP/static/usage_widget.js,sha256=nbjNFiLSaX2SllDaLrXb6OlqZ2DC
|
|
|
172
170
|
cnhkmcp/untracked/APP/templates/alpha_inspector.html,sha256=EY919KDTPw46FBQwQaxwfpx9_CYUet7fkpD03LBGlF8,22226
|
|
173
171
|
cnhkmcp/untracked/APP/templates/feature_engineering.html,sha256=SA_N46-Q_Oo68clS0-QFvbNW5v40uZPQ8Cmmc44RCP8,38443
|
|
174
172
|
cnhkmcp/untracked/APP/templates/idea_house.html,sha256=oQV-vdpAi-HPof1nUClYsJALrF0JX5jhgfM3LOecBdM,20553
|
|
175
|
-
cnhkmcp/untracked/APP/templates/index.html,sha256=
|
|
173
|
+
cnhkmcp/untracked/APP/templates/index.html,sha256=9FPFb4MLPw6p9PPpcNNkebWc24qxwdHB1fRhTmdpJTY,63126
|
|
176
174
|
cnhkmcp/untracked/APP/templates/inspiration_house.html,sha256=oWTEjmR0FEniFvr5NaM7_AThkRNmurKGvoTyINIVDl0,26469
|
|
177
175
|
cnhkmcp/untracked/APP/templates/paper_analysis.html,sha256=vbDw4MAfmpFoXbef4roX6NKdto_a58RMIRi7Amr2P4M,4220
|
|
178
176
|
cnhkmcp/untracked/APP/templates/simulator.html,sha256=dPAY-fT7oEDCW945ZLLPSUPoawF-TACnVKiqrGiaWkI,12589
|
|
179
177
|
cnhkmcp/untracked/APP/templates/transformer_web.html,sha256=POhGY85pK9PBIAvOctfpSacAZgt1tn8qpigq_QfFYsY,27501
|
|
180
178
|
cnhkmcp/untracked/APP/trailSomeAlphas/README.md,sha256=hhhFfkR0TGsql64NoA8VIACsDJDhBFhyQfX81mRlwGs,1243
|
|
181
179
|
cnhkmcp/untracked/APP/trailSomeAlphas/ace.log,sha256=WdGM9A4HgMyO5Zin762dDsXPIffmKWHNy90V_JroNv4,1606
|
|
182
|
-
cnhkmcp/untracked/APP/trailSomeAlphas/enhance_template.py,sha256=
|
|
180
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/enhance_template.py,sha256=xOqm4y-gCQ0BvLYVNpBchYYU1BpiuHgR6CK8AprpkyA,24403
|
|
183
181
|
cnhkmcp/untracked/APP/trailSomeAlphas/requirements.txt,sha256=l55Wf01tGox9oZDPfJv5_sQ59LCvBbd9cXf4SjLeqwQ,24
|
|
184
182
|
cnhkmcp/untracked/APP/trailSomeAlphas/run_pipeline.py,sha256=l3r4aE_mZFjPuVoX4UFZjt_IWjlB9wFJKhh5KiItAtw,41609
|
|
185
183
|
cnhkmcp/untracked/APP/trailSomeAlphas/run_pipeline_step_by_step.ipynb,sha256=70yP02c6bJJMR1S5gAIyxSHj-UDhqlMcS6I0eXrSMks,224948
|
|
186
184
|
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-data-feature-engineering/OUTPUT_TEMPLATE.md,sha256=gXGy4_TVJrJ48omleelDOmGvPqVkKtav_bWLswU-qZY,9916
|
|
187
|
-
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-data-feature-engineering/SKILL.md,sha256
|
|
185
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-data-feature-engineering/SKILL.md,sha256=-Zo121Bhip7ND17zyQnxjq4hHaLD6GyKpJN4vjo14Y8,24131
|
|
188
186
|
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-data-feature-engineering/examples.md,sha256=D_qP9MXaCyzcDHJe50aFBH_sCGSIWmAF1vPQblLCU-c,13273
|
|
189
187
|
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-data-feature-engineering/reference.md,sha256=cDIDYeBgsLA-hxSjBtdHtFqHNo8HIniCvzWwOrvBoLg,14037
|
|
190
188
|
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-data-feature-engineering/output_report/ASI_delay1_analyst11_ideas.md,sha256=s9UJEEqdz2imNkw0Ltn-Aws-845Qz2PVqa-lfyzr-Oo,20656
|
|
191
|
-
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-data-feature-engineering/output_report/GLB_delay1_fundamental72_ideas.md,sha256=
|
|
189
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-data-feature-engineering/output_report/GLB_delay1_fundamental72_ideas.md,sha256=9LhBEsN75jtHTbXsiO5l5tvc903YO8wUe2_UfpJK0ak,33164
|
|
192
190
|
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/SKILL.md,sha256=VRu_d4XEd5fMeyGqgjEBqJ0jhMQtAPV2HcorkFdUKg0,2110
|
|
193
191
|
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/config.json,sha256=w3uin7a3EUdfxO6mWO4lDCxJtQffsAJK3HwzvD9XXkw,83
|
|
194
192
|
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769709385783386000.json,sha256=a7oLx9itOjq05owFNCpGxndP1rc2dCNUDvK6eI5C1Kc,53831
|
|
@@ -229,33 +227,45 @@ cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/a
|
|
|
229
227
|
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769710424244661800.json,sha256=z3qwbtC03LzTKu6TByMY59uzfm63B6bCAq6CHLDIsK8,848
|
|
230
228
|
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_delay1.csv,sha256=KFlVsHJTMsSZXhWlbPEpgh9ST1GxYzcZKLUCNNtJkE4,74927
|
|
231
229
|
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/final_expressions.json,sha256=4h3rwjdkdIHF8PiiIjHw84HDR0vv7kQl9JNDcyqxrlo,1145237
|
|
232
|
-
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/final_expressions.json,sha256=
|
|
233
|
-
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/
|
|
234
|
-
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/
|
|
235
|
-
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/
|
|
236
|
-
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/
|
|
237
|
-
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/
|
|
238
|
-
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/
|
|
239
|
-
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/
|
|
240
|
-
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/
|
|
241
|
-
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/
|
|
242
|
-
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/
|
|
243
|
-
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/
|
|
244
|
-
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/
|
|
245
|
-
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/
|
|
246
|
-
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/
|
|
247
|
-
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/
|
|
248
|
-
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/
|
|
230
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/final_expressions.json,sha256=8ukiPJK3CxcP2iE61UkiS-NrPphTINeX7vD03AGzUEE,12201
|
|
231
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852468022627100.json,sha256=VF-BqKNZKo7EraogKzpeTCdCNxoYWWywE5MUhUIhAX8,4211
|
|
232
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852468554457600.json,sha256=YoB-C2jR4qEo3sqYs7YicmB4HmRi3ZnPUdOTbGSu69c,2408
|
|
233
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852469133324600.json,sha256=5escaDCfLwVLdUpndpvmgMzTnar6pmgxg9F_7vtxoOM,1509
|
|
234
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852469704433900.json,sha256=sG91V8C908yjFbDyGL86ofMIUGlFh1H-9vyCuhEdPLg,1629
|
|
235
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852470248911900.json,sha256=f6gZ9aDJ13SH24NmpF9vMlbs5QCTqv5Z6_rbwmIMF_s,1645
|
|
236
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852470805192900.json,sha256=InH7mfQwmAWXBUiz4m43XLsD78nENSevynqry7yOlKU,1453
|
|
237
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852471380158000.json,sha256=2F_C9uAwiCan_JRa38XodN3d8MtRnwOQxhd-t2Mn11Y,1566
|
|
238
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852471944247400.json,sha256=UkLZHQRbxW7F7JxHlY6ZE0WekdpwzIPPo1ecarBp9gk,4513
|
|
239
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852472483548800.json,sha256=wJJCI02UGYFbDhnnuyUuVWpblahSPndVaeG4llVUfFo,2728
|
|
240
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852473053891800.json,sha256=z1aByVkKQ3ULpfnZTtiEfQxWs3w9UY02YeMYPw1RXSc,4686
|
|
241
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852473617716000.json,sha256=wAno0317mcVMj766lshz1hexNHpu-7LiLb9-zdbcKkI,4864
|
|
242
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852474172815700.json,sha256=IkcOFYyP-pQSP6OYJsuCONW9u6cZWa1-WgL3I8tiGtc,2437
|
|
243
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852474735778500.json,sha256=lSibMLqhJjNOJCMHH867Y7DjSeOqMMEvY8nfJ3Gai0w,1676
|
|
244
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852475315478500.json,sha256=0d2TXHim6znYceHVKNo_eO7JdMEJrWcyZ57j242QJxg,2393
|
|
245
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852475912897000.json,sha256=3ftTMaKj1dSKXnayMaJLypoWL1fpu_P6Fqq6bek7y4I,1259
|
|
246
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852476474911100.json,sha256=2zOrqIEjvMhz7ylv7HbkeC7k83UzhGw7QvYSAHEDqm8,1518
|
|
247
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852978914367200.json,sha256=N-ZbNcjINFA49ewFRDaQVgLW574_SS6HAQhBy0u9tJw,1812
|
|
248
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852979426164800.json,sha256=9XuT5tGVKZj_1nOgrpLlE6F0IS3BlSPKbQXrmPtEuRw,2928
|
|
249
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852979945511100.json,sha256=t0Mjp2uuyW-9-MzYkoQSADE_4gGhoVBSFBxWr8xrxEY,2284
|
|
250
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852980480251500.json,sha256=afrcd2bYJERb8yvdW2vSpOus4TMRaFUsX7Bskav7TPI,1898
|
|
251
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852981007315500.json,sha256=ODZJ-8bTMJXhVssjHH6diYfWI9wCpiMxMv8DhtKEuzU,2878
|
|
252
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769854621979784200.json,sha256=djqq5RUkX-HMyUd1moJQu15dHFS-O02x-bRlsF6KZvs,1532
|
|
253
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769854622483457900.json,sha256=BkrU-bjgJ8jffucPoCDpwULhqqrW4q24xc5b7vGVCZQ,1672
|
|
254
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769854623010559800.json,sha256=RgOeH1fYwZgy65kIqx5_ZW4qzSrTMVX5v2qUVWywIZo,2087
|
|
255
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769854623572902300.json,sha256=zeFQY4I44kEjVoz2RlHYpv9mGHU0oRLu5H_wOyO4xF4,757
|
|
256
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769854624091016000.json,sha256=NOT4UyrzZ551YMZgIZF9SV9WfqsEoIafvuVVS3_4mnM,2100
|
|
249
257
|
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_delay1.csv,sha256=5xYzduaH3yAb4s_esUs-qslraV-AN2xSrzoqlYNx5Yw,174543
|
|
250
|
-
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/
|
|
258
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_delay1.csv.bak_1769852868,sha256=fyzpBFNGkXF1FWq0Su4vKNLZOaTh8Ft6yr-a5ceXYLw,175530
|
|
259
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_delay1.csv.bak_1769854511,sha256=5xYzduaH3yAb4s_esUs-qslraV-AN2xSrzoqlYNx5Yw,174543
|
|
260
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/scripts/ace.log,sha256=fZaEql2yURw-RIHLg_TNWmDVjpUO5Z_7csJ6ur5Wgvo,365
|
|
251
261
|
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/scripts/ace_lib.py,sha256=8mKA_m_QAsICmlMgLud7jyTA_E3mQZDZdnAJvGzXvxc,55461
|
|
252
262
|
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/scripts/fetch_dataset.py,sha256=q1zPpjz9FAmyOQmRtDrrfZf-a-rH0CkUCe_HIUvplK8,4309
|
|
253
263
|
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/scripts/helpful_functions.py,sha256=1n9rds-uTJd8_cKmptDXTIyoipxa_hPTeOmMj_MKxNw,6820
|
|
254
264
|
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/scripts/implement_idea.py,sha256=8nAyiFE0X6pcGQwZ4m-S9ph7lPSAGzzX7VLKBucBfZ8,8181
|
|
255
265
|
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/scripts/merge_expression_list.py,sha256=4NzMqgwdLUx0baVm3CNRBlr17mtdnUzUdi3Depui8pc,3362
|
|
256
266
|
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/scripts/parsetab.py,sha256=29clH5xFEmKpqzRvrLN89QE8JFJNYFhH-gEFR4y7448,7650
|
|
257
|
-
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/scripts/validator.py,sha256=
|
|
258
|
-
cnhkmcp/untracked/APP/trailSomeAlphas/skills/template_final_enhance/op总结.md,sha256=
|
|
267
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/scripts/validator.py,sha256=hENDusXW4M64pqLqnF3TowP6nJod110aoDjJPaoo8QY,54538
|
|
268
|
+
cnhkmcp/untracked/APP/trailSomeAlphas/skills/template_final_enhance/op总结.md,sha256=HDc8lhGdMst2QgFCqD5fJWvDZ3w1S2DEk0bMsHziflA,20562
|
|
259
269
|
cnhkmcp/untracked/APP/trailSomeAlphas/skills/template_final_enhance/sample_prompt.md,sha256=vf6Ps-hzIH-MRf-cv0Dyro7StdTJ-v6RAjHCXkpRwLE,6217
|
|
260
270
|
cnhkmcp/untracked/APP/trailSomeAlphas/skills/template_final_enhance/单因子思考逻辑链.md,sha256=2IfV6lOKYwoZIlN1tjXjOezJn9pQxX4K3iPmnZh01gA,13232
|
|
261
271
|
cnhkmcp/untracked/APP/缘分一道桥/ace_lib.py,sha256=nSnmM5zfI6lxIln1vctz7TCwjAWcljVXITy7R4gS3Q0,53947
|
|
@@ -270,7 +280,8 @@ cnhkmcp/untracked/mcp文件论坛版2_如果原版启动不了浏览器就试这
|
|
|
270
280
|
cnhkmcp/untracked/mcp文件论坛版2_如果原版启动不了浏览器就试这个/配置前运行我_安装必要依赖包.py,sha256=BnUyL5g6PaC62yEuS-8vcDSJ0oKu3k6jqQxi2jginuQ,6612
|
|
271
281
|
cnhkmcp/untracked/skills/Claude_Skill_Creation_Guide.md,sha256=Wx4w8deBkuw0UcSwzNNQdRIuCqDXGk3-fRQBWcPQivw,5025
|
|
272
282
|
cnhkmcp/untracked/skills/alpha-expression-verifier/SKILL.md,sha256=7oGzMIXUJzDCtbxND6QWmh6azkLqoFJNURIh-F-aPUQ,2213
|
|
273
|
-
cnhkmcp/untracked/skills/alpha-expression-verifier/scripts/
|
|
283
|
+
cnhkmcp/untracked/skills/alpha-expression-verifier/scripts/parsetab.py,sha256=L_XJWx4AmYWASQ-krdrcyu7cEFbRdKS5MWppZ0Qfjlo,7650
|
|
284
|
+
cnhkmcp/untracked/skills/alpha-expression-verifier/scripts/validator.py,sha256=qsqDg58YK40F5VJDzG-GrZ1ETAfnQ5Cw9Yvbu1NkOAI,54348
|
|
274
285
|
cnhkmcp/untracked/skills/alpha-expression-verifier/scripts/verify_expr.py,sha256=zDSlYf0XlkyML-fcL4wld445RMbztt4pDSP5b6W6JKQ,1659
|
|
275
286
|
cnhkmcp/untracked/skills/brain-calculate-alpha-selfcorrQuick/SKILL.md,sha256=UKQhfHPOH8_YXnRotzXuG8BrgFeXhQoxAZIEeaQxGds,1183
|
|
276
287
|
cnhkmcp/untracked/skills/brain-calculate-alpha-selfcorrQuick/reference.md,sha256=ws9oUgtEdK7aVjw6sNoVzFQ3gyoX5UIlyz3wItI0fxI,3115
|
|
@@ -339,9 +350,9 @@ cnhkmcp/untracked/skills/pull_BRAINSkill/SKILL.md,sha256=QyXQ0wr9LeZyKqkvSTto72b
|
|
|
339
350
|
cnhkmcp/untracked/skills/pull_BRAINSkill/scripts/pull_skills.py,sha256=6v3Z3cc9_qKvBj7C6y2jWY1pAd76SA3JmiVj_KkZkmw,6341
|
|
340
351
|
cnhkmcp/vector_db/_manifest.json,sha256=RBNvo1WzZ4oRRq0W9-hknpT7T8If536DEMBg9hyq_4o,2
|
|
341
352
|
cnhkmcp/vector_db/_meta.json,sha256=xQwhRA0prLtwFAMAGR1ZgCR76jVEFIEfF-1SNPpTMgI,91
|
|
342
|
-
cnhkmcp-2.3.
|
|
343
|
-
cnhkmcp-2.3.
|
|
344
|
-
cnhkmcp-2.3.
|
|
345
|
-
cnhkmcp-2.3.
|
|
346
|
-
cnhkmcp-2.3.
|
|
347
|
-
cnhkmcp-2.3.
|
|
353
|
+
cnhkmcp-2.3.2.dist-info/licenses/LICENSE,sha256=QLxO2eNMnJQEdI_R1UV2AOD-IvuA8zVrkHWA4D9gtoc,1081
|
|
354
|
+
cnhkmcp-2.3.2.dist-info/METADATA,sha256=lWqurjB2WU1sxOcLVQPuaVetz7Dic2jtuiEAef0d3iI,5171
|
|
355
|
+
cnhkmcp-2.3.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
356
|
+
cnhkmcp-2.3.2.dist-info/entry_points.txt,sha256=lTQieVyIvjhSMK4fT-XwnccY-JBC1H4vVQ3V9dDM-Pc,70
|
|
357
|
+
cnhkmcp-2.3.2.dist-info/top_level.txt,sha256=x--ibUcSgOS9Z_RWK2Qc-vfs7DaXQN-WMaaxEETJ1Bw,8
|
|
358
|
+
cnhkmcp-2.3.2.dist-info/RECORD,,
|