cnhkmcp 2.3.4__py3-none-any.whl → 2.3.5__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 (49) hide show
  1. cnhkmcp/__init__.py +1 -1
  2. cnhkmcp/untracked/APP/Tranformer/validator.py +149 -32
  3. cnhkmcp/untracked/APP/blueprints/parsetab.py +60 -0
  4. cnhkmcp/untracked/APP/blueprints/validator.py +1080 -0
  5. cnhkmcp/untracked/APP/requirements.txt +0 -0
  6. cnhkmcp/untracked/APP/static/decoder.js +164 -38
  7. cnhkmcp/untracked/APP/static/simulator.js +15 -15
  8. cnhkmcp/untracked/APP/templates/feature_engineering.html +78 -78
  9. cnhkmcp/untracked/APP/templates/idea_house.html +49 -49
  10. cnhkmcp/untracked/APP/templates/index.html +58 -58
  11. cnhkmcp/untracked/APP/templates/inspiration_house.html +64 -64
  12. cnhkmcp/untracked/APP/templates/paper_analysis.html +21 -21
  13. cnhkmcp/untracked/APP/templates/simulator.html +38 -38
  14. cnhkmcp/untracked/APP/templates/transformer_web.html +24 -24
  15. cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-data-feature-engineering/SKILL.md +15 -15
  16. cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental28_GLB_delay1/fundamental28_GLB_1_idea_1769927658009727000.json +10 -0
  17. cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental28_GLB_delay1/fundamental28_GLB_1_idea_1769927658519220600.json +10 -0
  18. cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental28_GLB_delay1/fundamental28_GLB_1_idea_1769927659002708800.json +10 -0
  19. cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental28_GLB_delay1/fundamental28_GLB_1_idea_1769927659510920900.json +10 -0
  20. cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental28_GLB_delay1/fundamental28_GLB_1_idea_1769927659982673800.json +10 -0
  21. cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/scripts/validator.py +153 -32
  22. 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 +46 -0
  23. cnhkmcp/untracked/skills/alpha-expression-verifier/scripts/validator.py +149 -32
  24. cnhkmcp/untracked/skills/{brain-inspectTemplate-create-Setting → brain-inspectRawTemplate-create-Setting}/SKILL.md +8 -2
  25. cnhkmcp/untracked/skills/brain-inspectRawTemplate-create-Setting/ace.log +0 -0
  26. cnhkmcp/untracked/skills/brain-inspectRawTemplate-create-Setting/idea_context.json +15 -0
  27. cnhkmcp/untracked/skills/brain-inspectRawTemplate-create-Setting/scripts/__init__.py +0 -0
  28. cnhkmcp/untracked/skills/{brain-inspectTemplate-create-Setting → brain-inspectRawTemplate-create-Setting}/scripts/parse_idea_file.py +33 -1
  29. cnhkmcp/untracked/skills/brain-inspectRawTemplate-create-Setting/scripts/parsetab.py +60 -0
  30. cnhkmcp/untracked/skills/brain-inspectRawTemplate-create-Setting/scripts/validator.py +1086 -0
  31. {cnhkmcp-2.3.4.dist-info → cnhkmcp-2.3.5.dist-info}/METADATA +1 -1
  32. {cnhkmcp-2.3.4.dist-info → cnhkmcp-2.3.5.dist-info}/RECORD +49 -37
  33. /cnhkmcp/untracked/{skills/brain-inspectTemplate-create-Setting → APP/hkSimulator}/ace.log +0 -0
  34. /cnhkmcp/untracked/{skills/brain-inspectTemplate-create-Setting/scripts/__init__.py → APP/hkSimulator/autosim_20260201_172428.log} +0 -0
  35. /cnhkmcp/untracked/skills/{brain-inspectTemplate-create-Setting → brain-inspectRawTemplate-create-Setting}/.gitignore +0 -0
  36. /cnhkmcp/untracked/skills/{brain-inspectTemplate-create-Setting → brain-inspectRawTemplate-create-Setting}/ace_lib.py +0 -0
  37. /cnhkmcp/untracked/skills/{brain-inspectTemplate-create-Setting → brain-inspectRawTemplate-create-Setting}/config.json +0 -0
  38. /cnhkmcp/untracked/skills/{brain-inspectTemplate-create-Setting → brain-inspectRawTemplate-create-Setting}/fundamental28_GLB_1_idea_1769874845978315000.json +0 -0
  39. /cnhkmcp/untracked/skills/{brain-inspectTemplate-create-Setting → brain-inspectRawTemplate-create-Setting}/helpful_functions.py +0 -0
  40. /cnhkmcp/untracked/skills/{brain-inspectTemplate-create-Setting → brain-inspectRawTemplate-create-Setting}/scripts/build_alpha_list.py +0 -0
  41. /cnhkmcp/untracked/skills/{brain-inspectTemplate-create-Setting → brain-inspectRawTemplate-create-Setting}/scripts/fetch_sim_options.py +0 -0
  42. /cnhkmcp/untracked/skills/{brain-inspectTemplate-create-Setting → brain-inspectRawTemplate-create-Setting}/scripts/load_credentials.py +0 -0
  43. /cnhkmcp/untracked/skills/{brain-inspectTemplate-create-Setting → brain-inspectRawTemplate-create-Setting}/scripts/process_template.py +0 -0
  44. /cnhkmcp/untracked/skills/{brain-inspectTemplate-create-Setting → brain-inspectRawTemplate-create-Setting}/scripts/resolve_settings.py +0 -0
  45. /cnhkmcp/untracked/skills/{brain-inspectTemplate-create-Setting → brain-inspectRawTemplate-create-Setting}/sim_options_snapshot.json +0 -0
  46. {cnhkmcp-2.3.4.dist-info → cnhkmcp-2.3.5.dist-info}/WHEEL +0 -0
  47. {cnhkmcp-2.3.4.dist-info → cnhkmcp-2.3.5.dist-info}/entry_points.txt +0 -0
  48. {cnhkmcp-2.3.4.dist-info → cnhkmcp-2.3.5.dist-info}/licenses/LICENSE +0 -0
  49. {cnhkmcp-2.3.4.dist-info → cnhkmcp-2.3.5.dist-info}/top_level.txt +0 -0
