cnhkmcp 1.8.7__tar.gz → 1.8.10__tar.gz

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 (97) hide show
  1. {cnhkmcp-1.8.7/cnhkmcp.egg-info → cnhkmcp-1.8.10}/PKG-INFO +1 -1
  2. cnhkmcp-1.8.10/cnhkmcp/untracked/APP/hkSimulator/autosim_20251215_030103.log +0 -0
  3. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/platform_functions.py +41 -9
  4. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10/cnhkmcp.egg-info}/PKG-INFO +1 -1
  5. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp.egg-info/SOURCES.txt +1 -0
  6. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/setup.py +1 -1
  7. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/LICENSE +0 -0
  8. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/MANIFEST.in +0 -0
  9. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/README.md +0 -0
  10. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/__init__.py +0 -0
  11. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/.gitignore +0 -0
  12. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/MODULAR_STRUCTURE.md +0 -0
  13. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/README.md +0 -0
  14. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/Tranformer/Transformer.py +0 -0
  15. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/Tranformer/ace.log +0 -0
  16. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/Tranformer/ace_lib.py +0 -0
  17. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/Tranformer/helpful_functions.py +0 -0
  18. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/Tranformer/output/Alpha_candidates.json +0 -0
  19. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/Tranformer/output/Alpha_candidates_/347/244/272/344/276/213.json" +0 -0
  20. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/Tranformer/output/Alpha_generated_expressions_error.json +0 -0
  21. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/Tranformer/output/Alpha_generated_expressions_success.json +0 -0
  22. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/Tranformer/output/Alpha_generated_expressions_/347/244/272/344/276/213/345/217/257/347/233/264/346/216/245/350/275/275/345/205/245Machine_lib.json" +0 -0
  23. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/Tranformer/parsetab.py +0 -0
  24. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/Tranformer/template_summary.txt +0 -0
  25. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/Tranformer/transformer_config.json +0 -0
  26. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/Tranformer/validator.py +0 -0
  27. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/ace.log +0 -0
  28. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/ace_lib.py +0 -0
  29. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/blueprints/__init__.py +0 -0
  30. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/blueprints/feature_engineering.py +0 -0
  31. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/blueprints/idea_house.py +0 -0
  32. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/blueprints/inspiration_house.py +0 -0
  33. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/blueprints/paper_analysis.py +0 -0
  34. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/custom_templates/templates.json +0 -0
  35. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/helpful_functions.py +0 -0
  36. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/hkSimulator/ace.log +0 -0
  37. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/hkSimulator/ace_lib.py +0 -0
  38. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/hkSimulator/autosim_20251205_145240.log +0 -0
  39. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/hkSimulator/autosimulator.py +0 -0
  40. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/hkSimulator/helpful_functions.py +0 -0
  41. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/mirror_config.txt +0 -0
  42. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/operaters.csv +0 -0
  43. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/requirements.txt +0 -0
  44. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/run_app.bat +0 -0
  45. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/run_app.sh +0 -0
  46. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/setup_tsinghua.bat +0 -0
  47. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/setup_tsinghua.sh +0 -0
  48. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/simulator/alpha_submitter.py +0 -0
  49. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/simulator/simulator_wqb.py +0 -0
  50. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/ssrn-3332513.pdf +0 -0
  51. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/static/brain.js +0 -0
  52. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/static/decoder.js +0 -0
  53. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/static/feature_engineering.js +0 -0
  54. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/static/idea_house.js +0 -0
  55. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/static/inspiration_house.js +0 -0
  56. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/static/paper_analysis.js +0 -0
  57. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/static/script.js +0 -0
  58. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/static/simulator.js +0 -0
  59. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/static/styles.css +0 -0
  60. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/static/usage_widget.js +0 -0
  61. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/templates/alpha_inspector.html +0 -0
  62. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/templates/feature_engineering.html +0 -0
  63. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/templates/idea_house.html +0 -0
  64. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/templates/index.html +0 -0
  65. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/templates/inspiration_house.html +0 -0
  66. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/templates/paper_analysis.html +0 -0
  67. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/templates/simulator.html +0 -0
  68. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/templates/transformer_web.html +0 -0
  69. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP/usage.md +0 -0
  70. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP//347/274/230/345/210/206/344/270/200/351/201/223/346/241/245/ace_lib.py" +0 -0
  71. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP//347/274/230/345/210/206/344/270/200/351/201/223/346/241/245/brain_alpha_inspector.py" +0 -0
  72. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP//347/274/230/345/210/206/344/270/200/351/201/223/346/241/245/helpful_functions.py" +0 -0
  73. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/APP//350/277/220/350/241/214/346/211/223/345/274/200/346/210/221.py" +0 -0
  74. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/arXiv_API_Tool_Manual.md +0 -0
  75. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/arxiv_api.py +0 -0
  76. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/forum_functions.py +0 -0
  77. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/mcp/346/226/207/344/273/266/350/256/272/345/235/233/347/211/2102_/345/246/202/346/236/234/345/216/237/347/211/210/345/220/257/345/212/250/344/270/215/344/272/206/346/265/217/350/247/210/345/231/250/345/260/261/350/257/225/350/277/231/344/270/252/forum_functions.py" +0 -0
  78. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/mcp/346/226/207/344/273/266/350/256/272/345/235/233/347/211/2102_/345/246/202/346/236/234/345/216/237/347/211/210/345/220/257/345/212/250/344/270/215/344/272/206/346/265/217/350/247/210/345/231/250/345/260/261/350/257/225/350/277/231/344/270/252/platform_functions.py" +0 -0
  79. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/mcp/346/226/207/344/273/266/350/256/272/345/235/233/347/211/2102_/345/246/202/346/236/234/345/216/237/347/211/210/345/220/257/345/212/250/344/270/215/344/272/206/346/265/217/350/247/210/345/231/250/345/260/261/350/257/225/350/277/231/344/270/252/user_config.json" +0 -0
  80. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/mcp/346/226/207/344/273/266/350/256/272/345/235/233/347/211/2102_/345/246/202/346/236/234/345/216/237/347/211/210/345/220/257/345/212/250/344/270/215/344/272/206/346/265/217/350/247/210/345/231/250/345/260/261/350/257/225/350/277/231/344/270/252//350/256/251AI/350/257/273/350/277/231/344/270/252/346/226/207/346/241/243/346/235/245/345/255/246/344/274/232/344/270/213/350/275/275/346/265/217/350/247/210/345/231/250.md" +0 -0
  81. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/mcp/346/226/207/344/273/266/350/256/272/345/235/233/347/211/2102_/345/246/202/346/236/234/345/216/237/347/211/210/345/220/257/345/212/250/344/270/215/344/272/206/346/265/217/350/247/210/345/231/250/345/260/261/350/257/225/350/277/231/344/270/252//351/205/215/347/275/256/345/211/215/350/277/220/350/241/214/346/210/221_/345/256/211/350/243/205/345/277/205/350/246/201/344/276/235/350/265/226/345/214/205.py" +0 -0
  82. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/sample_mcp_config.json +0 -0
  83. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked/user_config.json +0 -0
  84. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked//347/244/272/344/276/213/345/217/202/350/200/203/346/226/207/346/241/243_BRAIN_Alpha_Test_Requirements_and_Tips.md" +0 -0
  85. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked//347/244/272/344/276/213/345/267/245/344/275/234/346/265/201_Alpha_explaination_workflow.md" +0 -0
  86. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked//347/244/272/344/276/213/345/267/245/344/275/234/346/265/201_BRAIN_6_Tips_Datafield_Exploration_Guide.md" +0 -0
  87. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked//347/244/272/344/276/213/345/267/245/344/275/234/346/265/201_BRAIN_Alpha_Improvement_Workflow.md" +0 -0
  88. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked//347/244/272/344/276/213/345/267/245/344/275/234/346/265/201_Dataset_Exploration_Expert_Manual.md" +0 -0
  89. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked//347/244/272/344/276/213/345/267/245/344/275/234/346/265/201_daily_report_workflow.md" +0 -0
  90. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp/untracked//351/205/215/347/275/256/345/211/215/350/277/220/350/241/214/346/210/221_/345/256/211/350/243/205/345/277/205/350/246/201/344/276/235/350/265/226/345/214/205.py" +0 -0
  91. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp.egg-info/dependency_links.txt +0 -0
  92. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp.egg-info/entry_points.txt +0 -0
  93. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp.egg-info/not-zip-safe +0 -0
  94. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp.egg-info/requires.txt +0 -0
  95. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/cnhkmcp.egg-info/top_level.txt +0 -0
  96. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/requirements.txt +0 -0
  97. {cnhkmcp-1.8.7 → cnhkmcp-1.8.10}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cnhkmcp
