Commit Graph

129 Commits

Author SHA1 Message Date
XSX-Milan 2bfbb88d74 feat: 持仓同步优化 + Binance 平仓/减仓安全增强
## 核心功能
1. **持仓自动同步与插入**
   - 修复策略状态查询条件 (active -> running)
   - 移除阻塞空持仓同步的早期返回逻辑
   - 自动检测交易所存在但本地不存在的持仓并插入数据库
   - 修复 INSERT 语句列匹配 (移除 created_at,添加 user_id)

2. **Binance 平仓/减仓优化**
   - 订单执行前强制同步持仓 (Pre-execution Sync)
   - Close/Reduce 订单自动数量修正:防止超额平仓
   - 当请求平仓数量 > 实际持仓时,自动调整为实际持有量
   - 当数据库无持仓记录时,强制设置 amount=0 阻止错误订单

3. **日志增强**
   - 每10秒输出实际持仓详情 (symbol, size, entry_price)
   - 常规同步日志降级为 debug,保留关键操作为 info
   - 同步失败日志升级为 ERROR 并附带 traceback
2026-01-28 14:15:04 +08:00
Jack Will 4f329af7cc Merge branch 'brokermr810:main' into main 2026-01-28 11:03:28 +08:00
Quantdinger c0ce97ceb5 Merge pull request #19 from XSX-Milan/fix/fuzzy-search
[FIX] Google搜索使用模糊匹配以避免无结果
2026-01-28 02:11:18 +08:00
Jack Will 82d1e02c2e Merge pull request #1 from XSX-Milan/fix/fuzzy-search
[FIX] Google搜索使用模糊匹配以避免无结果
2026-01-28 00:50:38 +08:00
XSX-Milan 9faf48e53f 修复:Google搜索使用模糊匹配以避免无结果 2026-01-28 00:46:45 +08:00
Quantdinger 0c7fd30ade Merge pull request #18 from XSX-Milan/main
feat: 添加 Binance 模拟交易支持
2026-01-27 20:19:15 +08:00
XSX-Milan bc1c991645 feat: 添加 Binance 模拟交易支持
在 BinanceFuturesClient 和 BinanceSpotClient 中添加 enable_demo_trading 参数

根据 enable_demo_trading 自动设置正确的 demo base_url

Futures: https://demo-fapi.binance.com

Spot: https://demo-api.binance.com

在 factory.py 中从 exchange_config 读取 enable_demo_trading 配置并传递给客户端
2026-01-27 19:28:34 +08:00
TIANHE 0bf4bb5bd9 new
Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
2026-01-26 20:34:29 +08:00
TIANHE 53cadb5ab5 add deepcoin
Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
2026-01-26 20:32:34 +08:00
TIANHE 08515b5ff8 new
Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
2026-01-26 19:36:43 +08:00
TIANHE 5df11e2491 new
Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
2026-01-25 01:14:54 +08:00
TIANHE 528be54fe8 new
Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
2026-01-25 01:03:46 +08:00
TIANHE 32a426d647 new
Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
2026-01-24 23:57:39 +08:00
TIANHE 35d7ac5e1b Improve global market dashboard UX and settings
- Add global market dashboard APIs/assets and improve data robustness (incl. crypto heatmap by market cap)

- Enhance global market UI (map+heatmap layout, loading behavior, formatting, theme tweaks)

- Fix Settings LLM Provider select to render label/value options correctly

- Rename Indicator Community to Official Community and move it to the bottom