@@ -3,7 +3,7 @@
3
3
  <head>
4
4
  <meta charset="UTF-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>BRAIN Expression Template Decoder</title>
6
+ <title>BRAIN 表达式模板解码器</title>
7
7
  <link rel="stylesheet" href="{{ url_for('static', filename='styles.css') }}">
8
8
  </head>
9
9
  <body>
@@ -12,19 +12,19 @@
12
12
  <div class="header-top">
13
13
  <div class="header-left">
14
14
  <button onclick="openSubmitter()" class="btn btn-submitter">📤 Alpha_Submitter提交器</button>
15
- <button onclick="openHKSimulator()" class="btn btn-submitter" style="margin-top: 10px; display: block;">🚀 Open Simulator_hk</button>
15
+ <button onclick="openHKSimulator()" class="btn btn-submitter" style="margin-top: 10px; display: block;">🚀 打开回测器(HK)</button>
16
16
  <button onclick="openTransformer()" class="btn btn-submitter" style="margin-top: 10px; display: block;">七十二变</button>
17
17
  <button onclick="window.location.href='/alpha_inspector'" class="btn btn-submitter" style="margin-top: 10px; display: block; background-color: #ff9800; border-color: #ff9800;">🌉 缘分一道桥</button>
18
18
  </div>
19
19
  <div class="header-center">
20
- <h1>BRAIN Expression Template Decoder</h1>
21
- <p class="subtitle">Specialized template decoder with grammar checking for expression-like language</p>
20
+ <h1>AI驱动的一站式BRIAN研究工具</h1>
21
+ <p class="subtitle">以BRAIN 表达式模板解码器为核心</p>
22
22
  </div>
23
23
  </div>
24
24
  <div class="header-buttons">
25
25
  <div class="header-buttons-row">
26
26
  <div style="display: flex; gap: 10px; align-items: center;">
27
- <button id="connectToBrain" class="btn btn-brain">Connect to BRAIN</button>
27
+ <button id="connectToBrain" class="btn btn-brain">连接到 BRAIN</button>
28
28
  <button onclick="runSimulator()" class="btn btn-primary">🚀 打开回测器</button>
29
29
  </div>
30
30
  <a href="{{ url_for('inspiration_house.inspiration_house') }}" class="btn btn-primary">AI创意工坊</a>
@@ -48,13 +48,13 @@
48
48
  <span style="margin-right: 5px;">📤</span>导出用户自建模板
49
49
  </button>
50
50
  <button class="btn btn-small btn-outline" onclick="document.getElementById('importTemplatesFile').click()" title="Import templates from file">
51
- <span style="margin-right: 5px;">📥</span>导入用户自建模板
51
+ <span style="margin-right: 5px;">📥</span>从文件导入模板
52
52
  </button>
53
53
  <button class="btn btn-small btn-outline" onclick="document.getElementById('transformerFile').click()" title="Load Transformer Candidates from JSON file">
54
54
  <span style="margin-right: 5px;">🤖</span>加载72变生成的模板
55
55
  </button>
56
56
  <button class="btn btn-small btn-outline" onclick="document.getElementById('generatedExpressionsFile').click()" title="Load Generated Expressions from JSON file">
57
- <span style="margin-right: 5px;">📄</span>载入表达式列表Json
57
+ <span style="margin-right: 5px;">📄</span>从JSON文件加载生成的表达式
58
58
  </button>
59
59
  <input type="file" id="importTemplatesFile" accept=".json" style="display: none;" onchange="importCustomTemplates(event)">
60
60
  <input type="file" id="transformerFile" accept=".json" style="display: none;" onchange="handleTransformerFileSelect(event)">
@@ -84,7 +84,7 @@
84
84
  </div>
85
85
  </div>
86
86
  <div class="custom-template-info" id="noCustomTemplates" style="display: none;">
87
- <p style="margin-top: 10px; color: #6c757d; font-style: italic;">No custom templates saved yet. Create your expression and click "Save Current" to save it as a template.</p>
87
+ <p style="margin-top: 10px; color: #6c757d; font-style: italic;">暂无自定义模板。创建您的表达式并点击“保存当前”将其保存为模板。</p>
88
88
  </div>