3
- Version: 1.8.7
3
+ Version: 1.8.10
4
4
  Summary: A comprehensive Model Context Protocol (MCP) server for quantitative trading platform integration
5
5
  Home-page: https://github.com/cnhk/cnhkmcp
6
6
  Author: CNHK
@@ -598,7 +598,7 @@ class BrainApiClient:
598
598
  response.raise_for_status()
599
599
 
600
600
  self.log(f"Alpha {alpha_id} submitted successfully", "SUCCESS")
601
- return True
601
+ return response.__dict__
602
602
 
603
603
  except Exception as e:
604
604
  self.log(f"❌ Failed to submit alpha: {str(e)}", "ERROR")
@@ -1101,14 +1101,46 @@ class BrainApiClient:
1101
1101
  else:
1102
1102
  continue
1103
1103
 
1104
- # Analyze correlation data
1105
- if correlation_data and 'results' in correlation_data:
1106
- correlations = correlation_data['results']
1107
- max_correlation = max([corr.get('correlation', 0) for corr in correlations]) if correlations else 0
1108
- passes_check = max_correlation < threshold
1104
+ # Analyze correlation data (robust to schema/records format)
1105
+ if isinstance(correlation_data, dict):
1106
+ # Prefer strict access to schema.max or top-level max; otherwise error
1107
+ schema = correlation_data.get('schema') or {}
1108
+ if isinstance(schema, dict) and 'max' in schema:
1109
+ max_correlation = float(schema['max'])
1110
+ elif 'max' in correlation_data:
1111
+ # Some endpoints place max at top-level
1112
+ max_correlation = float(correlation_data['max'])
1113
+ else:
1114
+ # Attempt to derive from records; if none found, raise error instead of defaulting
1115
+ records = correlation_data.get('records') or []
1116
+ if isinstance(records, list) and records:
1117
+ candidate_max = None
1118
+ for row in records:
1119
+ if isinstance(row, (list, tuple)):
1120
+ for v in row:
1121
+ try:
1122
+ vf = float(v)
1123
+ if -1.0 <= vf <= 1.0:
1124
+ candidate_max = vf if candidate_max is None else max(candidate_max, vf)
1125
+ except Exception:
1126
+ continue
1127
+ elif isinstance(row, dict):
1128
+ for key in ('correlation', 'prodCorrelation', 'selfCorrelation', 'max'):
1129
+ try:
1130
+ vf = float(row.get(key))
1131
+ if -1.0 <= vf <= 1.0:
1132
+ candidate_max = vf if candidate_max is None else max(candidate_max, vf)
1133
+ except Exception:
1134
+ continue
1135
+ if candidate_max is None:
1136
+ raise ValueError("Unable to derive max correlation from records")
1137
+ max_correlation = float(candidate_max)
1138
+ else:
1139
+ raise KeyError("Correlation response missing 'schema.max' or top-level 'max' and no 'records' to derive from")
1109
1140
  else:
