{"id":1977,"date":"2026-10-03T20:28:02","date_gmt":"2026-10-03T12:28:02","guid":{"rendered":"https:\/\/khsci.com\/khQuant\/tutorial-new\/v3\/commands\/"},"modified":"2026-10-11T19:40:11","modified_gmt":"2026-10-11T11:40:11","slug":"commands","status":"publish","type":"page","link":"https:\/\/khsci.com\/khQuant\/commands\/","title":{"rendered":"\u9644\u5f55 A \u547d\u4ee4\u53c2\u8003"},"content":{"rendered":"\n<style>\n.khq-web-manual{max-width:980px;margin:0 auto;padding:8px 0 36px;line-height:1.82;font-size:16px;color:#243042;word-break:break-word;}\n.khq-web-manual h2{font-size:1.45rem;line-height:1.4;margin:38px 0 14px;padding-top:8px;color:#12345f;border-top:1px solid #e7edf5;}\n.khq-web-manual h3{font-size:1.16rem;line-height:1.5;margin:24px 0 10px;color:#163b68;}\n.khq-web-manual blockquote{margin:18px 0;padding:14px 18px;border-left:4px solid #1e88e5;background:#f4f9ff;color:#36506f;border-radius:0 10px 10px 0;}\n.khq-web-manual code{background:#f3f6fa;border:1px solid #e6edf5;border-radius:5px;padding:.12em .36em;font-size:.92em;}\n.khq-web-manual pre{background:#0f172a;color:#e5edf7;border-radius:12px;padding:16px;overflow:auto;line-height:1.65;border:1px solid #24324a;}\n.khq-web-manual pre code{background:transparent;border:0;color:inherit;padding:0;font-size:.93em;white-space:pre;}\n.khq-tn .khq-tn-table{width:100%;overflow-x:auto;margin:16px 0 22px;}\n.khq-web-manual.khq-tn table{display:table!important;width:100%!important;max-width:100%;border-collapse:collapse!important;margin:0!important;font-size:.96em;border:1px solid #e2e8f0!important;table-layout:auto;}\n.khq-web-manual.khq-tn th,.khq-web-manual.khq-tn td{border:1px solid #e2e8f0!important;padding:10px 12px;vertical-align:top;}\n.khq-web-manual th{background:#f7fafc;color:#173b63;font-weight:600;}\n.khq-web-manual img{max-width:100%;height:auto;border-radius:10px;box-shadow:0 8px 28px rgba(15,35,60,.09);}\n.khq-web-manual a{color:#1167b1;text-decoration:none;border-bottom:1px solid rgba(17,103,177,.25);}\n.khq-web-manual a:hover{border-bottom-color:rgba(17,103,177,.8);}\n.khq-tn .khq-tn-ver{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 16px;font-size:14px;color:#5b6b7c;}\n.khq-tn .ver{display:inline-block;padding:2px 10px;border-radius:999px;font-weight:600;font-size:13px;line-height:1.6;}\n.khq-tn .ver-v2{background:#e8f3ff;color:#0b5cad;border:1px solid #b8d8fb;}\n.khq-tn .ver-v3{background:#fff1e6;color:#b1520a;border:1px solid #f8cfa8;}\n.khq-tn .ver-note{color:#6b7a8c;}\n.khq-tn .khq-tn-video{margin:6px 0 26px;border-radius:14px;overflow:hidden;background:#0f172a;box-shadow:0 10px 30px rgba(15,35,60,.12);}\n.khq-tn .khq-tn-video video{display:block;width:100%;aspect-ratio:16\/9;background:#000;}\n.khq-tn .khq-tn-video .cap{padding:8px 14px;color:#cbd6e4;font-size:13px;}\n.khq-tn .khq-tn-video.empty{background:linear-gradient(135deg,#eef4fb,#f7f9fc);border:1px dashed #b9cbe0;box-shadow:none;}\n.khq-tn .khq-tn-video.empty .ph{aspect-ratio:16\/9;max-height:300px;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:#4d6480;text-align:center;padding:16px;box-sizing:border-box;}\n.khq-tn .khq-tn-video.empty .play{width:54px;height:54px;border-radius:50%;background:#dbe7f5;color:#7b93b0;display:flex;align-items:center;justify-content:center;font-size:22px;padding-left:4px;box-sizing:border-box;}\n.khq-tn .khq-tn-video.empty span:last-child{font-size:13px;color:#7890ab;}\n.khq-tn .khq-tn-callout{margin:18px 0;padding:12px 16px 4px;border-radius:12px;border:1px solid;}\n.khq-tn .khq-tn-callout .lbl{font-weight:700;font-size:13px;margin-bottom:4px;letter-spacing:.04em;}\n.khq-tn .khq-tn-callout p{margin:0 0 10px;}\n.khq-tn .khq-tn-callout.v3{background:#fff8f1;border-color:#f6d3b0;}\n.khq-tn .khq-tn-callout.v3 .lbl{color:#b1520a;}\n.khq-tn .khq-tn-callout.tip{background:#f3f9ff;border-color:#cfe3f7;}\n.khq-tn .khq-tn-callout.tip .lbl{color:#0b5cad;}\n.khq-tn .khq-tn-callout.warn{background:#fff6f5;border-color:#f3c7c2;}\n.khq-tn .khq-tn-callout.warn .lbl{color:#b3261e;}\n.khq-tn .khq-tn-fig{margin:18px 0 22px;text-align:center;}\n.khq-tn .khq-tn-fig figcaption{margin-top:6px;color:#66758a;font-size:.9em;}\n.khq-tn .khq-tn-fig.pending .ph{border:1px dashed #c7d3e0;border-radius:10px;background:#f7f9fb;color:#8594a6;font-size:14px;padding:34px 16px;}\n.khq-tn p.q{margin:18px 0 4px;}\n.khq-tn .khq-tn-nav{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:40px;padding-top:18px;border-top:1px solid #e7edf5;}\n.khq-tn .khq-tn-nav a{display:block;padding:12px 14px;border:1px solid #e2e8f0;border-radius:12px;border-bottom:1px solid #e2e8f0;color:#163b68;font-weight:600;}\n.khq-tn .khq-tn-nav a:hover{border-color:#9cc3ea;background:#f7fbff;}\n.khq-tn .khq-tn-nav a span{display:block;font-size:12px;font-weight:400;color:#7a8a9c;margin-bottom:2px;}\n.khq-tn .khq-tn-nav a.next{text-align:right;}\n@media (max-width:768px){.khq-web-manual{font-size:15px;padding:0 2px 24px}.khq-web-manual h2{font-size:1.27rem}.khq-web-manual h3{font-size:1.08rem}.khq-web-manual pre{padding:13px;border-radius:10px}.khq-tn .khq-tn-nav{grid-template-columns:1fr}.khq-tn .khq-tn-nav a.next{text-align:left}}\n.khq-tn .khq-tn-figrow{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start;margin:8px 0 20px;}\n.khq-tn .khq-tn-figrow .khq-tn-fig{margin:0;}\n@media (max-width:640px){.khq-tn .khq-tn-figrow{grid-template-columns:1fr;}}\n.khq-tn .khq-tn-fig a{border:0;display:inline-block;cursor:zoom-in;}\n.khq-tn .khq-tn-fig img{max-width:100%;height:auto;border:1px solid #e2e8f0;}\n.khq-tn .khq-tn-v3{position:relative;margin:22px 0;padding:15px 18px 15px 24px;border-radius:14px;background:#fffaf5;border:1px solid #fbd9c2;overflow:hidden;}\n.khq-tn .khq-tn-v3::before{content:\"\";position:absolute;left:0;top:0;bottom:0;width:5px;background:linear-gradient(180deg,#ff8a00,#e52e71);}\n.khq-tn .khq-tn-v3.promo{background:linear-gradient(135deg,#fff6ec 0%,#ffeef4 100%);border-color:#f7c6b0;box-shadow:0 8px 26px rgba(229,46,113,.10);}\n.khq-tn .v3-head{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:6px;}\n.khq-tn .v3-badge{display:inline-block;background:linear-gradient(90deg,#ff8a00,#e52e71);color:#fff;border-radius:999px;padding:1px 11px;font-size:12.5px;font-weight:700;letter-spacing:.5px;line-height:1.8;white-space:nowrap;}\n.khq-tn .v3-title{font-weight:700;color:#8c2d10;font-size:1.04em;}\n.khq-tn .khq-tn-v3.promo .v3-title{font-size:1.12em;background:linear-gradient(90deg,#d95f00,#c41f5f);-webkit-background-clip:text;background-clip:text;color:transparent;}\n.khq-tn .v3-body{color:#4a3a33;}\n.khq-tn .v3-body p{margin:6px 0;}\n.khq-tn .v3-body ul{margin:6px 0 6px 1.2em;padding:0;}\n.khq-tn .v3-body .khq-tn-fig{margin:12px 0 4px;}\n.khq-tn .v3-body .khq-tn-fig img{border-color:#f3d2c2;}\n.khq-tn .v3-body .khq-tn-fig img{max-height:480px;width:auto;object-fit:contain;}\n.khq-tn .v3-body .khq-tn-figrow{margin:10px 0 0;}\n.khq-tn .v3-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px;}\n.khq-tn .v3-btn{display:inline-block;border-radius:999px;padding:7px 18px;font-weight:700;font-size:14.5px;line-height:1.5;text-decoration:none!important;border-bottom:0!important;}\n.khq-tn .v3-btn.primary{background:linear-gradient(90deg,#ff8a00,#e52e71);color:#fff!important;box-shadow:0 6px 16px rgba(229,46,113,.25);}\n.khq-tn .v3-btn.primary:hover{filter:brightness(1.06);}\n.khq-tn .v3-btn.ghost{background:#fff;color:#c2410c!important;border:1px solid #f5b58f!important;}\n.khq-tn .khq-tn-v3grid{margin:22px 0 26px;padding:20px;border-radius:18px;background:linear-gradient(135deg,#1d1433 0%,#3b1732 100%);color:#f4e9ef;}\n.khq-tn .v3-grid-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;}\n.khq-tn .v3-grid-head b{font-size:1.2em;color:#fff;}\n.khq-tn .v3-grid-head .v3-sub{flex-basis:100%;color:#d9c3cf;font-size:.95em;}\n.khq-tn .v3-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}\n.khq-tn .v3-tile{background:rgba(255,255,255,.06);border:1px solid rgba(255,160,120,.25);border-radius:12px;padding:14px;}\n.khq-tn .v3-ico{font-size:24px;line-height:1.2;}\n.khq-tn .v3-tt{font-weight:700;color:#ffb36b;margin:6px 0 4px;}\n.khq-tn .v3-td{font-size:.93em;color:#efe2ea;line-height:1.65;}\n.khq-tn .v3-v2{margin-top:8px;font-size:.82em;color:#a8909c;}\n.khq-tn .khq-tn-v3grid .v3-note{color:#c9aebb;font-size:.85em;margin:12px 0 0;}\n.khq-tn .khq-tn-v3grid .v3-btn.ghost{background:transparent;color:#ffcfae!important;border-color:rgba(255,190,150,.6)!important;}\n.khq-tn .khq-tn-v3end{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin:34px 0 8px;padding:18px 22px;border-radius:16px;background:linear-gradient(120deg,#1d1433 0%,#4a1636 100%);color:#f4e9ef;}\n.khq-tn .v3-end-l{flex:1 1 380px;}\n.khq-tn .v3-end-t{display:inline-block;margin-left:8px;font-weight:700;font-size:1.1em;color:#fff;}\n.khq-tn .khq-tn-v3end ul{list-style:none;margin:10px 0 0;padding:0;}\n.khq-tn .khq-tn-v3end li{position:relative;padding-left:22px;margin:4px 0;color:#efe2ea;font-size:.95em;}\n.khq-tn .khq-tn-v3end li::before{content:\"\u2713\";position:absolute;left:0;color:#ffb36b;font-weight:700;}\n.khq-tn .khq-tn-v3end .v3-note{color:#c9aebb;font-size:.82em;margin:8px 0 0;}\n.khq-tn .khq-tn-v3end .v3-cta{flex-direction:column;margin:0;}\n.khq-tn .khq-tn-v3end .v3-btn{text-align:center;}\n.khq-tn .khq-tn-v3end .v3-btn.ghost{background:transparent;color:#ffcfae!important;border-color:rgba(255,190,150,.6)!important;}\n.khq-tn .v3-cases{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:10px 0 8px;}\n.khq-tn .v3-case{display:block;background:#fff;border:1px solid #f5c7ab;border-radius:12px;padding:12px 14px;text-decoration:none!important;border-bottom:1px solid #f5c7ab!important;transition:box-shadow .15s,transform .15s;}\n.khq-tn .v3-case:hover{box-shadow:0 8px 20px rgba(229,46,113,.14);transform:translateY(-1px);}\n.khq-tn .v3-case .c-t{display:flex;align-items:center;gap:8px;font-weight:700;color:#b33a12;font-size:1.02em;}\n.khq-tn .v3-case .c-tag{font-size:11.5px;font-weight:700;color:#fff;background:linear-gradient(90deg,#ff8a00,#e52e71);border-radius:999px;padding:0 8px;line-height:1.7;}\n.khq-tn .v3-case .c-d{color:#5a4a42;font-size:.92em;line-height:1.65;margin-top:4px;}\n.khq-tn .v3-case .c-go{color:#c2410c;font-size:.9em;font-weight:700;margin-top:6px;}\n.khq-tn .v3-cases > p,.khq-tn .v3-cases > br{display:none;}\n.khq-tn .v3-warn{margin:12px 0 4px;padding:10px 14px;border-radius:10px;background:#fff4e5;border:1px dashed #f0a35e;color:#8a4b12;font-size:.93em;line-height:1.7;}\n.khq-tn .v3-warn b{color:#b45309;}\n@media (max-width:640px){.khq-tn .v3-cases{grid-template-columns:1fr;}}\n@media (max-width:900px){.khq-tn .v3-tiles{grid-template-columns:repeat(2,1fr);}}\n@media (max-width:600px){.khq-tn .v3-tiles{grid-template-columns:1fr;}.khq-tn .khq-tn-v3end .v3-cta{flex-direction:row;}}\n<\/style>\n<style>.khq-tn-ver .plat{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:10px;font-size:.82em;background:#eef3f9;color:#2b4a6f;border:1px solid #d7e2ef}.khq-tn-ver .plat.no{background:#f6f6f6;color:#999;text-decoration:line-through;border-color:#e5e5e5}.khq-web-manual pre{white-space:pre-wrap}<\/style>\n<div class=\"khq-web-manual khq-tn\">\n<div class=\"khq-tn-ver\">\u9002\u7528\u7248\u672c <span class=\"ver ver-v3\">V3<\/span> <span class=\"plat\">Windows<\/span><span class=\"plat\">macOS<\/span><span class=\"plat\">Linux<\/span><\/div>\n\n<div class=\"khq-tn-video\" data-tn=\"A\"><video controls preload=\"none\" playsinline poster=\"\/khQuant\/media\/tutorial-new\/tn-A.jpg?v=7a8965d9\" src=\"\/khQuant\/media\/tutorial-new\/tn-A.mp4?v=7a8965d9\">\u4f60\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\u89c6\u9891\u64ad\u653e\uff0c\u53ef\u4ee5<a href=\"\/khQuant\/media\/tutorial-new\/tn-A.mp4?v=7a8965d9\">\u4e0b\u8f7d\u89c6\u9891<\/a>\u89c2\u770b\u3002<\/video><\/div>\n\n<h2>\u672c\u7bc7\u8bf4\u660e<\/h2>\n<p>\u8fd9\u662f <code>kh<\/code> \u547d\u4ee4\u7684\u67e5\u9605\u624b\u518c\uff0c\u6309\u547d\u4ee4\u5206\u8282\u5217\u51fa\u5e38\u7528\u53c2\u6570\uff0c\u5c11\u6570\u4e0d\u5e38\u7528\u7684\u53c2\u6570\uff08\u5982 <code>tool parquet-cache<\/code> \u7684 <code>&#45;&#45;root<\/code>\u3001<code>data conflicts<\/code> \u7684\u5404\u9879\uff09\u4ee5 <code>&#45;&#45;help<\/code> \u4e3a\u51c6\u3002\u7b2c\u4e00\u6b21\u4f7f\u7528\u8bf7\u5148\u770b <a href=\"https:\/\/khsci.com\/khQuant\/cli\/\">2.2<\/a> \u547d\u4ee4\u884c\u6a21\u5f0f\u4e0e AI \u667a\u80fd\u7b56\u7565\u7814\u7a76\u3002\u6bcf\u4e2a\u547d\u4ee4\u90fd\u53ef\u4ee5\u52a0 <code>&#45;&#45;help<\/code> \u67e5\u770b\u672c\u673a\u7248\u672c\u7684\u5e2e\u52a9\u3002<\/p>\n<ul>\n<li><strong>\u6ca1\u6709\u5168\u5c40\u53c2\u6570<\/strong>\uff1a<code>&#45;&#45;json<\/code>\u3001<code>-q<\/code>\u3001<code>&#45;&#45;data-root<\/code> \u7b49\u90fd\u5199\u5728\u5b50\u547d\u4ee4\u540e\u9762\u3002<code>kh &#45;&#45;json \u2026<\/code> \u4f1a\u62a5\u9519\uff1b\u67e5\u7248\u672c\u7528 <code>kh version<\/code>\u3002<\/li>\n<li>\u9664 <code>init<\/code>\u3001<code>version<\/code>\u3001<code>doctor<\/code>\u3001<code>gui<\/code>\u3001<code>bridge<\/code> \u5916\uff0c\u5176\u4ed6\u547d\u4ee4\u8981\u5148\u8fd0\u884c\u8fc7 <code>kh init<\/code>\uff08\u6216\u5728\u56fe\u5f62\u754c\u9762\u91cc\u4fdd\u5b58\u8fc7\u8bbe\u7f6e\uff09\u3002<\/li>\n<li>\u8f93\u51fa\u524d\u7f00\uff1a<code>OK<\/code> \u6210\u529f\u3001<code>ERR<\/code> \u51fa\u9519\u3001<code>WARN<\/code> \u63d0\u9192\u3001<code>&gt;<\/code> \u4fe1\u606f\u3002\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf <code>NO_COLOR<\/code> \u6216\u628a\u8f93\u51fa\u91cd\u5b9a\u5411\u5230\u6587\u4ef6\u65f6\u4e0d\u5e26\u989c\u8272\u3002<\/li>\n<li>\u9000\u51fa\u7801\uff1a\u53c2\u6570\u5199\u9519\u4e3a 2\uff1b<code>run<\/code>\u3001<code>data<\/code>\u3001<code>result show\/report<\/code>\u3001<code>bridge<\/code> \u51fa\u9519\u4e3a 1\uff1b<code>web<\/code> \u542f\u52a8\u5931\u8d25\uff08\u7aef\u53e3\u88ab\u5360\u7528\u3001\u914d\u7f6e\u6587\u4ef6\u4e0d\u5bf9\uff09\u548c Linux \u4e0a\u7684 <code>gui<\/code> \u4e3a 2\u3002\u6ce8\u610f <code>config<\/code>\u3001<code>strategy<\/code>\u3001<code>tool<\/code> \u4ee5\u53ca <code>data export\/repair\/update-pool<\/code> \u51fa\u9519\u65f6\u9000\u51fa\u7801\u4ecd\u662f 0\uff0c\u811a\u672c\u91cc\u8bf7\u68c0\u67e5\u8f93\u51fa\u6587\u5b57\u3002<code>tool trade-day<\/code> \u8f93\u51fa\u7684 <code>ERR<\/code> \u53ea\u8868\u793a\u300c\u4e0d\u662f\u4ea4\u6613\u65e5\u300d\uff0c\u4e0d\u662f\u51fa\u9519\u3002<\/li>\n<\/ul>\n\n<h2>1 \u547d\u4ee4\u4e00\u89c8<\/h2>\n<pre><code>kh\n\u251c\u2500 init                \u9996\u6b21\u914d\u7f6e\u5411\u5bfc\n\u251c\u2500 config              show \/ set \/ reset\n\u251c\u2500 run &lt;\u914d\u7f6e.kh&gt;       \u6267\u884c\u56de\u6d4b\n\u251c\u2500 web &#91;\u914d\u7f6e.kh]       \u542f\u52a8\u7f51\u9875\u56de\u6d4b\u5de5\u4f5c\u53f0\n\u251c\u2500 data                list \/ stats \/ info \/ download \/ scan \/ reindex \/\n\u2502                      export \/ repair \/ update-pool \/ sync \/ source test \/ conflicts\n\u251c\u2500 result              list \/ show \/ report \/ compare \/ clean\n\u251c\u2500 strategy            list \/ create \/ validate \/ info\n\u251c\u2500 tool                trade-day \/ pool \/ parquet-cache\n\u251c\u2500 bridge              serve \/ status\uff08\u670d\u52a1\u7aef\u4ec5 Windows\uff09\n\u251c\u2500 doctor              \u73af\u5883\u8bca\u65ad\n\u251c\u2500 version             \u7248\u672c\u4fe1\u606f\n\u2514\u2500 gui                 \u542f\u52a8\u56fe\u5f62\u754c\u9762\uff08Windows\u3001macOS\uff09<\/code><\/pre>\n\n<h2>2 init\u3001config\u3001doctor\u3001version\u3001gui<\/h2>\n<h3>kh init<\/h3>\n<p>\u4ea4\u4e92\u5f0f\u914d\u7f6e\uff1a\u56de\u6d4b\u6570\u636e\u6e90\uff08Windows\uff09\u3001\u6570\u636e\u76ee\u5f55\u3001\u7b56\u7565\u76ee\u5f55\u3001Tushare \/ BaoStock \/ HTTP \u6865\u63a5\u3001\u65e0\u98ce\u9669\u5229\u7387\uff0c\u6700\u540e\u4e00\u6b65\u624d\u4fdd\u5b58\u3002\u6b65\u9aa4\u548c\u9ed8\u8ba4\u503c\u89c1 <a href=\"https:\/\/khsci.com\/khQuant\/cli\/\">2.2<\/a> \u7b2c 4.2 \u8282\u3002\u91cd\u65b0\u8fd0\u884c\u4f1a\u4ece\u9ed8\u8ba4\u503c\u5f00\u59cb\uff0c\u8986\u76d6\u539f\u914d\u7f6e\u3002Windows \u9ed8\u8ba4\u653e\u5728 D \u76d8\uff0c\u6ca1\u6709 D \u76d8\u65f6\u9ed8\u8ba4\u653e\u5728\u7528\u6237\u76ee\u5f55\u4e0b\u3002<\/p>\n<h3>kh config<\/h3>\n<div class=\"khq-tn-table\"><table>\n<thead><tr><th style=\"text-align:left;\">\u547d\u4ee4<\/th><th style=\"text-align:left;\">\u4f5c\u7528<\/th><\/tr><\/thead>\n<tbody>\n<tr><td><code>kh config<\/code> \/ <code>kh config show<\/code><\/td><td>\u5217\u51fa\u5168\u90e8\u914d\u7f6e\u9879\uff08\u4e2d\u6587\u540d\u548c\u503c\uff09\uff0c\u5bc6\u94a5\u6253\u7801\u663e\u793a\uff0c\u6700\u540e\u663e\u793a\u914d\u7f6e\u6587\u4ef6\u8def\u5f84<\/td><\/tr>\n<tr><td><code>kh config set &lt;\u952e&gt; &lt;\u503c&gt;<\/code><\/td><td>\u4fee\u6539\u4e00\u9879\uff0c\u5148\u505a\u53d6\u503c\u68c0\u67e5<\/td><\/tr>\n<tr><td><code>kh config reset<\/code><\/td><td>\u786e\u8ba4\u540e\u628a<strong>\u6240\u6709<\/strong>\u9879\u6062\u590d\u9ed8\u8ba4\uff08\u8def\u5f84\u3001Token \u90fd\u4f1a\u6e05\u7a7a\uff09<\/td><\/tr>\n<\/tbody>\n<\/table><\/div>\n<p>\u5e03\u5c14\u503c\u5199 <code>true<\/code> \u6216 <code>false<\/code>\u3002\u6ce8\u610f\uff1a<code>true\/1\/yes\/on\/y<\/code> \u4ee5\u5916\u7684\u4efb\u4f55\u6587\u5b57\u90fd\u4f1a\u88ab\u5b58\u6210 false\uff0c\u800c\u4e14\u4e0d\u62a5\u9519\u3002\u5e38\u7528\u7684\u952e\u89c1\u7b2c 9 \u8282\u3002<\/p>\n<h3>kh doctor \/ kh version \/ kh gui<\/h3>\n<ul>\n<li><code>doctor<\/code>\uff1a\u68c0\u67e5 Python \u4f9d\u8d56\u3001\u6570\u636e\u76ee\u5f55\u3001\u6570\u636e\u6e90\u914d\u7f6e\u3001\u7b56\u7565\u76ee\u5f55\uff0c\u6700\u540e\u7ed9\u51fa\u300c\u603b\u8ba1: N \u901a\u8fc7, M \u8b66\u544a\u300d\u3002Windows \u4e0a\u6ca1\u5f00 miniQMT \u65f6\u4f1a\u6709\u4e00\u6761\u300c\u5386\u53f2\u884c\u60c5\u5bfc\u5165\u6e90 miniqmt \u672a\u5c31\u7eea\u300d\uff0c\u53ea\u5f71\u54cd miniQMT \u4e0b\u8f7d\uff1bmacOS\u3001Linux \u4e0a\u8fd9\u6761\u8b66\u544a\u603b\u4f1a\u51fa\u73b0\uff0c\u53ef\u4ee5\u5ffd\u7565\u3002<\/li>\n<li><code>version<\/code>\uff1a\u663e\u793a\u7248\u672c\u53f7\u3001\u6784\u5efa\u65e5\u671f\u548c\u5e73\u53f0\u3002<\/li>\n<li><code>gui<\/code>\uff1a\u542f\u52a8\u56fe\u5f62\u754c\u9762\u3002Linux \u4e0a\u63d0\u793a\u4e0d\u652f\u6301\u3002<\/li>\n<\/ul>\n\n<h2>3 kh run<\/h2>\n<pre><code>kh run &#91;\u9009\u9879] \u914d\u7f6e.kh<\/code><\/pre>\n<div class=\"khq-tn-table\"><table>\n<thead><tr><th style=\"text-align:left;\">\u53c2\u6570<\/th><th style=\"text-align:left;\">\u8bf4\u660e<\/th><\/tr><\/thead>\n<tbody>\n<tr><td><code>\u914d\u7f6e.kh<\/code><\/td><td>\u5fc5\u586b\u3002\u5148\u6309\u7ed9\u7684\u8def\u5f84\u627e\uff1b\u627e\u4e0d\u5230\u65f6\u5230\u7b56\u7565\u76ee\u5f55\u91cc\u627e\uff0c<code>.kh<\/code> \u53ef\u4ee5\u7701\u7565<\/td><\/tr>\n<tr><td><code>-s, &#45;&#45;strategy \u8def\u5f84<\/code><\/td><td>\u6362\u7528\u53e6\u4e00\u4e2a\u7b56\u7565 <code>.py<\/code><\/td><\/tr>\n<tr><td><code>&#45;&#45;start<\/code> \/ <code>&#45;&#45;end YYYYMMDD<\/code><\/td><td>\u8986\u76d6\u56de\u6d4b\u533a\u95f4<\/td><\/tr>\n<tr><td><code>-c, &#45;&#45;capital \u91d1\u989d<\/code><\/td><td>\u8986\u76d6\u521d\u59cb\u8d44\u91d1\uff08\u987b\u5927\u4e8e 0\uff09<\/td><\/tr>\n<tr><td><code>&#45;&#45;stocks \u4ee3\u7801,\u4ee3\u7801<\/code><\/td><td>\u6574\u4e2a\u66ff\u6362\u80a1\u7968\u6c60<\/td><\/tr>\n<tr><td><code>-p, &#45;&#45;period<\/code><\/td><td>\u8986\u76d6\u5468\u671f\uff1a<code>tick\/1m\/5m\/1d<\/code><\/td><\/tr>\n<tr><td><code>-q, &#45;&#45;quiet<\/code><\/td><td>\u9759\u9ed8\uff0c\u8fde\u7ed3\u679c\u6458\u8981\u4e5f\u4e0d\u663e\u793a<\/td><\/tr>\n<tr><td><code>-v, &#45;&#45;verbose<\/code><\/td><td>\u8f93\u51fa\u8c03\u8bd5\u7ea7\u65e5\u5fd7<\/td><\/tr>\n<tr><td><code>&#45;&#45;report<\/code><\/td><td>\u8dd1\u5b8c\u751f\u6210 HTML \u62a5\u544a\uff08\u8bbe\u7f6e <code>auto_report=true<\/code> \u65f6\u4e0d\u52a0\u4e5f\u4f1a\u751f\u6210\uff09<\/td><\/tr>\n<tr><td><code>&#45;&#45;no-open<\/code><\/td><td>\u4e0d\u81ea\u52a8\u6253\u5f00\u6d4f\u89c8\u5668\uff1b\u5355\u72ec\u52a0\u4e0d\u4f1a\u751f\u6210\u62a5\u544a\uff0c\u8981\u548c <code>&#45;&#45;report<\/code> \u4e00\u8d77\u7528\uff08\u6216 <code>.kh<\/code> \u91cc\u5f00\u4e86\u81ea\u52a8\u751f\u6210\u62a5\u544a\uff09<\/td><\/tr>\n<tr><td><code>&#45;&#45;json<\/code><\/td><td>\u9759\u9ed8\u8fd0\u884c\uff0c\u8f93\u51fa\u4e00\u884c JSON\uff08\u503c\u4e3a\u5b57\u7b26\u4e32\uff1b\u51fa\u9519\u65f6 JSON \u524d\u4f1a\u5148\u6709\u4e00\u884c ERR\uff0c\u52a0\u4e86 <code>&#45;&#45;report<\/code> \u65f6 JSON \u540e\u8fd8\u6709\u4e00\u884c\u300cOK HTML \u62a5\u544a\u300d\uff09\uff1b\u914d\u7f6e\u89e3\u6790\u5931\u8d25\u3001\u914d\u7f6e\u6821\u9a8c\u5931\u8d25\u3001\u56de\u6d4b\u6267\u884c\u5931\u8d25\u65f6\u8f93\u51fa <code>{\"error\": \u2026}<\/code>\uff1b\u627e\u4e0d\u5230 <code>.kh<\/code> \u6587\u4ef6\u65f6\u53ea\u8f93\u51fa <code>ERR<\/code> \u6587\u5b57\uff0c\u6ca1\u6709 JSON\u3002\u4e24\u79cd\u60c5\u51b5\u9000\u51fa\u7801\u90fd\u662f 1\u3002<code>.kh<\/code> \u8bf7\u5199\u5b8c\u6574\u8def\u5f84<\/td><\/tr>\n<tr><td><code>&#45;&#45;data-root \u76ee\u5f55<\/code><\/td><td>\u672c\u6b21\u7528\u53e6\u4e00\u4e2a DuckDB \u6570\u636e\u76ee\u5f55\uff0c\u4e0d\u6539\u5168\u5c40\u8bbe\u7f6e<\/td><\/tr>\n<tr><td><code>&#45;&#45;memory-profile<\/code><\/td><td>\u672c\u6b21\u5185\u5b58\u6863\u4f4d\uff1a<code>auto<\/code> \/ <code>standard<\/code> \/ <code>low<\/code> \/ <code>ultra_low<\/code>\u3002\u4e0d\u5199\u65f6\u5148\u770b <code>.kh<\/code> \u91cc\u7684\u8bbe\u7f6e\uff0c\u518d\u770b\u5168\u5c40\u7684 <code>performance_preset<\/code>\uff0c\u89c1 <a href=\"https:\/\/khsci.com\/khQuant\/chapter11\/\">1.12<\/a><\/td><\/tr>\n<tr><td><code>&#45;&#45;no-auto-dynamic-load<\/code><\/td><td>\u4f4e\u5185\u5b58\u6863\u4f4d\u4e0b\u4e5f\u4e0d\u81ea\u52a8\u5206\u6bb5\u8f7d\u5165<\/td><\/tr>\n<tr><td><code>&#45;&#45;allow-provisional<\/code><\/td><td>\u7814\u7a76\u6a21\u5f0f\u9009\u9879\uff0c\u5bf9\u6559\u7a0b\u4e2d\u7684\u6570\u636e\u6e90\u6ca1\u6709\u4f5c\u7528<\/td><\/tr>\n<\/tbody>\n<\/table><\/div>\n<pre><code>kh run \u30101-MA\u7b56\u7565\u6848\u4f8b\u3011\u53cc\u5747\u7ebf\u7cbe\u7b80_\u4f7f\u7528khMA\u51fd\u6570.kh &#45;&#45;stocks 000300.SH &#45;&#45;start 20251201 &#45;&#45;end 20260930 &#45;&#45;report\nkh run D:\\CLIstrategies\\my.kh &#45;&#45;json 2&gt;&#36;null<\/code><\/pre>\n<p>\u8986\u76d6\u9879\u4e0d\u4f1a\u4fee\u6539 <code>.kh<\/code> \u6587\u4ef6\u672c\u8eab\u3002\u56de\u6d4b\u65e5\u5fd7\u8f93\u51fa\u5230 stderr\uff0c\u7ed3\u679c\u6458\u8981\u8f93\u51fa\u5230 stdout\u3002<\/p>\n\n<h2>4 kh web<\/h2>\n<pre><code>kh web &#91;\u914d\u7f6e.kh] &#91;&#45;&#45;host \u5730\u5740] &#91;&#45;&#45;port \u7aef\u53e3] &#91;&#45;&#45;no-open]<\/code><\/pre>\n<ul>\n<li><code>\u914d\u7f6e.kh<\/code>\uff1a\u53ef\u9009\uff0c\u542f\u52a8\u65f6\u5bfc\u5165\u4e3a\u9879\u76ee\u5e76\u81ea\u52a8\u9009\u4e2d\u3002<\/li>\n<li><code>&#45;&#45;host<\/code>\uff1a\u9ed8\u8ba4 <code>127.0.0.1<\/code>\uff08\u53ea\u9650\u672c\u673a\uff09\uff1b<code>0.0.0.0<\/code> \u5141\u8bb8\u5c40\u57df\u7f51\u8bbf\u95ee\uff0c\u81ea\u52a8\u751f\u6210\u8bbf\u95ee\u5bc6\u94a5\u3002<\/li>\n<li><code>&#45;&#45;port<\/code>\uff1a\u9ed8\u8ba4 8766\u3002\u7aef\u53e3\u88ab\u5360\u7528\u65f6\u62a5\u9519\u9000\u51fa\u3002<\/li>\n<li>\u524d\u53f0\u8fd0\u884c\uff0cCtrl+C \u505c\u6b62\u3002\u8be6\u89c1 <a href=\"https:\/\/khsci.com\/khQuant\/web-backtest\/\">2.6<\/a>\u3002<\/li>\n<\/ul>\n\n<h2 id=\"data\">5 kh data<\/h2>\n<h3>data list \/ stats \/ info<\/h3>\n<div class=\"khq-tn-table\"><table>\n<thead><tr><th style=\"text-align:left;\">\u547d\u4ee4<\/th><th style=\"text-align:left;\">\u4f5c\u7528<\/th><\/tr><\/thead>\n<tbody>\n<tr><td><code>kh data list &#91;&#45;&#45;market SH|SZ|BJ] &#91;&#45;&#45;period 1d|1m|5m|tick]<\/code><\/td><td>\u5217\u51fa\u5e93\u91cc\u7684\u8bc1\u5238\u3002\u5168\u65b0\u7684\u7a7a\u5e93\u4f1a\u62a5 metadata.db \u4e0d\u5b58\u5728\uff0c\u4e0b\u8f7d\u4e00\u6b21\u6570\u636e\u540e\u6b63\u5e38<\/td><\/tr>\n<tr><td><code>kh data stats<\/code><\/td><td>\u5404\u5e02\u573a\u7684\u8bc1\u5238\u6570\u3001\u6587\u4ef6\u6570\u3001\u78c1\u76d8\u5360\u7528<\/td><\/tr>\n<tr><td><code>kh data info \u4ee3\u7801<\/code><\/td><td>\u4e00\u53ea\u8bc1\u5238\u7684\u6587\u4ef6\u4f4d\u7f6e\u548c\u5404\u5468\u671f\u6761\u6570\u3001\u8d77\u6b62\u65f6\u95f4\u3002\u4ee3\u7801\u5fc5\u987b\u5e26\u540e\u7f00<\/td><\/tr>\n<\/tbody>\n<\/table><\/div>\n\n<h3>data download<\/h3>\n<pre><code>kh data download &#45;&#45;source \u6570\u636e\u6e90 &#45;&#45;stocks \u2026 \/ &#45;&#45;pool \u2026 \/ &#45;&#45;file \u2026\uff08\u81f3\u5c11\u4e00\u4e2a\uff0c\u53ef\u7ec4\u5408\uff0c\u4f1a\u5408\u5e76\u53bb\u91cd\uff09 &#91;\u9009\u9879]<\/code><\/pre>\n<div class=\"khq-tn-table\"><table>\n<thead><tr><th style=\"text-align:left;\">\u53c2\u6570<\/th><th style=\"text-align:left;\">\u8bf4\u660e<\/th><\/tr><\/thead>\n<tbody>\n<tr><td><code>&#45;&#45;source<\/code><\/td><td>\u5fc5\u586b\uff1a<code>tx<\/code>\uff08\u5373 <code>tencent<\/code>\uff09\u3001<code>baostock<\/code>\u3001<code>tushare<\/code>\u3001<code>ths<\/code>\uff08\u540c\u82b1\u987a\uff09\u3001<code>http<\/code>\uff08HTTP \u6865\u63a5\uff09\uff1bWindows \u53e6\u6709 <code>miniqmt<\/code>\uff08\u522b\u540d <code>xtdata<\/code>\uff09<\/td><\/tr>\n<tr><td><code>&#45;&#45;stocks<\/code><\/td><td>\u4ee3\u7801\uff0c\u9017\u53f7\u5206\u9694\u30026 \u4f4d\u6570\u5b57\u4f1a\u81ea\u52a8\u8865\u540e\u7f00\uff0c\u53ef\u8f6c\u503a\u8bf7\u81ea\u5df1\u5199\u540e\u7f00<\/td><\/tr>\n<tr><td><code>&#45;&#45;pool<\/code><\/td><td>\u9884\u8bbe\u80a1\u7968\u6c60 id\uff0c\u53ef\u9017\u53f7\u7ec4\u5408\uff0c\u89c1\u7b2c 10 \u8282<\/td><\/tr>\n<tr><td><code>&#45;&#45;file<\/code><\/td><td>CSV \u6587\u4ef6\uff08UTF-8\uff09\uff0c\u81ea\u52a8\u627e\u4ee3\u7801\u5217\uff0c\u627e\u4e0d\u5230\u7528\u7b2c\u4e00\u5217<\/td><\/tr>\n<tr><td><code>&#45;&#45;period<\/code><\/td><td>\u5468\u671f\uff0c\u53ef\u591a\u9009\uff0c\u9ed8\u8ba4 <code>1d<\/code>\u3002\u5b9e\u9645\u53ef\u7528\u7684\u89c1\u4e0b\u8868<\/td><\/tr>\n<tr><td><code>&#45;&#45;start<\/code> \/ <code>&#45;&#45;end<\/code><\/td><td>\u9ed8\u8ba4 2020-01-01 \u5230\u4eca\u5929\uff08\u540c\u82b1\u987a\u9ed8\u8ba4\u8fd1 3 \u5e74\uff1btx \u5206\u949f\u7ebf\u9ed8\u8ba4\u53d6\u63a5\u53e3\u80fd\u7ed9\u7684\u5168\u90e8\uff09<\/td><\/tr>\n<tr><td><code>&#45;&#45;adj<\/code><\/td><td>\u590d\u6743\uff0c\u53ef\u591a\u9009\uff1a<code>none,front,back,front_ratio,back_ratio<\/code>\u3002<strong>tx \u9ed8\u8ba4 none\uff0c\u5176\u4ed6\u9ed8\u8ba4 front<\/strong><\/td><\/tr>\n<tr><td><code>&#45;&#45;force<\/code><\/td><td>\u5f3a\u5236\u6309\u533a\u95f4\u91cd\u65b0\u4e0b\u8f7d\u3001\u8986\u76d6\u5df2\u6709\u6570\u636e<\/td><\/tr>\n<tr><td><code>&#45;&#45;skip-benchmark<\/code><\/td><td>\u4e0d\u81ea\u52a8\u8865\u6caa\u6df1 300 \u57fa\u51c6\uff08\u9ed8\u8ba4\u6bcf\u6b21\u90fd\u4f1a\u5148\u8865\uff09<\/td><\/tr>\n<tr><td><code>&#45;&#45;data-root \u76ee\u5f55<\/code><\/td><td>\u4e0b\u8f7d\u5230\u53e6\u4e00\u4e2a\u76ee\u5f55\uff0c\u4ec5 tx\u3001\u540c\u82b1\u987a\u652f\u6301<\/td><\/tr>\n<tr><td><code>&#45;&#45;workers N<\/code><\/td><td>\u5e76\u53d1\u6570\uff0c\u9ed8\u8ba4 2\uff0c\u4ec5 miniQMT\u3001BaoStock \u4f7f\u7528<\/td><\/tr>\n<tr><td><code>&#45;&#45;allow-gaps<\/code><\/td><td>\u4ec5 tx \u5206\u949f\u7ebf\uff1a\u8d85\u51fa\u4fdd\u7559\u671f\u65f6\u53ea\u4e0b\u80fd\u62ff\u5230\u7684\u90e8\u5206\uff0c\u4e0d\u80fd\u4e0e <code>&#45;&#45;force<\/code> \u540c\u7528<\/td><\/tr>\n<tr><td><code>&#45;&#45;repair-volume-units<\/code><\/td><td>\u4ec5 tx\uff1a\u6838\u9a8c\u5e76\u4fee\u590d\u65e7\u5e93\u91cc\u4ee5\u300c\u80a1\u300d\u4e3a\u5355\u4f4d\u7684\u6210\u4ea4\u91cf\uff08\u5148\u5907\u4efd\uff09<\/td><\/tr>\n<tr><td><code>&#45;&#45;db-write-mode<\/code><\/td><td><code>auto<\/code>\uff08\u9ed8\u8ba4\uff09\/ <code>normal<\/code> \/ <code>short-lock<\/code>\uff0c\u4e00\u822c\u4e0d\u7528\u6539<\/td><\/tr>\n<tr><td><code>&#45;&#45;direct-range<\/code>\u3001<code>&#45;&#45;empty-data-policy<\/code>\u3001<code>&#45;&#45;summary-json<\/code><\/td><td>\u4e3b\u8981\u4f9b miniQMT \u4e0b\u8f7d\u4f7f\u7528\uff08<code>&#45;&#45;summary-json<\/code> \u5bf9 tx \u4e5f\u6709\u6548\uff0c\u5199\u5165\u4e0b\u8f7d\u8bb0\u5f55\uff09<\/td><\/tr>\n<\/tbody>\n<\/table><\/div>\n<div class=\"khq-tn-table\"><table>\n<thead><tr><th style=\"text-align:left;\">\u6570\u636e\u6e90<\/th><th style=\"text-align:left;\">\u5468\u671f<\/th><th style=\"text-align:left;\">\u590d\u6743<\/th><th style=\"text-align:left;\">\u524d\u63d0<\/th><\/tr><\/thead>\n<tbody>\n<tr><td>tx<\/td><td>1d 1m 5m<\/td><td>5 \u79cd<\/td><td>\u65e0<\/td><\/tr>\n<tr><td>baostock<\/td><td>1d 5m<\/td><td>none front back<\/td><td>\u65e0<\/td><\/tr>\n<tr><td>tushare<\/td><td>1d 1m 5m<\/td><td>none front back<\/td><td><code>tushare_token<\/code> \u53ca\u79ef\u5206\u6743\u9650<\/td><\/tr>\n<tr><td>ths<\/td><td>1d<\/td><td>none front back<\/td><td><code>ths_api_key<\/code><\/td><\/tr>\n<tr><td>http<\/td><td>1d 1m 5m tick<\/td><td>5 \u79cd<\/td><td><code>http_base_url<\/code>\u3001<code>http_api_key<\/code><\/td><\/tr>\n<tr><td>miniqmt<\/td><td>1d 1m 5m tick<\/td><td>5 \u79cd<\/td><td>Windows\uff0cminiQMT \u5df2\u767b\u5f55<\/td><\/tr>\n<\/tbody>\n<\/table><\/div>\n<pre><code>kh data download &#45;&#45;source tx &#45;&#45;stocks 000300.SH,000001.SH &#45;&#45;start 20251001 &#45;&#45;adj front\nkh data download &#45;&#45;source baostock &#45;&#45;pool hs300\nkh data download &#45;&#45;source http &#45;&#45;stocks 000001.SZ &#45;&#45;period 1d,5m &#45;&#45;adj none,front<\/code><\/pre>\n<p>\u5404\u6570\u636e\u6e90\u7684\u8be6\u7ec6\u8bf4\u660e\u89c1 <a href=\"https:\/\/khsci.com\/khQuant\/chapter2-5\/\">2.3<\/a>\u3002<\/p>\n\n<h3>data scan \/ sync \/ update-pool<\/h3>\n<div class=\"khq-tn-table\"><table>\n<thead><tr><th style=\"text-align:left;\">\u547d\u4ee4<\/th><th style=\"text-align:left;\">\u53c2\u6570\u548c\u8bf4\u660e<\/th><\/tr><\/thead>\n<tbody>\n<tr><td><code>kh data scan<\/code><\/td><td>\u6309\u4ea4\u6613\u65e5\u68c0\u67e5\u7f3a\u53e3\u3002<code>&#45;&#45;period<\/code>\uff08\u5355\u4e2a\uff0c\u9ed8\u8ba4 1d\uff09\u3001<code>&#45;&#45;stocks<\/code>\u3001<code>&#45;&#45;start<\/code>\uff08\u9ed8\u8ba4 20200101\uff09\u3001<code>&#45;&#45;end<\/code>\u3001<code>&#45;&#45;fix<\/code>\uff08\u8865\u7f3a\uff1b\u6709\u80a1\u7968\u8865\u7f3a\u5931\u8d25\u65f6\u9000\u51fa\u7801\u4e3a 1\uff09\u3001<code>&#45;&#45;source<\/code>\uff08\u8865\u7f3a\u7528\u7684\u6570\u636e\u6e90\uff1b\u7528 tx \u8865\u7f3a\u53ea\u8865\u4e0d\u590d\u6743\uff0c\u5176\u4ed6\u6e90\u8865\u524d\u590d\u6743\uff09\u3001<code>&#45;&#45;allow-gaps<\/code>\u3002\u6709\u7f3a\u53e3\u9000\u51fa\u7801\u4ecd\u4e3a 0\uff0c\u6709\u626b\u63cf\u5931\u8d25\u4e3a 1<\/td><\/tr>\n<tr><td><code>kh data sync<\/code><\/td><td>\u7ed9\u5e93\u91cc\u5168\u90e8\u8bc1\u5238\u8865\u4eca\u5929\u7684\u6570\u636e\u3002<code>&#45;&#45;period<\/code>\uff08\u53ef\u591a\u9009\uff09\u3001<code>&#45;&#45;source<\/code>\u3001<code>&#45;&#45;schedule HH:MM<\/code>\uff08\u524d\u53f0\u5e38\u9a7b\uff0c\u5de5\u4f5c\u65e5\u5b9a\u65f6\u6267\u884c\uff09\u3001<code>&#45;&#45;allow-gaps<\/code>\u3002\u590d\u6743\u56fa\u5b9a\uff1atx \u4e0d\u590d\u6743\uff0c\u5176\u4ed6\u524d\u590d\u6743<\/td><\/tr>\n<tr><td><code>kh data update-pool<\/code><\/td><td>\u66f4\u65b0\u9884\u8bbe\u677f\u5757\u6210\u5206\u80a1\u5217\u8868\u3002\u9ed8\u8ba4\u4f18\u5148\u7528 miniQMT\uff0c\u53d6\u4e0d\u5230\u6539\u7528 BaoStock\uff1b\u5199\u4e86 <code>&#45;&#45;source miniqmt<\/code> \u800c miniQMT \u6ca1\u5f00\u65f6\u76f4\u63a5\u62a5\u9519\u9000\u51fa\uff08\u9000\u51fa\u7801 1\uff09<\/td><\/tr>\n<\/tbody>\n<\/table><\/div>\n<p>\u4e0d\u5199 <code>&#45;&#45;source<\/code> \u65f6\u7684\u81ea\u52a8\u9009\u62e9\u987a\u5e8f\uff1a\u914d\u7f6e\u4e86 Tushare Token \u2192 tushare\uff1b\u542f\u7528\u4e86 BaoStock \u2192 baostock\uff1bWindows \u5b89\u88c5\u7248\uff08\u81ea\u5e26 xtquant\uff09\u2192 miniqmt\uff0cminiQMT \u6ca1\u5f00\u4f1a\u76f4\u63a5\u62a5\u9519\uff1b\u5426\u5219 baostock\u3002tx\u3001\u540c\u82b1\u987a\u4e0d\u4f1a\u88ab\u81ea\u52a8\u9009\u4e2d\u3002\u8be6\u89c1 <a href=\"https:\/\/khsci.com\/khQuant\/chapter2-5\/\">2.3<\/a>\u3002<\/p>\n\n<h3>data export \/ reindex \/ repair<\/h3>\n<div class=\"khq-tn-table\"><table>\n<thead><tr><th style=\"text-align:left;\">\u547d\u4ee4<\/th><th style=\"text-align:left;\">\u53c2\u6570\u548c\u8bf4\u660e<\/th><\/tr><\/thead>\n<tbody>\n<tr><td><code>kh data export \u4ee3\u7801<\/code><\/td><td><code>&#45;&#45;period<\/code>\uff08\u9ed8\u8ba4 1d\uff09\u3001<code>&#45;&#45;start<\/code>\u3001<code>&#45;&#45;end<\/code>\u3001<code>&#45;&#45;output<\/code>\uff08\u9ed8\u8ba4\u5f53\u524d\u76ee\u5f55 <code>\u4ee3\u7801_\u5468\u671f.csv<\/code>\uff09\u3002\u5bfc\u51fa\u884c\u60c5\u5217\uff08\u4e0d\u542b <code>dividend_type<\/code>\u3001<code>update_time<\/code>\uff09\uff0c\u7b2c\u4e00\u5217\u662f\u65e0\u8868\u5934\u7684\u884c\u53f7\u3002\u4ee3\u7801\u5fc5\u987b\u5e26\u540e\u7f00<\/td><\/tr>\n<tr><td><code>kh data reindex<\/code><\/td><td>\u6838\u5bf9\u6570\u636e\u6587\u4ef6\u548c\u7d22\u5f15\u662f\u5426\u4e00\u81f4\uff0c\u9ed8\u8ba4\u53ea\u9884\u89c8\uff1b<code>&#45;&#45;fix<\/code> \u5907\u4efd\u540e\u8865\u767b\u8bb0\uff1b<code>&#45;&#45;workers<\/code>\uff081\uff5e16\uff0c\u9ed8\u8ba4 8\uff09<\/td><\/tr>\n<tr><td><code>kh data repair<\/code><\/td><td>\u5904\u7406\u5f02\u5e38\u9000\u51fa\u7559\u4e0b\u7684 WAL \u6587\u4ef6\u3002<code>&#45;&#45;db-path<\/code>\u3001<code>&#45;&#45;memory-limit<\/code>\uff08\u9ed8\u8ba4 256MB\uff09\u3002\u4fee\u590d\u65f6\uff08\u6210\u529f\u4e5f\u4e00\u6837\uff09\u4f1a\u628a\u539f\u6587\u4ef6\u5907\u4efd\u5230\u6570\u636e\u76ee\u5f55\u4e0b\u7684 <code>_wal_repair_quarantine_\u65f6\u95f4<\/code> \u6587\u4ef6\u5939\u3001\u539f\u4f4d\u7f6e\u6362\u6210\u7a7a\u5e93\uff1b\u547d\u4ee4\u603b\u662f\u663e\u793a\u300cOK \u4fee\u590d\u5b8c\u6210\u300d\uff0c\u8fd0\u884c\u524d\u8bf7\u5148\u5173\u95ed\u8f6f\u4ef6\uff0c\u8fd0\u884c\u540e\u68c0\u67e5\u6709\u6ca1\u6709\u8fd9\u4e2a\u6587\u4ef6\u5939<\/td><\/tr>\n<\/tbody>\n<\/table><\/div>\n\n<h3>data source test \/ conflicts<\/h3>\n<ul>\n<li><code>kh data source test &#45;&#45;source \u6570\u636e\u6e90<\/code>\uff1a\u68c0\u67e5\u6570\u636e\u6e90\u80fd\u5426\u4f7f\u7528\u3002tx \u548c\u540c\u82b1\u987a\u4f1a\u771f\u7684\u8054\u7f51\u53d6\u4e00\u6b21\u6570\u636e\uff1btushare \u53ea\u68c0\u67e5\u6709\u6ca1\u6709\u914d\u7f6e Token\uff0c\u4e0d\u9a8c\u8bc1 Token \u662f\u5426\u6709\u6548\uff1bbaostock \u53ea\u68c0\u67e5\u7ec4\u4ef6\u662f\u5426\u9f50\u5168\u3002<\/li>\n<li><code>kh data conflicts list \/ export \/ resolve<\/code>\uff1a\u8de8\u6570\u636e\u6e90\u51b2\u7a81\u8bb0\u5f55\u3002\u5f53\u524d\u7248\u672c\u7684\u6570\u636e\u6e90\u4e0d\u4f1a\u4ea7\u751f\u51b2\u7a81\u8bb0\u5f55\uff0c\u6267\u884c\u540e\u53ea\u4f1a\u63d0\u793a\u300c\u5f53\u524d\u6ca1\u6709\u8de8\u6765\u6e90\u51b2\u7a81\u8bb0\u5f55\u300d\u3002<\/li>\n<\/ul>\n\n<h2>6 kh result<\/h2>\n<div class=\"khq-tn-table\"><table>\n<thead><tr><th style=\"text-align:left;\">\u547d\u4ee4<\/th><th style=\"text-align:left;\">\u53c2\u6570\u548c\u8bf4\u660e<\/th><\/tr><\/thead>\n<tbody>\n<tr><td><code>kh result list<\/code><\/td><td>\u9ed8\u8ba4\u6700\u8fd1 20 \u4e2a\uff1b<code>&#45;&#45;all<\/code> \u5168\u90e8\uff1b<code>&#45;&#45;strategy \u540d\u5b57<\/code> \u6309\u7b56\u7565\u540d\u8fc7\u6ee4\uff08\u4e0d\u52a0 <code>&#45;&#45;all<\/code> \u65f6\u53ea\u5728\u6700\u8fd1 20 \u4e2a\u91cc\u8fc7\u6ee4\uff1b\u8fc7\u6ee4\u540e\u7684\u5e8f\u53f7\u4e0d\u80fd\u7528\u4e8e <code>&#45;&#45;id<\/code>\uff09\uff1b<code>&#45;&#45;json<\/code>\uff08\u6536\u76ca\u3001\u56de\u64a4\u662f <code>\"+1.23%\"<\/code> \u8fd9\u6837\u7684\u5b57\u7b26\u4e32\uff09<\/td><\/tr>\n<tr><td><code>kh result show &#91;\u6587\u4ef6\u5939\u540d]<\/code><\/td><td>\u9ed8\u8ba4\u6700\u8fd1\u4e00\u6b21\uff1b<code>&#45;&#45;id N<\/code> \u4e3a <code>list<\/code> \u7684\u7b2c N \u4e2a\uff1b<code>&#45;&#45;json<\/code>\uff08\u6570\u503c\u4e3a\u6570\u5b57\uff09<\/td><\/tr>\n<tr><td><code>kh result report &#91;\u6587\u4ef6\u5939\u540d]<\/code><\/td><td>\u751f\u6210 HTML \u62a5\u544a\u3002<code>&#45;&#45;id<\/code>\u3001<code>&#45;&#45;index<\/code>\uff08\u751f\u6210\u5168\u90e8\u7ed3\u679c\u7684\u7d22\u5f15\u9875\uff09\u3001<code>&#45;&#45;no-open<\/code>\u3001<code>&#45;&#45;output \u8def\u5f84<\/code>\u3001<code>&#45;&#45;data-root \u76ee\u5f55<\/code><\/td><\/tr>\n<tr><td><code>kh result compare<\/code><\/td><td><code>&#45;&#45;last N<\/code>\uff0c\u5bf9\u6bd4\u6700\u8fd1 N \u6b21\uff08\u9ed8\u8ba4 3\uff09<\/td><\/tr>\n<tr><td><code>kh result clean<\/code><\/td><td><code>&#45;&#45;keep N<\/code> \u4fdd\u7559\u6700\u8fd1 N \u4e2a\uff08\u9ed8\u8ba4 10\uff09\uff0c\u5176\u4f59<strong>\u76f4\u63a5\u5220\u9664\u4e0d\u786e\u8ba4<\/strong>\uff1b<code>&#45;&#45;dry-run<\/code> \u53ea\u9884\u89c8<\/td><\/tr>\n<\/tbody>\n<\/table><\/div>\n<p>\u5e8f\u53f7\u6309\u7ed3\u679c\u6587\u4ef6\u5939\u7684\u4fee\u6539\u65f6\u95f4\u6392\u5217\u3002\u8be6\u89c1 <a href=\"https:\/\/khsci.com\/khQuant\/cli\/\">2.2<\/a> \u7b2c 4 \u8282\u3002<\/p>\n\n<h2>7 kh strategy<\/h2>\n<div class=\"khq-tn-table\"><table>\n<thead><tr><th style=\"text-align:left;\">\u547d\u4ee4<\/th><th style=\"text-align:left;\">\u8bf4\u660e<\/th><\/tr><\/thead>\n<tbody>\n<tr><td><code>kh strategy list &#91;&#45;&#45;dir \u76ee\u5f55]<\/code><\/td><td>\u5217\u51fa\u7b56\u7565\u76ee\u5f55\u91cc\u7684 <code>.py<\/code> \u548c\u540c\u540d <code>.kh<\/code><\/td><\/tr>\n<tr><td><code>kh strategy create \u540d\u79f0 &#91;&#45;&#45;dir \u76ee\u5f55]<\/code><\/td><td>\u751f\u6210\u7a7a\u767d\u7b56\u7565 <code>\u540d\u79f0.py<\/code> \u548c\u914d\u7f6e <code>\u540d\u79f0.kh<\/code><\/td><\/tr>\n<tr><td><code>kh strategy validate \u8def\u5f84.py<\/code><\/td><td>\u6267\u884c\u7b56\u7565\u6587\u4ef6\u540e\u68c0\u67e5\u5fc5\u9700\u548c\u53ef\u9009\u7684\u56de\u8c03\u51fd\u6570\u3002\u8981\u5199 <code>.py<\/code> \u7684\u8def\u5f84<\/td><\/tr>\n<tr><td><code>kh strategy info \u8def\u5f84.py<\/code><\/td><td>\u9759\u6001\u67e5\u770b\u51fd\u6570\u3001import \u548c\u6709\u6ca1\u6709\u914d\u5957 <code>.kh<\/code><\/td><\/tr>\n<\/tbody>\n<\/table><\/div>\n\n<h2>8 kh tool\u3001kh bridge<\/h2>\n<div class=\"khq-tn-table\"><table>\n<thead><tr><th style=\"text-align:left;\">\u547d\u4ee4<\/th><th style=\"text-align:left;\">\u8bf4\u660e<\/th><\/tr><\/thead>\n<tbody>\n<tr><td><code>kh tool pool &#91;id]<\/code><\/td><td>\u4e0d\u5e26 id \u5217\u51fa\u5168\u90e8\u9884\u8bbe\u80a1\u7968\u6c60\uff1b\u5e26 id \u6253\u5370\u8be5\u6c60\u5168\u90e8\u4ee3\u7801<\/td><\/tr>\n<tr><td><code>kh tool trade-day &#91;\u65e5\u671f]<\/code><\/td><td>\u5224\u65ad\u662f\u5426\u4ea4\u6613\u65e5\uff1b<code>&#45;&#45;range-start<\/code> \u548c <code>&#45;&#45;range-end<\/code> \u540c\u65f6\u7ed9\u65f6\u5217\u51fa\u533a\u95f4\u5185\u7684\u4ea4\u6613\u65e5\u3002\u5b83\u6309\u6cd5\u5b9a\u8282\u5047\u65e5\u63a8\u7b97\uff0c\u4e2a\u522b\u8c03\u4f11\u65e5\u53ef\u80fd\u4e0e\u4ea4\u6613\u6240\u65e5\u5386\u4e0d\u4e00\u81f4\uff0c\u4ee5\u4ea4\u6613\u6240\u516c\u544a\u4e3a\u51c6<\/td><\/tr>\n<tr><td><code>kh tool parquet-cache stats \/ list<\/code><\/td><td>\u67e5\u770b Parquet \u7f13\u5b58\uff08\u89c1 <a href=\"https:\/\/khsci.com\/khQuant\/chapter11\/\">1.12<\/a>\uff09\u3002<code>&#45;&#45;root<\/code> \u6307\u5b9a\u7f13\u5b58\u76ee\u5f55<\/td><\/tr>\n<tr><td><code>kh tool parquet-cache check \/ build \u914d\u7f6e.kh<\/code><\/td><td>\u68c0\u67e5\u80fd\u5426\u547d\u4e2d \/ \u6784\u5efa\u7f13\u5b58\u3002build \u53ef\u52a0 <code>&#45;&#45;batch-size &#45;&#45;workers &#45;&#45;compression &#45;&#45;force<\/code><\/td><\/tr>\n<tr><td><code>kh tool parquet-cache use-readonly \u914d\u7f6e.kh<\/code><\/td><td>\u751f\u6210\u4e00\u4e2a\u4f7f\u7528\u53ea\u8bfb\u7f13\u5b58\u7684 <code>.kh<\/code> \u526f\u672c\uff1b<code>&#45;&#45;in-place<\/code> \u76f4\u63a5\u6539\u539f\u6587\u4ef6<\/td><\/tr>\n<tr><td><code>kh tool parquet-cache clean<\/code><\/td><td>\u6e05\u7406\u7f13\u5b58\uff0c<strong>\u4e0d\u52a0 <code>&#45;&#45;yes<\/code> \u53ea\u9884\u89c8<\/strong>\uff1b<code>&#45;&#45;older-than-days N<\/code><\/td><\/tr>\n<tr><td><code>kh bridge serve<\/code><\/td><td>Windows + miniQMT \u4e0a\u5f00 HTTP \u6865\u63a5\u670d\u52a1\u3002<code>&#45;&#45;host<\/code>\uff08\u9ed8\u8ba4 127.0.0.1\uff0c\u5c40\u57df\u7f51\u7528 0.0.0.0\uff09\u3001<code>&#45;&#45;port<\/code>\uff08\u9ed8\u8ba4 8001\uff09\u3001<code>&#45;&#45;api-key<\/code>\u3001<code>&#45;&#45;qmt-path<\/code>\u3002\u89c1 <a href=\"https:\/\/khsci.com\/khQuant\/chapter2-5\/\">2.3<\/a> \u7b2c 4 \u8282<\/td><\/tr>\n<tr><td><code>kh bridge status<\/code><\/td><td>\u68c0\u67e5\u6865\u63a5\u670d\u52a1\u662f\u5426\u5728\u8fd0\u884c\u3002<code>&#45;&#45;url<\/code>\uff0c\u6216 <code>&#45;&#45;port<\/code>\uff08\u672a\u914d\u7f6e\u5730\u5740\u65f6\u4f7f\u7528\uff09<\/td><\/tr>\n<\/tbody>\n<\/table><\/div>\n<p>Parquet \u7f13\u5b58\u8fd9\u7ec4\u547d\u4ee4\u7684\u8f93\u51fa\u662f\u82f1\u6587\u7684\u3002<\/p>\n\n<h2>9 \u5e38\u7528\u914d\u7f6e\u9879\uff08kh config set\uff09<\/h2>\n<div class=\"khq-tn-table\"><table>\n<thead><tr><th style=\"text-align:left;\">\u952e<\/th><th style=\"text-align:left;\">\u53d6\u503c<\/th><th style=\"text-align:left;\">\u9ed8\u8ba4<\/th><th style=\"text-align:left;\">\u8bf4\u660e<\/th><\/tr><\/thead>\n<tbody>\n<tr><td><code>duckdb_data_path<\/code><\/td><td>\u76ee\u5f55<\/td><td>\u7a7a<\/td><td>\u6570\u636e\u76ee\u5f55\uff08\u4e0d\u68c0\u67e5\u662f\u5426\u5b58\u5728\uff09<\/td><\/tr>\n<tr><td><code>strategy_dir<\/code><\/td><td>\u76ee\u5f55<\/td><td>\u7a7a<\/td><td>\u7b56\u7565\u76ee\u5f55<\/td><\/tr>\n<tr><td><code>backtest_data_source<\/code><\/td><td><code>duckdb<\/code> \/ <code>miniqmt<\/code><\/td><td>duckdb<\/td><td>\u56de\u6d4b\u6570\u636e\u6e90\uff1bWeb \u56de\u6d4b\u53ea\u652f\u6301 duckdb<\/td><\/tr>\n<tr><td><code>tushare_token<\/code><\/td><td>\u5b57\u7b26\u4e32<\/td><td>\u7a7a<\/td><td>Tushare Token\uff08\u53ea\u662f\u7f16\u7801\u4fdd\u5b58\uff0c\u4e0d\u662f\u52a0\u5bc6\uff09<\/td><\/tr>\n<tr><td><code>tushare_api_url<\/code>\u3001<code>tushare_use_proxy<\/code>\u3001<code>tushare_proxy_url<\/code><\/td><td><\/td><td>\u7a7a \/ false \/ \u7a7a<\/td><td>Tushare \u955c\u50cf\u5730\u5740\u548c\u4ee3\u7406<\/td><\/tr>\n<tr><td><code>ths_api_key<\/code><\/td><td>\u5b57\u7b26\u4e32<\/td><td>\u7a7a<\/td><td>\u540c\u82b1\u987a API Key<\/td><\/tr>\n<tr><td><code>http_base_url<\/code>\u3001<code>http_api_key<\/code><\/td><td>URL\u3001\u5b57\u7b26\u4e32<\/td><td>\u7a7a<\/td><td>HTTP \u6865\u63a5\u670d\u52a1\u5730\u5740\u548c Key<\/td><\/tr>\n<tr><td><code>baostock_enabled<\/code><\/td><td>\u5e03\u5c14<\/td><td>false\uff08<code>kh init<\/code> \u9ed8\u8ba4\u5f00\u542f\uff09<\/td><td>\u5f71\u54cd scan \/ sync \u7684\u81ea\u52a8\u9009\u6e90<\/td><\/tr>\n<tr><td><code>qmt_path<\/code>\u3001<code>client_path<\/code><\/td><td>\u76ee\u5f55<\/td><td>\u7a7a<\/td><td>Windows\uff1aminiQMT \u7684\u6570\u636e\u76ee\u5f55\u548c\u5ba2\u6237\u7aef\u8def\u5f84<\/td><\/tr>\n<tr><td><code>risk_free_rate<\/code><\/td><td>0\uff5e1<\/td><td>0.03<\/td><td>\u65e0\u98ce\u9669\u5229\u7387<\/td><\/tr>\n<tr><td><code>volume_limit_enabled<\/code>\u3001<code>participation_rate<\/code>\u3001<code>allow_partial_fill<\/code><\/td><td>\u5e03\u5c14\u30010\uff5e1\u3001\u5e03\u5c14<\/td><td>false\u30010.1\u3001true<\/td><td>\u6210\u4ea4\u91cf\u9650\u5236\uff08\u89c1 <a href=\"https:\/\/khsci.com\/khQuant\/chapter11\/\">1.12<\/a>\uff09<\/td><\/tr>\n<tr><td><code>auto_report<\/code><\/td><td>\u5e03\u5c14<\/td><td>false<\/td><td>\u4e3a true \u65f6 <code>kh run<\/code> \u603b\u662f\u751f\u6210\u62a5\u544a<\/td><\/tr>\n<tr><td><code>check_data_integrity_mode<\/code><\/td><td><code>auto\/full\/off<\/code><\/td><td>auto<\/td><td>\u56de\u6d4b\u524d\u6570\u636e\u68c0\u67e5\uff08\u547d\u4ee4\u884c <code>kh run<\/code> \u4e0d\u6267\u884c\uff09<\/td><\/tr>\n<tr><td><code>performance_preset<\/code><\/td><td><code>balanced\/performance\/low_memory<\/code><\/td><td>balanced<\/td><td>\u6570\u636e\u52a0\u8f7d\u6a21\u5f0f\uff0c\u4f1a\u8fde\u5e26\u91cd\u7f6e\u8be6\u7ec6\u6027\u80fd\u9879<\/td><\/tr>\n<tr><td><code>performance_framework_history_preload_days<\/code><\/td><td>0\uff5e2000<\/td><td>300<\/td><td>\u5386\u53f2\u9884\u70ed\u5929\u6570\uff08\u81ea\u7136\u65e5\uff09<\/td><\/tr>\n<tr><td><code>performance_duckdb_parallel_read_workers<\/code><\/td><td>1\uff5e64<\/td><td>4<\/td><td>\u5e76\u884c\u8bfb\u53d6\u7ebf\u7a0b<\/td><\/tr>\n<tr><td><code>performance_parquet_cache_pack<\/code><\/td><td><code>off\/read_only\/build_then_read<\/code><\/td><td>off<\/td><td>Parquet \u7f13\u5b58\u6a21\u5f0f<\/td><\/tr>\n<\/tbody>\n<\/table><\/div>\n<p>\u5b8c\u6574\u5217\u8868\u4ee5 <code>kh config show<\/code> \u4e3a\u51c6\u3002\u914d\u7f6e\u6587\u4ef6\u4f4d\u7f6e\uff1aWindows <code>%USERPROFILE%\\.khquant\\settings.json<\/code>\uff0cLinux <code>~\/.khquant\/settings.json<\/code>\uff0cmacOS <code>~\/Library\/Application Support\/khQuant\/settings.json<\/code>\u3002\u56fe\u5f62\u754c\u9762\u3001\u547d\u4ee4\u884c\u548c Web \u5171\u7528\u8fd9\u4e2a\u6587\u4ef6\uff0c\u8bf7\u7528 <code>kh config<\/code> \u6216\u754c\u9762\u4fee\u6539\uff0c\u4e0d\u8981\u624b\u52a8\u7f16\u8f91\u3002<\/p>\n\n<h2>10 \u9884\u8bbe\u80a1\u7968\u6c60\uff08&#45;&#45;pool\uff09<\/h2>\n<div class=\"khq-tn-table\"><table>\n<thead><tr><th style=\"text-align:left;\">id<\/th><th style=\"text-align:left;\">\u540d\u79f0<\/th><th style=\"text-align:left;\">id<\/th><th style=\"text-align:left;\">\u540d\u79f0<\/th><\/tr><\/thead>\n<tbody>\n<tr><td><code>sz50<\/code><\/td><td>\u4e0a\u8bc150<\/td><td><code>sza<\/code><\/td><td>\u6df1\u8bc1A\u80a1\uff08\u4ec5\u547d\u4ee4\u884c\uff09<\/td><\/tr>\n<tr><td><code>hs300<\/code><\/td><td>\u6caa\u6df1300<\/td><td><code>etf<\/code><\/td><td>\u6caa\u6df1ETF<\/td><\/tr>\n<tr><td><code>zz500<\/code><\/td><td>\u4e2d\u8bc1500<\/td><td><code>fund<\/code><\/td><td>\u6caa\u6df1\u573a\u5185\u57fa\u91d1\uff08\u542bETF\/LOF\uff09<\/td><\/tr>\n<tr><td><code>gem<\/code><\/td><td>\u521b\u4e1a\u677f<\/td><td><code>t0etf<\/code><\/td><td>T0\u578bETF<\/td><\/tr>\n<tr><td><code>star<\/code><\/td><td>\u79d1\u521b\u677f<\/td><td><code>t0stock<\/code><\/td><td>T0\u80a1\u7968\u578bETF<\/td><\/tr>\n<tr><td><code>a<\/code><\/td><td>\u6caa\u6df1A\u80a1<\/td><td><code>bond<\/code><\/td><td>\u6caa\u6df1\u8f6c\u503a\uff08\u4ec5\u547d\u4ee4\u884c\uff09<\/td><\/tr>\n<tr><td><code>sha<\/code><\/td><td>\u4e0a\u8bc1A\u80a1<\/td><td><code>index<\/code><\/td><td>\u5e38\u7528\u6307\u6570<\/td><\/tr>\n<\/tbody>\n<\/table><\/div>\n<p>id \u4e0d\u5206\u5927\u5c0f\u5199\uff0c\u53ef\u4ee5\u9017\u53f7\u7ec4\u5408\uff0c\u5982 <code>&#45;&#45;pool hs300,zz500<\/code>\u3002\u56fe\u5f62\u754c\u9762\u548c Web \u91cc\u7684\u300c\u81ea\u9009\u6e05\u5355\u300d\u5728\u547d\u4ee4\u884c\u91cc\u6ca1\u6709\u5bf9\u5e94 id\u3002\u7528 <code>kh data update-pool<\/code> \u66f4\u65b0\u8fc7\u7684\u6210\u5206\u80a1\u5217\u8868\u4f18\u5148\u4e8e\u5b89\u88c5\u5305\u81ea\u5e26\u7684\u3002<\/p>\n\n<h2>11 \u73af\u5883\u53d8\u91cf<\/h2>\n<div class=\"khq-tn-table\"><table>\n<thead><tr><th style=\"text-align:left;\">\u53d8\u91cf<\/th><th style=\"text-align:left;\">\u4f5c\u7528<\/th><\/tr><\/thead>\n<tbody>\n<tr><td><code>NO_COLOR<\/code><\/td><td>\u5173\u95ed\u8f93\u51fa\u989c\u8272<\/td><\/tr>\n<tr><td><code>HITHINK_FINANCE_API_KEY<\/code> \/ <code>THS_API_KEY<\/code><\/td><td>\u540c\u82b1\u987a API Key\uff0c\u4f18\u5148\u4e8e\u914d\u7f6e\u6587\u4ef6<\/td><\/tr>\n<tr><td><code>KHQUANT_WEB_ACCESS_KEY<\/code><\/td><td><code>kh web<\/code> \u7684\u8bbf\u95ee\u5bc6\u94a5\uff0c\u8bbe\u4e86\u4ee5\u540e\u603b\u662f\u8981\u6c42\u5bc6\u94a5<\/td><\/tr>\n<tr><td><code>KHQUANT_WEB_ALLOWED_HOSTS<\/code><\/td><td>Web \u5141\u8bb8\u8bbf\u95ee\u7684\u57df\u540d\uff0c\u9017\u53f7\u5206\u9694\uff08\u53cd\u5411\u4ee3\u7406\u65f6\u7528\uff09<\/td><\/tr>\n<tr><td><code>KHQUANT_CLOUDFLARED_PATH<\/code><\/td><td>cloudflared \u7a0b\u5e8f\u8def\u5f84\uff0c\u6240\u6709\u5e73\u53f0\u90fd\u4f18\u5148\u7528\u5b83\uff08Linux \u6216\u6e90\u7801\u8fd0\u884c\u65f6\u5fc5\u987b\u8bbe\u7f6e\u6216\u653e\u8fdb PATH\uff09<\/td><\/tr>\n<tr><td><code>KHQUANT_MARKET_TZ<\/code><\/td><td>\u4ec5 Linux\uff1a\u884c\u60c5\u65f6\u95f4\u6240\u7528\u65f6\u533a\uff0c\u9ed8\u8ba4 <code>Asia\/Shanghai<\/code><\/td><\/tr>\n<tr><td><code>KHQUANT_DUCKDB_LOCK_WAIT_SECONDS<\/code><\/td><td>\u4e0b\u8f7d\u65f6\u7b49\u5f85\u6570\u636e\u5e93\u5360\u7528\u89e3\u9664\u7684\u6700\u957f\u79d2\u6570\uff0c\u9ed8\u8ba4 600<\/td><\/tr>\n<tr><td><code>KHQUANT_WEB_STATE_DIR<\/code><\/td><td>Web \u9879\u76ee\u548c\u65e5\u5fd7\u7684\u5b58\u653e\u76ee\u5f55<\/td><\/tr>\n<\/tbody>\n<\/table><\/div>\n<p>\u8f6f\u4ef6\u542f\u52a8\u65f6\u4f1a\u81ea\u52a8\u628a <code>PYTHONHASHSEED<\/code> \u56fa\u5b9a\u4e3a 0\uff0c\u4fdd\u8bc1\u7ed3\u679c\u53ef\u590d\u73b0\uff0c\u4e0d\u9700\u8981\u81ea\u5df1\u8bbe\u7f6e\u3002<\/p>\n\n<p class=\"khq-tn-vcap\" style=\"margin:22px 0 6px;font-weight:600;color:#163b68;\">\u25b6 \u672c\u8282\u89c6\u9891\uff1a\u9644\u5f55 A \u00b7 \u56de\u6d4b\u7ed3\u679c\u7684\u5b58\u653e\u4e0e\u7ba1\u7406<\/p><div class=\"khq-tn-video\" data-tn=\"A2\"><video controls preload=\"none\" playsinline poster=\"\/khQuant\/media\/tutorial-new\/tn-A2.jpg?v=5c1a7483\" src=\"\/khQuant\/media\/tutorial-new\/tn-A2.mp4?v=5c1a7483\">\u4f60\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\u89c6\u9891\u64ad\u653e\uff0c\u53ef\u4ee5<a href=\"\/khQuant\/media\/tutorial-new\/tn-A2.mp4?v=5c1a7483\">\u4e0b\u8f7d\u89c6\u9891<\/a>\u89c2\u770b\u3002<\/video><\/div>\n<h2 id=\"storage\">12 \u56de\u6d4b\u7ed3\u679c\u7684\u5b58\u653e\u4e0e\u7ba1\u7406<\/h2>\n<p>\u56fe\u5f62\u754c\u9762\u3001<code>kh<\/code> \u547d\u4ee4\u548c Web \u5de5\u4f5c\u53f0\u7684\u56de\u6d4b\u7ed3\u679c\u5b58\u5728\u540c\u4e00\u4e2a\u76ee\u5f55\uff0c\u4e09\u8fb9\u770b\u5230\u7684\u662f\u540c\u4e00\u6279\u7ed3\u679c\u3002\u547d\u4ee4\u884c\u67e5\u770b\u3001\u5bf9\u6bd4\u3001\u751f\u6210\u62a5\u544a\u89c1 <a href=\"https:\/\/khsci.com\/khQuant\/cli\/\">2.2<\/a> \u7b2c 5.1 \u8282\uff1b\u754c\u9762\u91cc\u300c\u56de\u6d4b\u5386\u53f2\u7ba1\u7406\u300d\u7a97\u53e3\u7684\u57fa\u672c\u7528\u6cd5\u89c1 <a href=\"https:\/\/khsci.com\/khQuant\/chapter8\/\">1.9<\/a>\u3002<\/p>\n<h3>12.1 \u7ed3\u679c\u5b58\u5728\u54ea\u91cc<\/h3>\n<div class=\"khq-tn-table\"><table>\n<thead><tr><th style=\"text-align:left;\">\u5e73\u53f0<\/th><th style=\"text-align:left;\">\u4f4d\u7f6e<\/th><\/tr><\/thead>\n<tbody>\n<tr><td>Windows<\/td><td><code>%LOCALAPPDATA%\\KhQuant\\backtest_results<\/code><\/td><\/tr>\n<tr><td>macOS<\/td><td><code>~\/Library\/Application Support\/khQuant\/backtest_results<\/code><\/td><\/tr>\n<tr><td>Linux<\/td><td><code>~\/khquant\/backtest_results<\/code><\/td><\/tr>\n<\/tbody>\n<\/table><\/div>\n<ul>\n<li>V3.4.0 \u4ee5\u524d\u7684 Windows \u5b89\u88c5\u7248\u628a\u7ed3\u679c\u5199\u5728\u5b89\u88c5\u76ee\u5f55\u91cc\uff0c\u65b0\u7248\u4ecd\u4f1a\u8bfb\u53d6\u90a3\u91cc\u7684\u65e7\u7ed3\u679c\uff0c\u4e0d\u4f1a\u79fb\u52a8\u5b83\u4eec\u3002<\/li>\n<li>V2 \u7684\u7ed3\u679c\u5728\u53e6\u4e00\u4e2a\u76ee\u5f55\uff08<code>%LOCALAPPDATA%\\KhQuantOS\\backtest_results<\/code>\uff09\uff0cV3 \u4e0d\u4f1a\u8bfb\u53d6\u3002\u60f3\u5728 V3 \u91cc\u770b\uff0c\u628a\u5bf9\u5e94\u7684\u7ed3\u679c\u6587\u4ef6\u5939\u590d\u5236\u5230 V3 \u7684\u7ed3\u679c\u76ee\u5f55\u3002<\/li>\n<\/ul>\n<figure class=\"khq-tn-fig\"><a href=\"https:\/\/khsci.com\/khQuant\/wp-content\/uploads\/tutorial-new\/v3\/v3-history-manager.webp?v=6fec5b7b\" target=\"_blank\" rel=\"noopener\" title=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\"><img decoding=\"async\" src=\"https:\/\/khsci.com\/khQuant\/wp-content\/uploads\/tutorial-new\/v3\/v3-history-manager.webp?v=6fec5b7b\" width=\"1600\" height=\"350\" alt=\"\u56fe\u5f62\u754c\u9762\u7684\u300c\u56de\u6d4b\u5386\u53f2\u7ed3\u679c\u7ba1\u7406\u5668\u300d\uff0c\u547d\u4ee4\u884c\u548c Web \u8dd1\u51fa\u6765\u7684\u7ed3\u679c\u4e5f\u4f1a\u51fa\u73b0\u5728\u8fd9\u91cc\" loading=\"lazy\"><\/a><figcaption>\u56fe\u5f62\u754c\u9762\u7684\u300c\u56de\u6d4b\u5386\u53f2\u7ed3\u679c\u7ba1\u7406\u5668\u300d\uff0c\u547d\u4ee4\u884c\u548c Web \u8dd1\u51fa\u6765\u7684\u7ed3\u679c\u4e5f\u4f1a\u51fa\u73b0\u5728\u8fd9\u91cc<\/figcaption><\/figure>\n\n<h3>12.2 \u4e00\u4e2a\u7ed3\u679c\u6587\u4ef6\u5939\u91cc\u6709\u4ec0\u4e48<\/h3>\n<p>\u6587\u4ef6\u5939\u540d\u5f62\u5982 <code>strategy_b429b43e-123a4b5c_20250101_20260930_20261003_194513<\/code>\uff1a\u4f9d\u6b21\u662f\u7b56\u7565\u7f16\u7801\uff08\u7531\u7b56\u7565\u6587\u4ef6\u540d\u7b97\u51fa\uff09\u3001\u9632\u91cd\u540d\u540e\u7f00\u3001\u56de\u6d4b\u8d77\u6b62\u65e5\u671f\u548c\u8fd0\u884c\u65f6\u95f4\u3002\u540c\u4e00\u4e2a\u7b56\u7565\u6539\u53c2\u6570\u8dd1\u591a\u6b21\uff0c\u6587\u4ef6\u5939\u540d\u53ea\u6709\u540e\u7f00\u548c\u8fd0\u884c\u65f6\u95f4\u4e0d\u540c\u3002<\/p>\n<p>\u4ece Web \u5de5\u4f5c\u53f0\u53d1\u8d77\u7684\u56de\u6d4b\uff0c\u6587\u4ef6\u5939\u540d\u672b\u5c3e\u8fd8\u4f1a\u591a\u4e00\u6bb5 <code>_run_\u7f16\u53f7<\/code>\u3002<\/p>\n<div class=\"khq-tn-table\"><table>\n<thead><tr><th style=\"text-align:left;\">\u6587\u4ef6<\/th><th style=\"text-align:left;\">\u5185\u5bb9<\/th><\/tr><\/thead>\n<tbody>\n<tr><td><code>summary.csv<\/code><\/td><td>\u6c47\u603b\u6307\u6807\uff1a\u521d\u59cb\u8d44\u91d1\u3001\u6700\u7ec8\u8d44\u91d1\u3001\u603b\u6536\u76ca\u3001\u5e74\u5316\u6536\u76ca\u3001\u6700\u5927\u56de\u64a4\uff08\u767e\u5206\u6570\uff09\u3001\u4ea4\u6613\u5929\u6570<\/td><\/tr>\n<tr><td><code>daily_stats.csv<\/code><\/td><td>\u6bcf\u65e5\u603b\u8d44\u4ea7\u3001\u73b0\u91d1\u3001\u6301\u4ed3\u5e02\u503c\u3001\u5f53\u65e5\u6536\u76ca\u3001\u57fa\u51c6\u6536\u76d8\u4ef7\u548c\u51c0\u503c\u3001\u6301\u4ed3\u660e\u7ec6<\/td><\/tr>\n<tr><td><code>trades.csv<\/code><\/td><td>\u6bcf\u7b14\u6210\u4ea4\uff1a\u65f6\u95f4\u3001\u4ee3\u7801\u3001\u65b9\u5411\u3001\u4ef7\u683c\u3001\u6570\u91cf\u3001\u91d1\u989d\u3001\u4f63\u91d1\u3001\u5370\u82b1\u7a0e\u3001\u8fc7\u6237\u8d39\u3001\u6d41\u91cf\u8d39\u3001\u6210\u4ea4\u540e\u7684\u8d44\u4ea7<\/td><\/tr>\n<tr><td><code>benchmark.csv<\/code><\/td><td>\u57fa\u51c6\u6bcf\u65e5\u6536\u76d8\u4ef7\uff08\u4ece\u56de\u6d4b\u5f00\u59cb\u65e5\u524d\u51e0\u5929\u5f00\u59cb\uff09<\/td><\/tr>\n<tr><td><code>config.csv<\/code><\/td><td>\u57fa\u672c\u4fe1\u606f\uff1a\u533a\u95f4\u3001\u8d44\u91d1\u3001\u57fa\u51c6\u3001\u7b56\u7565\u6587\u4ef6\u3001\u80a1\u7968\u6c60\u3001\u5468\u671f\u3001\u590d\u6743\u3001\u6570\u636e\u76ee\u5f55\u3001\u8fd0\u884c\u8017\u65f6\u3001\u5185\u5b58\u6863\u4f4d<\/td><\/tr>\n<tr><td><code>full_*.kh<\/code><\/td><td><strong>\u8fd9\u6b21\u5b9e\u9645\u8fd0\u884c\u7684\u5b8c\u6574\u914d\u7f6e<\/strong>\uff0c\u5305\u62ec\u4ea4\u6613\u6210\u672c\u3001\u89e6\u53d1\u65b9\u5f0f\u7b49\u3002\u754c\u9762\u8dd1\u7684\u53eb <code>full_temp_running_config.kh<\/code>\uff0c\u547d\u4ee4\u884c\u8dd1\u7684\u53eb <code>full__tmp_\u2026kh<\/code><\/td><\/tr>\n<tr><td><code>\u7b56\u7565\u540d.py<\/code><\/td><td>\u8fd0\u884c\u65f6\u7b56\u7565\u4ee3\u7801\u7684\u526f\u672c<\/td><\/tr>\n<tr><td><code>\u7b56\u7565\u540d.kh<\/code><\/td><td>\u7b56\u7565\u6587\u4ef6\u65c1\u8fb9\u540c\u540d <code>.kh<\/code> \u7684\u526f\u672c\uff08\u6709\u624d\u590d\u5236\uff0c\u4e0d\u4e00\u5b9a\u662f\u672c\u6b21\u7528\u7684\u914d\u7f6e\uff09<\/td><\/tr>\n<tr><td><code>report.html<\/code><\/td><td>HTML \u62a5\u544a\uff0c\u89c1 <a href=\"https:\/\/khsci.com\/khQuant\/cli\/\">2.2<\/a> \u7b2c 5.2 \u8282\uff08\u754c\u9762\u56de\u6d4b\u9ed8\u8ba4\u4e0d\u751f\u6210\uff09<\/td><\/tr>\n<tr><td><code>duckdb_lock_skips.csv<\/code><\/td><td>\u53ea\u5728\u6709\u884c\u60c5\u56e0\u6570\u636e\u5e93\u88ab\u5360\u7528\u800c\u8df3\u8fc7\u65f6\u51fa\u73b0<\/td><\/tr>\n<tr><td><code>run_meta.json<\/code><\/td><td>\u53ea\u5728 Web \u53d1\u8d77\u7684\u56de\u6d4b\u91cc\u51fa\u73b0<\/td><\/tr>\n<\/tbody>\n<\/table><\/div>\n<p><code>config.csv<\/code> \u4e0d\u8bb0\u5f55\u4ea4\u6613\u6210\u672c\u548c\u89e6\u53d1\u65b9\u5f0f\uff0c\u8981\u5b8c\u6574\u590d\u73b0\u4e00\u6b21\u56de\u6d4b\uff0c\u4ee5 <code>full_*.kh<\/code> \u4e3a\u51c6\u3002\u56de\u6d4b\u4e2d\u9014\u505c\u6b62\u6216\u51fa\u9519\u65f6\uff0c\u6587\u4ef6\u5939\u91cc\u53ef\u80fd\u7f3a <code>summary.csv<\/code>\uff0c\u8fd9\u5c31\u662f\u300c\u4e0d\u5b8c\u6574\u7ed3\u679c\u300d\u3002<\/p>\n\n<h3>12.3 \u5728\u56fe\u5f62\u754c\u9762\u91cc\u7ba1\u7406<\/h3>\n<p>\u300c\u56de\u6d4b\u5386\u53f2\u7ba1\u7406\u300d\u7a97\u53e3\u7684\u5217\u3001\u6309\u94ae\u548c\u57fa\u672c\u64cd\u4f5c\u89c1 <a href=\"https:\/\/khsci.com\/khQuant\/chapter8\/\">1.9<\/a>\u3002\u8865\u5145\u51e0\u70b9\uff1a<\/p>\n<ul>\n<li><strong>\u641c\u7d22\u548c\u7b5b\u9009\u4e0d\u53e0\u52a0<\/strong>\uff1a\u641c\u7d22\u6846\u5339\u914d\u7b56\u7565\u540d\u79f0\u548c\u8d77\u6b62\u65e5\u671f\uff1b\u300c\u7b5b\u9009\u300d\u6309\u521b\u5efa\u65f6\u95f4\u770b\u6700\u8fd1 7\u300130\u300190 \u5929\uff08\u300c\u81ea\u5b9a\u4e49\u65e5\u671f\u300d\u76ee\u524d\u4e0d\u8d77\u4f5c\u7528\uff09\u3002\u4e24\u8005\u540e\u64cd\u4f5c\u7684\u90a3\u4e2a\u751f\u6548\u3002<\/li>\n<li><strong>\u5220\u9664\u8981\u5c0f\u5fc3<\/strong>\uff1a\u300c\u5220\u9664\u9009\u4e2d\u300d\u4f1a\u5220\u6389\u6240\u6709\u52fe\u9009\u8fc7\u7684\u884c\uff0c\u5305\u62ec\u88ab\u641c\u7d22\u3001\u7b5b\u9009\u6682\u65f6\u9690\u85cf\u7684\u884c\u3002\u5220\u9664\u76f4\u63a5\u5220\u6587\u4ef6\u5939\uff0c\u4e0d\u8fdb\u56de\u6536\u7ad9\u3002<\/li>\n<li><strong>\u300c\u8fd8\u539f\u300d\u4f1a\u8986\u76d6\u6587\u4ef6<\/strong>\uff1a\u5b83\u628a\u7ed3\u679c\u91cc\u7684\u7b56\u7565 <code>.py<\/code>\uff08\u548c\u540c\u540d <code>.kh<\/code>\uff09\u590d\u5236\u56de\u539f\u6765\u7684\u8def\u5f84\u5e76\u8986\u76d6\uff0c\u518d\u628a\u914d\u7f6e\u586b\u56de\u4e3b\u754c\u9762\u3002\u8fd8\u539f\u524d\u786e\u8ba4\u539f\u8def\u5f84\u7684\u7b56\u7565\u4e0d\u9700\u8981\u4fdd\u7559\u3002<\/li>\n<li>\u8fd8\u539f\u8bfb\u53d6\u7684\u662f\u672c\u6b21\u8fd0\u884c\u4fdd\u5b58\u7684 <code>full_*.kh<\/code>\uff0c\u547d\u4ee4\u884c\u8dd1\u51fa\u7684\u7ed3\u679c\u540c\u6837\u9002\u7528\uff08\u547d\u4ee4\u884c\u4e0a\u6539\u8fc7\u7684\u533a\u95f4\u3001\u8d44\u91d1\u4e5f\u5728\u91cc\u9762\uff09\u3002<\/li>\n<li>\u300c\u62a5\u544a\u300d\u6253\u5f00\u7684\u662f\u548c\u56de\u6d4b\u521a\u7ed3\u675f\u65f6\u4e00\u6837\u7684\u62a5\u544a\u7a97\u53e3\uff08\u89c1 <a href=\"https:\/\/khsci.com\/khQuant\/chapter9\/\">1.10<\/a>\uff09\uff0c\u4e0d\u662f HTML \u62a5\u544a\u3002<\/li>\n<\/ul>\n\n<h3>12.4 \u6e05\u7406\u548c\u5907\u4efd<\/h3>\n<div class=\"khq-tn-table\"><table>\n<thead><tr><th style=\"text-align:left;\">\u65b9\u5f0f<\/th><th style=\"text-align:left;\">\u5220\u4ec0\u4e48<\/th><th style=\"text-align:left;\">\u6ce8\u610f<\/th><\/tr><\/thead>\n<tbody>\n<tr><td>\u754c\u9762\u884c\u5185\u300c\u5220\u9664\u300d<\/td><td>\u8fd9\u4e00\u6761<\/td><td>\u6709\u786e\u8ba4\u6846<\/td><\/tr>\n<tr><td>\u754c\u9762\u300c\u5220\u9664\u9009\u4e2d\u300d<\/td><td>\u6240\u6709\u52fe\u9009\u884c<\/td><td>\u9690\u85cf\u7684\u52fe\u9009\u884c\u4e5f\u4f1a\u5220<\/td><\/tr>\n<tr><td>Web \u5386\u53f2\u7ed3\u679c\u9875\u5220\u9664<\/td><td>\u8fd9\u4e00\u6761<\/td><td>\u8fdc\u7a0b\u8bbf\u95ee\u4e5f\u80fd\u5220<\/td><\/tr>\n<tr><td><code>kh result clean &#45;&#45;keep N<\/code><\/td><td>\u6700\u8fd1 N \u4e2a\u4ee5\u5916\u7684\u5168\u90e8<\/td><td>\u6ca1\u6709\u786e\u8ba4\uff0c\u5148 <code>&#45;&#45;dry-run<\/code><\/td><\/tr>\n<tr><td>\u624b\u52a8\u5220\u6587\u4ef6\u5939<\/td><td>\u4efb\u610f<\/td><td>\u4e09\u7aef\u4e0b\u6b21\u5237\u65b0\u90fd\u4f1a\u6d88\u5931<\/td><\/tr>\n<\/tbody>\n<\/table><\/div>\n<p>\u4ee5\u4e0a\u65b9\u5f0f\u5220\u9664\u540e\u90fd\u65e0\u6cd5\u6062\u590d\u3002\u91cd\u8981\u7684\u7ed3\u679c\u8bf7\u5148\u628a\u6574\u4e2a\u6587\u4ef6\u5939\u590d\u5236\u5230\u522b\u5904\u4fdd\u5b58\u3002<\/p>\n\n<p class=\"q\"><strong>\u95ee\uff1aV2 \u7684\u56de\u6d4b\u5386\u53f2\u600e\u4e48\u5e26\u5230 V3\uff1f<\/strong><br>\n\u7b54\uff1a\u628a <code>%LOCALAPPDATA%\\KhQuantOS\\backtest_results<\/code> \u91cc\u9700\u8981\u7684\u7ed3\u679c\u6587\u4ef6\u5939\u590d\u5236\u5230 <code>%LOCALAPPDATA%\\KhQuant\\backtest_results<\/code>\u3002<\/p>\n<p class=\"q\"><strong>\u95ee\uff1a\u67d0\u6761\u7ed3\u679c\u7684\u6536\u76ca\u663e\u793a <code>-<\/code> \u6216\u300c\u4e0d\u5b8c\u6574\u300d\uff1f<\/strong><br>\n\u7b54\uff1a\u8fd9\u6b21\u56de\u6d4b\u6ca1\u6709\u6b63\u5e38\u7ed3\u675f\uff0c\u7f3a\u5c11\u6c47\u603b\u6587\u4ef6\u3002\u53ef\u4ee5\u5220\u9664\u540e\u91cd\u65b0\u8dd1\u3002\u56fe\u5f62\u754c\u9762\u9ed8\u8ba4\u9690\u85cf\u8fd9\u7c7b\u7ed3\u679c\uff0c\u52fe\u9009\u300c\u663e\u793a\u4e0d\u5b8c\u6574\u7ed3\u679c\u300d\u624d\u770b\u5f97\u5230\u3002<\/p>\n\n<p style=\"color:#888;font-size:.9em;\">\u672c\u7bc7\u57fa\u4e8e V3.4.1.10 \u7f16\u5199\uff0c\u5e2e\u52a9\u6587\u672c\u548c\u9ed8\u8ba4\u503c\u4ee5\u5b9e\u9645\u8fd0\u884c\u4e3a\u51c6\u3002<\/p>\n\n<nav class=\"khq-tn-nav\"><a class=\"prev\" href=\"https:\/\/khsci.com\/khQuant\/packages\/\"><span>\u4e0a\u4e00\u7bc7<\/span>2.8 \u5305\u7ba1\u7406<\/a><a class=\"next\" href=\"https:\/\/khsci.com\/khQuant\/troubleshooting\/\"><span>\u4e0b\u4e00\u7bc7<\/span>\u9644\u5f55 B \u6392\u9519\u603b\u8868<\/a><\/nav>\n<\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>\u9002\u7528\u7248\u672c V3 WindowsmacOSLinux \u4f60\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\u89c6\u9891\u64ad\u653e\uff0c\u53ef\u4ee5\u4e0b\u8f7d\u89c6\u9891\u89c2\u770b\u3002 \u672c\u7bc7\u8bf4\u660e \u8fd9 [&hellip;]<\/p>\n","protected":false},"author":0,"featured_media":0,"parent":0,"menu_order":36,"comment_status":"closed","ping_status":"closed","template":"template\/caidan.php","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-1977","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/khsci.com\/khQuant\/wp-json\/wp\/v2\/pages\/1977","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/khsci.com\/khQuant\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/khsci.com\/khQuant\/wp-json\/wp\/v2\/types\/page"}],"replies":[{"embeddable":true,"href":"https:\/\/khsci.com\/khQuant\/wp-json\/wp\/v2\/comments?post=1977"}],"version-history":[{"count":2,"href":"https:\/\/khsci.com\/khQuant\/wp-json\/wp\/v2\/pages\/1977\/revisions"}],"predecessor-version":[{"id":2052,"href":"https:\/\/khsci.com\/khQuant\/wp-json\/wp\/v2\/pages\/1977\/revisions\/2052"}],"wp:attachment":[{"href":"https:\/\/khsci.com\/khQuant\/wp-json\/wp\/v2\/media?parent=1977"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}