89
89
  </div>
90
90
 
@@ -92,15 +92,15 @@
92
92
  <nav class="page-navigation">
93
93
  <button class="nav-tab active" data-page="editor">
94
94
  <span class="nav-icon">✏️</span>
95
- <span class="nav-text">Expression Editor</span>
95
+ <span class="nav-text">表达式编辑器</span>
96
96
  </button>
97
97
  <button class="nav-tab" data-page="decode">
98
98
  <span class="nav-icon">🔄</span>
99
- <span class="nav-text">Decode Templates</span>
99
+ <span class="nav-text">解码模板</span>
100
100
  </button>
101
101
  <button class="nav-tab" data-page="results" id="resultsTab" style="display: none;">
102
102
  <span class="nav-icon">📊</span>
103
- <span class="nav-text">Results</span>
103
+ <span class="nav-text">结果</span>
104
104
  <span class="nav-badge" id="resultsBadge">0</span>
105
105
  </button>
106
106
  </nav>
@@ -112,14 +112,14 @@
112
112
  <div class="main-content">
113
113
  <div class="editor-section">
114
114
  <div class="editor-header">
115
- <h2>Expression Editor</h2>
115
+ <h2>表达式编辑器</h2>
116
116
  <div class="editor-actions">
117
- <button id="clearEditor" class="btn btn-outline">Clear</button>
117
+ <button id="clearEditor" class="btn btn-outline">清除</button>
118
118
  <button class="btn btn-secondary" onclick="saveCurrentTemplate()">
119
- <span style="margin-right: 5px;">💾</span>Save Current Template
119
+ <span style="margin-right: 5px;">💾</span>保存当前模板
120
120
  </button>
121
121
  <button class="btn btn-outline" onclick="overwriteExistingTemplate()">
122
- <span style="margin-right: 5px;">🔄</span>Overwrite Existing
122
+ <span style="margin-right: 5px;">🔄</span>覆盖现有模板
123
123
  </button>
124
124
  <button id="inspirationBtn" class="btn btn-primary" style="background-color: #6f42c1; border-color: #6f42c1; opacity: 0.5; cursor: not-allowed;" disabled>
125
125
  <span style="margin-right: 5px;">💡</span>找灵感
@@ -131,7 +131,7 @@
131
131
  <div class="line-numbers" id="lineNumbers"></div>
132
132
  <div class="editor-container">
133
133
  <div id="highlightedText" class="highlighted-text"></div>
134
- <textarea id="expressionEditor" class="expression-editor" placeholder="Enter your expression here...">
134
+ <textarea id="expressionEditor" class="expression-editor" placeholder="在此处输入您的表达式...">
135
135
  <time_series_operator/>(sentiment_difference, <days/>)</textarea>
136
136
  </div>
137
137
  </div>
@@ -140,21 +140,21 @@
140
140
  </div>
141
141
 
142
142
  <div class="info-panel">
143
- <h3>Detected Templates</h3>
143
+ <h3>检测到的模板</h3>
144
144
  <div id="templateList" class="template-list"></div>
145
145
 
146
- <h3>Grammar Rules</h3>
146
+ <h3>语法规则</h3>
147
147
  <ul class="grammar-rules">
148
- <li><code>/* */</code> - Block comments for multiple lines</li>
149
- <li><code>;</code> - Statement separator (not needed for last line)</li>
150
- <li>Last statement is the Alpha expression for BRAIN simulator</li>
151
- <li>Alpha expression cannot be assigned to a variable</li>
152
- <li>No classes, objects, pointers, or functions allowed</li>
148
+ <li><code>/* */</code> - 多行注释</li>
149
+ <li><code>;</code> - 语句分隔符(最后一行不需要)</li>
150
+ <li>最后一条语句是用于 BRAIN 回测器的 Alpha 表达式</li>
151
+ <li>Alpha 表达式不能赋值给变量</li>
152
+ <li>不允许使用类、对象、指针或函数</li>
153
153
  </ul>
154
154
 
155
155
  <div class="next-step-hint">
156
156
  <button class="btn btn-primary" onclick="navigateToPage('decode')">
157
- Next: Decode Templates
157
+ 下一步: 解码模板
158
158
  </button>
159
159
  </div>
160
160
  </div>
@@ -164,27 +164,27 @@
164
164
  <!-- Decode Page -->
165
165
  <div class="page-content" id="decodePage">
166
166
  <div class="decode-content">
167
- <h2>Template Decoding Options</h2>
167
+ <h2>模板解码选项</h2>
168
168
  <div class="template-status" id="templateStatus">
169
169
  <!-- Template configuration status will be shown here -->
170
170
  </div>
171
171
 
172
172
  <div class="decode-buttons">
173
- <button id="decodeTemplates" class="btn btn-primary btn-large">full_iteration</button>
173
+ <button id="decodeTemplates" class="btn btn-primary btn-large">full_iteration (全量展开)</button>
174
174
  <div class="random-iteration-container">
175
- <button id="randomIterationBtn" class="btn btn-primary btn-large">random_iteration</button>
176
- <input type="number" id="randomCount" class="random-count-input" placeholder="Count" min="1" value="10" title="Number of random expressions to generate">
175
+ <button id="randomIterationBtn" class="btn btn-primary btn-large">random_iteration (随机展开)</button>
176
+ <input type="number" id="randomCount" class="random-count-input" placeholder="数量" min="1" value="10" title="要生成的随机表达式数量">
177
177
  </div>
