{"id":48801482,"url":"https://github.com/feed-mob/smart_trader","last_synced_at":"2026-04-14T03:03:40.929Z","repository":{"id":337781491,"uuid":"1154358880","full_name":"feed-mob/smart_trader","owner":"feed-mob","description":null,"archived":false,"fork":false,"pushed_at":"2026-04-09T09:02:51.000Z","size":590,"stargazers_count":2,"open_issues_count":13,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-09T09:29:32.472Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","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/feed-mob.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-02-10T09:50:14.000Z","updated_at":"2026-04-09T09:02:58.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/feed-mob/smart_trader","commit_stats":null,"previous_names":["feed-mob/smart_trader"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/feed-mob/smart_trader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feed-mob%2Fsmart_trader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feed-mob%2Fsmart_trader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feed-mob%2Fsmart_trader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feed-mob%2Fsmart_trader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/feed-mob","download_url":"https://codeload.github.com/feed-mob/smart_trader/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/feed-mob%2Fsmart_trader/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31779951,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T02:24:21.117Z","status":"ssl_error","status_checked_at":"2026-04-14T02:24:20.627Z","response_time":153,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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-04-14T03:03:27.170Z","updated_at":"2026-04-14T03:03:40.924Z","avatar_url":"https://github.com/feed-mob.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SmartTrader (智能交易者)\n\n## 技术栈\n\n- **Ruby**: 4.0.1\n- **Rails**: 8.1.2\n- **Database**: PostgreSQL\n- **CSS**: Tailwind CSS\n- **JavaScript**: Turbo, Stimulus\n- **Components**: ViewComponent\n- **AI Integration**: Claude Code, LLM, Skills, MCP\n\n## 快速开始\n\n### 环境要求\n\n- Ruby 4.0.1\n- PostgreSQL\n- Node.js (for asset compilation)\n- libvips (ActiveStorage 图片分析依赖)\n\n### 安装 libvips\n\nActiveStorage 文件上传需要 `libvips` 系统库（配合 `ruby-vips` gem）。\n\n| 平台 | 安装命令 |\n|------|----------|\n| **macOS** | `brew install vips` |\n| **Ubuntu / Debian** | `sudo apt install libvips-dev` |\n| **Windows** | 下载 [vips-dev-win](https://github.com/libvips/build-win64-mxe/releases) 并添加到 PATH |\n| **Alpine** | `apk add vips-dev` |\n| **Fedora / RHEL** | `sudo dnf install vips-devel` |\n\n安装完成后运行 `bundle install` 即可。Docker 生产环境已在 Dockerfile 中预装 `libvips`，无需额外操作。\n\n### 安装步骤\n\n1. 克隆仓库\n```bash\ngit clone git@github.com:feed-mob/smart_trader.git\ncd smart_trader\n```\n\n2. 安装依赖\n```bash\nbundle install\n```\n\n\u003e 如果 `bundle install` 报 vips 相关错误，请先按上方 [安装 libvips](#安装-libvips) 安装系统库。\n\n3. 配置环境变量\n```bash\ncp .env.sample .env\n# 编辑 .env 文件,配置数据库连接\n```\n\n4. 创建数据库\n```bash\nrails db:create\nrails db:migrate\n```\n\n5. 初始化操盘手数据\n```bash\nrails init:traders\n```\n\n这将创建 6 个默认操盘手（巴菲特、芒格、林奇、索罗斯、达里奥、格雷厄姆），每个操盘手包含 4 种市场环境的交易策略。\n\n6. 启动服务\n```bash\nbin/dev\n```\n\n或分开运行:\n```bash\nrails server\n```\n\n访问 http://localhost:3000\n\n## 环境变量配置\n\n参考 `.env.sample` 文件配置以下变量:\n\n- `PRIMARY_DATABASE_URL`: PostgreSQL 数据库连接地址\n\n## 开发工具\n\n### 数据初始化任务\n\n```bash\n# 初始化操盘手数据（创建 6 个默认操盘手）\nrails init:traders\n\n# 初始化因子定义\nbundle exec rails runner db/seeds/factor_definitions.rb\n\n# 初始化 Mock 数据 (开发/测试环境)\nbundle exec rails runner db/seeds/mock_factor_data.rb\nbundle exec rails runner db/seeds/mock_trading_signals.rb\n```\n\n### 资产数据拉取\n\n```bash\n# 拉取 CoinGecko Layer-1 币种市场数据（每日）\nrails c\n\u003e FetchCoinMarketsJob.perform_now\n\n# 拉取历史市场数据（最近 60 天，前 50 个资产）\nrails assets:fetch_historical\n```\n\n详细文档: [docs/coin_markets_job.md](docs/coin_markets_job.md)\n\n\n## 因子系统初始化\n\n因子系统需要初始化种子数据才能正常工作。\n\n### 1. 初始化因子定义\n\n```bash\nbundle exec rails runner db/seeds/factor_definitions.rb\n```\n\n### 2. 初始化 Mock 数据 (开发/测试环境)\n\n如果需要测试因子矩阵和相关性页面，可以创建模拟数据：\n\n```bash\nbundle exec rails runner db/seeds/mock_factor_data.rb\n```\n\n这将创建：\n- 5 个资产 (BTC, ETH, AAPL, NVDA, GLD)\n- 每个资产 30 天的价格快照\n- 所有资产的因子值\n\n### 3. 因子系统页面\n\n初始化完成后，可以访问以下页面：\n\n| 页面 | 路径 | 说明 |\n|------|------|------|\n| 因子列表 | `/admin/factor_definitions` | 管理因子配置 |\n| 因子详情 | `/admin/factor_definitions/:id` | 查看因子信息和公式 |\n| 因子矩阵 | `/admin/factor_definitions/matrix` | 资产 × 因子 得分热力图 |\n| 因子相关性 | `/admin/factor_definitions/correlations` | 因子间相关性分析 |\n\n### 4. 生产环境\n\n生产环境不应该使用 mock 数据，应该：\n1. 运行因子定义 seed\n2. 配置数据采集任务 (CollectAssetDataJob)\n3. 配置因子计算任务 (CalculateFactorsJob)\n\n## 信号系统\n\n信号系统基于因子数据，通过 AI 生成交易信号。\n\n### 1. 初始化 Mock 信号数据 (开发/测试环境)\n\n```bash\nbundle exec rails runner db/seeds/mock_trading_signals.rb\n```\n\n这将创建：\n- 每个资产的最新交易信号\n- 部分资产的历史信号记录\n\n### 2. 信号系统页面\n\n| 页面 | 路径 | 说明 |\n|------|------|------|\n| 信号列表 | `/admin/trading_signals` | 查看所有交易信号 |\n| 信号详情 | `/admin/trading_signals/:id` | 查看信号详情和因子快照 |\n\n### 3. 信号生成\n\n- **手动生成**: 在信号列表页面点击\"生成全部信号\"\n- **自动生成**: 配置 GenerateSignalsJob 定时任务\n\n### 4. 信号类型\n\n| 类型 | 说明 |\n|------|------|\n| Buy (买入) | AI 判断建议买入 |\n| Sell (卖出) | AI 判断建议卖出 |\n| Hold (持有) | AI 判断建议持有观望 |\n\n每个信号包含：\n- 置信度 (0-100%)\n- 推理说明\n- 关键驱动因子\n- 风险提示\n- 因子快照\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffeed-mob%2Fsmart_trader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffeed-mob%2Fsmart_trader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffeed-mob%2Fsmart_trader/lists"}