- Add search fallback when Google quota is exhausted
2026-01-24 23:26:26 +08:00
TIANHE f4e5a9f8e0 fix: Multiple bug fixes and improvements
- Fix Invalid Date display in Dashboard notifications
- Fix timezone offset (8 hours) in Trading Records time display
- Fix position closing failures due to commission discrepancies (fetch actual exchange position size for reduce_only orders)
- Fix IBKR connection error 'no current event loop in thread' by ensuring asyncio event loop exists
- Fix duplicate orders on same candle by extending signal deduplication to close signals
- Add responsive design for Profile page (mobile-friendly)
- Remove unused strategy_code module and database table
- Fix LLM service to support multiple providers (OpenRouter, OpenAI, DeepSeek, Grok, Google)
- Add auto-detection of configured LLM provider based on API key availability
- Fix AI code generation to use unified LLMService with proper provider selection
- Fix crypto symbol format handling (ETH/USDT no longer becomes ETH/USDT/USDT)
- Fix Commission display showing '0E-8' in Trading Records
- Fix P&L display for signal-only trades (show '--' for unrealized P&L)
- Fix OAuth login not updating last_login_at for new users
- Add migration script for notification_settings column
- Update env.example with new LLM provider configurations
- Remove ESLint rule that was not defined in config
2026-01-24 03:22:14 +08:00
Quantdinger 7de1570b3a Merge pull request #15 from p369349074/main
make manual positions can add same stock and symbal to difference gro…
2026-01-18 22:21:49 +07:00
guopengfa 433e966860 capture signal error. 2026-01-18 23:01:57 +08:00
guopengfa be8994c2d5 fix bug:html report direction right. 2026-01-18 20:26:46 +08:00
guopengfa cf4ce60ba5 fix bug: when same symbal and same code and same name create html report will can not open the on collection, add symbal code name and group name to unique id (当同一股票在不通分组,生成出来的html报告只能展开一个报告) 2026-01-18 18:55:41 +08:00
guopengfa b07ed7a9ee hide logging 2026-01-18 12:49:40 +08:00
PengfaGuo 4fbe871d2a Merge branch 'brokermr810:main' into main 2026-01-17 20:29:37 +08:00
guopengfa eae534af2e make manual positions can add same stock and symbal to difference group (使资金监控可以添加相同股票到不同分组) 2026-01-17 19:35:19 +08:00
Jinyu Xu f332cc62cb fix: Fix time display in dashboard recent trades
- Convert datetime to timestamp in backend dashboard API
- Improve formatTime function to handle ISO 8601 and RFC 2822 formats
2026-01-17 02:25:12 +07:00
Jinyu Xu c5d000e1c9 feat: Move notification settings to user profile and add i18n support
- Move notification config from system settings (.env) to user profile (database)
- Add user-specific notification settings API endpoints (GET/PUT /api/user/notification-settings)
- Add notification_settings column to qd_users table
- Update portfolio and trading-assistant to use profile notification settings
- Add notification settings UI in profile page with all channels (browser, telegram, email, phone, discord, webhook)
- Add i18n translations for notification settings in 10 languages
- Fix timestamp parsing in TradingRecords and portfolio (handle both ISO strings and Unix timestamps)
- Fix header icons alignment for mobile responsive layout
- Fix equity curve timestamp bug (handle datetime objects properly)
- Remove unused login.js exports and clean up user.js store
- Remove husky, commitlint and other dev dependencies
- Clean up env.example by removing user-specific notification params
- Update signal_notifier to prioritize user-specific tokens over global env vars
2026-01-17 01:37:32 +07:00
Quantdinger 10ad20abf6 Merge pull request #14 from p369349074/main
make code can get more before data
2026-01-17 01:30:14 +07:00
guopengfa b49e642066 hide logs 2026-01-17 01:26:25 +08:00
guopengfa b4a03a8e33 recovery decide_interval 2026-01-17 01:11:58 +08:00
guopengfa 235395491b recovery decide_interval 2026-01-17 00:56:12 +08:00
guopengfa 36ddf09f84 delete before. 2026-01-17 00:38:40 +08:00
guopengfa 889e5acae5 fix bug: trade time is valid. (修复BUG:持仓时间为空的问题) 2026-01-17 00:31:44 +08:00
guopengfa ce11f7ad67 fix bug: trade time is valid. (修复BUG:持仓时间为空的问题) 2026-01-16 22:35:44 +08:00
guopengfa affbfd98da add log show strategy history kline number (增加log展示策略中获取的历史数据有多少) 2026-01-16 21:50:44 +08:00
guopengfa 086fe05c4d set trading code history data to config(策略执行时使用配置数量的历史数据) 2026-01-16 21:35:47 +08:00
Quantdinger 97c68986f5 Merge pull request #12 from p369349074/main
add config: get strategy history limit.(策略中的历史获取ticket数量可配置,当策略运行于分钟线的时候500条历史数据是不够的)
2026-01-16 13:58:43 +07:00
guopengfa d0f4f49953 Merge remote-tracking branch 'origin/main' 2026-01-16 13:28:40 +08:00
guopengfa f25b2ebbe3 add config: get strategy history limit.(策略中的历史获取ticket数量可配置,当策略运行于分钟线的时候500条历史数据是不够的) 2026-01-16 13:28:26 +08:00
PengfaGuo 0ecb15f4ed Merge branch 'brokermr810:main' into main 2026-01-16 13:21:45 +08:00
guopengfa 38d38ce162 add config: get strategy history limit.(策略中的历史获取ticket数量可配置,当策略运行于分钟线的时候500条历史数据是不够的) 2026-01-16 13:14:21 +08:00
guopengfa 0146a54851 add telegram notification configuration guide documents. 2026-01-16 12:53:09 +08:00
Quantdinger 460b9a5de7 Update README.md 2026-01-15 20:37:39 +07:00
Quantdinger ae3253a764 Update README.md 2026-01-15 20:36:10 +07:00
Quantdinger c459c5225e Merge pull request #11 from brokermr810/feature/multi-user-postgresql
Feature/multi user postgresql
2026-01-15 00:09:23 +08:00
TIANHE 455786103a new
Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
2026-01-14 23:58:21 +08:00
TIANHE 6011ba4ce3 new
Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
2026-01-14 23:50:31 +08:00
TIANHE 47efb7e024 new
Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
2026-01-14 23:01:39 +08:00
TIANHE 0172147348 new
Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
2026-01-14 22:07:37 +08:00
TIANHE fc66d9677d new
Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
2026-01-14 22:06:19 +08:00
TIANHE 2849bd745c new
Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
2026-01-14 21:52:09 +08:00
TIANHE 0fbee21c57 new
Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
2026-01-14 21:49:45 +08:00
TIANHE 0b810adb10 new
Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
2026-01-14 21:41:40 +08:00