178
178
  </div>
179
179
 
180
180
  <div class="decode-info">
181
- <p><strong>full_iteration:</strong> Generate all possible combinations of configured templates</p>
182
- <p><strong>random_iteration:</strong> Generate random samples from the possible combinations</p>
181
+ <p><strong>全量展开:</strong> 生成所有可能的模板组合</p>
182
+ <p><strong>随机展开:</strong> 从可能的组合中生成随机样本</p>
183
183
  </div>
184
184
 
185
185
  <div class="navigation-buttons">
186
186
  <button class="btn btn-outline" onclick="navigateToPage('editor')">
187
- Back to Editor
187
+ 返回编辑器
188
188
  </button>
189
189
  </div>
190
190
  </div>
@@ -193,19 +193,19 @@
193
193
  <!-- Results Page -->
194
194
  <div class="page-content" id="resultsPage">
195
195
  <div class="results-content">
196
- <h2>Decoded Expressions</h2>
196
+ <h2>解码后的表达式</h2>
197
197
  <div id="resultsList" class="results-list"></div>
198
198
  <div class="results-actions">
199
- <button id="nextMoveBtn" class="btn btn-secondary btn-small">Append Expression with Settings</button>
200
- <button id="downloadResults" class="btn btn-primary btn-small" title="Download all generated expressions">Download All Expression in txt</button>
199
+ <button id="nextMoveBtn" class="btn btn-secondary btn-small">为表达式追加设置参数</button>
200
+ <button id="downloadResults" class="btn btn-primary btn-small" title="Download all generated expressions">下载所有表达式(txt)</button>
201
201
  </div>
202
202
 
203
203
  <div class="navigation-buttons">
204
204
  <button class="btn btn-outline" onclick="navigateToPage('decode')">
205
- Back to Decode
205
+ 返回解码
206
206
  </button>
207
207
  <button class="btn btn-outline" onclick="navigateToPage('editor')">
208
- Back to Editor
208
+ 返回编辑器
209
209
  </button>
210
210
  </div>
211
211
  </div>
@@ -217,19 +217,19 @@
217
217
  <div id="templateModal" class="modal">
218
218
  <div class="modal-content">
219
219
  <div class="modal-header">
220
- <h3 id="modalTitle">Enter Variables</h3>
220
+ <h3 id="modalTitle">输入变量</h3>
221
221
  <span class="close" onclick="closeModal()">&times;</span>
222
222
  </div>
223
223
  <div class="modal-body">
224
- <p id="modalDescription">Enter a comma-separated list of variables:</p>
224
+ <p id="modalDescription">输入逗号分隔的变量列表:</p>
225
225
  <textarea id="variableInput" class="variable-input" placeholder="variable1, variable2, variable3"></textarea>
226
226
  <div id="brainChooseSection" class="brain-choose-section" style="display: none;">
227
- <button id="chooseBrainBtn" class="btn btn-secondary btn-small">Choose from BRAIN</button>
227
+ <button id="chooseBrainBtn" class="btn btn-secondary btn-small">从 BRAIN 选择</button>
228
228
  </div>
229
229
  </div>
230
230
  <div class="modal-footer">
231
- <button onclick="closeModal()" class="btn btn-outline">Cancel</button>
232
- <button onclick="applyTemplate()" class="btn btn-primary">Apply</button>
231
+ <button onclick="closeModal()" class="btn btn-outline">取消</button>
232
+ <button onclick="applyTemplate()" class="btn btn-primary">应用</button>
233
233
  </div>
234
234
  </div>
235
235
  </div>
@@ -238,7 +238,7 @@
238
238
  <div id="configInfoModal" class="modal">
239
239
  <div class="modal-content">
240
240
  <div class="modal-header">
241
- <h3 id="configInfoTitle">Template Configuration</h3>
241
+ <h3 id="configInfoTitle">模板配置</h3>
242
242
  <span class="close" onclick="closeConfigInfoModal()">&times;</span>
243
243
  </div>
244
244
  <div class="modal-body">
@@ -247,7 +247,7 @@
247
247
  </div>
248
248
  </div>
249
249
  <div class="modal-footer">
250
- <button onclick="closeConfigInfoModal()" class="btn btn-primary">Close</button>
250
+ <button onclick="closeConfigInfoModal()" class="btn btn-primary">关闭</button>
251
251
  </div>
252
252
  </div>
253
253
  </div>
@@ -256,17 +256,17 @@
256
256
  <div id="brainLoginModal" class="modal">
257
257
  <div class="modal-content">
258
258
  <div class="modal-header">
259
- <h3>Connect to WorldQuant BRAIN</h3>
259
+ <h3>连接到 WorldQuant BRAIN</h3>
260
260
  <span class="close" onclick="closeBrainLoginModal()">&times;</span>
261
261
  </div>
262
262
  <div class="modal-body">
263
263
  <form id="brainLoginForm" onsubmit="event.preventDefault(); authenticateBrain();">
264
264
  <div class="form-group">
