[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81039":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":15,"stars7d":15,"stars30d":16,"stars90d":14,"forks30d":14,"starsTrendScore":17,"compositeScore":18,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":9,"pushedAt":9,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":14,"starSnapshotCount":14,"syncStatus":16,"lastSyncTime":26,"discoverSource":27},81039,"DeepTraderV2","Lihw99\u002FDeepTraderV2","Lihw99"," DeepTrader — 把聚宽策略直接搬到你电脑本地跑，不需要会员、不需要上传代码。    聚宽策略 → 复制 → 粘贴 → 一键迁移 → 本地运行    3行说明：   - 把聚宽策略（.py）直接迁移到本地，一行代码不用改   - 免费使用 Tushare 数据，无需手动下载   - 支持 90%+ 聚宽 API，均线、止损、轮仓都能跑    一句话：    ▎ 聚宽策略本地跑，零门槛私有化。",null,"Python",30,13,28,0,1,2,3,3.44,false,"main",true,[],"2026-06-12 02:04:10","# DeepTrader\n\n> 把聚宽策略直接搬到本地跑，不需要会员、不需要上传代码、完全私有。\n\n---\n\n## 功能特点\n\n| 特点 | 说明 |\n|------|------|\n| **零门槛迁移** | 聚宽策略只需改 3 处就能跑 |\n| **本地运行** | 数据存在本地，不需要每次联网 |\n| **完全兼容** | 90%+ 聚宽 API 已支持 |\n| **免费数据** | 支持 Tushare Pro 免费额度 |\n| **小白友好** | 提供自动迁移工具，一键转换 |\n\n---\n\n## 快速开始\n\n### 1. 安装依赖\n\n```bash\npip install backtrader pandas numpy tushare python-dotenv\n```\n\n### 2. 配置 Tushare Token（必选）\n\n1. 去 [tushare.pro](https:\u002F\u002Ftushare.pro) 注册账号\n2. 创建 `.env` 文件（和 `jq_trader` 同目录）：\n\n```\nTUSHARE_TOKEN=你的token\n```\n\n> 没有 Tushare token？去 [tushare.pro 注册](https:\u002F\u002Ftushare.pro\u002Fregister)，免费账号有基础额度\n\n### 3. 写一个策略\n\n创建一个文件 `my_strategy.py`：\n\n```python\n# 聚宽策略（原始）\ndef initialize(context):\n    context.stock = \"000001.SZ\"\n\ndef handle_data(context, data):\n    order(context.stock, 100)\n```\n\n### 4. 一键迁移\n\n```bash\npython jq_trader\u002Fmigrate.py my_strategy.py -o my_strategy_migrated.py -r\n```\n\n自动转换后生成：\n\n```python\nfrom jq_trader import JQStrategy, Backtester\n\nclass MaCrossStrategy(JQStrategy):\n    def initialize(self, context):\n        context.stock = \"000001.SZ\"\n\n    def handle_data(self, context, data):\n        self.order(context.stock, 100)\n\nif __name__ == \"__main__\":\n    bt = Backtester(\n        strategy=MaCrossStrategy,\n        stock=\"000001.SZ\",\n        start_date=\"20200101\",\n        end_date=\"20231231\",\n        initial_cash=1000000,\n    )\n    bt.run()\n```\n\n### 5. 运行回测\n\n```bash\npython my_strategy_migrated.py\n```\n\n输出：\n\n```\n============================================================\n  回测区间: 20200101 ~ 20231231\n  股票代码: 000001.SZ\n  初始资金: 1,000,000.00\n  最终资金: 1,125,000.00\n  净收益:   125,000.00\n  收益率:   12.50%\n============================================================\n```\n\n---\n\n## 目录结构\n\n```\nDeepTrader\u002F\n├── jq_trader\u002F              # 核心库（直接 import 使用）\n│   ├── __init__.py\n│   ├── env.py              # 策略基类 JQStrategy\n│   ├── data.py             # 数据获取函数\n│   ├── trade.py            # 交易函数\n│   ├── objects.py          # 数据对象\n│   ├── backtester.py      # 回测运行器\n│   ├── adapter.py          # Backtrader 适配器\n│   ├── utils.py            # 工具函数（含 .env 自动加载）\n│   ├── migrate.py          # 聚宽策略迁移工具 ⭐推荐使用\n│   └── docs\u002F               # 文档\n│\n├── examples\u002F               # 示例策略\n│   └── demo.py\n│\n├── .env                    # Token 配置（不要提交到 GitHub）\n├── .env.example           # Token 模板\n└── .gitignore\n```\n\n---\n\n## 核心 API\n\n### 数据获取\n\n```python\nfrom jq_trader import data\n\n# 获取历史行情\ndf = data.get_price(\"000001.SZ\", count=100)\n\n# 交易日列表\ndays = data.get_trade_days(start_date=\"20200101\", end_date=\"20201231\")\n\n# 指数成分股\nstocks = data.get_index_stocks(\"000300.XSHG\")  # 沪深300\n\n# 行业成分股\nstocks = data.get_industry_stocks(\"银行\")\n\n# 概念成分股（开盘啦）\nstocks = data.get_concept_stocks(\"AI低代码概念\")\n```\n\n### 下单交易\n\n```python\nclass MyStrategy(JQStrategy):\n    def handle_data(self, context, data):\n        # 市价单：买100股\n        self.order(\"000001.SZ\", 100)\n\n        # 目标持仓：持有200股\n        self.order_target(\"000001.SZ\", 200)\n\n        # 按金额：买入5000元\n        self.order_value(\"000001.SZ\", 5000)\n```\n\n### 定时任务\n\n```python\nfrom jq_trader.env import run_daily, run_weekly, run_monthly\n\nclass MyStrategy(JQStrategy):\n    @run_daily(time_str=\"14:30\")\n    def rebalance(self, context):\n        # 每天14:30执行\n        pass\n\n    @run_weekly(weekday=0, time_str=\"09:30\")\n    def weekly_review(self, context):\n        # 每周一9:30执行\n        pass\n```\n\n---\n\n## 迁移工具（推荐）\n\n把聚宽策略代码粘贴到文件，直接运行迁移工具：\n\n```bash\n# 基本迁移\npython jq_trader\u002Fmigrate.py 原始策略.py -o 迁移后策略.py\n\n# 同时添加运行代码\npython jq_trader\u002Fmigrate.py 原始策略.py -o 迁移后策略.py -r\n```\n\n**会自动转换**：\n- `def initialize(context):` → `class X(JQStrategy): def initialize(self, context):`\n- `g.xxx` → `self.g.xxx`\n- `context.portfolio.positions[stock]` → `self.get_position()`\n- `attribute_history(...)` → `self.history(...)`\n- 添加 `Backtester` 运行代码\n\n---\n\n## 示例策略\n\n### 双均线策略\n\n```python\nfrom jq_trader import JQStrategy, Backtester\n\nclass MaCrossStrategy(JQStrategy):\n    def initialize(self, context):\n        context.stock = \"000001.SZ\"\n        self.g.short_ma = 5\n        self.g.long_ma = 20\n\n    def handle_data(self, context, data):\n        closes = self.history(self.g.long_ma, fields=\"close\")\n        if len(closes) \u003C self.g.long_ma:\n            return\n\n        ma5 = sum(closes[-self.g.short_ma:]) \u002F self.g.short_ma\n        ma20 = sum(closes[-self.g.long_ma:]) \u002F self.g.long_ma\n\n        pos = self.get_position()\n        if ma5 > ma20 and pos[\"amount\"] == 0:\n            self.order(context.stock, 100)\n        elif ma5 \u003C ma20 and pos[\"amount\"] > 0:\n            self.order(context.stock, -pos[\"amount\"])\n\nbt = Backtester(\n    strategy=MaCrossStrategy,\n    stock=\"000001.SZ\",\n    start_date=\"20200101\",\n    end_date=\"20231231\",\n)\nbt.run()\n```\n\n更多示例在 `examples\u002F` 目录。\n\n---\n\n## 常见问题\n\n**Q: 需要多少积分？**\nA: Tushare 免费账号基础额度够日常使用。部分高级接口（如分笔数据）需要付费积分。\n\n**Q: 本地需要存数据吗？**\nA: 不需要。本地有 Parquet 数据时会优先使用，没有则自动用 Tushare API。\n\n**Q: 策略保密吗？**\nA: 完全本地运行，代码不外传。\n\n**Q: 支持实时交易吗？**\nA: 目前仅支持回测。实时交易是第三阶段计划。\n\n---\n\n## 文档\n\n详细文档在 `jq_trader\u002Fdocs\u002F` 目录：\n\n| 文档 | 内容 |\n|------|------|\n| [USER_GUIDE.md](.\u002Fjq_trader\u002Fdocs\u002FUSER_GUIDE.md) | 快速入门 |\n| [MIGRATION_GUIDE.md](.\u002Fjq_trader\u002Fdocs\u002FMIGRATION_GUIDE.md) | 迁移指南 |\n| [MIGRATION_EXAMPLE.md](.\u002Fjq_trader\u002Fdocs\u002FMIGRATION_EXAMPLE.md) | 并排对比示例 |\n| [API_REFERENCE.md](.\u002Fjq_trader\u002Fdocs\u002FAPI_REFERENCE.md) | API 对照表 |\n| [ARCHITECTURE.md](.\u002Fjq_trader\u002Fdocs\u002FARCHITECTURE.md) | 架构设计 |\n| [MIGRATION_STATUS.md](.\u002Fjq_trader\u002Fdocs\u002FMIGRATION_STATUS.md) | 开发进度 |\n\n---\n\n## 许可\n\nMIT License\n","DeepTrader 是一个将聚宽策略迁移到本地运行的工具，无需会员和上传代码。其核心功能包括零门槛迁移、本地数据存储、90% 以上的聚宽 API 兼容性以及免费使用 Tushare 数据。项目支持一键迁移聚宽策略到本地，并提供自动转换工具，使用户能够轻松在本地进行回测和交易模拟。适合需要私有化运行量化策略的个人投资者或开发者，尤其适用于希望降低成本并提高数据安全性的用户。","2026-06-11 04:03:17","CREATED_QUERY"]