[{"data":1,"prerenderedAt":496},["ShallowReactive",2],{"navigation_docs":3,"trending-repo-shy3130\u002Ftick-stock-panel":188},[4,50,82,99,135,157,173,178,183],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Getting Started",false,"\u002Fgetting-started","1.getting-started",[10,15,20,25,30,35,40,45],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F2.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F3.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Configuration","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F4.configuration","i-lucide-settings",{"title":26,"path":27,"stem":28,"icon":29},"Supported Formats","\u002Fgetting-started\u002Fsupported-formats","1.getting-started\u002F5.supported-formats","i-lucide-file-code",{"title":31,"path":32,"stem":33,"icon":34},"Agent Skill","\u002Fgetting-started\u002Fagent-skill","1.getting-started\u002F6.agent-skill","i-lucide-cpu",{"title":36,"path":37,"stem":38,"icon":39},"Changelog","\u002Fgetting-started\u002Fchangelog","1.getting-started\u002F7.changelog","i-lucide-scroll-text",{"title":41,"path":42,"stem":43,"icon":44},"Migrating from v4 to v5","\u002Fgetting-started\u002Fmigration","1.getting-started\u002F8.migration","i-lucide-arrow-right-left",{"title":46,"path":47,"stem":48,"icon":49},"jscpd v4 (TypeScript)","\u002Fgetting-started\u002Fv4","1.getting-started\u002F9.v4","i-simple-icons-typescript",{"title":51,"path":52,"stem":53,"children":54,"icon":6},"Guides","\u002Fguides","2.guides\u002F1.index",[55,57,62,67,72,77],{"title":51,"path":52,"stem":53,"icon":56},"i-lucide-book-open",{"title":58,"path":59,"stem":60,"icon":61},"Types of Code Clones","\u002Fguides\u002Fclone-types","2.guides\u002F2.clone-types","i-lucide-copy",{"title":63,"path":64,"stem":65,"icon":66},"How Detection Works","\u002Fguides\u002Fhow-detection-works","2.guides\u002F3.how-detection-works","i-lucide-scan-search",{"title":68,"path":69,"stem":70,"icon":71},"Duplication Trend over Git History","\u002Fguides\u002Fhistory","2.guides\u002F4.history","i-lucide-chart-no-axes-combined",{"title":73,"path":74,"stem":75,"icon":76},"Project Dashboard","\u002Fguides\u002Fdashboard","2.guides\u002F5.dashboard","i-lucide-layout-dashboard",{"title":78,"path":79,"stem":80,"icon":81},"Project Health Score","\u002Fguides\u002Fhealth","2.guides\u002F6.health","i-lucide-heart-pulse",{"title":83,"path":84,"stem":85,"children":86,"icon":6},"CI & Hooks","\u002Fci-and-hooks","3.ci-and-hooks\u002F1.index",[87,89,94],{"title":83,"path":84,"stem":85,"icon":88},"i-lucide-git-pull-request",{"title":90,"path":91,"stem":92,"icon":93},"Use jscpd in CI","\u002Fci-and-hooks\u002Fci","3.ci-and-hooks\u002F2.ci","i-lucide-github",{"title":95,"path":96,"stem":97,"icon":98},"Use jscpd in Pre-Commit Hook","\u002Fci-and-hooks\u002Fpre-commit","3.ci-and-hooks\u002F3.pre-commit","i-lucide-git-commit",{"title":100,"path":101,"stem":102,"children":103,"icon":105},"Reporters","\u002Freporters","4.reporters\u002F1.index",[104,106,110,115,120,125,130],{"title":100,"path":101,"stem":102,"icon":105},"i-lucide-file-chart-column",{"title":107,"path":108,"stem":109,"icon":29},"HTML Reporter","\u002Freporters\u002Fhtml","4.reporters\u002F2.html",{"title":111,"path":112,"stem":113,"icon":114},"JSON Reporter","\u002Freporters\u002Fjson","4.reporters\u002F3.json","i-lucide-braces",{"title":116,"path":117,"stem":118,"icon":119},"Badge Reporter","\u002Freporters\u002Fbadge","4.reporters\u002F4.badge","i-lucide-award",{"title":121,"path":122,"stem":123,"icon":124},"SARIF Reporter","\u002Freporters\u002Fsarif","4.reporters\u002F5.sarif","i-lucide-shield-check",{"title":126,"path":127,"stem":128,"icon":129},"CodeClimate \u002F GitLab Reporter","\u002Freporters\u002Fcodeclimate","4.reporters\u002F6.codeclimate","i-lucide-flag-triangle-right",{"title":131,"path":132,"stem":133,"icon":134},"OpenMetrics Reporter","\u002Freporters\u002Fopenmetrics","4.reporters\u002F7.openmetrics","i-lucide-activity",{"title":136,"path":137,"stem":138,"children":139,"icon":6},"Benchmarks","\u002Fbenchmarks","5.benchmarks\u002F1.index",[140,142,147,152],{"title":136,"path":137,"stem":138,"icon":141},"i-lucide-gauge",{"title":143,"path":144,"stem":145,"icon":146},"Detection Speed","\u002Fbenchmarks\u002Fdetection-speed","5.benchmarks\u002F2.detection-speed","i-lucide-zap",{"title":148,"path":149,"stem":150,"icon":151},"Multi-Format Detection","\u002Fbenchmarks\u002Fcross-format","5.benchmarks\u002F3.cross-format","i-lucide-layers",{"title":153,"path":154,"stem":155,"icon":156},"AI Token Efficiency","\u002Fbenchmarks\u002Fai-token-efficiency","5.benchmarks\u002F4.ai-token-efficiency","i-lucide-sparkles",{"title":158,"path":159,"stem":160,"children":161,"icon":163},"API","\u002Fapi","6.api\u002F1.index",[162,164,169],{"title":158,"path":159,"stem":160,"icon":163},"i-lucide-code",{"title":165,"path":166,"stem":167,"icon":168},"Rust Crates (v5)","\u002Fapi\u002Fcore","6.api\u002F2.core","i-lucide-box",{"title":170,"path":171,"stem":172,"icon":168},"MCP Server","\u002Fapi\u002Fmcp-server","6.api\u002F4.mcp-server",{"title":174,"path":175,"stem":176,"icon":177},"Trending","\u002Ftrending","7.trending","i-lucide-trending-up",{"title":179,"path":180,"stem":181,"icon":182},"Research","\u002Fresearch","8.research","i-lucide-graduation-cap",{"title":184,"path":185,"stem":186,"icon":187},"Articles","\u002Farticles","9.articles","i-lucide-newspaper",{"name":189,"url":190,"appearances":191,"latest":205},"shy3130\u002Ftick-stock-panel","https:\u002F\u002Fgithub.com\u002Fshy3130\u002Ftick-stock-panel",[192],{"date":193,"rank":194,"stars":195,"starsToday":196,"headSha":197,"sources":198,"lines":199,"clones":200,"duplicatedLines":201,"percentage":202,"healthScore":203,"healthGrade":204},"2026-09-26",7,5176,44,"529be9555ef93836833279a667cda07175abc29c",807,226771,663,8283,3.65,62.4,"C",{"date":193,"generatedAt":206,"name":189,"url":190,"description":207,"language":208,"stars":195,"starsToday":196,"defaultBranch":209,"headSha":197,"durationMs":210,"total":211,"formats":215,"topClones":275,"health":367,"complexity":400,"deadCode":452},"2026-09-26T05:27:46.278Z","TSP自托管、零运维的 A 股「选股 + 监控 + 回测」量化工作台  | LLM能力驱使策略定制+个股分析+复盘 | 自由接入第三方数据源与个性化扩展数据 | 个人开源","Python","main",1698,{"sources":198,"lines":199,"tokens":212,"clones":200,"duplicatedLines":201,"duplicatedTokens":213,"percentage":202,"percentageTokens":214},1517056,60135,3.96,[216,223,230,237,244,250,257,262,267,271],{"format":217,"sources":218,"lines":219,"clones":220,"duplicatedLines":221,"percentage":222},"python",489,139232,413,4616,3.32,{"format":224,"sources":225,"lines":226,"clones":227,"duplicatedLines":228,"percentage":229},"tsx",168,65044,201,2795,4.3,{"format":231,"sources":232,"lines":233,"clones":234,"duplicatedLines":235,"percentage":236},"typescript",67,12110,36,700,5.78,{"format":238,"sources":239,"lines":240,"clones":241,"duplicatedLines":242,"percentage":243},"markdown",29,7129,5,53,0.74,{"format":245,"sources":246,"lines":247,"clones":241,"duplicatedLines":248,"percentage":249},"markup",10,296,57,19.26,{"format":251,"sources":252,"lines":253,"clones":254,"duplicatedLines":255,"percentage":256},"bash",16,961,1,3,0.31,{"format":258,"sources":259,"lines":260,"clones":254,"duplicatedLines":242,"percentage":261},"yaml",9,600,8.83,{"format":263,"sources":254,"lines":264,"clones":254,"duplicatedLines":265,"percentage":266},"javascript",293,6,2.05,{"format":268,"sources":254,"lines":269,"clones":270,"duplicatedLines":270,"percentage":270},"powershell",301,0,{"format":272,"sources":273,"lines":274,"clones":270,"duplicatedLines":270,"percentage":270},"text",8,251,[276,287,296,305,313,319,329,339,348,358],{"format":224,"lines":277,"tokens":278,"firstFile":279,"secondFile":283},78,1087,{"name":280,"start":281,"end":282},"frontend\u002Fsrc\u002Fpages\u002FConceptAnalysis.tsx",707,784,{"name":284,"start":285,"end":286},"frontend\u002Fsrc\u002Fpages\u002FIndustryAnalysis.tsx",776,853,{"format":224,"lines":288,"tokens":289,"firstFile":290,"secondFile":293},85,887,{"name":280,"start":291,"end":292},552,636,{"name":284,"start":294,"end":295},617,703,{"format":224,"lines":297,"tokens":298,"firstFile":299,"secondFile":302},84,688,{"name":280,"start":300,"end":301},87,170,{"name":284,"start":303,"end":304},88,176,{"format":224,"lines":196,"tokens":306,"firstFile":307,"secondFile":310},580,{"name":280,"start":308,"end":309},786,829,{"name":284,"start":311,"end":312},855,898,{"format":224,"lines":248,"tokens":314,"firstFile":315,"secondFile":317},562,{"name":280,"start":301,"end":316},226,{"name":284,"start":304,"end":318},232,{"format":217,"lines":320,"tokens":321,"firstFile":322,"secondFile":325},55,462,{"name":323,"start":196,"end":324},"backend\u002Fapp\u002Fapi\u002Foverview.py",98,{"name":326,"start":327,"end":328},"backend\u002Fapp\u002Fservices\u002Fmarket_overview_builder.py",158,215,{"format":217,"lines":330,"tokens":331,"firstFile":332,"secondFile":336},48,415,{"name":333,"start":334,"end":335},"backend\u002Fapp\u002Fbacktest\u002Fengine.py",1332,1379,{"name":333,"start":337,"end":338},2394,2441,{"format":224,"lines":340,"tokens":220,"firstFile":341,"secondFile":344},61,{"name":342,"start":196,"end":343},"frontend\u002Fsrc\u002Fcomponents\u002Ffinancials\u002FAiAnalysisDialog.tsx",104,{"name":345,"start":346,"end":347},"frontend\u002Fsrc\u002Fcomponents\u002Fstock-analysis\u002FStockAnalysisDialog.tsx",45,103,{"format":224,"lines":349,"tokens":350,"firstFile":351,"secondFile":355},46,389,{"name":352,"start":353,"end":354},"frontend\u002Fsrc\u002Fcomponents\u002FEChartsCandlestick.tsx",490,535,{"name":352,"start":356,"end":357},1181,1225,{"format":217,"lines":359,"tokens":360,"firstFile":361,"secondFile":364},58,388,{"name":323,"start":362,"end":363},240,297,{"name":326,"start":365,"end":366},94,151,{"score":203,"grade":204,"size":368,"dimensions":372},{"lines":369,"files":370,"class":371},217456,729,"L",[373,384,393],{"id":374,"source":375,"value":376,"adjusted":376,"lines":377,"halfLife":378,"formats":379,"excluded":381,"weight":254,"score":383},"duplication","jscpd",3.7,8033,8.5,[217,224,231,251,268,263,380],"perl",[245,272,382],"data",74,{"id":385,"source":375,"value":386,"adjusted":387,"lines":388,"halfLife":389,"coverage":390,"weight":391,"score":392},"dead-code",2,2.1,4415,7.5,99.4,0.994,82.7,{"id":394,"source":375,"value":395,"adjusted":396,"lines":397,"halfLife":398,"weight":254,"score":399},"complexity",66.8,66.4,145305,50,39.8,{"total":401,"mean":402,"files":403},42844,58.8,[404,409,413,418,423,428,433,438,442,447],{"path":405,"complexity":406,"lines":407,"bytes":408},"frontend\u002Fsrc\u002Fpages\u002Fbacktest\u002FStrategyBacktest.tsx",935,3121,161434,{"path":333,"complexity":410,"lines":411,"bytes":412},869,3202,144814,{"path":414,"complexity":415,"lines":416,"bytes":417},"backend\u002Fapp\u002Fbacktest\u002Fmatrix.py",757,4261,154260,{"path":419,"complexity":420,"lines":421,"bytes":422},"frontend\u002Fsrc\u002Fpages\u002FLimitUpLadder.tsx",610,1835,79397,{"path":424,"complexity":425,"lines":426,"bytes":427},"frontend\u002Fsrc\u002Fcomponents\u002Fmonitor\u002FRuleEditor.tsx",601,1624,87606,{"path":429,"complexity":430,"lines":431,"bytes":432},"frontend\u002Fsrc\u002Fpages\u002FWatchlist.tsx",587,2008,91386,{"path":434,"complexity":435,"lines":436,"bytes":437},"backend\u002Fapp\u002Ftickflow\u002Frepository.py",563,2458,118585,{"path":439,"complexity":218,"lines":440,"bytes":441},"frontend\u002Fsrc\u002Flib\u002Fapi.ts",4228,143141,{"path":443,"complexity":444,"lines":445,"bytes":446},"backend\u002Fapp\u002Fstrategy\u002Fmonitor.py",468,1787,81291,{"path":448,"complexity":449,"lines":450,"bytes":451},"backend\u002Fapp\u002Fservices\u002Fquote_service.py",459,1921,96329,{"percentage":453,"findings":300,"files":454,"byCategory":455,"largest":468},2.04,742,[456,459,462,465],{"category":457,"count":458},"unused-file",32,{"category":460,"count":461},"unused-export",14,{"category":463,"count":464},"unused-symbol",20,{"category":466,"count":467},"unused-import",21,[469,473,476,478,481,484,486,489,491,493],{"category":457,"path":470,"name":471,"line":254,"lines":472},"backend\u002Fapp\u002Fplugins\u002Ffuyao\u002Fprovider.py","",1175,{"category":457,"path":474,"name":471,"line":254,"lines":475},"backend\u002Fapp\u002Fstrategy\u002Fbuiltin\u002Ffactor_rank_research.py",209,{"category":457,"path":477,"name":471,"line":254,"lines":225},"frontend\u002Fsrc\u002Fcomponents\u002FCandlestickChart.tsx",{"category":457,"path":479,"name":471,"line":254,"lines":480},"backend\u002Fapp\u002Fstrategy\u002Fmarket_data.py",135,{"category":457,"path":482,"name":471,"line":254,"lines":483},"backend\u002Fapp\u002Fstrategy\u002Fbuiltin\u002Fma_convergence_breakout.py",105,{"category":457,"path":485,"name":471,"line":254,"lines":483},"backend\u002Fapp\u002Fstrategy\u002Fbuiltin\u002Fpullback_to_support.py",{"category":457,"path":487,"name":471,"line":254,"lines":488},"backend\u002Fapp\u002Fstrategy\u002Fbuiltin\u002Fmacd_golden.py",99,{"category":457,"path":490,"name":471,"line":254,"lines":488},"backend\u002Fapp\u002Fstrategy\u002Fbuiltin\u002Fplatform_consolidation_breakout.py",{"category":457,"path":492,"name":471,"line":254,"lines":324},"backend\u002Fapp\u002Fstrategy\u002Fbuiltin\u002Frsi_midline_pullback.py",{"category":457,"path":494,"name":471,"line":254,"lines":495},"backend\u002Fapp\u002Fstrategy\u002Fbuiltin\u002Fstrong_open.py",95,1790404986790]