265
- <label for="brainUsername">Username:</label>
265
+ <label for="brainUsername">用户名:</label>
266
266
  <input type="email" id="brainUsername" class="form-input" placeholder="your.email@domain.com" required>
267
267
  </div>
268
268
  <div class="form-group">
269
- <label for="brainPassword">Password:</label>
269
+ <label for="brainPassword">密码:</label>
270
270
  <input type="password" id="brainPassword" class="form-input" placeholder="Your password" required>
271
271
  </div>
272
272
  <div id="brainLoginStatus" class="login-status"></div>
@@ -276,8 +276,8 @@
276
276
  </form>
277
277
  </div>
278
278
  <div class="modal-footer">
279
- <button onclick="closeBrainLoginModal()" class="btn btn-outline" id="cancelBtn">Cancel</button>
280
- <button onclick="authenticateBrain()" class="btn btn-primary" id="loginBtn">Connect</button>
279
+ <button onclick="closeBrainLoginModal()" class="btn btn-outline" id="cancelBtn">取消</button>
280
+ <button onclick="authenticateBrain()" class="btn btn-primary" id="loginBtn">连接</button>
281
281
  </div>
282
282
  </div>
283
283
  </div>
@@ -286,17 +286,17 @@
286
286
  <div id="brainOperatorsModal" class="modal">
287
287
  <div class="modal-content">
288
288
  <div class="modal-header">
289
- <h3>Choose Operators from BRAIN</h3>
289
+ <h3>从 BRAIN 选择算子</h3>
290
290
  <span class="close" onclick="closeBrainOperatorsModal()">&times;</span>
291
291
  </div>
292
292
  <div class="modal-body">
293
293
  <div class="search-section">
294
- <input type="text" id="operatorSearch" class="form-input" placeholder="Search operators...">
294
+ <input type="text" id="operatorSearch" class="form-input" placeholder="搜索算子...">
295
295
  </div>
296
296
  <div class="category-filter">
297
- <label>Filter by category:</label>
297
+ <label>按类别过滤:</label>
298
298
  <select id="categoryFilter" class="form-input">
299
- <option value="">All Categories</option>
299
+ <option value="">所有类别</option>
300
300
  </select>
301
301
  </div>
302
302
  <div class="operator-actions">
@@ -486,8 +486,8 @@
486
486
  </div>
487
487
  <div class="modal-body settings-modal-body">
488
488
  <div class="settings-info">
489
- <p><strong>Configure settings to append to your decoded expressions</strong></p>
490
- <p class="settings-note">You can enter multiple comma-separated values for any setting to create iterations</p>
489
+ <p><strong>配置要附加到解码表达式的设置</strong></p>
490
+ <p class="settings-note">您可以为任何设置输入多个用逗号分隔的值以创建交叉组合</p>
491
491
  </div>
492
492
 
493
493
  <div class="settings-container">
@@ -614,7 +614,7 @@
614
614
  <tr>
615
615
  <td>nanHandling</td>
616
616
  <td>
617
- <select class="setting-value-input" data-setting="nanHandling">
617
+ <select class="setting-value-input" data-setting="nanHandling" multiple size="2">
618
618
  <option value="OFF" selected>OFF</option>
619
619
  <option value="ON">ON</option>
620
620
  </select>
@@ -625,7 +625,7 @@
625
625
  <tr>
626
626
  <td>maxTrade</td>
627
627
  <td>
628
- <select class="setting-value-input" data-setting="maxTrade">
628
+ <select class="setting-value-input" data-setting="maxTrade" multiple size="2">
629
629
  <option value="ON" selected>ON</option>
630
630
  <option value="OFF">OFF</option>
631
631
  </select>
@@ -701,9 +701,9 @@
701
701
  </div>
702
702
  <div class="modal-footer">
703
703
  <button onclick="closeBrainTestResultsModal()" class="btn btn-primary">Close</button>
704
- <button onclick="goToSimulator()" class="btn btn-secondary" id="downloadTestResultsBtn" style="display: none;">🚀 Open Simulator_mainland</button>
704
+ <button onclick="goToSimulator()" class="btn btn-secondary" id="downloadTestResultsBtn" style="display: none;">🚀 打开回测器(Mainland)</button>
705
705
  <button onclick="confirmAndDownloadExpressionWithSettings()" class="btn btn-secondary" id="downloadExpressionWithSettingsBtn" style="display: none;">
706
- <span class="btn-text">Download Expression with Settings</span>
706
+ <span class="btn-text">下载带设置的表达式</span>
707
707
  <div class="btn-progress" style="display: none;">
708
708
  <div class="progress-bar">
709
709
  <div class="progress-bar-fill" style="width: 0%;"></div>
@@ -635,64 +635,64 @@
635
635
  </head>
636
636
  <body>
637
637
  <div class="inspiration-house-container">
638
- <a href="{{ url_for('index') }}" class="back-button">← Back to Main</a>
638
+ <a href="{{ url_for('index') }}" class="back-button">← 返回主页</a>
639
639
 
640
640
  <div class="header-section">
641
- <h1>🎯 Inspiration House</h1>
642
- <p>AI-powered operator suggestions to enhance your current expression</p>
641
+ <h1>🎯 灵感屋 (Inspiration House)</h1>
642
+ <p>AI 驱动的算子建议,增强您当前的表达式</p>
643
643
  </div>
644
644
 
645
645
  <!-- API Configuration Section -->
646
646
  <div class="config-section" id="apiConfigSection">
647
- <h3>API Configuration</h3>
647
+ <h3>API 配置</h3>
648
648
  <div class="form-group">
649
- <label for="modelProvider">AI Model Provider:</label>
649
+ <label for="modelProvider">AI 模型提供商:</label>
650
650
  <select id="modelProvider" class="form-input">
651
651
  <option value="deepseek">Deepseek</option>
652
652
  <option value="kimi">Kimi</option>
653
653
  </select>
654
654
  </div>
655
655
  <div class="form-group">
656
- <label for="apiKey">API Key:</label>
657
- <input type="password" id="apiKey" class="form-input" placeholder="Enter your API key">
656
+ <label for="apiKey">API 密钥:</label>
657
+ <input type="password" id="apiKey" class="form-input" placeholder="请输入您的 API 密钥">
658
658
  </div>
659
659
  <div class="form-group">
660
- <label for="modelName">Model Name:</label>
661
- <input type="text" id="modelName" class="form-input" placeholder="e.g., deepseek-chat, kimi-k2-0711-preview">
662
- <small style="color: #7f8c8d; font-size: 12px;">Enter the specific model name for your chosen provider</small>
660
+ <label for="modelName">模型名称:</label>
661
+ <input type="text" id="modelName" class="form-input" placeholder="例如: deepseek-chat, kimi-k2-0711-preview">
662
+ <small style="color: #7f8c8d; font-size: 12px;">输入所选提供商的具体模型名称</small>
663
663
  </div>
664
664
  <div class="form-group">
665
- <label for="batchSize">Worker Configuration:</label>
665
+ <label for="batchSize">Worker 配置:</label>
666
666
  <input type="number" id="batchSize" class="form-input" min="1" max="500" value="100" placeholder="100">
667
- <small style="color: #7f8c8d; font-size: 12px;">Note: Workers will be set to match the number of operators for maximum parallelization</small>
667
+ <small style="color: #7f8c8d; font-size: 12px;">注意: Worker 数量将设置为算子数量以实现最大并行化</small>
668
668
  </div>
669
- <button id="saveApiKey" class="btn">Test & Save Configuration</button>
669
+ <button id="saveApiKey" class="btn">测试并保存配置</button>
670
670
  </div>
671
671
 
672
672
  <!-- Show API Config Button (hidden by default) -->
673
673
  <div class="config-section" id="showApiConfigSection" style="display: none;">
674
- <h3>API Configuration</h3>
675
- <p style="color: #27ae60; margin-bottom: 15px;">✅ API configuration saved successfully</p>
676
- <button id="showApiConfig" class="btn btn-secondary">Show API Configuration</button>
674
+ <h3>API 配置</h3>
675
+ <p style="color: #27ae60; margin-bottom: 15px;">✅ API 配置保存成功</p>
676
+ <button id="showApiConfig" class="btn btn-secondary">显示 API 配置</button>
677
677
  </div>
678
678
 
679
679
  <!-- Target Section -->
680
680
  <div class="target-section">
681
681
  <div class="target-header">
682
- <h3>🎯 Quant Research Target</h3>
683
- <button id="editTarget" class="btn btn-secondary">Edit Target</button>
682
+ <h3>🎯 量化研究目标</h3>
683
+ <button id="editTarget" class="btn btn-secondary">编辑目标</button>
684
684
  </div>
685
685
  <div class="target-content">
686
686
  <div class="target-display" id="targetDisplay">
687
- <h4>Current Target:</h4>
688
- <div class="target-text" id="targetText">No target set. Click "Edit Target" to set your research goal.</div>
687
+ <h4>当前目标:</h4>
688
+ <div class="target-text" id="targetText">未设置目标。点击 "编辑目标" 设定您的研究目标。</div>
689
689
  </div>
690
690
  <div class="form-group" id="targetInputGroup" style="display: none;">
691
- <label for="researchTarget">Describe your quant research target:</label>
692
- <textarea id="researchTarget" class="form-input" rows="4" placeholder="e.g., Lower the trading turnover, Improve Sharpe ratio, Reduce drawdown, etc."></textarea>
691
+ <label for="researchTarget">描述您的量化研究目标:</label>
692
+ <textarea id="researchTarget" class="form-input" rows="4" placeholder="例如: 降低换手率,提高夏普比率,减少回撤等"></textarea>
693
693
  <div style="margin-top: 10px;">
694
- <button id="saveTarget" class="btn btn-success">Save Target</button>
695
- <button id="cancelTarget" class="btn btn-secondary">Cancel</button>
694
+ <button id="saveTarget" class="btn btn-success">保存目标</button>
695
+ <button id="cancelTarget" class="btn btn-secondary">取消</button>
696
696
  </div>
697
697
  </div>
698
698
  </div>
@@ -701,17 +701,17 @@
701
701
  <!-- Expression Section -->
702
702
  <div class="expression-section">
703
703
  <div class="expression-header">
704
- <h3>📝 Current Expression</h3>
705
- <button id="loadFromBRAIN" class="btn btn-secondary">Load from BRAIN</button>
704
+ <h3>📝 当前表达式</h3>
705
+ <button id="loadFromBRAIN" class="btn btn-secondary">从 BRAIN 加载</button>
706
706
  </div>
707
707
  <div class="expression-content">
708
708
  <div class="form-group">
709
- <label for="currentExpression">Your current expression:</label>
710
- <textarea id="currentExpression" class="expression-editor" placeholder="Enter your current expression here... (e.g., ts_mean(close, 20) or rank(volume))"></textarea>
709
+ <label for="currentExpression">您的当前表达式:</label>
710
+ <textarea id="currentExpression" class="expression-editor" placeholder="在此输入您的当前表达式... (例如: ts_mean(close, 20) rank(volume))"></textarea>
711
711
  </div>
712
712
  <div class="form-group">
713
- <label for="expressionContext">Expression context (optional):</label>
714
- <textarea id="expressionContext" class="form-input" rows="3" placeholder="Describe what this expression does, its purpose, or any specific context..."></textarea>
713
+ <label for="expressionContext">表达式上下文 (可选):</label>
714
+ <textarea id="expressionContext" class="form-input" rows="3" placeholder="描述此表达式的作用、目的或其他特定背景..."></textarea>
715
715
  </div>
716
716
  </div>
717
717
  </div>
@@ -719,57 +719,57 @@
719
719
  <!-- Evaluation Section -->
720
720
  <div class="evaluation-section">
721
721
  <div class="evaluation-header">
722
- <h3>🔍 Operator Addition Suggestions</h3>
722
+ <h3>🔍 算子添加建议</h3>
723
723
  <div style="display: flex; align-items: center; gap: 10px;">
724
- <span style="font-size: 14px; color: rgba(255,255,255,0.8);">Operators: <span id="currentBatchSize">0</span></span>
725
- <button id="startEvaluation" class="btn btn-warning">Start AI Evaluation</button>
724
+ <span style="font-size: 14px; color: rgba(255,255,255,0.8);">算子数: <span id="currentBatchSize">0</span></span>
725
+ <button id="startEvaluation" class="btn btn-warning">开始 AI 评估</button>
726
726
  </div>
727
727
  </div>
728
728
  <div class="evaluation-content">
729
729
  <div class="evaluation-controls">
730
- <button id="refreshEvaluation" class="btn btn-secondary">Refresh Results</button>
731
- <button id="exportResults" class="btn">Export Results</button>
732
- <button id="clearResults" class="btn btn-secondary">Clear Results</button>
730
+ <button id="refreshEvaluation" class="btn btn-secondary">刷新结果</button>
731
+ <button id="exportResults" class="btn">导出结果</button>
732
+ <button id="clearResults" class="btn btn-secondary">清除结果</button>
733
733
  </div>
734
734
 
735
735
  <div class="filter-controls">
736
736
  <label>
737
- Min Score:
737
+ 最低分:
738
738
  <input type="range" id="minScoreFilter" min="0" max="10" value="0">
739
739
  <span id="minScoreValue">0</span>
740
740
  </label>
741
741
  <label>
742
- Max Score:
742
+ 最高分:
743
743
  <input type="range" id="maxScoreFilter" min="0" max="10" value="10">
744
744
  <span id="maxScoreValue">10</span>
745
745
  </label>
746
746
  <label>
747
- <input type="checkbox" id="showHighScores" checked> Show High Scores (8-10)
747
+ <input type="checkbox" id="showHighScores" checked> 显示高分 (8-10)
748
748
  </label>
749
749
  <label>
750
- <input type="checkbox" id="showMediumScores" checked> Show Medium Scores (4-7)
750
+ <input type="checkbox" id="showMediumScores" checked> 显示中等分 (4-7)
751
751
  </label>
752
752
  <label>
753
- <input type="checkbox" id="showLowScores" checked> Show Low Scores (0-3)
753
+ <input type="checkbox" id="showLowScores" checked> 显示低分 (0-3)
754
754
  </label>
755
755
  </div>
756
756
 
757
757
  <div class="summary-stats" id="summaryStats" style="display: none;">
758
758
  <div class="stat-card stat-high">
759
759
  <div class="stat-number" id="highScoreCount">0</div>
760
- <div class="stat-label">High Scores (8-10)</div>
760
+ <div class="stat-label">高分 (8-10)</div>
761
761
  </div>
762
762
  <div class="stat-card stat-medium">
763
763
  <div class="stat-number" id="mediumScoreCount">0</div>
764
- <div class="stat-label">Medium Scores (4-7)</div>
764
+ <div class="stat-label">中等分 (4-7)</div>
765
765
  </div>
766
766
  <div class="stat-card stat-low">
767
767
  <div class="stat-number" id="lowScoreCount">0</div>
768
- <div class="stat-label">Low Scores (0-3)</div>
768
+ <div class="stat-label">低分 (0-3)</div>
769
769
  </div>
770
770
  <div class="stat-card">
771
771
  <div class="stat-number" id="totalEvaluated">0</div>
772
- <div class="stat-label">Total Evaluated</div>
772
+ <div class="stat-label">总评估数</div>
773
773
  </div>
