ZhouYongyou
|
ed8bb94dea
|
更新 logger:支持新增的三個動作類型
更新內容:
1. DecisionAction 註釋:添加 update_stop_loss, update_take_profit, partial_close
2. GetStatistics:partial_close 計入 TotalClosePositions
3. AnalyzePerformance 預填充邏輯:處理 partial_close(不刪除持倉記錄)
4. AnalyzePerformance 分析邏輯:
- partial_close 正確判斷持倉方向
- 記錄部分平倉的盈虧統計
- 保留持倉記錄(因為還有剩餘倉位)
說明:partial_close 會記錄盈虧,但不刪除 openPositions,
因為還有剩餘倉位可能繼續交易
|
2025-11-02 06:11:12 +08:00 |
|
ZhouYongyou
|
498cec0b92
|
修復關鍵 BUG:validActions 缺少新動作導致驗證失敗
問題根因:
- auto_trader.go 已實現 update_stop_loss/update_take_profit/partial_close 處理
- adaptive.txt 已描述這些功能
- 但 validateDecision 的 validActions map 缺少這三個動作
- 導致 AI 生成的決策在驗證階段被拒絕:「无效的action:update_stop_loss」
修復內容:
1. validActions 添加三個新動作
2. 為每個新動作添加參數驗證:
- update_stop_loss: 驗證 NewStopLoss > 0
- update_take_profit: 驗證 NewTakeProfit > 0
- partial_close: 驗證 ClosePercentage 在 0-100 之間
3. 修正註釋:adjust_* → update_*
測試狀態:feature 分支,等待測試確認
|
2025-11-02 06:06:55 +08:00 |
|
ZhouYongyou
|
7f741c4a7d
|
docs(adaptive): 添加數據解釋和參考示例,採用"解釋+參考"方式
改動說明:
- 新增「數據框架說明」章節:詳細說明 4 個時間框架的覆蓋時間和用途
- 新增「關鍵數據解讀」章節:
* BuySellRatio 含義和參考範圍(0.6-0.7 強買壓,0.3-0.4 強賣壓)
* 成交量分析:放量檢測標準(1.5-2 倍平均)
* RSI 參考範圍:根據市場波動性調整(震盪市 30-40/60-70)
- 新增「入場信號參考示例」章節:
* 震盪策略入場信號(區間下沿做多、上沿做空)
* 趨勢策略入場信號(趨勢突破參考)
- 補充「避免低質量信號」:
* 新增:震盪市在區間中部交易(應等待區間邊界)
* 新增:缺乏買賣壓力確認(BuySellRatio 中性時謹慎)
設計哲學:
- 採用「解釋 + 參考示例」方式,而非硬編碼固定規則
- 所有參考數值都明確標註「你可以根據市場狀態自主調整」
- 強調根據市場波動性、趨勢強度自主判斷
- 激發 AI 的判斷能力,而非限制其靈活性
- 通過夏普比率反饋實現自我進化
改動統計:+111 行(增加詳細解釋和示例)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-02 05:48:28 +08:00 |
|
ZhouYongyou
|
82660b12c5
|
feat: 添加部分平仓和动态止盈止损功能
新增功能:
- update_stop_loss: 调整止损价格(追踪止损)
- update_take_profit: 调整止盈价格(技术位优化)
- partial_close: 部分平仓(分批止盈)
实现细节:
- Decision struct 新增字段:NewStopLoss, NewTakeProfit, ClosePercentage
- 新增执行函数:executeUpdateStopLossWithRecord, executeUpdateTakeProfitWithRecord, executePartialCloseWithRecord
- 修复持仓字段获取 bug(使用 "side" 并转大写)
- 更新 adaptive.txt 文档,包含详细使用示例和策略建议
- 优先级排序:平仓 > 调整止盈止损 > 开仓
命名统一:
- 与社区 PR #197 保持一致,使用 update_* 而非 adjust_*
- 独有功能:partial_close(部分平仓)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-02 05:32:23 +08:00 |
|
ZhouYongyou
|
093d521394
|
Merge branch 'dev' of https://github.com/tinkle-community/nofx into dev
|
2025-11-02 04:54:09 +08:00 |
|
ZhouYongyou
|
04419b47e6
|
fix: 修复编辑交易员时「AI模型配置不存在或未启用」错误
问题:
- 编辑交易员并修改系统提示词模板时,保存失败
- 错误提示:AI模型配置不存在或未启用
根本原因:
1. 后端 API 返回的 ai_model 被截断(admin_deepseek → deepseek)
2. 前端验证时找不到对应的模型 ID(enabledModels 存的是完整 ID)
3. API 缺少 system_prompt_template 字段
修复内容:
- api/server.go: 移除 AI model ID 截断逻辑,返回完整 ID
- api/server.go: 在 handleGetTraderConfig 中添加 system_prompt_template 字段
- web/src/types.ts: TraderConfigData 接口添加 system_prompt_template 字段
- web/src/components/AITradersPage.tsx: 添加 fallback 机制和详细日志
测试:
- 编辑交易员 → 修改系统提示词模板 → 保存成功
- Console 输出验证日志,不再报错
|
2025-11-02 04:51:30 +08:00 |
|
Luna Martinez
|
935c3d094e
|
Merge pull request #216 from tinkle-community/shui_dev
Feat: Update docs
|
2025-11-01 15:13:29 -04:00 |
|
zbhan
|
18820fc319
|
Feat: Update docs
- 重构文档结构
- 更新文档内容
- 制定roadmap
- 提供中/EN 双语文档
|
2025-11-01 15:05:24 -04:00 |
|
tinkle-community
|
9b9b269dca
|
Merge pull request #215 from zhoujunhehe/landing-page-pr
|
2025-11-02 02:16:17 +08:00 |
|
Ember
|
2fa884c72d
|
style(web): 统一 FooterSection 组件的代码风格,优化链接格式和排版
|
2025-11-02 01:59:42 +08:00 |
|
Ember
|
7a4d1db046
|
fix(web): Footer ‘资源/文档’ 链接改为 GitHub 主 README(https://github.com/tinkle-community/nofx/blob/main/README.md)
|
2025-11-02 01:57:50 +08:00 |
|
Ember
|
2cc4f77254
|
chore(web): Footer 支持方去除图标并新增 Hyperliquid 链接
|
2025-11-02 01:56:21 +08:00 |
|
Ember
|
df83eba8e7
|
feat(web): Footer 按旧版文案重排 —— 顶部品牌 + 三列(链接/资源/支持方:Aster DEX、Binance、Amber.ac)
|
2025-11-02 01:53:48 +08:00 |
|
Ember
|
1413eb868e
|
feat(web): Footer 增加“支持的交易所”列(Binance、Aster DEX 图标与链接),对齐早期版本记忆
|
2025-11-02 01:50:49 +08:00 |
|
Ember
|
aa5e66f7b8
|
feat(web): LandingPage 页脚升级为多链接版本(链接/资源/产品/支持 四列)
|
2025-11-02 01:46:40 +08:00 |
|
Ember
|
388832876a
|
feat(web): 恢复 LandingPage 页脚(FooterSection),复用 App 的 Footer 文案与样式
|
2025-11-02 01:42:30 +08:00 |
|
Ember
|
16a62cedce
|
style(web): 移除功能卡片右下角黄色渐变点缀(去除黄光)
|
2025-11-02 01:39:31 +08:00 |
|
ZhouYongyou
|
8faa2b3494
|
refactor: 恢復模板加載失敗時的簡化版本 fallback
## 問題
之前修改將模板加載失敗時改為返回空字符串,但:
- 上層函數沒有檢測空字符串的邏輯
- 空字符串會直接傳給 AI API,導致錯誤
- 極端情況下系統無法運行
## 解決方案
恢復原始邏輯,保留內置簡化版本作為最後防線:
```
用戶模板失敗 → default 失敗 → 使用內置簡化版本
"你是专业的加密货币交易AI。请根据市场数据做出交易决策。"
```
## 差異對比
### 之前(不安全)
```go
if default 加載失敗 {
return "" // ❌ 上層未檢測,會傳空字符串給 AI
}
```
### 現在(安全)
```go
if default 加載失敗 {
sb.WriteString("你是专业的加密货币交易AI。请根据市场数据做出交易决策。\n\n")
// ✅ 有最後防線,極端情況下仍能運行
}
```
## 測試驗證
- ✅ Go 編譯成功
- ✅ Docker build 成功
- ✅ 邏輯恢復到原始穩定版本
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-02 01:27:44 +08:00 |
|
ZhouYongyou
|
1fb5ecb89c
|
chore: 移除未實現功能的設計文檔
DYNAMIC_TP_SL_PROPOSAL.md 是動態止盈止損功能的設計文檔,
但功能尚未實現,保留在代碼庫中可能造成困擾(誤以為已完成)。
當需要實現該功能時,可以從 git 歷史中恢復(commit bac5744)。
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-02 01:23:47 +08:00 |
|
ZhouYongyou
|
bac5744039
|
refactor: 移除 engine.go 冗餘硬編碼策略,優化模板系統
## 問題
用戶反饋:「怎麼 engine.go 還寫入了這些?... 有必要嗎?」
**根本原因**:
- prompts/ 目錄下已有 default.txt (114行) 和 adaptive.txt (259行)
- engine.go 卻硬編碼了 183 行 adaptive 策略作為 fallback
- 這導致:
1. 重複維護兩份相同的策略內容
2. templateLoaded 標記多餘(模板系統本身已有 fallback)
3. 如果 default.txt 都加載失敗,說明文件系統有嚴重問題,不應繼續交易
## 解決方案
### 1. 移除冗餘硬編碼
- 刪除 183 行硬編碼 adaptive 策略(271-453 行)
- 移除 templateLoaded 標記及其邏輯
### 2. 簡化模板加載邏輯
```go
// 之前(複雜)
templateLoaded := false
if 模板加載成功 {
templateLoaded = true
}
if !templateLoaded {
追加 183 行硬編碼策略 // ❌ 冗餘
}
// 現在(簡潔)
if 用戶模板加載失敗 {
嘗試 default.txt // ✅ 已經是 fallback
}
if default.txt 也失敗 {
返回空字符串,上層應停止交易 // ✅ 安全
}
```
### 3. 新增動態止盈止損設計文檔
創建 `DYNAMIC_TP_SL_PROPOSAL.md`,記錄:
- 用戶反饋:「建议加个 adjust tp sl 或者给 close 加个 quantity」
- 問題分析:策略提到追蹤止損,但 AI 無法執行
- 解決方案:添加 `adjust_stop_loss`, `adjust_take_profit`, `partial_close` actions
- 實施步驟:修改 Decision 結構、執行邏輯、模板說明
## 測試驗證
- ✅ Go 編譯成功
- ✅ Docker build 成功
- ✅ 模板系統邏輯清晰(用戶模板 → default → 報錯)
- ✅ 代碼減少 183 行(更易維護)
## 檔案變更
- `decision/engine.go`: -183 行硬編碼策略
- `DYNAMIC_TP_SL_PROPOSAL.md`: +300 行設計文檔
## 後續工作
- [ ] 實現 adjust_stop_loss action
- [ ] 實現 partial_close action
- [ ] 更新模板文件說明新 actions
---
感謝 @user 指出這個設計缺陷!🙏
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-02 01:18:57 +08:00 |
|
Ember
|
14b7d44322
|
ui(web): 管理员模式徽标改为 Lucide Zap 图标,保持与其他 emoji 替换一致 (#138 风格)
|
2025-11-02 01:14:11 +08:00 |
|
ZhouYongyou
|
a2411d2843
|
refactor: 優化 engine.go 模板加載邏輯,避免策略重複
## 問題
- 之前邏輯:加載模板 → 無條件追加硬編碼策略
- 結果:選擇 adaptive 模板時,會收到重複的策略內容
* adaptive.txt: 259 行
* 硬編碼: 184 行
* 總計:443 行重複指導 ❌
## 解決方案
使用 templateLoaded 標記追蹤模板加載狀態:
- ✅ 模板成功 → 使用模板,跳過硬編碼
- ❌ 模板失敗 → 使用硬編碼作為 fallback
## 變更內容
1. 添加 templateLoaded bool 變量
2. 硬編碼策略包裹在 `if !templateLoaded {}` 中(277-463 行)
3. 硬約束和輸出格式始終追加(不受影響)
4. 添加日誌追蹤模板使用情況
## 測試驗證
- ✅ Go 編譯成功
- ✅ Docker build 成功
- ✅ 向後兼容(模板失敗時回退到硬編碼)
## 架構改進
```
加載流程:
1. 嘗試加載指定模板(如 adaptive)
2. 失敗 → 嘗試 default
3. 仍失敗 → 使用硬編碼
4. 追加硬約束(動態生成)
5. 追加輸出格式(動態生成)
```
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-02 01:09:37 +08:00 |
|
ZhouYongyou
|
b908fac92f
|
feat: 創建 adaptive.txt 自適應雙策略模板
新增 prompts/adaptive.txt 模板,包含:
## 核心特性
- 市場狀態判斷(震盪/趨勢,多指標交叉驗證)
- 雙策略系統:
* 策略 A: 震盪交易(高勝率低盈虧比)
* 策略 B: 趨勢跟隨(中等勝率高盈虧比)
- 技術位優先止盈機制(EMA20、前高前低、整數關口)
- 動態追踪止損(鎖定利潤,避免回撤)
- 夏普比率自我進化(交易質量 > 交易頻率)
## 使用方式
用戶可在 Web UI 選擇此模板,或繼續使用 default/nof1
## 技術實現
- 259 行完整策略指導
- 與現有模板系統兼容
- engine.go 保留硬編碼作為 fallback
相關文檔:TEMPLATE_MIGRATION_PLAN.md
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-02 01:06:11 +08:00 |
|
Ember
|
ba48298c03
|
ui(web): 对齐 #138 风格——用 Lucide/矢量图标替换表情与占位,增强空态/警告显示(ComparisonChart/Competition/AITraders/ConfigModal)
|
2025-11-02 01:02:15 +08:00 |
|
Ember
|
abcd215e19
|
feat(web): 重做 #138/#133 的前端改动(LOGO 替换 + Loading Logo + 校验优化保留),尽量不覆盖他人代码
|
2025-11-02 00:58:25 +08:00 |
|
ZhouYongyou
|
6553b81b94
|
fix: config.json.example 缺少 coin_pool_api_url 和 oi_top_api_url 字段
- 问题:config.json.example 与 main.go 的 ConfigFile 结构不一致
- 影响:新用户复制 example 时会缺少必要的配置字段
- 修复:添加 coin_pool_api_url 和 oi_top_api_url(空字符串)
相关提交:517d0ca (admin_mode config)
|
2025-11-02 00:40:21 +08:00 |
|
Ember
|
0a4fd06882
|
refactor(web): 拆分 LandingPage 为可复用组件(HeaderBar/Hero/AnimatedSection 等),新增 pages 结构并完成集成;构建通过
|
2025-11-02 00:36:37 +08:00 |
|
Ember
|
a3c6568137
|
refactor(web): 引入 pages 目录并迁移 LandingPage;修正 App 引用与相对路径,保持构建通过
|
2025-11-02 00:28:38 +08:00 |
|
ZhouYongyou
|
b1e4a7598a
|
fix: 修复中文引号导致的 Go 编译错误
问题:
- Go 语言不识别中文双引号 ""
- 导致编译失败:syntax error: unexpected name
修复:
- 将所有中文双引号 "" 替换为英文单引号 ''
- 影响行:287, 365-369
错误示例:
- 错误:"趋势市场"
- 正确:'趋势市场'
🤖 Generated with Claude Code
|
2025-11-02 00:25:25 +08:00 |
|
ZhouYongyou
|
a58be23a29
|
fix: 修正盈亏百分比计算错误(未考虑杠杆)
问题:
- 旧算法只计算价格变化百分比,未考虑杠杆倍数
- 例:10倍杠杆,价格涨1% → 显示+1%(错误),实际应该是+10%
- 导致 AI 收到错误的盈亏数据,影响决策
修复:
- 使用实际盈亏除以保证金计算百分比
- 公式:pnlPct = (unrealizedPnl / marginUsed) * 100
- 优点:
✓ 考虑杠杆倍数
✓ 使用 API 提供的实际盈亏(含手续费、资金费率)
✓ 更准确反映真实盈亏百分比
示例对比:
- 入场:100,000,当前:101,000(+1%),10倍杠杆
- 旧算法:显示 +1%(错误)
- 新算法:显示 +10%(正确)
感谢用户反馈 @1711z
🤖 Generated with Claude Code
|
2025-11-02 00:23:59 +08:00 |
|
Ember
|
8d77f15d4d
|
fix(web): 更新主图像文件以改善视觉效果
|
2025-11-02 00:19:49 +08:00 |
|
Ember
|
b5d4ff0fc2
|
fix(web): 优化落地页内容—移除多余空行,简化图片组件,更新支持方列表
|
2025-11-02 00:17:19 +08:00 |
|
Z
|
f02c5df2b6
|
Merge branch 'tinkle-community:dev' into dev
|
2025-11-02 00:08:58 +08:00 |
|
Ember
|
28b7edbc5c
|
style(web): 对齐币安风格—移除渐变/发光,固化深色/面板色,新增 header 样式,按钮与卡片统一
|
2025-11-02 00:08:46 +08:00 |
|
ZhouYongyou
|
88a7055561
|
feat: 添加技术位优先止盈 + 追踪止损(阶段1)
解决问题:
- 固定百分比止盈经常在技术位前回撤
- 浮盈没有保护机制,从 +1.5% 回撤到止损
核心改进:
1. 技术位优先止盈:
- 震荡策略:技术位 < 2% → 止盈设在技术位前 0.1%
- 趋势策略:技术位 < 5% → 止盈设在技术位前 0.2%
- 技术位识别:EMA20、最近高低点、整数关口
2. 追踪止损机制:
- 震荡:浮盈 0.8% → 止损移到成本价,浮盈 1.2% → 止损移到 +0.5%
- 趋势:浮盈 2% → 止损移到成本价,浮盈 5% → 止损移到 +2.5%
- 价格接近技术位 → 主动平仓避免回撤
3. 分批止盈预留:
- 趋势策略:技术位在 5-10% → 分两批止盈
- 为阶段2分批止盈做准备
预期效果:
- 减少"快到止盈就回撤"的情况
- 锁定浮盈,避免全部回撤
- 提高实际盈亏比
实施方式:纯提示词改进,基于已有数据(EMA20、K线高低点)
🤖 Generated with Claude Code
|
2025-11-02 00:03:20 +08:00 |
|
SkywalkerJi
|
6c03d247e1
|
Docker port mapping prompts.
|
2025-11-02 00:03:19 +08:00 |
|
Ember
|
e6fc60c464
|
fix(web): 去除残留 undefined(文本最终清洗)并将启动命令改为顶层 README 流程(start.sh + compose)
|
2025-11-02 00:01:38 +08:00 |
|
Ember
|
493fd559dc
|
fix(web): Typewriter 更稳健—charAt防越界、sanitizedLines防空值、pre-wrap防换行丢失
|
2025-11-01 23:58:48 +08:00 |
|
Ember
|
f5dfb1bb61
|
feat(web): Typewriter 优化(修复 undefined、矩阵绿样式、降低速度)并更新启动指令为 README 前端开发流程
|
2025-11-01 23:53:17 +08:00 |
|
Ember
|
8c57b6b1e7
|
feat(web): 落地页“启动输出”加入打字机效果(Typewriter)
|
2025-11-01 23:45:27 +08:00 |
|
Ember
|
9d4e86cbf5
|
feat(web): 新增 Landing 页面与 UI 优化\n\n- 新增 LandingPage、CryptoFeatureCard 等组件\n- 登录/注册页面与样式优化\n- 静态资源 images/main.png
|
2025-11-01 23:36:28 +08:00 |
|
tinkle-community
|
775446d939
|
Merge pull request #201 from SkywalkerJi/dev
Mapping the prompts folder in Docker.
|
2025-11-01 22:33:30 +08:00 |
|
SkywalkerJi
|
24a9a4b2a3
|
Merge remote-tracking branch 'refs/remotes/origin/dev' into dev
|
2025-11-01 22:31:09 +08:00 |
|
SkywalkerJi
|
cee927a46d
|
Docker port mapping prompts.
|
2025-11-01 22:28:49 +08:00 |
|
Z
|
e51cbf4092
|
Merge branch 'tinkle-community:dev' into dev
|
2025-11-01 21:03:57 +08:00 |
|
ZhouYongyou
|
e708c99db2
|
feat: 添加自适应双策略系统(震荡 + 趋势)
根据 ADAPTIVE_STRATEGY_DESIGN.md 方案 A(简单版)实现:
新增功能:
1. 市场状态判断(3个指标交叉验证):
- 多时间框架一致性(15m/1h/4h MACD 方向)
- 价格波动率(最近 10 根 K线波动幅度)
- 买卖压力极端值(BuySellRatio 连续性)
2. 双策略系统:
- 策略 A(震荡交易):止盈 1-2%,止损 0.8-1%,盈亏比 1:1.5-1:2
- 策略 B(趋势跟随):止盈 5-10%,止损 1.5-2%,盈亏比 1:3-1:5
3. 策略选择指导:AI 必须在思维链中明确说明市场状态判断和策略选择
改进效果:
- 让 AI 根据市场状态动态调整止盈止损
- 震荡市场快进快出,趋势市场让利润奔跑
- 预期提升胜率和盈亏比,降低最大回撤
实施方式:纯提示词改进(无代码变更),耗时 30 分钟
🤖 Generated with Claude Code
|
2025-11-01 20:40:31 +08:00 |
|
tinkle-community
|
17c927b04a
|
Merge pull request #194 from Icyoung/dev
Remote auth for prompt templates
|
2025-11-01 20:34:32 +08:00 |
|
tinkle-community
|
37dff0b3f0
|
Merge pull request #192 from Icyoung/dev
Dev Bug fix
|
2025-11-01 20:28:06 +08:00 |
|
icy
|
2cc91d1701
|
Remote auth for prompt templates
|
2025-11-01 20:25:55 +08:00 |
|
Z
|
4fbb4ecea5
|
Merge branch 'dev' into dev
|
2025-11-01 20:17:20 +08:00 |
|