tinkle-community
cbe753b9e6
fix(market): handle invalid period in calculateDonchian
2026-01-17 21:43:14 +08:00
tinkle-community
5c79aa451e
feat(market): add Donchian channel calculation
...
Add calculateDonchian function to compute highest high and lowest low
over a specified period. This is the foundation for box (range) detection
in the multi-period box indicator system for grid trading.
2026-01-17 21:39:21 +08:00
tinkle-community
a12c0ae8c9
refactor: standardize code comments
2025-12-08 01:43:22 +08:00
0xYYBB | ZYY | Bobo
e0b4d026d3
feat(market): add data staleness detection (Part 2/3) ( #800 )
...
* feat(market): add data staleness detection
## 問題背景
解決 PR #703 Part 2: 數據陳舊性檢測
- 修復 DOGEUSDT 式問題:連續價格不變表示數據源異常
- 防止系統處理僵化/過期的市場數據
## 技術方案
### 數據陳舊性檢測 (market/data.go)
- **函數**: `isStaleData(klines []Kline, symbol string) bool`
- **檢測邏輯**:
- 連續 5 個 3 分鐘週期價格完全不變(15 分鐘無波動)
- 價格波動容忍度:0.01%(避免誤報)
- 成交量檢查:價格凍結 + 成交量為 0 → 確認陳舊
- **處理策略**:
- 數據陳舊確認:跳過該幣種,返回錯誤
- 極低波動市場:記錄警告但允許通過(價格穩定但有成交量)
### 調用時機
- 在 `Get()` 函數中,獲取 3m K線後立即檢測
- 早期返回:避免後續無意義的計算和 API 調用
## 實現細節
- **檢測閾值**: 5 個連續週期
- **容忍度**: 0.01% 價格波動
- **日誌**: 英文國際化版本
- **並發安全**: 函數無狀態,安全
## 影響範圍
- ✅ 修改 market/data.go: 新增 isStaleData() + 調用邏輯
- ✅ 新增 log 包導入
- ✅ 50 行新增代碼
## 測試建議
1. 模擬 DOGEUSDT 場景:連續價格不變 + 成交量為 0
2. 驗證日誌輸出:`stale data confirmed: price freeze + zero volume`
3. 正常市場:極低波動但有成交量,應允許通過並記錄警告
## 相關 Issue/PR
- 拆分自 **PR #703** (Part 2/3)
- 基於最新 upstream/dev (3112250 )
- 依賴: 無
- 前置: Part 1 (OI 時間序列) - 已提交 PR #798
- 後續: Part 3 (手續費率傳遞)
Co-Authored-By: tinkle-community <tinklefund@gmail.com >
* test(market): add comprehensive unit tests for isStaleData function
- Test normal fluctuating data (expects non-stale)
- Test price freeze with zero volume (expects stale)
- Test price freeze with volume (low volatility market)
- Test insufficient data edge case (<5 klines)
- Test boundary conditions (exactly 5 klines)
- Test tolerance threshold (0.01% price change)
- Test mixed scenario (normal → freeze transition)
- Test empty klines edge case
All 8 test cases passed.
Co-Authored-By: tinkle-community <tinklefund@gmail.com >
---------
Co-authored-by: ZhouYongyou <128128010+zhouyongyou@users.noreply.github.com >
Co-authored-by: tinkle-community <tinklefund@gmail.com >
Co-authored-by: Shui <88711385+hzb1115@users.noreply.github.com >
2025-11-11 21:41:26 -05:00
Lawrence Liu
4fde70caa3
fix(market): add 3m volume and ATR14 indicators to AI data ( #830 )
...
* Support 3m volume and ATR4
* test(market): add unit tests for Volume and ATR14 indicators
- Add comprehensive tests for calculateIntradaySeries Volume collection
- Add tests for ATR14 calculation with various data scenarios
- Add edge case tests for insufficient data
- Test Volume value precision and consistency with other indicators
- All 8 test cases pass successfully
Resolves code review blocking issue from PR #830
2025-11-10 12:13:09 -05:00