774
774
  </div>
775
775
 
@@ -777,17 +777,17 @@
777
777
  <table class="evaluation-table" id="evaluationTable">
778
778
  <thead>
779
779
  <tr>
780
- <th style="width: 300px;">Operator</th>
781
- <th style="width: 120px;">Category</th>
782
- <th style="width: 80px;">Score</th>
783
- <th style="width: 350px;">Reason</th>
784
- <th style="width: 100px;">Actions</th>
780
+ <th style="width: 300px;">算子</th>
781
+ <th style="width: 120px;">类别</th>
782
+ <th style="width: 80px;">分数</th>
783
+ <th style="width: 350px;">理由</th>
784
+ <th style="width: 100px;">操作</th>
785
785
  </tr>
786
786
  </thead>
787
787
  <tbody id="evaluationTableBody">
788
788
  <tr>
789
789
  <td colspan="5" style="text-align: center; color: #7f8c8d; font-style: italic; padding: 40px;">
790
- No evaluations yet. Set your target and expression, then click "Start AI Evaluation".
790
+ 暂无评估结果。请设置目标和表达式,然后点击"开始 AI 评估"
791
791
  </td>
792
792
  </tr>
793
793
  </tbody>
@@ -799,14 +799,14 @@
799
799
  <!-- Progress Section -->
800
800
  <div class="progress-section" id="progressSection" style="display: none;">
801
801
  <div class="progress-header">
802
- <h3>🔄 Evaluation Progress</h3>
802
+ <h3>🔄 评估进度</h3>
803
803
  </div>
804
804
  <div class="progress-content">
805
805
  <div class="progress-bar">
806
806
  <div class="progress-fill" id="progressFill" style="width: 0%;">0%</div>
807
807
  </div>
808
808
  <div class="progress-stats">
809
- <span id="progressText">Evaluating operators...</span>
809
+ <span id="progressText">正在评估算子...</span>
810
810
  <span id="progressCount">0 / 0</span>
811
811
  </div>
812
812
  </div>
@@ -814,12 +814,12 @@
814
814
 
815
815
  <!-- Export Section -->
816
816
  <div class="export-section">
817
- <h3>📊 About the Tool</h3>
818
- <p>This tool evaluates all available BRAIN operators as potential ADDITIONS to your current expression. Each operator receives a score from 0-10 based on how well it could be combined with your current expression to better achieve your research target.</p>
817
+ <h3>📊 关于本工具</h3>
818
+ <p>本工具评估所有可用的 BRAIN 算子,作为您当前表达式的潜在**补充**。每个算子将获得 0-10 的评分,评估其与当前表达式结合后实现研究目标的潜力。</p>
819
819
  <div class="export-actions">
820
- <button id="exportHighScores" class="btn btn-success">Export High Scores</button>
821
- <button id="exportAllResults" class="btn">Export All Results</button>
822
- <button id="exportCSV" class="btn btn-secondary">Export as CSV</button>
820
+ <button id="exportHighScores" class="btn btn-success">导出高分结果</button>
821
+ <button id="exportAllResults" class="btn">导出所有结果</button>
822
+ <button id="exportCSV" class="btn btn-secondary">导出为 CSV</button>
823
823
  </div>
824
824
  </div>
825
825
  </div>
@@ -828,18 +828,18 @@
828
828
  <div id="brainLoginModal" class="modal">
829
829
  <div class="modal-content">
830
830
  <div class="modal-header">
831
- <h3>Connect to WorldQuant BRAIN</h3>
831
+ <h3>连接 WorldQuant BRAIN</h3>
832
832
  <span class="close" onclick="closeBrainLoginModal()">&times;</span>
833
833
  </div>
834
834
  <div class="modal-body">
835
835
  <form id="brainLoginForm" onsubmit="event.preventDefault(); authenticateBrain();">
836
836
  <div class="form-group">
837
- <label for="brainUsername">Username:</label>
837
+ <label for="brainUsername">用户名:</label>
838
838
  <input type="email" id="brainUsername" class="form-input" placeholder="your.email@domain.com" required>
839
839
  </div>
840
840
  <div class="form-group">
841
- <label for="brainPassword">Password:</label>
842
- <input type="password" id="brainPassword" class="form-input" placeholder="Your password" required>
841
+ <label for="brainPassword">密码:</label>
842
+ <input type="password" id="brainPassword" class="form-input" placeholder="输入密码" required>
843
843
  </div>
844
844
  <div id="brainLoginStatus" class="login-status"></div>
845
845
  <div id="loginSpinner" class="login-spinner" style="display: none;">
@@ -848,8 +848,8 @@
848
848
  </form>
849
849
  </div>
850
850
  <div class="modal-footer">
851
- <button onclick="closeBrainLoginModal()" class="btn btn-outline" id="cancelBtn">Cancel</button>
852
- <button onclick="authenticateBrain()" class="btn btn-primary" id="loginBtn">Connect</button>
851
+ <button onclick="closeBrainLoginModal()" class="btn btn-outline" id="cancelBtn">取消</button>
852
+ <button onclick="authenticateBrain()" class="btn btn-primary" id="loginBtn">连接</button>
853
853
  </div>
854
854
  </div>
855
855
  </div>