{"id":51041896,"url":"https://github.com/voidful/hk_stocker","last_synced_at":"2026-06-22T11:02:24.930Z","repository":{"id":360996090,"uuid":"1251034394","full_name":"voidful/hk_stocker","owner":"voidful","description":null,"archived":false,"fork":false,"pushed_at":"2026-06-12T12:01:15.000Z","size":7232,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-12T14:04:23.586Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/voidful.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-27T07:25:31.000Z","updated_at":"2026-06-12T12:01:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"66744db8-e741-4a87-a234-f9defc22d601","html_url":"https://github.com/voidful/hk_stocker","commit_stats":null,"previous_names":["voidful/hk_stocker"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/voidful/hk_stocker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voidful%2Fhk_stocker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voidful%2Fhk_stocker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voidful%2Fhk_stocker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voidful%2Fhk_stocker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/voidful","download_url":"https://codeload.github.com/voidful/hk_stocker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voidful%2Fhk_stocker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34645688,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-22T02:00:06.391Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-22T11:02:23.948Z","updated_at":"2026-06-22T11:02:24.922Z","avatar_url":"https://github.com/voidful.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HK Stocker v9.1 — AI 量化交易系統（Master Strategy）\n\n這是 `voidful/tw_stocker` 的港股版本，保留原本的 v8.5 Momentum + Sector Rotation v2 雙策略架構，並把市場層換成港股：\n\n- Yahoo Finance ticker 使用 `.HK`，內部代號統一四碼，例如 `0700`、`9988`、`0005`\n- 預設 benchmark 改為 `2800.HK`（盈富基金），第二 benchmark 為 `2828.HK`\n- 交易日曆改為 `XHKG`\n- 交易成本預設改為港股費率近似值：買賣各約 `0.1127%`，不含券商佣金\n- 板塊分類改為港股代表股映射：互聯網/科技、金融、地產、消費、醫藥、能源/原材料、汽車/工業、電訊/公用\n\n\u003e 最新港股 artifacts：`report_date=2026-05-27`。Master v1 年化 `45.69%`、Sharpe `1.67`、最大回撤 `-16.5%`；相對 `2800.HK` 共存期總超額 `+147.2%`，相對 `2828.HK` 共存期總超額 `+99.2%`。Master = Benchmark Beater v1.1 core + Day Trade v1.1 intraday overlay。\n\n## 雙策略架構\n\n| | v8.5 Momentum | Sector Rotation v2 |\n|---|:---:|:---:|\n| 邏輯 | 個股 cross-sectional ranking | 先選板塊 → 板塊內排名 |\n| Regime | 預設停用；仍顯示 `2800.HK` 診斷 | SPY + VIX + SOX |\n| 選股因子 | Mom(20d)×3 + Trend(60MA)×1 + RSI×1.5 | 板塊 flow(10/15/20d) + 板塊內動量 |\n| 角色 | 穩健底倉 | 積極追蹤 |\n\n## 快速開始\n\n```bash\npip install -r requirements.txt\n\n# v8.5 Momentum\npython ai_report.py --show-inst\n\n# Benchmark Beater：專門對標 2800/2828 buy-and-hold\npython benchmark_beater_report.py\n\n# Master Strategy：Benchmark Beater core + Day Trade overlay\npython master_strategy_report.py\npython optimize_master_strategy.py\n\n# Benchmark Beater bounded optimizer\npython optimize_benchmark_beater.py\n\n# Benchmark Beater 的獨立 Day Trade companion\npython benchmark_beater_day_trade_report.py\n\n# Day Trade 掃描報告\npython day_trade_report.py\n\n# Day Trade v1.1 預設：short gap-up mean reversion\n# Universe-35 / MA30 / RSI×1.0 / Scan-4 / Top-4 / Threshold 2.9\n# Gap +3.0%~+7.5% / ATR TP 1.3、SL 0.8 / 每筆 8%\n\n# Sector Rotation v2\npython sector_rotation_report.py\npython sector_rotation_report.py --start-date 2019-01-01\npython sector_rotation_report.py --compare\n\n# 驗證工具\npython walk_forward.py\npython walk_forward_nested.py --quick\npython monte_carlo.py --equity artifacts/equity_YYYYMMDD.csv --runs 2000 --block-size 20\npython crisis_test.py\n\n# 研究審計 / 多重測試修正\npython sweep.py --quick\npython factor_grid_search.py --mode ablation\npython -m validation.deflated_sharpe --equity artifacts/equity_YYYYMMDD.csv --trials 20\npython -m research.experiment_registry --latest 20\n\n# Paper Trading\npython paper_trade.py signals --enrich\npython paper_trade.py hardstop\n```\n\n## 專案結構\n\n```text\nhk_stocker/\n├── ai_report.py                  # v8.5 主程式 + CLI + HTML 報表\n├── master_strategy_report.py     # 主策略：中線 core + 日內 overlay\n├── optimize_master_strategy.py   # Master bounded optimizer\n├── benchmark_beater_report.py    # 對標 2800/2828 的中線長倉報告\n├── optimize_benchmark_beater.py  # Benchmark Beater bounded optimizer\n├── benchmark_beater_day_trade_report.py\n│                                  # Benchmark Beater 強勢股日內 companion\n├── day_trade_report.py           # 日內 short gap-up 掃描 + 報告\n├── sector_rotation_report.py     # 板塊輪動 v2 回測 + 報告\n├── deep_crisis_test.py           # 歷史危機壓測 + benchmark 對照\n├── crisis_test.py                # 基礎危機壓力測試\n├── walk_forward.py               # Anchored OOS 穩定性驗證\n├── walk_forward_nested.py        # Nested train→select→test research gate\n├── monte_carlo.py                # Equity-Curve Block Bootstrap\n├── sweep.py                      # 季度參數校準 + Telegram 警報\n├── paper_trade.py                # Paper Trading 工具\n├── strategy/\n│   ├── market.py                 # 港股市場設定、ticker 轉換、成本常數\n│   ├── universe.py               # 港股預設股池\n│   ├── ai_strategy.py            # yfinance 港股資料下載 + 特徵工程\n│   ├── event_backtest.py         # 事件驅動回測引擎\n│   ├── sector_flow.py            # 港股板塊分類與資金流\n│   ├── sector_rotation_backtest.py\n│   └── benchmark.py              # Benchmark (`2800.HK` / EW)\n├── research/\n└── validation/\n```\n\n## 港股版注意事項\n\n港股沒有台股「三大法人」同構資料源；目前 `institutional_flow` 和 `news_sentiment` 保留介面但回傳空/中性資料，避免把台股資料混進港股信號。\n\n港股交易成本會依券商、產品、印花稅豁免和結算安排而不同；預設值只包含常見交易所/政府側費用近似，實盤前請用自己的券商費率覆蓋 `--buy-cost` / `--sell-cost`。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoidful%2Fhk_stocker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvoidful%2Fhk_stocker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoidful%2Fhk_stocker/lists"}