1110
- max_correlation = 0
1111
- passes_check = True
1141
+ raise TypeError("Correlation data is not a dictionary")
1142
+
1143
+ passes_check = max_correlation < threshold
1112
1144
 
1113
1145
  results['checks'][check_type] = {
1114
1146
  'max_correlation': max_correlation,
@@ -2009,7 +2041,7 @@ async def submit_alpha(alpha_id: str) -> Dict[str, Any]:
2009
2041
  """
2010
2042
  try:
2011
2043
  success = await brain_client.submit_alpha(alpha_id)
2012
- return {"success": success, "alpha_id": alpha_id}
2044
+ return {"submit_result": success, "alpha_id": alpha_id}
2013
2045
  except Exception as e:
2014
2046
  return {"error": str(e)}
2015
2047
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cnhkmcp
3
- Version: 1.8.7
3
+ Version: 1.8.10
4
4
  Summary: A comprehensive Model Context Protocol (MCP) server for quantitative trading platform integration
5
5
  Home-page: https://github.com/cnhk/cnhkmcp
6
6
  Author: CNHK
@@ -62,6 +62,7 @@ cnhkmcp/untracked/APP/custom_templates/templates.json
62
62
  cnhkmcp/untracked/APP/hkSimulator/ace.log
63
63
  cnhkmcp/untracked/APP/hkSimulator/ace_lib.py
64
64
  cnhkmcp/untracked/APP/hkSimulator/autosim_20251205_145240.log
65
+ cnhkmcp/untracked/APP/hkSimulator/autosim_20251215_030103.log
65
66
  cnhkmcp/untracked/APP/hkSimulator/autosimulator.py
66
67
  cnhkmcp/untracked/APP/hkSimulator/helpful_functions.py
67
68
  cnhkmcp/untracked/APP/simulator/alpha_submitter.py
@@ -13,7 +13,7 @@ def read_requirements():
13
13
 
14
14
  setup(
15
15
  name="cnhkmcp",
16
- version="1.8.7",
16
+ version="1.8.10",
17
17
  author="CNHK",
18
18
  author_email="cnhk@example.com",
19
19
  description="A comprehensive Model Context Protocol (MCP) server for quantitative trading platform integration",
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes