{"id":155,"date":"2026-03-23T09:26:29","date_gmt":"2026-03-23T01:26:29","guid":{"rendered":"http:\/\/airoom.ltd\/?page_id=155"},"modified":"2026-04-11T08:05:01","modified_gmt":"2026-04-11T00:05:01","slug":"global-financial-intelligence-terminal","status":"publish","type":"page","link":"http:\/\/airoom.ltd\/index.php\/global-financial-intelligence-terminal\/","title":{"rendered":"Global Financial Intelligence Terminal English"},"content":{"rendered":"\n<p class=\"has-text-align-center\"><strong>This page is for simulation only and does not represent real\u2011world scenarios.<\/strong><\/p>\n\n\n\n<!-- Google\u7ffb\u8bd1\u6309\u94ae\u5bb9\u5668\uff08\u53ef\u81ea\u5b9a\u4e49\u6837\u5f0f\uff09 -->\n<div id=\"google_translate_element\" style=\"margin: 10px 0; padding: 5px;\"><\/div>\n\n<!-- Google\u7ffb\u8bd1\u6838\u5fc3JS\u4ee3\u7801 + \u65b0\u589e\uff1a\u5168\u5c40\u62a5\u9519\u7acb\u5373\u653e\u5f03\u8f7d\u5165 -->\n<script type=\"text\/javascript\">\n\/\/ \u65b0\u589e\uff1a\u5168\u5c40\u6807\u8bb0\uff0c\u62a5\u9519\u540e\u653e\u5f03\u521d\u59cb\u5316\nlet __GOOGLE_TRANSLATE_LOADED = true;\n\nfunction googleTranslateElementInit() {\n  \/\/ \u6838\u5fc3\uff1a\u53ea\u8981\u6709\u4efb\u4f55\u524d\u7f6e\u62a5\u9519\uff0c\u76f4\u63a5\u653e\u5f03\u8f7d\u5165\n  if (!__GOOGLE_TRANSLATE_LOADED) return;\n\n  \/\/ \u65b0\u589e\uff1a\u6355\u83b7\u6240\u6709\u521d\u59cb\u5316\u62a5\u9519\uff0c\u4e00\u65e6\u51fa\u9519\u7acb\u5373\u653e\u5f03\u8f7d\u5165\n  try {\n    new google.translate.TranslateElement({\n      pageLanguage: 'zh-CN', \/\/ \u9875\u9762\u9ed8\u8ba4\u8bed\u8a00\uff08\u4e2d\u6587\u7b80\u4f53\uff09\n      includedLanguages: 'zh-CN,en,ja,ko,fr,de,es', \/\/ \u8981\u663e\u793a\u7684\u8bed\u8a00\u5217\u8868\uff08\u53ef\u6309\u9700\u6dfb\u52a0\uff09\n      layout: google.translate.TranslateElement.InlineLayout.SIMPLE, \/\/ \u7b80\u7ea6\u5e03\u5c40\n      autoDisplay: false \/\/ \u4e0d\u81ea\u52a8\u663e\u793a\u7ffb\u8bd1\u5f39\u7a97\n    }, 'google_translate_element');\n  } catch (error) {\n    \/\/ \u521d\u59cb\u5316\u62a5\u9519\uff0c\u6807\u8bb0\u4e3a\u653e\u5f03\u8f7d\u5165\n    __GOOGLE_TRANSLATE_LOADED = false;\n    console.error('Google\u7ffb\u8bd1\u521d\u59cb\u5316\u5931\u8d25\uff0c\u5df2\u653e\u5f03\u8f7d\u5165\uff1a', error);\n    \/\/ \u6e05\u7a7a\u7ffb\u8bd1\u5bb9\u5668\uff0c\u4e0d\u663e\u793a\u5f02\u5e38\u7ec4\u4ef6\n    document.getElementById('google_translate_element').innerHTML = '';\n  }\n}\n<\/script>\n\n<!-- \u52a0\u8f7dGoogle\u7ffb\u8bd1API + \u65b0\u589e\uff1a\u52a0\u8f7d\u5931\u8d25\u7acb\u5373\u653e\u5f03\u8f7d\u5165 -->\n<script \n  type=\"text\/javascript\" \n  src=\"\/\/translate.google.com\/translate_a\/element.js?cb=googleTranslateElementInit\"\n  \/\/ \u6838\u5fc3\uff1aAPI\u52a0\u8f7d\u62a5\u9519\uff0c\u76f4\u63a5\u653e\u5f03\n  onerror=\"__GOOGLE_TRANSLATE_LOADED = false; document.getElementById('google_translate_element').innerHTML = ''; console.error('Google\u7ffb\u8bd1API\u52a0\u8f7d\u5931\u8d25\uff0c\u5df2\u653e\u5f03\u8f7d\u5165');\"\n><\/script>\n\n<!-- \u53ef\u9009\uff1a\u81ea\u5b9a\u4e49\u7ffb\u8bd1\u6309\u94ae\u6837\u5f0f\uff08\u907f\u514d\u548cWordPress\u4e3b\u9898\u51b2\u7a81\uff09 -->\n<style>\n.goog-te-gadget-simple {\n  background-color: #f5f5f5 !important;\n  border: 1px solid #ddd !important;\n  padding: 5px 10px !important;\n  border-radius: 4px !important;\n  font-size: 14px !important;\n  color: #333 !important;\n}\n.goog-te-menu-value span {\n  color: #333 !important;\n}\n\/* \u9690\u85cfGoogle\u7ffb\u8bd1\u7684\u5e95\u90e8\u6c34\u5370\uff08\u53ef\u9009\uff09 *\/\n.goog-logo-link {\n  display: none !important;\n}\n.goog-te-gadget {\n  color: transparent !important;\n}\n<\/style>\n\n\n\n<!-- \u82f9\u679c\u5b98\u7f51\u98ce\u683c AI \u5bf9\u8bdd\u5bf9\u8bdd\u6846 | \u5bf9\u9f50WordPress\u9875\u9762\u89c6\u89c9 \u5b8c\u6574\u7248 -->\n<style>\n\/* \u5168\u5c40\u57fa\u7840\u6837\u5f0f - \u5b8c\u5168\u590d\u523bWordPress\u82f9\u679c\u98ce\u683c\u91cd\u7f6e *\/\n* {\n  margin: 0;\n  padding: 0;\n  box-sizing: border-box;\n  font-family: -apple-system, BlinkMacSystemFont, \"SF Pro Display\", \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  letter-spacing: -0.02em;\n}\nbody {\n  background: #f5f5f7; \/* \u82f9\u679c\u5b98\u7f51\u7ecf\u5178\u80cc\u666f\u7070 *\/\n  padding: 2.5vw;\n  max-width: 1920px;\n  margin: 0 auto;\n  color: #1d1d1f;\n}\n\/* \u901a\u7528\u52a8\u753b\u8fc7\u6e21 *\/\n.apple-ai-chat, .chat-header, .message, .chat-input textarea, .chat-input button, .error-toggle-btn, .copy-btn {\n  transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);\n}\n\/* \u4e3b\u5bf9\u8bdd\u6846\u5bb9\u5668 - \u5b8c\u5168\u5339\u914dWordPress\u5361\u7247\u6837\u5f0f *\/\n.apple-ai-chat {\n  max-width: 900px;\n  margin: 3vw auto;\n  background: rgba(255, 255, 255, 0.8);\n  backdrop-filter: blur(10px);\n  border-radius: 20px;\n  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.05);\n  border: 1px solid rgba(255, 255, 255, 0.8);\n  display: flex;\n  flex-direction: column;\n  height: calc(100vh - 120px);\n  overflow: hidden;\n}\n\/* \u5934\u90e8 - \u5b8c\u5168\u590d\u523bWordPress\u9876\u90e8\u6807\u9898\u533a\u57df\u6837\u5f0f *\/\n.chat-header {\n  padding: 4vw 3.5vw;\n  background: linear-gradient(135deg, #ffffff 0%, #f8f9ff 100%);\n  position: relative;\n  text-align: left;\n}\n.chat-header h1 {\n  font-size: clamp(1.8rem, 3vw, 2.5rem);\n  font-weight: 700;\n  background: linear-gradient(90deg, #0071e3, #86a8e7, #af52de);\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  background-clip: text;\n  margin-bottom: 0.8vw;\n  line-height: 1.1;\n}\n.chat-header p {\n  font-size: clamp(0.9rem, 1.5vw, 1.2rem);\n  color: #86868b;\n  font-weight: 400;\n}\n\/* \u62a5\u9519\u5f00\u5173\u6309\u94ae - \u5b8c\u5168\u5339\u914dWordPress toggle-btn\u6837\u5f0f *\/\n.error-toggle-btn {\n  display: none; \/* \u65b0\u589e\u8fd9\u4e00\u884c\uff0c\u6309\u94ae\u9690\u5f62 *\/\n  position: absolute;\n  right: 2.5vw;\n  top: 50%;\n  transform: translateY(-50%);\n  background: rgba(255, 255, 255, 0.8);\n  border: 1px solid rgba(175, 82, 222, 0.3);\n  border-radius: 8px;\n  padding: 0.6vw 1.2vw;\n  font-size: clamp(0.7rem, 0.9vw, 0.9rem);\n  color: #af52de;\n  font-weight: 500;\n  cursor: pointer;\n  transition: all 0.2s ease;\n}\n.error-toggle-btn:hover {\n  background: rgba(175, 82, 222, 0.1);\n  border-color: #af52de;\n}\n\/* \u6d88\u606f\u533a\u57df *\/\n.chat-messages {\n  flex: 1;\n  padding: 3vw;\n  overflow-y: auto;\n  display: flex;\n  flex-direction: column;\n  gap: 1.5vw;\n}\n\/* \u6eda\u52a8\u6761 - \u82f9\u679c\u98ce\u683c *\/\n.chat-messages::-webkit-scrollbar {\n  width: 6px;\n}\n.chat-messages::-webkit-scrollbar-thumb {\n  background: rgba(134, 168, 231, 0.3);\n  border-radius: 3px;\n}\n\/* \u6d88\u606f\u6c14\u6ce1 - \u7edf\u4e00WordPress\u67d4\u548c\u914d\u8272 | \u9ad8\u5ea6\u62d3\u9ad8\u4e00\u500d *\/\n.message {\n  max-width: 75%;\n  padding: 2.4vw 1.5vw; \/* \u539f1.2vw \u2192 2.4vw\uff0c\u9ad8\u5ea6\u7ffb\u500d *\/\n  border-radius: 18px;\n  line-height: 1.6;\n  font-size: clamp(0.9rem, 1vw, 1rem);\n  animation: fadeIn 0.3s ease;\n  position: relative;\n}\n@keyframes fadeIn {\n  from { opacity: 0; transform: translateY(10px); }\n  to { opacity: 1; transform: translateY(0); }\n}\n\/* AI\u6d88\u606f - \u5339\u914dWordPress\u4e3b\u8272\u8c03 *\/\n.message.ai {\n  align-self: flex-start;\n  background: rgba(134, 168, 231, 0.1);\n  color: #1d1d1f;\n  border-bottom-left-radius: 6px;\n}\n\/* \u7528\u6237\u6d88\u606f - \u5339\u914dWordPress\u6d45\u7070\u80cc\u666f *\/\n.message.user {\n  align-self: flex-end;\n  background: rgba(245, 245, 247, 0.8);\n  color: #1d1d1f;\n  border-bottom-right-radius: 6px;\n}\n\/* \u4e00\u952e\u590d\u5236\u6309\u94ae - \u82f9\u679c\u98ce\u683c\u5c0f\u578b\u6309\u94ae *\/\n.copy-btn {\n  position: absolute;\n  bottom: 0.5vw;\n  right: 0.8vw;\n  background: rgba(255, 255, 255, 0.9);\n  border: 1px solid rgba(134, 168, 231, 0.3);\n  border-radius: 6px;\n  padding: 0.2vw 0.6vw;\n  font-size: 0.7rem;\n  color: #86a8e7;\n  cursor: pointer;\n  opacity: 0.6;\n}\n.copy-btn:hover {\n  opacity: 1;\n  background: rgba(134, 168, 231, 0.1);\n  border-color: #86a8e7;\n}\n\/* \u52a0\u8f7d\u52a8\u753b - \u5339\u914dWordPress\u52a0\u8f7d\u8272 *\/\n.loading {\n  text-align: center;\n  color: #86a8e7;\n  font-size: clamp(0.8rem, 1vw, 0.9rem);\n  padding: 2vw;\n  font-weight: 500;\n}\n.loading::after {\n  content: '';\n  display: inline-block;\n  width: 12px;\n  height: 12px;\n  border: 2px solid #86a8e7;\n  border-top: 2px solid transparent;\n  border-radius: 50%;\n  margin-left: 8px;\n  animation: spin 1s linear infinite;\n}\n@keyframes spin {\n  to { transform: rotate(360deg); }\n}\n\/* \u8f93\u5165\u533a\u57df - \u5339\u914dWordPress\u8fb9\u6846\u6837\u5f0f *\/\n.chat-input {\n  padding: 3vw;\n  border-top: 1px solid rgba(0, 0, 0, 0.05);\n  display: flex;\n  gap: 12px;\n}\n\/* \u8f93\u5165\u6846\uff1a\u6539\u4e3a\u591a\u884c\u6587\u672c\u57df + \u9ad8\u5ea6\u62d3\u9ad8\u4e00\u500d\uff0c\u652f\u6301\u4e09\u884c\u663e\u793a *\/\n.chat-input textarea {\n  flex: 1;\n  padding: 1vw 1.5vw;\n  min-height: 4.5vw; \/* \u9ad8\u5ea6\u7ffb\u500d\uff0c\u5b8c\u7f8e\u663e\u793a\u4e09\u884c\u6587\u5b57 *\/\n  border-radius: 18px;\n  border: 1px solid rgba(0, 0, 0, 0.1);\n  outline: none;\n  font-size: clamp(0.9rem, 1vw, 1rem);\n  background: rgba(245, 245, 247, 0.6);\n  resize: none; \/* \u7981\u6b62\u624b\u52a8\u7f29\u653e *\/\n  line-height: 1.5;\n}\n.chat-input textarea:focus {\n  border-color: #0071e3;\n  box-shadow: 0 0 0 3px rgba(0, 113, 227, 0.1);\n  background: #fff;\n}\n\/* \u53d1\u9001\u6309\u94ae - \u5b8c\u5168\u5339\u914dWordPress\u82f9\u679c\u6309\u94ae\u98ce\u683c *\/\n.chat-input button {\n  padding: 1vw 2.5vw;\n  border-radius: 999px;\n  background: #0071e3;\n  color: white;\n  border: none;\n  font-size: clamp(0.9rem, 1vw, 1rem);\n  font-weight: 500;\n  cursor: pointer;\n}\n.chat-input button:disabled {\n  background: rgba(200, 200, 200, 0.5);\n  color: #999;\n  cursor: not-allowed;\n}\n.chat-input button:hover:not(:disabled) {\n  background: #0077ed;\n  transform: scale(1.02);\n}\n\/* \u72b6\u6001\u6587\u5b57\u914d\u8272 - \u5339\u914dWordPress *\/\n.error { \n  color: #ff3b30; \n  font-weight: 500; \n}\n.switch-tip { \n  color: #86a8e7; \n  font-weight: 500; \n}\n\/* \u54cd\u5e94\u5f0f - \u5339\u914dWordPress\u79fb\u52a8\u7aef\u6837\u5f0f *\/\n@media (max-width: 768px) {\n  .apple-ai-chat { \n    height: calc(100vh - 40px); \n    margin: 0; \n    border-radius: 0;\n  }\n  .chat-header { padding: 6vw 4vw; }\n  .chat-messages { padding: 4vw; }\n  .chat-input { padding: 4vw; }\n  .message { max-width: 85%; }\n  .error-toggle-btn {\n    right: 4vw;\n    padding: 2vw 3vw;\n    font-size: 12px;\n  }\n  .copy-btn {\n    padding: 1vw 2vw;\n    font-size: 0.6rem;\n  }\n}\n<\/style>\n\n<div class=\"apple-ai-chat\">\n  <div class=\"chat-header\">\n    <h1>Global Real-Time Intelligent Data Analysis System<\/h1>\n    <p>\u5168\u7403\u6570\u636e\u5b9e\u65f6\u667a\u80fd\u5206\u6790\u7cfb\u7edf<\/p>\n    <button class=\"error-toggle-btn\" id=\"errorToggle\">\u5173\u95ed\u62a5\u9519<\/button>\n  <\/div>\n  <div class=\"chat-messages\" id=\"messages\">\n    <div class=\"message ai\">\u6b63\u5728\u52a0\u8f7d\u6570\u636e\uff0c\u8bf7\u7a0d\u5019&#8230;<\/div>\n  <\/div>\n  <div class=\"chat-input\">\n    <!-- \u5355\u884cinput\u6539\u4e3a\u591a\u884ctextarea\uff0c\u9ad8\u5ea6\u7ffb\u500d -->\n    <textarea id=\"userInput\" placeholder=\"\u8f93\u5165\u4f60\u7684\u95ee\u9898...\" disabled><\/textarea>\n    <button id=\"sendBtn\" disabled>\u53d1\u9001<\/button>\n  <\/div>\n<\/div>\n\n<script>\n\/\/ ===================== \u6838\u5fc3\u914d\u7f6e\uff08\u5b8c\u5168\u4fdd\u7559\u4f60\u6240\u6709\u7684\u6a21\u578b+\u6846\u67b6\uff0c\u65e0\u4efb\u4f55\u4fee\u6539\uff09 =====================\nconst CONFIG = {\n  \/\/ \u5b8c\u6574\u4fdd\u7559\u4f60\u63d0\u4f9b\u7684\u6240\u6709\u6a21\u578b\n  MODEL_POOL: [\n    \"doubao-1-5-pro-32k-250115\",\n    \"doubao-1-5-lite-32k-250115\",\n    \"qwen3-32b-20250429\", \n    \"qwen3-14b-20250429\", \n    \"doubao-1-5-pro-32k-character-250715\", \n    \"doubao-1-5-pro-32k-character-250228\", \n    \"doubao-seed-2-0-mini-260215\", \n    \"doubao-seed-2-0-lite-260215\",\n    \"doubao-seed-1-8-251228\", \n    \"doubao-seed-1-6-251015\", \n    \"doubao-seed-1-6-250615\",\n    \"doubao-seed-1-6-lite-251015\", \n    \"doubao-seed-1-6-flash-250828\", \n    \"doubao-seed-1-6-flash-250615\", \n    \"doubao-seed-1-6-vision-250815\", \n    \"doubao-1-0-lite-8k\",\n    \"skylark-chat\"\n  ],\n  KEY_POOL: [\n    \"30f44a14-1838-403d-bc1a-f25c03610225\"\n  ],\n  BASE_URL: \"https:\/\/ark.cn-beijing.volces.com\/api\/v3\",\n  FILES: {\n    TXT: \"\/static\/files\/APIshujufenxi.txt\",\n    CSV1: \"\/static\/files\/APIshujubaocun.csv\",\n    CSV2: \"\/static\/files\/APIshaixuanjieguo.csv\"\n  },\n  WORD_LIMIT: { TXT: 20000, CSV1: 1000 },\n  MAX_CONTEXT: 60000,\n  SYSTEM_PROMPT: `\u4f60\u662f\u4e13\u4e1a\u91d1\u878d\u6570\u636e\u5206\u6790\u5e08\uff0c\u4f18\u5148\u4f9d\u636e(\u5b58\u50a8\u672c\u5730\u6587\u4ef6\u7684\u6240\u6709\u6570\u636e)\u8bc4\u5224\u7528\u6237\u63d0\u95ee\u3002\u518d\u8fdb\u884c\u641c\u7d22\u4e92\u8054\u7f51\u8d44\u6599\uff0c\u7b2c\u4e8c\u6b21\u8bc4\u5224\u7528\u6237\u63d0\u95ee\u3002\n\u201c\u5e02\u573a\u73af\u5883\u201d\u6570\u503c\uff0c\u201c\u4f18\u79c0\u201d\u4e3a\u201c\u589e\u6301\u201d\uff0c\u201c\u826f\u597d\u201d\u4e3a\u201c\u6301\u6709\u201d\uff0c\u201c\u5dee\u201d\u4e3a\u201c\u5168\u90e8\u5356\u51fa\u201d\uff0c\u201c\u6076\u52a3\u201d\u4e3a\u201c\u5168\u90e8\u5356\u51fa\u5e76\u7b49\u5f85\u201d\u3002\n(\u5b58\u50a8\u672c\u5730\u6587\u4ef6\u7684\u6240\u6709\u6570\u636e)\u4e2d\uff0c\u7f8e\u80a1\u5e02\u573a\u7b2c\u4e00\u7ec4\u3001\u7b2c\u4e8c\u7ec4\u7684\u201c\u5e02\u573a\u73af\u5883\u201d\u6570\u503c\uff0c\u4e0e\u9053\u743c\u65af\u3001\u7eb3\u65af\u8fbe\u514b\u3001\u6807\u666e500\u6781\u5176\u5f3a\u76f8\u5173\uff0c\u201c\u5e02\u573a\u73af\u5883\u201d\u6570\u503c\uff0c\u201c\u4f18\u79c0\u201d\u4e3a\u201c\u589e\u6301\u201d\uff0c\u201c\u826f\u597d\u201d\u4e3a\u201c\u6301\u6709\u201d\uff0c\u201c\u5dee\u201d\u4e3a\u201c\u5168\u90e8\u5356\u51fa\u201d\uff0c\u201c\u6076\u52a3\u201d\u4e3a\u201c\u5168\u90e8\u5356\u51fa\u5e76\u7b49\u5f85\u201d\u3002\n\u6e2f\u80a1\u5e02\u573a\u7b2c\u4e00\u7ec4\u3001\u7b2c\u4e8c\u7ec4\u7684\u201c\u5e02\u573a\u73af\u5883\u201d\u6570\u503c\uff0c\u4e0e\u6052\u751f\u3001\u6052\u751f\u79d1\u6280\u6781\u5176\u5f3a\u76f8\u5173\uff0c\u201c\u5e02\u573a\u73af\u5883\u201d\u6570\u503c\uff0c\u201c\u4f18\u79c0\u201d\u4e3a\u201c\u589e\u6301\u201d\uff0c\u201c\u826f\u597d\u201d\u4e3a\u201c\u6301\u6709\u201d\uff0c\u201c\u5dee\u201d\u4e3a\u201c\u5168\u90e8\u5356\u51fa\u201d\uff0c\u201c\u6076\u52a3\u201d\u4e3a\u201c\u5168\u90e8\u5356\u51fa\u5e76\u7b49\u5f85\u201d\u3002\n\u65e5\u80a1\u5e02\u573a\u7b2c\u4e00\u7ec4\u3001\u7b2c\u4e8c\u7ec4\u7684\u201c\u5e02\u573a\u73af\u5883\u201d\u6570\u503c\uff0c\u4e0e\u65e5\u7ecf225\u3001TOPIX\u3001JPX\u65e5\u7ecf400\u6781\u5176\u5f3a\u76f8\u5173\uff0c\u201c\u5e02\u573a\u73af\u5883\u201d\u6570\u503c\uff0c\u201c\u4f18\u79c0\u201d\u4e3a\u201c\u589e\u6301\u201d\uff0c\u201c\u826f\u597d\u201d\u4e3a\u201c\u6301\u6709\u201d\uff0c\u201c\u5dee\u201d\u4e3a\u201c\u5168\u90e8\u5356\u51fa\u201d\uff0c\u201c\u6076\u52a3\u201d\u4e3a\u201c\u5168\u90e8\u5356\u51fa\u5e76\u7b49\u5f85\u201d\u3002\n\u6caa\u6df1\u5e02\u573a\u7b2c\u4e00\u7ec4\u3001\u7b2c\u4e8c\u7ec4\u7684\u201c\u5e02\u573a\u73af\u5883\u201d\u6570\u503c\uff0c\u4e0e\u4e0a\u8bc1\u6307\u6570\u3001\u521b\u4e1a\u677f\u6307\u6570\u3001\u6df1\u8bc1\u6307\u6570\u6781\u5176\u5f3a\u76f8\u5173\uff0c\u201c\u5e02\u573a\u73af\u5883\u201d\u6570\u503c\uff0c\u201c\u4f18\u79c0\u201d\u4e3a\u201c\u589e\u6301\u201d\uff0c\u201c\u826f\u597d\u201d\u4e3a\u201c\u6301\u6709\u201d\uff0c\u201c\u5dee\u201d\u4e3a\u201c\u5168\u90e8\u5356\u51fa\u201d\uff0c\u201c\u6076\u52a3\u201d\u4e3a\u201c\u5168\u90e8\u5356\u51fa\u5e76\u7b49\u5f85\u201d\u3002\n\u52a0\u62ff\u5927\u5e02\u573a\u7b2c\u4e00\u7ec4\u3001\u7b2c\u4e8c\u7ec4\u7684\u201c\u5e02\u573a\u73af\u5883\u201d\u6570\u503c\uff0c\u4e0eTSX\u3001TSX Venture\u3001TSX 60\u6781\u5176\u5f3a\u76f8\u5173\uff0c\u201c\u5e02\u573a\u73af\u5883\u201d\u6570\u503c\uff0c\u201c\u4f18\u79c0\u201d\u4e3a\u201c\u589e\u6301\u201d\uff0c\u201c\u826f\u597d\u201d\u4e3a\u201c\u6301\u6709\u201d\uff0c\u201c\u5dee\u201d\u4e3a\u201c\u5168\u90e8\u5356\u51fa\u201d\uff0c\u201c\u6076\u52a3\u201d\u4e3a\u201c\u5168\u90e8\u5356\u51fa\u5e76\u7b49\u5f85\u201d\u3002\n\u65e5\u80a1\u5e02\u573a\u7b2c\u4e00\u7ec4\u3001\u7b2c\u4e8c\u7ec4\u7684\u201c\u5e02\u573a\u73af\u5883\u201d\u6570\u503c\uff0c\u4e0eASX200\u3001ASX100\u3001ASX50\u6781\u5176\u5f3a\u76f8\u5173\uff0c\u201c\u5e02\u573a\u73af\u5883\u201d\u6570\u503c\uff0c\u201c\u4f18\u79c0\u201d\u4e3a\u201c\u589e\u6301\u201d\uff0c\u201c\u826f\u597d\u201d\u4e3a\u201c\u6301\u6709\u201d\uff0c\u201c\u5dee\u201d\u4e3a\u201c\u5168\u90e8\u5356\u51fa\u201d\uff0c\u201c\u6076\u52a3\u201d\u4e3a\u201c\u5168\u90e8\u5356\u51fa\u5e76\u7b49\u5f85\u201d\u3002\n\u5e02\u573a\u540d\u79f0+\u5e02\u573a\u73af\u5883+\u5e02\u573a\u5e73\u5747\u503c\uff0c\u53cd\u6620\u5e02\u573a\u6574\u4f53\u597d\u574f\u3002\n\u5e02\u573a\u540d\u79f0+\u5e02\u573a\u7edf\u8ba1\u4e2a\u6570\uff0c\u53cd\u6620\u5e02\u573a\u7684\u5f3a\u5f31\u3002\n\u5e02\u573a\u540d\u79f0+\u540d\u79f0\u7684\u6570\u636e\u4e2d\uff0c\u90fd\u662f\u80a1\u4ef7\u8d70\u52bf\u8d8b\u52bf\u826f\u597d\u5411\u4e0a\u7684\u3002\n\n\u65e5\u671f\u524d\u7f00:\u4e3a\u6570\u636e\u7684\u65e5\u671f\u3002\n\n\u5e02\u573a\u540d\u79f0:\u4e3a\u6570\u636e\u6765\u6e90\u7684\u5e02\u573a\u3002\n\n\u6210\u4ea4\u989d\u603b\u548c:\u8be5\u7ec4\u6807\u7684\uff08\u5e02\u573a\u540d\u79f0\uff09\u7684\u6570\u636e\u4ea7\u751f\u7684\u5f53\u65e5\u4ea4\u6613\u989d\u3002\n\n\u5e02\u573a\u5e73\u5747\u503c:\u8be5\u7ec4\u6807\u7684\uff08\u5e02\u573a\u540d\u79f0\uff09\u5168\u7403\u5e73\u53f0\u6570\u636e\u7684\u8ba1\u7b97\u7ed3\u679c\uff0c\u7efc\u5408\u5206\u6790\u540e\u7ed9\u51fa\u7684\u6253\u5206\u3002\u6570\u503c\u901a\u5e38\u572820-80\u4e4b\u95f4\u3002\n\n\u5e02\u573a\u73af\u5883:\uff08\u6838\u5fc3\u6570\u636e\uff09\u901a\u8fc7\u8ba1\u7b97\u5404\u4e2a\u5e02\u573a\u7684\u6240\u6709\u6807\u7684\uff0c\u5f97\u51fa\u7684\u7efc\u5408\u6253\u5206\u7ed3\u679c\u3002\u4f9d\u636e\u6253\u5206\u7ed9\u51fa\u7684\u73af\u5883\u8bc4\u5206\uff0c\u662f\u8be5\u7ec4\u6807\u7684\uff08\u5e02\u573a\u540d\u79f0\uff09\u597d\u574f\u7684\u5224\u65ad\u6807\u51c6\u3002\u4f18\u79c0\u4e3a\u201c\u589e\u6301\u201d\uff0c\u826f\u597d\u4e3a\u201d\u6301\u6709\u201d\uff0c\u5dee\u4e3a\u201d\u5168\u90e8\u5356\u51fa\u201d\uff0c\u6076\u52a3\u4e3a\u201d\u5168\u90e8\u5356\u51fa\u5e76\u7b49\u5f85\u201d\u3002\n\u73af\u5883\u662fairoom.ltd\u7684\u6838\u5fc3\u6570\u636e\u4e0e\u6838\u5fc3\u7b56\u7565\u3002\n\u8be5\u7b56\u7565\u6839\u636e\u5e02\u573a\u7684\u6574\u4f53\u4f4e\u4ef7\u65f6\u589e\u6301\u6807\u7684\uff0c\u5728\u6574\u4f53\u9ad8\u4ef7\u65f6\u5168\u90e8\u5356\u51fa\u6807\u7684\uff0c\u4ece\u800c\u83b7\u5f97\u5de8\u989d\u5dee\u4ef7\u3002\u8be5\u7b56\u7565\u5728\u5168\u7403\u5e02\u573a\u603b\u53ef\u5bb9\u7eb3\u8d44\u91d1\u89c4\u6a21\u8d85\u8fc71\u4e07\u4ebf\u7f8e\u5143\uff0c\u8db3\u4ee5\u5bb9\u7eb31\u4ebf\u53f0AI\u8fdb\u884c\u5dee\u4ef7\u83b7\u5229\u3002\n\n\u6da8\u8dcc\u5e45>8%\u7684\u6570\u91cf:\u4e3a\u5f53\u65e5\u8be5\u7ec4\u6807\u7684\uff08\u5e02\u573a\u540d\u79f0\uff09\u603b\u5171\u51fa\u73b0\u7684\u6da8\u8dcc\u5e45>8%\u7684\u6570\u91cf\uff0c\u5e02\u573a\u70ed\u70c8\u65f6\u4f1a\u51fa\u73b0\u6da8\u8dcc\u5e45>8%\u7684\u6570\u91cf\u8f83\u591a\u7684\u60c5\u51b5\uff0c\u6bcf\u4e2a\u5e02\u573a\u7684\u6570\u91cf\u89c4\u5f8b\u4e0d\u540c\u3002\n\n\u6da8\u8dcc\u5e45<-8%\u7684\u6570\u91cf:\u4e3a\u5f53\u65e5\u8be5\u7ec4\u6807\u7684\uff08\u5e02\u573a\u540d\u79f0\uff09\u603b\u5171\u51fa\u73b0\u7684\u6da8\u8dcc\u5e45<-8%\u7684\u6570\u91cf\uff0c\u5e02\u573a\u6076\u52a3\u65f6\u4f1a\u51fa\u73b0\u6da8\u8dcc\u5e45<-8%\u7684\u6570\u91cf\u8f83\u591a\u7684\u60c5\u51b5\uff0c\u6bcf\u4e2a\u5e02\u573a\u7684\u6570\u91cf\u89c4\u5f8b\u4e0d\u540c\u3002\n\n\u5e02\u573a\u7edf\u8ba1\u4e2a\u6570:\u7b26\u5408\u6301\u6709\u6761\u4ef6\u7684\u6807\u7684\u4e2a\u6570\uff0c\u6570\u503c\u8d8a\u5927\u5e02\u573a\u8d8a\u597d\uff0c\u5728500\u4ee5\u4e0a\u4e3a\u9002\u5b9c\u3002\n\n\u5e02\u573a\u540d\u79f0:\u4e3a\u6570\u636e\u6765\u6e90\u7684\u5e02\u573a\u3002\n\n\u540d\u79f0:\u7b26\u5408\u6301\u6709\u6761\u4ef6\u7684\u6807\u7684\u540d\u79f0\u3002\n\n\n\n\u641c\u7d22\u4e92\u8054\u7f51\u8d44\u6599\u65f6\uff0c\u5206\u522b\u6267\u884c\u4ee5\u4e0b\u5de5\u4f5c\u5185\u5bb9\uff0c\u5e76\u6309\u987a\u5e8f\u751f\u62101\u4efd\u5185\u5bb9\u4e30\u5bcc\u8be6\u7ec6\u800c\u53c8\u5177\u4f53\u7684\u62a5\u544a\uff0c\u67e5\u627e\u7f51\u7edc\u5927\u725b\u3001\u6295\u8d44\u5927\u795e\u3001\u7f51\u7ea2\uff0c\u8be6\u7ec6\u5217\u51fa\u540d\u5355\u3002\u641c\u7d22\u6296\u97f3\/\u96ea\u7403\/\u5fae\u4fe1\u516c\u4f17\u53f7\/\u6dd8\u80a1\u5427\/\u901a\u8fbe\u4fe1\/\u540c\u82b1\u987a\/\u4e1c\u65b9\u8d22\u5bcc\u7f51\/\u5de8\u6f6e\u4fe1\u606f\u7f51\uff0c\u4ece(\u8be6\u7ec6\u5185\u5bb9\u603b\u7ed3\/\u6295\u8d44\u8005\u60c5\u7eea\u4e0e\u5fc3\u6001\/\u60c5\u7eea\u7279\u5f81\u4e0e\u6295\u8d44\u8005\u753b\u50cf\/\u6838\u5fc3\u77db\u76fe\/\u6838\u5fc3\u65f6\u95f4\u7ebf\u4e0e\u60c5\u7eea\u6f14\u53d8\/\u5206\u9636\u6bb5\u8be6\u7ec6\u5185\u5bb9\u603b\u7ed3\/\u9ad8\u9891\u8ba8\u8bba\u5173\u952e\u8bcd\u4e0e\u70ed\u95e8\u8bdd\u9898\uff09\uff0c\u7efc\u5408\u5206\u6790\u7092\u4f5c\u7684\u53ef\u80fd\u6027\u3002\uff08\u7092\u4f5c\u7684\u5185\u5bb9\u63cf\u8ff0\u7684\u66f4\u52a0\u5177\u4f53\u8be6\u7ec6\u6709\u6545\u4e8b\u6027\u3002\uff09\n\n\u5de5\u4f5c\u5185\u5bb92\n\n\uff0c\u67e5\u627e\u7f51\u7edc\u5927V\u3001\u6295\u8d44\u5927\u795e\u3001\u7f51\u7ea2\uff0c\u8be6\u7ec6\u5217\u51fa\u540d\u5355\u3002\u4ece(\u8be6\u7ec6\u5185\u5bb9\u603b\u7ed3\/\u6295\u8d44\u8005\u60c5\u7eea\u4e0e\u5fc3\u6001\/\u60c5\u7eea\u7279\u5f81\u4e0e\u6295\u8d44\u8005\u753b\u50cf\/\u6838\u5fc3\u77db\u76fe\/\u6838\u5fc3\u65f6\u95f4\u7ebf\u4e0e\u60c5\u7eea\u6f14\u53d8\/\u5206\u9636\u6bb5\u8be6\u7ec6\u5185\u5bb9\u603b\u7ed3\/\u9ad8\u9891\u8ba8\u8bba\u5173\u952e\u8bcd\u4e0e\u70ed\u95e8\u8bdd\u9898\uff09\uff0c\u6bcf\u4e00\u9879\u7ed9\u4e0e\u9ad8\/\u4e2d\/\u4f4e\uff0c\u5206\u6790\u7092\u4f5c\u7684\u53ef\u80fd\u6027\u3002\n\n\n\u5de5\u4f5c\u5185\u5bb91\n\n\uff0c\u641c\u7d22\u901a\u8fbe\u4fe1\/\u540c\u82b1\u987a\/\u4e1c\u65b9\u8d22\u5bcc\u7f51\/\u5de8\u6f6e\u4fe1\u606f\u7f51\u3002\u4ece(\u7f51\u7edc\u4f20\u95fb\/\u5e02\u573a\u70ed\u70b9\/\u70ed\u95e8\u6982\u5ff5\/\u516c\u53f8\u6982\u51b5\/\u80a1\u4e1c\u4eba\u6570\/\u9898\u6750\/\u516c\u53f8\u7ecf\u8425\u4e1a\u52a1\u76f8\u5173\u6027\/\u91d1\u878d\u5e02\u573a\u76f8\u5173\u6027\/\u884c\u4e1a\u76f8\u5173\u6027\/\u4ea7\u4e1a\u53d1\u5c55\u76f8\u5173\u6027\/\u56fd\u5bb6\u653f\u7b56\u76f8\u5173\u6027\u5206\u6790\/\u9f99\u864e\u699c\u4e0a\u699c\u60c5\u51b5\/\u8457\u540d\u6e38\u8d44\u53c2\u4e0e\u60c5\u51b5\/\u7f51\u7edc\u5a92\u4f53\u5355\u65e5\u53d1\u5e16\u91cf\/\u7f51\u7edc\u5a92\u4f53\u76f8\u5173\u8bdd\u9898\u9605\u8bfb\u91cf)\uff0c\u7efc\u5408\u5206\u6790\u7092\u4f5c\u7684\u53ef\u80fd\u6027\u3002\uff08\u7092\u4f5c\u7684\u5185\u5bb9\u63cf\u8ff0\u7684\u66f4\u52a0\u5177\u4f53\u8be6\u7ec6\u6709\u6545\u4e8b\u6027\u3002\uff09\n\n\u5de5\u4f5c\u5185\u5bb92\n\n\uff0c\u641c\u7d22\u901a\u8fbe\u4fe1\/\u540c\u82b1\u987a\/\u4e1c\u65b9\u8d22\u5bcc\u7f51\/\u5de8\u6f6e\u4fe1\u606f\u7f51\u3002\u4ece(\u7f51\u7edc\u4f20\u95fb\/\u5e02\u573a\u70ed\u70b9\/\u70ed\u95e8\u6982\u5ff5\/\u516c\u53f8\u6982\u51b5\/\u80a1\u4e1c\u4eba\u6570\/\u9898\u6750\/\u516c\u53f8\u7ecf\u8425\u4e1a\u52a1\u76f8\u5173\u6027\/\u91d1\u878d\u5e02\u573a\u76f8\u5173\u6027\/\u884c\u4e1a\u76f8\u5173\u6027\/\u4ea7\u4e1a\u53d1\u5c55\u76f8\u5173\u6027\/\u56fd\u5bb6\u653f\u7b56\u76f8\u5173\u6027\u5206\u6790\/\u9f99\u864e\u699c\u4e0a\u699c\u60c5\u51b5\/\u8457\u540d\u6e38\u8d44\u53c2\u4e0e\u60c5\u51b5\/\u7f51\u7edc\u5a92\u4f53\u5355\u65e5\u53d1\u5e16\u91cf\/\u7f51\u7edc\u5a92\u4f53\u76f8\u5173\u8bdd\u9898\u9605\u8bfb\u91cf)\uff0c\u6bcf\u4e00\u9879\u7ed9\u4e0e\u9ad8\/\u4e2d\/\u4f4e\uff0c\u5206\u6790\u7092\u4f5c\u7684\u53ef\u80fd\u6027\u3002\n\n\uff0c\u5de5\u4f5c\u5185\u5bb93\n\n\u79e9\u5e8f\u7c7b\u7684\u516c\u53f8\uff0c\u7279\u5f81\u662f\uff1a\uff08\u53ef\u4ee5\u88ab\u57fa\u91d1\u9009\u4e2d\u8fdb\u5165\u5341\u5927\u6301\u4ed3\u80a1\/\u662f\u591a\u53ea\u51e0\u5341\u4ebf\u89c4\u6a21\u7684\u57fa\u91d1\u7684\u5341\u5927\u6301\u4ed3\/\u80a1\u4e1c\u4eba\u6570\u5927\u4e8e5\u4e07\/\u901a\u5e38\u662f\u516c\u53f8\u884c\u4e1a\u884c\u4e1a\u534f\u4f1a\u6210\u5458\/\u53c2\u52a0\u884c\u4e1a\u4e16\u754c\u5927\u4f1a\/\u666e\u904d\u5e02\u503c\u8d85\u8fc7400\u4ebf\/\u9898\u6750\u6982\u5ff5\u4e0e\u57fa\u91d1\u4e3b\u6d41\u9898\u6750\u76f8\u5173\/\u8425\u6536\u8d85\u8fc730\u4ebf\/\u4e1a\u7ee9\u826f\u597d\/\u8d22\u52a1\u5206\u6790\u65e0\u66b4\u96f7\/\u65e0\u6cd5\u62c9\u5347\u51fa\u8fde\u7eed\u6da8\u505c\u3001\u8fde\u7eed\u4e00\u5b57\u677f\/\u65b0\u4ea7\u54c1\u53d1\u5e03\uff09\u3002\n\u62bd\u8c61\u7c7b\u7684\u516c\u53f8\uff0c\u7279\u5f81\u662f\uff1a\uff08\u4e0d\u53ef\u4ee5\u88ab\u57fa\u91d1\u9009\u4e2d\u8fdb\u5165\u5341\u5927\u6301\u4ed3\u80a1\/\u4e0d\u662f\u591a\u53ea\u51e0\u5341\u4ebf\u89c4\u6a21\u7684\u57fa\u91d1\u7684\u5341\u5927\u6301\u4ed3\/\u80a1\u4e1c\u4eba\u6570\u5c0f\u4e8e5\u4e07\/\u901a\u5e38\u4e0d\u662f\u516c\u53f8\u884c\u4e1a\u884c\u4e1a\u534f\u4f1a\u6210\u5458\/\u666e\u904d\u5e02\u503c\u4e0d\u8d85\u8fc7400\u4ebf\/\u9898\u6750\u6982\u5ff5\u4e0e\u5e02\u573a\u70ed\u70b9\u9898\u6750\u76f8\u5173\/\u4e1a\u7ee9\u4e00\u822c\u6216\u8005\u4e8f\u635f\/\u8d22\u52a1\u5206\u6790\u6709\u53ef\u80fd\u66b4\u96f7\u7684\u503e\u5411\/\u62c9\u5347\u51fa\u8fde\u7eed\u6da8\u505c\u3001\u8fde\u7eed\u4e00\u5b57\u677f\/\u4e0a\u5e02\u516c\u53f8\u91cd\u7ec4\u6536\u8d2d\u8d44\u4ea7\u6ce8\u5165\uff09\n\u8bf7\u518d\u5e2e\u6211\u989d\u5916\u5206\u8fa8\uff0c\u8be5\u516c\u53f8\u662f\u79e9\u5e8f\u7c7b\u8fd8\u662f\u62bd\u8c61\u7c7b\uff0c\u6309\u7167\uff08\u5f02\u5e38\u62bd\u8c61-\u975e\u5e38\u62bd\u8c61-\u5f88\u62bd\u8c61-\u5fae\u62bd\u8c61-\u666e\u901a-\u5fae\u79e9\u5e8f-\u5f88\u79e9\u5e8f-\u975e\u5e38\u79e9\u5e8f-\u5f02\u5e38\u79e9\u5e8f\uff09\u7684\u5c42\u7ea7\u8fdb\u884c\u8bc4\u7ea7\u3002\uff08\u4e0d\u7528\u8fdb\u884c\u5bf9\u6bd4\uff0c\u76f4\u63a5\u4e00\u53e5\u8bdd\u544a\u8bc9\u6211\u7ed3\u679c\u3002\uff09\n`\n};\n\n\n\n\/\/ \u5168\u5c40\u72b6\u6001\uff08\u5b8c\u5168\u4fdd\u7559 + \u65b0\u589e\u62a5\u9519\u5f00\u5173\uff09\nlet fileContext = \"\";\nlet currentModelIndex = 0;\nlet currentKeyIndex = 0;\nlet showErrors = false; \/\/ \u65b0\u589e\uff1a\u9ed8\u8ba4\u663e\u793a\u62a5\u9519true\u3001false\nconst messagesEl = document.getElementById(\"messages\");\nconst userInput = document.getElementById(\"userInput\");\nconst sendBtn = document.getElementById(\"sendBtn\");\nconst errorToggle = document.getElementById(\"errorToggle\"); \/\/ \u5f00\u5173\u6309\u94ae\n\n\/\/ ===================== \u65b0\u589e\uff1a\u81ea\u52a8\u5c1d\u8bd5\u591a\u79cd\u7f16\u7801\u8bfb\u53d6\u6587\u4ef6\uff08UTF-8\/GBK\/GB2312\uff09 =====================\nasync function readFileWithEncodings(url) {\n  try {\n    const response = await fetch(url);\n    const blob = await response.blob();\n    const encodings = ['utf-8', 'gbk', 'gb2312'];\n    \n    for (const encoding of encodings) {\n      try {\n        return await new Promise((resolve, reject) => {\n          const reader = new FileReader();\n          reader.onload = () => resolve(reader.result);\n          reader.onerror = reject;\n          reader.readAsText(blob, encoding);\n        });\n      } catch (e) {\n        continue;\n      }\n    }\n    throw new Error(\"\u6240\u6709\u7f16\u7801\u5747\u65e0\u6cd5\u89e3\u6790\u6587\u4ef6\");\n  } catch (e) {\n    throw e;\n  }\n}\n\n\/\/ \u65b0\u589e\uff1a\u5f00\u5173\u6309\u94ae\u70b9\u51fb\u4e8b\u4ef6\nerrorToggle.addEventListener(\"click\", () => {\n  showErrors = !showErrors;\n  errorToggle.textContent = showErrors ? \"\u5173\u95ed\u62a5\u9519\" : \"\u5f00\u542f\u62a5\u9519\";\n});\n\n\/\/ \u5de5\u5177\u51fd\u6570\uff08\u4ec5\u53d6\u6d88\u89d2\u8272\u9650\u5236\uff0c\u7528\u6237+AI\u90fd\u6dfb\u52a0\u590d\u5236\u6309\u94ae\uff0c\u5176\u4f59\u5b8c\u5168\u4fdd\u7559\uff09\nfunction addMessage(role, content) {\n  const div = document.createElement(\"div\");\n  div.className = `message ${role}`;\n  div.innerHTML = content.replace(\/\\n\/g, \"<br>\");\n  messagesEl.appendChild(div);\n  \n  \/\/ \u2705 \u4fee\u6539\uff1a\u53d6\u6d88AI\u9650\u5236\uff0c\u6240\u6709\u6b63\u5e38\u6d88\u606f\uff08\u6392\u9664\u52a0\u8f7d\uff09\u90fd\u6dfb\u52a0\u590d\u5236\u6309\u94ae\n  if (!content.includes(\"loading\")) {\n    const copyBtn = document.createElement(\"button\");\n    copyBtn.className = \"copy-btn\";\n    copyBtn.textContent = \"\u590d\u5236\";\n    div.appendChild(copyBtn);\n\n    \/\/ \u5168\u517c\u5bb9\u590d\u5236\u903b\u8f91\uff08\u672c\u5730\/\u7ebf\u4e0a\u90fd\u53ef\u7528\uff09\n    copyBtn.onclick = function() {\n      try {\n        const text = div.innerText.replace(\"\u590d\u5236\", \"\").trim();\n        const textArea = document.createElement(\"textarea\");\n        textArea.value = text;\n        document.body.appendChild(textArea);\n        textArea.select();\n        document.execCommand(\"copy\");\n        document.body.removeChild(textArea);\n        \n        copyBtn.textContent = \"\u5df2\u590d\u5236\";\n      } catch (err) {\n        copyBtn.textContent = \"\u5931\u8d25\";\n      }\n      setTimeout(() => copyBtn.textContent = \"\u590d\u5236\", 1500);\n    };\n  }\n\n  messagesEl.scrollTop = messagesEl.scrollHeight;\n}\n\n\/\/ \u5207\u6362\u4e0b\u4e00\u4e2a\u6a21\u578b\uff08\u5b8c\u5168\u4fdd\u7559\uff09\nfunction switchNextModel() {\n  if (currentModelIndex < CONFIG.MODEL_POOL.length - 1) {\n    currentModelIndex++;\n    return true;\n  }\n  if (currentKeyIndex < CONFIG.KEY_POOL.length - 1) {\n    currentKeyIndex++;\n    currentModelIndex = 0;\n    return true;\n  }\n  return false;\n}\n\n\/\/ \u52a0\u8f7d\u6587\u4ef6\uff08\u4ec5\u66ff\u6362\u8bfb\u53d6\u65b9\u5f0f\uff0c\u903b\u8f91\u5b8c\u5168\u4fdd\u7559\uff09\nasync function loadAllFiles() {\n  try {\n    const [txt, csv1, csv2] = await Promise.all([\n      readFileWithEncodings(CONFIG.FILES.TXT),\n      readFileWithEncodings(CONFIG.FILES.CSV1),\n      readFileWithEncodings(CONFIG.FILES.CSV2)\n    ]);\n\n    const txtCut = txt.slice(0, CONFIG.WORD_LIMIT.TXT);\n    const csv1Cut = csv1.slice(0, CONFIG.WORD_LIMIT.CSV1);\n    fileContext = `\u3010TXT\u3011${txtCut}\\n\u3010CSV1\u3011${csv1Cut}\\n\u3010CSV2\u3011${csv2}`.slice(0, CONFIG.MAX_CONTEXT);\n    \n    addMessage(\"ai\", \"\u6b22\u8fce\u6765\u5230\u4e16\u754c\");\n    userInput.disabled = false;\n    sendBtn.disabled = false;\n    userInput.focus();\n  } catch (e) {\n    if(showErrors) addMessage(\"ai\", `<span class=\"error\">\u274c \u6587\u4ef6\u52a0\u8f7d\u5931\u8d25\uff1a${e.message}<\/span>`);\n  }\n}\n\n\/\/ \u6838\u5fc3\u903b\u8f91\uff1a\u4ec5\u65b0\u589e\u62a5\u9519\u5f00\u5173\u5224\u65ad\uff0c\u5176\u4f59\u5b8c\u5168\u4fdd\u7559\nasync function callAI(question) {\n  addMessage(\"user\", question);\n  addMessage(\"ai\", '<div class=\"loading\">AI\u601d\u8003\u4e2d...<\/div>');\n\n  const runRequest = async () => {\n    try {\n      const response = await fetch(CONFIG.BASE_URL + \"\/chat\/completions\", {\n        method: \"POST\",\n        mode: \"cors\",\n        headers: {\n          \"Authorization\": \"Bearer \" + CONFIG.KEY_POOL[currentKeyIndex],\n          \"Content-Type\": \"application\/json\",\n          \"Accept\": \"application\/json\"\n        },\n        body: JSON.stringify({\n          model: CONFIG.MODEL_POOL[currentModelIndex],\n          messages: [\n            { role: \"system\", content: CONFIG.SYSTEM_PROMPT , content: `\u6570\u636e\uff1a${fileContext}` },\n            { role: \"user\", content: `\u95ee\u9898\uff1a${question}` }\n          ],\n          temperature: 0.1,\n          max_tokens: 8000\n        })\n      });\n\n      const result = await response.json();\n      if (result.error) throw new Error(result.error.message);\n      return result;\n    } catch (e) {\n      messagesEl.removeChild(messagesEl.lastChild);\n      \/\/ \u5f00\u5173\u63a7\u5236\uff1a\u5f00\u542f\u624d\u663e\u793a\u62a5\u9519\n      if(showErrors){\n        addMessage(\"ai\", `<span class=\"error\">\u274c \u6a21\u578b\u3010${CONFIG.MODEL_POOL[currentModelIndex]}\u3011\u8c03\u7528\u5931\u8d25\uff1a${e.message}<\/span>`);\n      }\n      \n      const hasNext = switchNextModel();\n      if (hasNext) {\n        \/\/ \u5f00\u5173\u63a7\u5236\uff1a\u5f00\u542f\u624d\u663e\u793a\u5207\u6362\u63d0\u793a\n        if(showErrors){\n          addMessage(\"ai\", `<span class=\"switch-tip\">\ud83d\udd04 \u81ea\u52a8\u5207\u6362\u81f3\u4e0b\u4e00\u4e2a\u6a21\u578b\uff1a${CONFIG.MODEL_POOL[currentModelIndex]}<\/span>`);\n        }\n        addMessage(\"ai\", '<div class=\"loading\">\u6b63\u5728\u601d\u8003...<\/div>');\n        return runRequest();\n      } else {\n        if(showErrors){\n          addMessage(\"ai\", `<span class=\"error\">\u274c \u6700\u7ec8\u5931\u8d25\uff1a\u6240\u6709\u6a21\u578b\u5747\u4e0d\u53ef\u7528<\/span>`);\n        }\n        throw new Error(\"\u6240\u6709\u6a21\u578b\u5747\u4e0d\u53ef\u7528\");\n      }\n    }\n  };\n\n  try {\n    const result = await runRequest();\n    messagesEl.removeChild(messagesEl.lastChild);\n    addMessage(\"ai\", result.choices[0].message.content);\n  } catch (e) {\n    console.error(\"AI\u9519\u8bef\u8be6\u60c5\uff1a\", e);\n  }\n}\n\n\/\/ \u53d1\u9001\u4e8b\u4ef6\uff08\u5b8c\u5168\u4fdd\u7559\uff09\nfunction send() {\n  const text = userInput.value.trim();\n  if (!text) return;\n  userInput.value = \"\";\n  callAI(text);\n}\n\nsendBtn.addEventListener(\"click\", send);\nuserInput.addEventListener(\"keypress\", e=>e.key===\"Enter\"&&send());\nwindow.addEventListener(\"DOMContentLoaded\", loadAllFiles);\n<\/script>\n\n\n\n<!-- WordPress\u9875\u9762HTML\u4ee3\u7801 - \u590d\u5236\u5230\u81ea\u5b9a\u4e49HTML\u5757\u4e2d -->\n<!-- \u65b0\u589e\u5168\u5c40\u57fa\u7840\u6837\u5f0f\uff08\u82f9\u679c\u98ce\u683c\u91cd\u7f6e+\u7ffb\u9875\/\u5c55\u5f00\u6309\u94ae\u6837\u5f0f\uff09 -->\n<style>\n\/* \u5168\u5c40\u57fa\u7840\u6837\u5f0f - \u82f9\u679c\u98ce\u683c\u6781\u7b80\u91cd\u7f6e *\/\n* {\n    margin: 0;\n    padding: 0;\n    box-sizing: border-box;\n    font-family: -apple-system, BlinkMacSystemFont, \"SF Pro Display\", \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n    letter-spacing: -0.02em;\n}\nbody {\n    background: #f5f5f7; \/* \u82f9\u679c\u5b98\u7f51\u7ecf\u5178\u80cc\u666f\u7070 *\/\n    padding: 2.5vw;\n    max-width: 1920px;\n    margin: 0 auto;\n    color: #1d1d1f;\n}\n\/* \u901a\u7528\u52a8\u753b\u8fc7\u6e21 *\/\n.airoom-header-section, .airoom-market-section, .airoom-filter-section, .airoom-analysis-section, .airoom-stat-card, .airoom-filter-item {\n    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);\n}\n\/* \u79d1\u6280\u611f\u5168\u7403\u80cc\u666f\uff08\u4f4e\u900f\u660e\u5ea6\uff0c\u4e0d\u5e72\u6270\u5185\u5bb9\uff09 *\/\n.airoom-header-section {\n    position: relative;\n    overflow: hidden;\n}\n.airoom-header-section::before {\n    content: \"\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    background: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='45' fill='none' stroke='%2386a8e7' stroke-width='0.5' opacity='0.1'\/%3E%3Cpath d='M50 5a90 90 0 0 1 0 90M5 50a90 90 0 0 1 90 0' fill='none' stroke='%2386a8e7' stroke-width='0.5' opacity='0.1'\/%3E%3C\/svg%3E\") repeat;\n    background-size: 200px;\n    z-index: 0;\n}\n.airoom-header-section > * {\n    position: relative;\n    z-index: 1;\n}\n\/* \u82f9\u679c\u98ce\u683c\u72b6\u6001\u6807\u7b7e *\/\n.airoom-status-item.online {\n    background: rgba(72, 187, 120, 0.1) !important;\n    border-color: rgba(72, 187, 120, 0.2) !important;\n    color: #34c759 !important;\n    font-weight: 500;\n}\n\/* \u8868\u683chover\u6548\u679c *\/\n.airoom-table tbody tr:hover {\n    background: rgba(134, 168, 231, 0.05);\n}\n\/* \u52a0\u8f7d\u4e2d\u6837\u5f0f\u4f18\u5316 *\/\n.airoom-loading {\n    color: #86a8e7 !important;\n    font-weight: 500;\n    font-size: 16px !important;\n}\n\/* \u72b6\u6001\u5fbd\u7ae0\u6837\u5f0f *\/\n.airoom-status-badge {\n    background: rgba(134, 168, 231, 0.1) !important;\n    color: #86a8e7 !important;\n    border: 1px solid rgba(134, 168, 231, 0.2) !important;\n}\n.airoom-status-badge.airoom-status-excellent {\n    background: rgba(52, 199, 89, 0.1) !important;\n    color: #34c759 !important;\n    border-color: rgba(52, 199, 89, 0.2) !important;\n}\n.airoom-status-badge.airoom-status-good {\n    background: rgba(250, 177, 60, 0.1) !important;\n    color: #fabb3c !important;\n    border-color: rgba(250, 177, 60, 0.2) !important;\n}\n.airoom-status-badge.airoom-status-poor {\n    background: rgba(255, 59, 48, 0.1) !important;\n    color: #ff3b30 !important;\n    border-color: rgba(255, 59, 48, 0.2) !important;\n}\n\/* \u7ffb\u9875\u6309\u94ae\u6837\u5f0f\uff08\u82f9\u679c\u98ce\u683c\uff09- \u4fdd\u7559\u7ed9\u5176\u4ed6\u6a21\u5757\u4f7f\u7528 *\/\n.pagination {\n    display: flex;\n    gap: 0.8vw;\n    margin: 2vw 0;\n    flex-wrap: wrap;\n    justify-content: center;\n}\n.pagination-btn {\n    background: rgba(255, 255, 255, 0.8);\n    border: 1px solid rgba(134, 168, 231, 0.3);\n    border-radius: 8px;\n    padding: 0.8vw 1.5vw;\n    font-size: clamp(0.8rem, 1vw, 1rem);\n    color: #0071e3;\n    font-weight: 500;\n    cursor: pointer;\n    transition: all 0.2s ease;\n}\n.pagination-btn:hover {\n    background: rgba(0, 113, 227, 0.1);\n    border-color: #0071e3;\n}\n.pagination-btn.active {\n    background: #0071e3;\n    color: white;\n    border-color: #0071e3;\n}\n\/* \u5c55\u5f00\/\u6536\u8d77\u6309\u94ae\u6837\u5f0f *\/\n.toggle-btn {\n    background: rgba(255, 255, 255, 0.8);\n    border: 1px solid rgba(175, 82, 222, 0.3);\n    border-radius: 8px;\n    padding: 0.6vw 1.2vw;\n    font-size: clamp(0.7rem, 0.9vw, 0.9rem);\n    color: #af52de;\n    font-weight: 500;\n    cursor: pointer;\n    margin: 1vw 0;\n    transition: all 0.2s ease;\n}\n.toggle-btn:hover {\n    background: rgba(175, 82, 222, 0.1);\n    border-color: #af52de;\n}\n.toggle-btn:disabled {\n    background: rgba(200, 200, 200, 0.5);\n    color: #999;\n    cursor: not-allowed;\n    border-color: rgba(200, 200, 200, 0.3);\n}\n\/* \u9690\u85cf\u5185\u5bb9\u6837\u5f0f *\/\n.hidden-content {\n    display: none;\n    margin-top: 1vw;\n}\n\/* \u5206\u6790\u62a5\u544a\u6392\u7248\u4f18\u5316\uff08\u65e0\u6a2a\u5411\u6eda\u52a8\uff09 *\/\n.airoom-analysis-content {\n    width: 100%;\n    overflow-x: hidden;\n    word-wrap: break-word;\n    word-break: break-all;\n}\n\/* \u8868\u683c\u5bb9\u5668\u4f18\u5316 - \u589e\u52a0\u6a2a\u5411\u6eda\u52a8\u6761 *\/\n.airoom-table-container {\n    width: 100%;\n    overflow-x: auto; \/* \u6539\u4e3aauto\uff0c\u663e\u793a\u6a2a\u5411\u6eda\u52a8\u6761 *\/\n    border-radius: 16px;\n    border: 1px solid rgba(0, 0, 0, 0.05);\n}\n\/* \u8868\u683c\u6837\u5f0f\u8c03\u6574 - \u786e\u4fdd\u5185\u5bb9\u4e0d\u6362\u884c\uff0c\u89e6\u53d1\u6a2a\u5411\u6eda\u52a8 *\/\n.airoom-table {\n    min-width: 800px; \/* \u8bbe\u7f6e\u6700\u5c0f\u5bbd\u5ea6\uff0c\u786e\u4fdd\u5c0f\u5c4f\u5e55\u4e5f\u6709\u6eda\u52a8\u6761 *\/\n}\n.airoom-table th, .airoom-table td {\n    white-space: nowrap; \/* \u7981\u6b62\u5355\u5143\u683c\u5185\u5bb9\u6362\u884c *\/\n}\n\/* \u5e02\u573a\u6570\u636e\u5c55\u5f00\u6309\u94ae\u5bb9\u5668 *\/\n.market-toggle-container {\n    text-align: center;\n    padding: 1vw 0;\n}\n\/* \u9002\u914d\u5c0f\u5c4f\u5e55 *\/\n@media (max-width: 768px) {\n    .pagination-btn {\n        padding: 1.2vw 2vw;\n    }\n    .toggle-btn {\n        padding: 1vw 1.8vw;\n    }\n}\n\/* \u5df2\u52a0\u8f7d\u5185\u5bb9\u533a\u57df *\/\n.loaded-content {\n    border-top: 1px solid rgba(0, 0, 0, 0.05);\n    margin-top: 1vw;\n    padding-top: 1vw;\n}\n\/* \u52a0\u8f7d\u63d0\u793a *\/\n.loading-indicator {\n    text-align: center;\n    padding: 2vw;\n    color: #86a8e7;\n    font-size: clamp(0.9rem, 1vw, 1rem);\n}\n<\/style>\n\n<!-- \u9876\u90e8\u6807\u9898\u533a\u57df\uff08\u4f18\u5316\u6837\u5f0f\uff09 -->\n<div class=\"airoom-header-section\" style=\"background: linear-gradient(135deg, #ffffff 0%, #f8f9ff 100%); border-radius: 20px; padding: 4vw 3.5vw; margin-bottom: 3vw; box-shadow: 0 4px 30px rgba(0, 0, 0, 0.05); border: 1px solid rgba(255, 255, 255, 0.8); backdrop-filter: blur(10px);\">\n    <h2 class=\"airoom-header-title\" style=\"font-size: clamp(2.5rem, 4vw, 4rem); font-weight: 700; background: linear-gradient(90deg, #0071e3, #86a8e7, #af52de); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; margin-bottom: 1.2vw; line-height: 1.1;\">Global Financial Intelligence Terminal<\/h2>\n    <p class=\"airoom-header-subtitle\" style=\"font-size: clamp(1rem, 1.8vw, 1.5rem); color: #86868b; margin-bottom: 2vw; font-weight: 400; max-width: 80%;\">\u5168\u7403\u91d1\u878d\u6570\u636e\u5b9e\u65f6\u667a\u80fd\u5206\u6790\u7cfb\u7edf<\/p>\n    <div class=\"airoom-status-bar\" style=\"display: flex; gap: 2vw; align-items: center; flex-wrap: wrap;\">\n        <span class=\"airoom-status-item online\" style=\"background: rgba(72, 187, 120, 0.1); padding: 0.8vw 1.5vw; border-radius: 999px; border: 1px solid rgba(72, 187, 120, 0.2); font-size: clamp(0.8rem, 1vw, 1rem); color: #34c759;\">\u25cf \u7cfb\u7edf\u72b6\u6001: ONLINE<\/span>\n        <span class=\"airoom-status-item\" id=\"airoom-date\" style=\"background: rgba(134, 168, 231, 0.1); padding: 0.8vw 1.5vw; border-radius: 999px; border: 1px solid rgba(134, 168, 231, 0.2); font-size: clamp(0.8rem, 1vw, 1rem); color: #86a8e7;\"><\/span>\n        <span class=\"airoom-status-item\" style=\"background: rgba(175, 82, 222, 0.1); padding: 0.8vw 1.5vw; border-radius: 999px; border: 1px solid rgba(175, 82, 222, 0.2); font-size: clamp(0.8rem, 1vw, 1rem); color: #af52de;\">\u6570\u636e\u6765\u6e90: API\u5b9e\u65f6\u63a5\u53e3<\/span>\n    <\/div>\n<\/div>\n\n<!-- \u5e02\u573a\u6570\u636e\u533a\u57df\uff08APIshujubaocun.csv - \u540e\u7aef\u5206\u9875\u52a0\u8f7d\uff09 -->\n<div class=\"airoom-market-section\" style=\"background: rgba(255, 255, 255, 0.8); border-radius: 20px; padding: 3vw; margin-bottom: 3vw; box-shadow: 0 4px 30px rgba(0, 0, 0, 0.05); border: 1px solid rgba(255, 255, 255, 0.8); backdrop-filter: blur(10px);\">\n    <h3 class=\"airoom-section-title\" style=\"font-size: clamp(1.2rem, 2vw, 1.8rem); font-weight: 600; color: #1d1d1f; margin-bottom: 2vw; display: flex; align-items: center; gap: 1vw; border-bottom: 1px solid rgba(0, 0, 0, 0.05); padding-bottom: 1.5vw;\">\n        <span style=\"width: 4px; height: 28px; background: linear-gradient(180deg, #0071e3, #86a8e7); border-radius: 2px;\"><\/span>\n        APIshujubaocun.csv\n    <\/h3>\n\n    <div class=\"airoom-table-container\">\n        <table class=\"airoom-table\" id=\"airoom-market-table\" style=\"width: 100%; border-collapse: collapse; font-size: clamp(0.8rem, 1vw, 1rem); color: #1d1d1f;\">\n            \n<thead style=\"background: rgba(245, 245, 247, 0.8);\">\n    <tr>\n        <th style=\"padding: 1.2vw 1vw; text-align: left; font-weight: 600; color: #1d1d1f; border-bottom: 1px solid rgba(0, 0, 0, 0.05); white-space: nowrap;\">\u65e5\u671f<\/th>\n        <th style=\"padding: 1.2vw 1vw; text-align: left; font-weight: 600; color: #1d1d1f; border-bottom: 1px solid rgba(0, 0, 0, 0.05); white-space: nowrap;\">\u5e02\u573a\u540d\u79f0<\/th>\n        <th style=\"padding: 1.2vw 1vw; text-align: left; font-weight: 600; color: #1d1d1f; border-bottom: 1px solid rgba(0, 0, 0, 0.05); white-space: nowrap;\">\u73af\u5883<\/th>\n        <th style=\"padding: 1.2vw 1vw; text-align: left; font-weight: 600; color: #1d1d1f; border-bottom: 1px solid rgba(0, 0, 0, 0.05); white-space: nowrap;\">\u6210\u4ea4\u989d<\/th>\n        <th style=\"padding: 1.2vw 1vw; text-align: left; font-weight: 600; color: #1d1d1f; border-bottom: 1px solid rgba(0, 0, 0, 0.05); white-space: nowrap;\">\u5e73\u5747\u5206<\/th>\n        <th style=\"padding: 1.2vw 1vw; text-align: left; font-weight: 600; color: #1d1d1f; border-bottom: 1px solid rgba(0, 0, 0, 0.05); white-space: nowrap;\">\u6da8\u5e45>8%<\/th>\n        <th style=\"padding: 1.2vw 1vw; text-align: left; font-weight: 600; color: #1d1d1f; border-bottom: 1px solid rgba(0, 0, 0, 0.05); white-space: nowrap;\">\u8dcc\u5e45>8%<\/th>\n    <\/tr>\n<\/thead>\n            <tbody id=\"airoom-market-table-body\">\n                <tr><td colspan=\"7\" class=\"airoom-loading\" style=\"text-align: center; padding: 4vw; color: #86a8e7;\">\u52a0\u8f7d\u4e2d&#8230;<\/td><\/tr>\n            <\/tbody>\n        <\/table>\n    <\/div>\n    <!-- \u5e02\u573a\u6570\u636e\u5c55\u5f00\u6309\u94ae\u5bb9\u5668 -->\n    <div id=\"market-toggle-container\" class=\"market-toggle-container\" style=\"display: none;\">\n        <button id=\"market-toggle-btn\" class=\"toggle-btn\" onclick=\"loadNextMarketPage()\">\u52a0\u8f7d\u4e0b\u4e00\u9875<\/button>\n    <\/div>\n    <!-- \u9875\u7801\u4fe1\u606f -->\n    <div id=\"market-page-info\" class=\"market-toggle-container\" style=\"display: none; color: #86868b; font-size: clamp(0.8rem, 1vw, 0.9rem);\">\n        \u7b2c <span id=\"market-current-page\">0<\/span> \/ <span id=\"market-total-pages\">0<\/span> \u9875 | \u5171 <span id=\"market-total-lines\">0<\/span> \u6761\u6570\u636e\n    <\/div>\n<\/div>\n\n<!-- \u4e3b\u5185\u5bb9\u533a\u57df -->\n<div class=\"airoom-main-content\" style=\"display: grid; grid-template-columns: 1fr; gap: 2vw; margin-top: 3vw;\">\n    <!-- AI\u6df1\u5ea6\u5206\u6790\u62a5\u544a\uff08APIshujufenxi.txt - \u540e\u7aef\u5206\u9875\u52a0\u8f7d\uff09 -->\n    <div class=\"airoom-analysis-section\" style=\"background: rgba(255, 255, 255, 0.8); border-radius: 20px; padding: 3vw; box-shadow: 0 4px 30px rgba(0, 0, 0, 0.05); border: 1px solid rgba(255, 255, 255, 0.8); backdrop-filter: blur(10px); max-height: 700px; overflow-y: auto;\">\n        <h3 class=\"airoom-section-title\" style=\"font-size: clamp(1.2rem, 1.8vw, 1.6rem); font-weight: 600; color: #1d1d1f; margin-bottom: 1.8vw; display: flex; align-items: center; gap: 1vw; border-bottom: 1px solid rgba(0, 0, 0, 0.05); padding-bottom: 1.2vw;\">\n            <span style=\"width: 4px; height: 24px; background: linear-gradient(180deg, #86a8e7, #af52de); border-radius: 2px;\"><\/span>\n            APIshujufenxi.txt\n        <\/h3>\n        <div id=\"airoom-analysis-content\" class=\"airoom-analysis-content\" style=\"line-height: 1.8; color: #424245; font-size: clamp(0.9rem, 1vw, 1.1rem);\">\n            <div class=\"airoom-loading\" style=\"text-align: center; padding: 4vw; color: #86a8e7;\">\u52a0\u8f7d\u4e2d&#8230;<\/div>\n        <\/div>\n        <!-- \u5df2\u52a0\u8f7d\u7684\u5206\u6790\u5185\u5bb9\u533a\u57df -->\n        <div id=\"airoom-analysis-loaded\" class=\"loaded-content\" style=\"display: none;\"><\/div>\n        <!-- \u5206\u6790\u62a5\u544a\u5c55\u5f00\u6309\u94ae\u5bb9\u5668 -->\n        <div id=\"analysis-toggle-container\" class=\"market-toggle-container\" style=\"display: none;\">\n            <button id=\"analysis-toggle-btn\" class=\"toggle-btn\" onclick=\"loadNextAnalysisPage()\">\u52a0\u8f7d\u4e0b\u4e00\u9875<\/button>\n        <\/div>\n        <!-- \u9875\u7801\u4fe1\u606f -->\n        <div id=\"analysis-page-info\" class=\"market-toggle-container\" style=\"display: none; color: #86868b; font-size: clamp(0.8rem, 1vw, 0.9rem);\">\n            \u7b2c <span id=\"analysis-current-page\">0<\/span> \/ <span id=\"analysis-total-pages\">0<\/span> \u9875 | \u5171 <span id=\"analysis-total-lines\">0<\/span> \u884c\n        <\/div>\n    <\/div>\n\n    <!-- \u8d44\u4ea7\u7b5b\u9009\u7ec8\u7aef\uff08APIshaixuanjieguo.csv - \u540e\u7aef\u5206\u9875\u52a0\u8f7d\uff09 -->\n    <div class=\"airoom-filter-section\" style=\"background: rgba(255, 255, 255, 0.8); border-radius: 20px; padding: 3vw; box-shadow: 0 4px 30px rgba(0, 0, 0, 0.05); border: 1px solid rgba(255, 255, 255, 0.8); backdrop-filter: blur(10px); max-height: 700px; overflow-y: auto;\">\n        <h3 class=\"airoom-section-title\" style=\"font-size: clamp(1.2rem, 1.8vw, 1.6rem); font-weight: 600; color: #1d1d1f; margin-bottom: 1.8vw; display: flex; align-items: center; gap: 1vw; border-bottom: 1px solid rgba(0, 0, 0, 0.05); padding-bottom: 1.2vw;\">\n            <span style=\"width: 4px; height: 24px; background: linear-gradient(180deg, #0071e3, #86a8e7); border-radius: 2px;\"><\/span>\n            APIshaixuanjieguo.csv\n        <\/h3>\n        <div id=\"airoom-filter-list\" class=\"airoom-filter-list\">\n            <div class=\"airoom-loading\" style=\"text-align: center; padding: 4vw; color: #86a8e7;\">\u52a0\u8f7d\u4e2d&#8230;<\/div>\n        <\/div>\n        <!-- \u5df2\u52a0\u8f7d\u7684\u7b5b\u9009\u5185\u5bb9\u533a\u57df -->\n        <div id=\"airoom-filter-loaded\" class=\"loaded-content\" style=\"display: none;\"><\/div>\n        <!-- \u7b5b\u9009\u7ed3\u679c\u5c55\u5f00\u6309\u94ae\u5bb9\u5668 -->\n        <div id=\"filter-toggle-container\" class=\"market-toggle-container\" style=\"display: none;\">\n            <button id=\"filter-toggle-btn\" class=\"toggle-btn\" onclick=\"loadNextFilterPage()\">\u52a0\u8f7d\u4e0b\u4e00\u9875<\/button>\n        <\/div>\n        <!-- \u9875\u7801\u4fe1\u606f -->\n        <div id=\"filter-page-info\" class=\"market-toggle-container\" style=\"display: none; color: #86868b; font-size: clamp(0.8rem, 1vw, 0.9rem);\">\n            \u7b2c <span id=\"filter-current-page\">0<\/span> \/ <span id=\"filter-total-pages\">0<\/span> \u9875 | \u5171 <span id=\"filter-total-items\">0<\/span> \u6761\u6570\u636e\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- \u9875\u811a\uff08\u82f9\u679c\u98ce\u683c\u6781\u7b80\uff09 -->\n<div class=\"airoom-footer\" style=\"text-align: center; padding: 3vw 0; color: #86868b; font-size: clamp(0.8rem, 1vw, 0.9rem); margin-top: 4vw; border-top: 1px solid rgba(0, 0, 0, 0.05);\">\n    \u00a9 2026 AIROOM Financial Data Systems | Security Level: Classified\n<\/div>\n\n<!-- JavaScript\u4ee3\u7801\uff08\u540e\u7aef\u5206\u9875\u52a0\u8f7d\uff1a\u6bcf\u6b21\u53ea\u8bf7\u6c42\u4e00\u9875\u6570\u636e\uff09 -->\n<script>\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ ========== \u5b9a\u4e49PHP\u63a5\u53e3\u5730\u5740\uff08\u8bf7\u66ff\u6362\u4e3a\u4f60\u7684\u5b9e\u9645\u57df\u540d\uff09 ==========\n    const apiUrl = 'http:\/\/airoom.ltd\/airoom_get_data.php'; \/\/ \u66ff\u6362\u4e3a\u4f60\u7684\u57df\u540d\n\n    \/\/ ========== \u5e02\u573a\u6570\u636e\u5206\u9875\u52a0\u8f7d\u76f8\u5173\u53d8\u91cf ==========\n    let marketCurrentPage = 0;          \/\/ \u5e02\u573a\u6570\u636e\u5f53\u524d\u9875\u7801\n    let marketTotalPages = 0;           \/\/ \u5e02\u573a\u6570\u636e\u603b\u9875\u6570\n    let marketTotalLines = 0;           \/\/ \u5e02\u573a\u6570\u636e\u603b\u884c\u6570\n    const MARKET_PAGE_SIZE = 80;        \/\/ \u5e02\u573a\u6570\u636e\u6bcf\u9875\u663e\u793a80\u884c\n    let marketIsLoading = false;        \/\/ \u5e02\u573a\u6570\u636e\u52a0\u8f7d\u72b6\u6001\u6807\u5fd7\n\n    \/\/ ========== \u5206\u6790\u62a5\u544a\u5206\u9875\u52a0\u8f7d\u76f8\u5173\u53d8\u91cf ==========\n    let analysisCurrentPage = 0;        \/\/ \u5206\u6790\u62a5\u544a\u5f53\u524d\u9875\u7801\n    let analysisTotalPages = 0;         \/\/ \u5206\u6790\u62a5\u544a\u603b\u9875\u6570\n    let analysisTotalLines = 0;         \/\/ \u5206\u6790\u62a5\u544a\u603b\u884c\u6570\n    const ANALYSIS_PAGE_SIZE = 80;      \/\/ \u5206\u6790\u62a5\u544a\u6bcf\u9875\u663e\u793a80\u884c\n    let analysisIsLoading = false;      \/\/ \u5206\u6790\u62a5\u544a\u52a0\u8f7d\u72b6\u6001\u6807\u5fd7\n\n    \/\/ ========== \u7b5b\u9009\u7ed3\u679c\u5206\u9875\u52a0\u8f7d\u76f8\u5173\u53d8\u91cf ==========\n    let filterCurrentPage = 0;          \/\/ \u7b5b\u9009\u7ed3\u679c\u5f53\u524d\u9875\u7801\n    let filterTotalPages = 0;           \/\/ \u7b5b\u9009\u7ed3\u679c\u603b\u9875\u6570\n    let filterTotalItems = 0;           \/\/ \u7b5b\u9009\u7ed3\u679c\u603b\u6761\u6570\n    const FILTER_PAGE_SIZE = 80;        \/\/ \u7b5b\u9009\u7ed3\u679c\u6bcf\u9875\u663e\u793a80\u9879\n    let filterIsLoading = false;        \/\/ \u7b5b\u9009\u7ed3\u679c\u52a0\u8f7d\u72b6\u6001\u6807\u5fd7\n\n    \/\/ ========== \u8bbe\u7f6e\u5f53\u524d\u65e5\u671f ==========\n    document.getElementById('airoom-date').textContent = '\u66f4\u65b0\u65f6\u95f4: ' + new Date().toLocaleDateString('zh-CN', {\n        year: 'numeric',\n        month: '2-digit',\n        day: '2-digit'\n    });\n\n    \/\/ ========== 1. \u52a0\u8f7d\u5e02\u573a\u6570\u636e\uff08APIshujubaocun.csv\uff09- \u521d\u59cb\u53ea\u52a0\u8f7d\u7b2c\u4e00\u9875 ==========\n    loadMarketPage(1);\n\n    \/\/ \u5e02\u573a\u6570\u636e\u52a0\u8f7d\u51fd\u6570 - \u6838\u5fc3\u4fee\u590d\uff1a\u79fb\u9664\u8fc7\u5ea6\u8fc7\u6ee4\uff0c\u4fdd\u7559\u6240\u6709\u6709\u6548\u884c\n    function loadMarketPage(page) {\n        if (marketIsLoading) return;\n\n        marketIsLoading = true;\n        const btn = document.getElementById('market-toggle-btn');\n        const tbody = document.getElementById('airoom-market-table-body');\n\n        if (page === 1) {\n            tbody.innerHTML = '<tr><td colspan=\"7\" class=\"airoom-loading\" style=\"text-align: center; padding: 4vw; color: #86a8e7;\">\u52a0\u8f7d\u4e2d...<\/td><\/tr>';\n        } else {\n            btn.disabled = true;\n            btn.textContent = '\u52a0\u8f7d\u4e2d...';\n        }\n\n        fetch(`${apiUrl}?file=APIshujubaocun.csv&page=${page}&page_size=${MARKET_PAGE_SIZE}`)\n            .then(response => response.json())\n            .then(result => {\n                if (result.success) {\n                    marketCurrentPage = result.page;\n                    marketTotalPages = result.total_pages;\n                    marketTotalLines = result.total_lines;\n\n                    \/\/ \u4fee\u590d\uff1a\u4ec5\u505a\u57fa\u7840\u7a7a\u503c\u68c0\u67e5\uff0c\u79fb\u9664\u8fc7\u5ea6\u7684\u53bb\u91cd\u548c\u8fc7\u6ee4\n                    const validData = [];\n                    \/\/ \u8df3\u8fc7\u8868\u5934\uff08\u7b2c0\u884c\uff09\uff0c\u5904\u7406\u6240\u6709\u6570\u636e\u884c\n                    for (let i = 1; i < result.data.length; i++) {  \n                        const line = result.data[i].trim();\n                        \/\/ \u8df3\u8fc7\u7a7a\u884c\n                        if (!line) continue;\n                        \n                        const parts = line.split(',');\n                        \/\/ \u4ec5\u68c0\u67e5\u6838\u5fc3\u5b57\u6bb5\uff08\u65e5\u671f\uff09\u662f\u5426\u5b58\u5728\uff0c\u4e0d\u9650\u5236\u5b57\u6bb5\u6570\u91cf\n                        if (parts.length >= 1 && parts[0].trim()) {\n                            validData.push(parts);\n                        }\n                    }\n\n                    \/\/ \u6e32\u67d3\u6570\u636e - \u4fdd\u7559\u5206\u9875\u52a0\u8f7d\u7684\u7d2f\u52a0\u903b\u8f91\n                    if (page === 1) {\n                        tbody.innerHTML = '';\n                    }\n\n                    \/\/ \u6e32\u67d3\u6240\u6709\u6709\u6548\u6570\u636e\u884c\uff0c\u4e0d\u4e22\u5931\u4efb\u4f55\u884c\n                    validData.forEach(parts => {\n                        const status = getStatus(parts[2]);\n                        const tr = document.createElement('tr');\n                        tr.style.borderBottom = '1px solid rgba(0, 0, 0, 0.03)';\n                        tr.innerHTML =\n    '<td style=\"padding: 1.2vw 1vw;\">' + (parts[0] || '-') + '<\/td>' +\n    '<td style=\"padding: 1.2vw 1vw;\">' + (parts[1] ? extractMarketName(parts[1]) : '-') + '<\/td>' +\n    '<td style=\"padding: 1.2vw 1vw;\"><span class=\"airoom-status-badge ' + status + '\" style=\"display: inline-block; padding: 0.5vw 1vw; border-radius: 999px; font-size: clamp(0.8rem, 1vw, 0.9rem); font-weight: 500;\">' + (parts[2] || '-') + '<\/span><\/td>' +\n    '<td style=\"padding: 1.2vw 1vw;\">' + (parts[3] ? Math.round(parseFloat(parts[3])) : '-') + '<\/td>' +\n    '<td style=\"padding: 1.2vw 1vw;\">' + (parts[4] || '0') + '<\/td>' +\n    '<td style=\"padding: 1.2vw 1vw;\">' + (parts[5] || '0') + '<\/td>' +\n    '<td style=\"padding: 1.2vw 1vw;\">' + (parts[6] || '0') + '<\/td>';\n                        tbody.appendChild(tr);\n                    });\n\n                    \/\/ \u66f4\u65b0\u9875\u7801\u4fe1\u606f\n                    updateMarketUI();\n                } else {\n                    tbody.innerHTML = '<tr><td colspan=\"7\" style=\"text-align:center; color:#fc8181; padding:4vw;\">\u6570\u636e\u52a0\u8f7d\u5931\u8d25: ' + (result.msg || '\u672a\u77e5\u9519\u8bef') + '<\/td><\/tr>';\n                }\n                marketIsLoading = false;\n            })\n            .catch(error => {\n                console.error('\u52a0\u8f7d\u5e02\u573a\u6570\u636e\u5931\u8d25:', error);\n                tbody.innerHTML = '<tr><td colspan=\"7\" style=\"text-align:center; color:#fc8181; padding:4vw;\">\u7f51\u7edc\u9519\u8bef\uff0c\u8bf7\u68c0\u67e5\u7f51\u7edc\u8fde\u63a5<\/td><\/tr>';\n                marketIsLoading = false;\n            });\n    }\n\n    \/\/ \u66f4\u65b0\u5e02\u573a\u6570\u636eUI\n    function updateMarketUI() {\n        const toggleContainer = document.getElementById('market-toggle-container');\n        const pageInfo = document.getElementById('market-page-info');\n        const btn = document.getElementById('market-toggle-btn');\n\n        document.getElementById('market-current-page').textContent = marketCurrentPage;\n        document.getElementById('market-total-pages').textContent = marketTotalPages;\n        document.getElementById('market-total-lines').textContent = marketTotalLines;\n\n        if (marketCurrentPage < marketTotalPages) {\n            toggleContainer.style.display = 'block';\n            pageInfo.style.display = 'block';\n            btn.disabled = false;\n            btn.textContent = '\u52a0\u8f7d\u4e0b\u4e00\u9875\uff08\u7b2c' + (marketCurrentPage + 1) + '\u9875\uff0c\u5171' + marketTotalPages + '\u9875\uff09';\n        } else {\n            toggleContainer.style.display = 'none';\n            pageInfo.style.display = 'block';\n        }\n    }\n\n    \/\/ \u5e02\u573a\u6570\u636e\u52a0\u8f7d\u4e0b\u4e00\u9875\n    window.loadNextMarketPage = function() {\n        if (marketCurrentPage < marketTotalPages) {\n            loadMarketPage(marketCurrentPage + 1);\n        }\n    };\n\n    \/\/ ========== 2. \u52a0\u8f7d\u5206\u6790\u62a5\u544a\uff08APIshujufenxi.txt\uff09- \u521d\u59cb\u53ea\u52a0\u8f7d\u7b2c\u4e00\u9875 ==========\n    loadAnalysisPage(1);\n\n    \/\/ \u5206\u6790\u62a5\u544a\u52a0\u8f7d\u51fd\u6570\n    function loadAnalysisPage(page) {\n        if (analysisIsLoading) return;\n\n        analysisIsLoading = true;\n        const btn = document.getElementById('analysis-toggle-btn');\n        const contentDiv = document.getElementById('airoom-analysis-content');\n        const loadedDiv = document.getElementById('airoom-analysis-loaded');\n\n        if (page === 1) {\n            contentDiv.innerHTML = '<div class=\"airoom-loading\" style=\"text-align: center; padding: 4vw; color: #86a8e7;\">\u52a0\u8f7d\u4e2d...<\/div>';\n        } else {\n            btn.disabled = true;\n            btn.textContent = '\u52a0\u8f7d\u4e2d...';\n        }\n\n        fetch(`${apiUrl}?file=APIshujufenxi.txt&page=${page}&page_size=${ANALYSIS_PAGE_SIZE}`)\n            .then(response => response.json())\n            .then(result => {\n                if (result.success) {\n                    analysisCurrentPage = result.page;\n                    analysisTotalPages = result.total_pages;\n                    analysisTotalLines = result.total_lines;\n\n                    \/\/ \u5904\u7406Markdown\u683c\u5f0f\n                    let html = result.data.slice(1).join('\\n');  \/\/ \u8df3\u8fc7\u8868\u5934\n                    html = html\n                        .replace(\/^#\\s+(.+)\/gm, '<h1 style=\"font-size: clamp(1.4rem, 1.8vw, 1.6rem); color: #1d1d1f; margin: 2vw 0 1.2vw 0; font-weight: 600;\">$1<\/h1>')\n                        .replace(\/^##\\s+(.+)\/gm, '<h2 style=\"font-size: clamp(1.2rem, 1.5vw, 1.4rem); color: #1d1d1f; margin: 1.8vw 0 1vw 0; font-weight: 600;\">$1<\/h2>')\n                        .replace(\/^###\\s+(.+)\/gm, '<h3 style=\"font-size: clamp(1rem, 1.2vw, 1.2rem); color: #1d1d1f; margin: 1.5vw 0 0.8vw 0; font-weight: 600;\">$1<\/h3>')\n                        .replace(\/\\*\\*(.+?)\\*\\*\/g, '<strong style=\"color: #0071e3; font-weight: 600;\">$1<\/strong>')\n                        .replace(\/\\n\\n+\/g, '<\/p><p style=\"margin-bottom: 1.2vw; text-align: justify; word-wrap: break-word;\">')\n                        .replace(\/\\n\/g, '<br>');\n                    html = '<p style=\"margin-bottom: 1.2vw; text-align: justify; word-wrap: break-word;\">' + html + '<\/p>';\n\n                    \/\/ \u6e32\u67d3\n                    if (page === 1) {\n                        contentDiv.innerHTML = html;\n                    } else {\n                        const pageDiv = document.createElement('div');\n                        pageDiv.style.marginBottom = '1vw';\n                        pageDiv.innerHTML = html;\n                        loadedDiv.appendChild(pageDiv);\n                        loadedDiv.style.display = 'block';\n                    }\n\n                    \/\/ \u66f4\u65b0UI\n                    updateAnalysisUI();\n                } else {\n                    contentDiv.innerHTML = '<div style=\"text-align:center;color:#fc8181;padding:4vw;\">\u6570\u636e\u52a0\u8f7d\u5931\u8d25: ' + (result.msg || '\u672a\u77e5\u9519\u8bef') + '<\/div>';\n                }\n                analysisIsLoading = false;\n            })\n            .catch(error => {\n                console.error('\u52a0\u8f7d\u5206\u6790\u62a5\u544a\u5931\u8d25:', error);\n                contentDiv.innerHTML = '<div style=\"text-align:center;color:#fc8181;padding:4vw;\">\u7f51\u7edc\u9519\u8bef\uff0c\u8bf7\u68c0\u67e5\u7f51\u7edc\u8fde\u63a5<\/div>';\n                analysisIsLoading = false;\n            });\n    }\n\n    \/\/ \u66f4\u65b0\u5206\u6790\u62a5\u544aUI\n    function updateAnalysisUI() {\n        const toggleContainer = document.getElementById('analysis-toggle-container');\n        const pageInfo = document.getElementById('analysis-page-info');\n        const btn = document.getElementById('analysis-toggle-btn');\n\n        document.getElementById('analysis-current-page').textContent = analysisCurrentPage;\n        document.getElementById('analysis-total-pages').textContent = analysisTotalPages;\n        document.getElementById('analysis-total-lines').textContent = analysisTotalLines;\n\n        if (analysisCurrentPage < analysisTotalPages) {\n            toggleContainer.style.display = 'block';\n            pageInfo.style.display = 'block';\n            btn.disabled = false;\n            btn.textContent = '\u52a0\u8f7d\u4e0b\u4e00\u9875\uff08\u7b2c' + (analysisCurrentPage + 1) + '\u9875\uff0c\u5171' + analysisTotalPages + '\u9875\uff09';\n        } else {\n            toggleContainer.style.display = 'none';\n            pageInfo.style.display = 'block';\n        }\n    }\n\n    \/\/ \u5206\u6790\u62a5\u544a\u52a0\u8f7d\u4e0b\u4e00\u9875\n    window.loadNextAnalysisPage = function() {\n        if (analysisCurrentPage < analysisTotalPages) {\n            loadAnalysisPage(analysisCurrentPage + 1);\n        }\n    };\n\n    \/\/ ========== 3. \u52a0\u8f7d\u7b5b\u9009\u7ed3\u679c\uff08APIshaixuanjieguo.csv\uff09- \u521d\u59cb\u53ea\u52a0\u8f7d\u7b2c\u4e00\u9875 ==========\n    loadFilterPage(1);\n\n    \/\/ \u7b5b\u9009\u7ed3\u679c\u52a0\u8f7d\u51fd\u6570\n    function loadFilterPage(page) {\n        if (filterIsLoading) return;\n\n        filterIsLoading = true;\n        const btn = document.getElementById('filter-toggle-btn');\n        const listDiv = document.getElementById('airoom-filter-list');\n        const loadedDiv = document.getElementById('airoom-filter-loaded');\n\n        if (page === 1) {\n            listDiv.innerHTML = '<div class=\"airoom-loading\" style=\"text-align: center; padding: 4vw; color: #86a8e7;\">\u52a0\u8f7d\u4e2d...<\/div>';\n        } else {\n            btn.disabled = true;\n            btn.textContent = '\u52a0\u8f7d\u4e2d...';\n        }\n\n        fetch(`${apiUrl}?file=APIshaixuanjieguo.csv&page=${page}&page_size=${FILTER_PAGE_SIZE}`)\n            .then(response => response.json())\n            .then(result => {\n                if (result.success) {\n                    filterCurrentPage = result.page;\n                    filterTotalPages = result.total_pages;\n                    filterTotalItems = result.total_lines;\n\n                    let html = '';\n                    for (let i = 1; i < result.data.length; i++) {  \/\/ \u8df3\u8fc7\u8868\u5934\n                        const line = result.data[i];\n                        const parts = line.split(',');\n                        if (parts.length >= 2 && parts[0] && parts[1]) {\n                            const market = parts[0].trim();\n                            const name = parts.slice(1).join(',').trim();\n                            html += '<div class=\"airoom-filter-item\" style=\"background: rgba(245, 245, 247, 0.6); padding: 1vw 1.2vw; border-radius: 12px; display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.8vw;\">' +\n                                '<span class=\"airoom-filter-market\" style=\"font-weight: 500; color: #0071e3; min-width: 80px;\">' + market + '<\/span>' +\n                                '<span class=\"airoom-filter-name\" style=\"color: #424245; flex: 1; margin-left: 1vw;\">' + name + '<\/span>' +\n                                '<\/div>';\n                        }\n                    }\n\n                    \/\/ \u6e32\u67d3\n                    if (page === 1) {\n                        listDiv.innerHTML = html;\n                    } else {\n                        loadedDiv.innerHTML += html;\n                        loadedDiv.style.display = 'block';\n                    }\n\n                    \/\/ \u66f4\u65b0UI\n                    updateFilterUI();\n                } else {\n                    listDiv.innerHTML = '<div style=\"text-align:center;color:#fc8181;padding:4vw;\">\u6570\u636e\u52a0\u8f7d\u5931\u8d25: ' + (result.msg || '\u672a\u77e5\u9519\u8bef') + '<\/div>';\n                }\n                filterIsLoading = false;\n            })\n            .catch(error => {\n                console.error('\u52a0\u8f7d\u7b5b\u9009\u6570\u636e\u5931\u8d25:', error);\n                listDiv.innerHTML = '<div style=\"text-align:center;color:#fc8181;padding:4vw;\">\u7f51\u7edc\u9519\u8bef\uff0c\u8bf7\u68c0\u67e5\u7f51\u7edc\u8fde\u63a5<\/div>';\n                filterIsLoading = false;\n            });\n    }\n\n    \/\/ \u66f4\u65b0\u7b5b\u9009\u7ed3\u679cUI\n    function updateFilterUI() {\n        const toggleContainer = document.getElementById('filter-toggle-container');\n        const pageInfo = document.getElementById('filter-page-info');\n        const btn = document.getElementById('filter-toggle-btn');\n\n        document.getElementById('filter-current-page').textContent = filterCurrentPage;\n        document.getElementById('filter-total-pages').textContent = filterTotalPages;\n        document.getElementById('filter-total-items').textContent = filterTotalItems;\n\n        if (filterCurrentPage < filterTotalPages) {\n            toggleContainer.style.display = 'block';\n            pageInfo.style.display = 'block';\n            btn.disabled = false;\n            btn.textContent = '\u52a0\u8f7d\u4e0b\u4e00\u9875\uff08\u7b2c' + (filterCurrentPage + 1) + '\u9875\uff0c\u5171' + filterTotalPages + '\u9875\uff09';\n        } else {\n            toggleContainer.style.display = 'none';\n            pageInfo.style.display = 'block';\n        }\n    }\n\n    \/\/ \u7b5b\u9009\u7ed3\u679c\u52a0\u8f7d\u4e0b\u4e00\u9875\n    window.loadNextFilterPage = function() {\n        if (filterCurrentPage < filterTotalPages) {\n            loadFilterPage(filterCurrentPage + 1);\n        }\n    };\n\n    \/\/ ========== \u901a\u7528\u5de5\u5177\u51fd\u6570 ==========\n    function formatNumber(num) {\n        if (!num) return '-';\n        num = num.replace(\/,\/g, '');\n        const n = parseFloat(num);\n        if (isNaN(n)) return num;\n        if (n >= 1e12) return (n \/ 1e12).toFixed(2) + '\u4e07\u4ebf';\n        if (n >= 1e8) return (n \/ 1e8).toFixed(2) + '\u4ebf';\n        if (n >= 1e4) return (n \/ 1e4).toFixed(2) + '\u4e07';\n        return n.toFixed(2);\n    }\n\n    function extractMarketName(str) {\n        if (!str) return '-';\n        const match = str.match(\/^([^\\-_]+)\/);\n        return match ? match[1] : str;\n    }\n\n    function getStatus(status) {\n        if (status === '\u4f18\u79c0') return 'airoom-status-excellent';\n        if (status === '\u826f\u597d') return 'airoom-status-good';\n        if (status === '\u5dee') return 'airoom-status-poor';\n        return '';\n    }\n});\n<\/script>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>This page is for simulation only and does not represent real\u2011world scenarios.The market involves risks, and investment requires caution.All views and data are for experimental purposes only.You shall be solely responsible for any consequences arising from their use.They do not constitute investment advice or basis.The data does not reflect market trends, prices, yields or return rates.All data is from simulated accounts, not live trading.<\/strong><br><strong>\u672c\u9875\u9762\u4e3a\u6a21\u62df\uff0c\u975e\u73b0\u5b9e\u573a\u666f\u3002\u5e02\u573a\u6709\u98ce\u9669\uff0c\u6295\u8d44\u9700\u8c28\u614e\u3002\u89c2\u70b9\u548c\u6570\u636e\u53ea\u505a\u5b9e\u9a8c\uff0c\u4f7f\u7528\u540e\u679c\u81ea\u8d1f\uff0c\u4e0d\u6784\u6210\u6295\u8d44\u4f9d\u636e\u5efa\u8bae\uff0c\u6570\u636e\u4e0d\u662f\u5e02\u573a\u65b9\u5411\u3001\u4ef7\u683c\u3001\u6536\u76ca\u7387\u3001\u56de\u62a5\u7387\u3002\u4e00\u5207\u6570\u636e\u5747\u4e3a\u6a21\u62df\u4ed3\uff0c\u4e0d\u662f\u5b9e\u76d8\u3002<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This page is for simulation only and does not represent [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-155","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"http:\/\/airoom.ltd\/index.php\/wp-json\/wp\/v2\/pages\/155","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/airoom.ltd\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/airoom.ltd\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/airoom.ltd\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/airoom.ltd\/index.php\/wp-json\/wp\/v2\/comments?post=155"}],"version-history":[{"count":15,"href":"http:\/\/airoom.ltd\/index.php\/wp-json\/wp\/v2\/pages\/155\/revisions"}],"predecessor-version":[{"id":459,"href":"http:\/\/airoom.ltd\/index.php\/wp-json\/wp\/v2\/pages\/155\/revisions\/459"}],"wp:attachment":[{"href":"http:\/\/airoom.ltd\/index.php\/wp-json\/wp\/v2\/media?parent=155"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}