diff --git a/.github/ISSUE_TEMPLATE/bounty_claim.md b/.github/ISSUE_TEMPLATE/bounty_claim.md new file mode 100644 index 00000000..b8fc97eb --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bounty_claim.md @@ -0,0 +1,93 @@ +--- +name: Bounty Claim +about: Claim a bounty task or propose a new bounty +title: '[BOUNTY CLAIM] ' +labels: bounty +assignees: '' +--- + +## ð° Bounty Information + +**Claiming existing bounty?** +- Issue #: +- Bounty amount: + +**OR proposing new bounty?** +- Proposed feature/fix: +- Estimated effort: [Small / Medium / Large] + +--- + +## ð€ About You + +**Name/Username:** + +**Contact:** +- GitHub: @your_username +- Telegram: @your_telegram (optional) +- Email: your@email.com (optional) + +**Relevant Experience:** +- +- +- + +--- + +## ð Implementation Plan + +### 1. Approach + +- How will you implement this? +- What components will be affected? +- Any dependencies or libraries needed? + +### 2. Timeline +- **Start date:** +- **Estimated completion:** +- **Milestones:** + - [ ] Week 1: ... + - [ ] Week 2: ... + - [ ] Week 3: ... + +### 3. Deliverables +- [ ] Working code (merged PR) +- [ ] Unit tests (if applicable) +- [ ] Documentation updates +- [ ] Demo video/screenshots + +--- + +## ð Questions for Maintainers + + + +1. +2. +3. + +--- + +## ð References + + + +- + +--- + +## â Acknowledgment + +By claiming this bounty, I acknowledge that: +- [ ] I have read the [Contributing Guide](../../CONTRIBUTING.md) +- [ ] I will follow the [Code of Conduct](../../CODE_OF_CONDUCT.md) +- [ ] I understand the acceptance criteria +- [ ] My contribution will be licensed under MIT License +- [ ] Payment is subject to successful PR merge + +--- + +**For maintainers:** +- [ ] Bounty claim approved +- [ ] Issue assigned to claimant +- [ ] Timeline agreed upon diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 00000000..e41f17b0 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,47 @@ +--- +name: Bug Report +about: Report a bug to help us improve NOFX +title: '[BUG] ' +labels: bug +assignees: '' +--- + +## ð Bug Description + + +## ð Steps to Reproduce +1. Go to '...' +2. Click on '...' +3. Run command '...' +4. See error + +## â Expected Behavior + + +## â Actual Behavior + + +## ðž Screenshots / Logs + + +``` +Paste logs here +``` + +## ð» Environment +- **OS:** [e.g. macOS 13, Ubuntu 22.04, Windows 11] +- **Go Version:** [e.g. 1.21.5] +- **Node.js Version:** [e.g. 18.17.0] +- **NOFX Version/Commit:** [e.g. v3.0.0 or commit hash] +- **Deployment Method:** [Docker / Manual / PM2] +- **Exchange:** [Binance / Hyperliquid / Aster] + +## ð§ Additional Context + + +- Does this happen consistently or intermittently? +- Did it work before? When did it break? +- Any recent configuration changes? + +## â Possible Solution + diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..8fd87aeb --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,153 @@ +# Pull Request + +## ð Description + + + +## ð¯ Type of Change + + + +- [ ] ð Bug fix (non-breaking change which fixes an issue) +- [ ] âš New feature (non-breaking change which adds functionality) +- [ ] ð¥ Breaking change (fix or feature that would cause existing functionality to not work as expected) +- [ ] ð Documentation update +- [ ] ðš Code style update (formatting, renaming) +- [ ] â»ïž Refactoring (no functional changes) +- [ ] â¡ Performance improvement +- [ ] â Test update +- [ ] ð§ Build/config change + +## ð Related Issues + + + +- Closes # +- Related to # + +## ð Changes Made + + + +- Change 1 +- Change 2 +- Change 3 + +## 𧪠Testing + +### Manual Testing + + + +- [ ] Tested locally (manual verification) +- [ ] Tested on testnet (for exchange integrations) +- [ ] Tested with different configurations +- [ ] Verified no existing functionality broke + +### Test Environment + +- **OS:** [e.g. macOS, Ubuntu] +- **Go Version:** [e.g. 1.21.5] +- **Exchange:** [if applicable] + +### Test Results + + + +``` +Test output here +``` + +## ðž Screenshots / Demo + + + + + +**Before:** + + +**After:** + + +## â Checklist + + + +### Code Quality + +- [ ] My code follows the project's code style ([Contributing Guide](../CONTRIBUTING.md)) +- [ ] I have performed a self-review of my code +- [ ] I have commented my code, particularly in hard-to-understand areas +- [ ] My changes generate no new warnings or errors +- [ ] Code compiles successfully (`go build` / `npm run build`) +- [ ] I have run `go fmt` (for Go code) + +### Testing + +- [ ] I have added tests that prove my fix is effective or that my feature works +- [ ] New and existing unit tests pass locally +- [ ] I have tested on testnet (for trading/exchange changes) + +### Documentation + +- [ ] I have updated the documentation accordingly +- [ ] I have updated the README if needed +- [ ] I have added inline code comments where necessary +- [ ] I have updated type definitions (for TypeScript changes) + +### Git + +- [ ] My commits follow the conventional commits format (`feat:`, `fix:`, etc.) +- [ ] I have rebased my branch on the latest `dev` branch +- [ ] There are no merge conflicts + +## ð Security Considerations + + + +- [ ] No API keys or secrets are hardcoded +- [ ] User inputs are properly validated +- [ ] No SQL injection vulnerabilities introduced +- [ ] Authentication/authorization properly handled +- [ ] N/A (not security-related) + +## â¡ Performance Impact + + + +- [ ] No significant performance impact +- [ ] Performance improved +- [ ] Performance may be impacted (explain below) + + + +## ð Additional Notes + + + +--- + +## For Bounty Claims + + + +- [ ] This PR is for bounty issue # +- [ ] All acceptance criteria from the bounty issue are met +- [ ] I have included a demo video/screenshots +- [ ] I am ready for payment upon merge + +**Payment Details:** + +--- + +## ð Reviewer Notes + + + +--- + +**By submitting this PR, I confirm that:** +- [ ] I have read the [Contributing Guidelines](../CONTRIBUTING.md) +- [ ] I agree to the [Code of Conduct](../CODE_OF_CONDUCT.md) +- [ ] My contribution is licensed under the MIT License diff --git a/.gitignore b/.gitignore index 4dc2afc9..ad0d2a5b 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,9 @@ *.iml *.xml +# AI å·¥å · +.claude/ + # çŒè¯äº§ç© nofx-auto *.exe diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..f520303d --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,203 @@ +# Changelog + +All notable changes to the NOFX project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +**Languages:** [English](CHANGELOG.md) | [äžæ](CHANGELOG.zh-CN.md) + +--- + +## [Unreleased] + +### Added +- Documentation system with multi-language support (EN/CN/RU/UK) +- Complete getting-started guides (Docker, PM2, Custom API) +- Architecture documentation with system design details +- User guides with FAQ and troubleshooting +- Community documentation with bounty programs + +### Changed +- Reorganized documentation structure into logical categories +- Updated all README files with proper navigation links + +--- + +## [3.0.0] - 2025-10-30 + +### Added - Major Architecture Transformation ð + +**Complete System Redesign - Web-Based Configuration Platform** + +This is a **major breaking update** that completely transforms NOFX from a static config-based system to a modern web-based trading platform. + +#### Database-Driven Architecture +- SQLite integration replacing static JSON config +- Persistent storage with automatic timestamps +- Foreign key relationships and triggers for data consistency +- Separate tables for AI models, exchanges, traders, and system config + +#### Web-Based Configuration Interface +- Complete web-based configuration management (no more JSON editing) +- AI Model setup through web interface (DeepSeek/Qwen API keys) +- Exchange management (Binance/Hyperliquid credentials) +- Dynamic trader creation (combine any AI model with any exchange) +- Real-time control (start/stop traders without system restart) + +#### Flexible Architecture +- Separation of concerns (AI models and exchanges independent) +- Mix & match capability (unlimited combinations) +- Scalable design (support for unlimited traders) +- Clean slate approach (no default traders) + +#### Enhanced API Layer +- RESTful design with complete CRUD operations +- New endpoints: + - `GET/PUT /api/models` - AI model configuration + - `GET/PUT /api/exchanges` - Exchange configuration + - `POST/DELETE /api/traders` - Trader management + - `POST /api/traders/:id/start|stop` - Trader control +- Updated documentation for all API endpoints + +#### Modernized Codebase +- Type safety with proper separation of configuration types +- Database abstraction with prepared statements +- Comprehensive error handling and validation +- Better code organization (database, API, business logic) + +### Changed +- **BREAKING**: Old `config.json` files no longer used +- Configuration must be done through web interface +- Much easier setup and better UX +- No more server restarts for configuration changes + +### Why This Matters +- ð¯ **User Experience**: Much easier to configure and manage +- ð§ **Flexibility**: Create any combination of AI models and exchanges +- ð **Scalability**: Support for complex multi-trader setups +- ð **Reliability**: Database ensures data persistence and consistency +- ð **Future-Proof**: Foundation for advanced features + +--- + +## [2.0.2] - 2025-10-29 + +### Fixed - Critical Bug Fixes: Trade History & Performance Analysis + +#### PnL Calculation - Major Error Fixed +- **Fixed**: PnL now calculated as actual USDT amount instead of percentage only +- Previously ignored position size and leverage (e.g., 100 USDT @ 5% = 1000 USDT @ 5%) +- Now: `PnL (USDT) = Position Value à Price Change % à Leverage` +- Impact: Win rate, profit factor, and Sharpe ratio now accurate + +#### Position Tracking - Missing Critical Data +- **Fixed**: Open position records now store quantity and leverage +- Previously only stored price and time +- Essential for accurate PnL calculations + +#### Position Key Logic - Long/Short Conflict +- **Fixed**: Changed from `symbol` to `symbol_side` format +- Now properly distinguishes between long and short positions +- Example: `BTCUSDT_long` vs `BTCUSDT_short` + +#### Sharpe Ratio Calculation - Code Optimization +- **Changed**: Replaced custom Newton's method with `math.Sqrt` +- More reliable, maintainable, and efficient + +### Why This Matters +- Historical trade statistics now show real USDT profit/loss +- Performance comparison between different leverage trades is accurate +- AI self-learning mechanism receives correct feedback +- Multi-position tracking (long + short simultaneously) works correctly + +--- + +## [2.0.2] - 2025-10-29 + +### Fixed - Aster Exchange Precision Error + +- Fixed Aster exchange precision error (code -1111) +- Improved price and quantity formatting to match exchange requirements +- Added detailed precision processing logs for debugging +- Enhanced all order functions with proper precision handling + +#### Technical Details +- Added `formatFloatWithPrecision` function +- Price and quantity formatted according to exchange specifications +- Trailing zeros removed to optimize API requests + +--- + +## [2.0.1] - 2025-10-29 + +### Fixed - ComparisonChart Data Processing + +- Fixed ComparisonChart data processing logic +- Switched from cycle_number to timestamp grouping +- Resolved chart freezing issue when backend restarts +- Improved chart data display (shows all historical data chronologically) +- Enhanced debugging logs + +--- + +## [2.0.0] - 2025-10-28 + +### Added - Major Updates + +- AI self-learning mechanism (historical feedback, performance analysis) +- Multi-trader competition mode (Qwen vs DeepSeek) +- Binance-style UI (complete interface imitation) +- Performance comparison charts (real-time ROI comparison) +- Risk control optimization (per-coin position limit adjustment) + +### Fixed + +- Fixed hardcoded initial balance issue +- Fixed multi-trader data sync issue +- Optimized chart data alignment (using cycle_number) + +--- + +## [1.0.0] - 2025-10-27 + +### Added - Initial Release + +- Basic AI trading functionality +- Decision logging system +- Simple Web interface +- Support for Binance Futures +- DeepSeek and Qwen AI model integration + +--- + +## How to Use This Changelog + +### For Users +- Check the [Unreleased] section for upcoming features +- Review version sections to understand what changed +- Follow migration guides for breaking changes + +### For Contributors +When making changes, add them to the [Unreleased] section under appropriate categories: +- **Added** - New features +- **Changed** - Changes to existing functionality +- **Deprecated** - Features that will be removed +- **Removed** - Features that were removed +- **Fixed** - Bug fixes +- **Security** - Security fixes + +When releasing a new version, move [Unreleased] items to a new version section with date. + +--- + +## Links + +- [Documentation](docs/README.md) +- [Contributing Guidelines](CONTRIBUTING.md) +- [Security Policy](SECURITY.md) +- [GitHub Repository](https://github.com/tinkle-community/nofx) + +--- + +**Last Updated:** 2025-11-01 diff --git a/CHANGELOG.zh-CN.md b/CHANGELOG.zh-CN.md new file mode 100644 index 00000000..0bfdab3d --- /dev/null +++ b/CHANGELOG.zh-CN.md @@ -0,0 +1,203 @@ +# æŽæ°æ¥å¿ + +NOFX 项ç®çææéèŠæŽæ¹éœå°è®°åœå𿀿件äžã + +æ¬æä»¶æ ŒåŒåºäº [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/)ïŒ +æ¬é¡¹ç®éµåŸª [è¯ä¹åçæ¬](https://semver.org/lang/zh-CN/)ã + +**è¯èš:** [English](CHANGELOG.md) | [äžæ](CHANGELOG.zh-CN.md) + +--- + +## [æªååž] + +### æ°å¢ +- å€è¯èšææ¡£ç³»ç»ïŒè±æ/äžæ/ä¿è¯/ä¹å å °è¯ïŒ +- 宿Žçå¿«éåŒå§æåïŒDockerãPM2ãèªå®ä¹ APIïŒ +- æ¶æææ¡£ïŒå å«ç³»ç»è®Ÿè®¡ç»è +- çšæ·æåïŒå å« FAQ åæ éæé€ +- ç€Ÿåºææ¡£ïŒå 嫿¬èµè®¡å + +### åæŽ +- éç»ææ¡£ç»æäžºé»èŸåç±» +- æŽæ°ææ README æä»¶ïŒæ·»å éåœç富èªéŸæ¥ + +--- + +## [3.0.0] - 2025-10-30 + +### æ°å¢ - éå€§æ¶æåé© ð + +**ç³»ç»å®å šéæ°è®Ÿè®¡ - åºäº Web çé 眮平å°** + +è¿æ¯äžäžª**éå€§ç Žåæ§æŽæ°**ïŒå° NOFX ä»åºäºéæé 眮çç³»ç»å®å šèœ¬å䞺ç°ä»£åç Web 亀æå¹³å°ã + +#### æ°æ®åºé©±åšæ¶æ +- SQLite éæïŒåä»£éæ JSON é 眮 +- æä¹ åååšïŒèªåšæ¶éŽæ³ +- å€é®å ³ç³»åè§Šååšç¡®ä¿æ°æ®äžèŽæ§ +- 䞺 AI æš¡åã亀ææã亀æååç³»ç»é 眮åçŠ»è¡šç»æ + +#### åºäº Web çé 眮çé¢ +- 宿Žç Web é 眮管çïŒæ éçŒèŸ JSONïŒ +- éè¿ Web çé¢è®Ÿçœ® AI æš¡åïŒDeepSeek/Qwen API å¯é¥ïŒ +- 亀ææç®¡çïŒBinance/Hyperliquid åè¯ïŒ +- åšæå建亀æåïŒç»åä»»æ AI æš¡åå亀ææïŒ +- 宿¶æ§å¶ïŒæ ééå¯å³å¯å¯åš/åæ¢äº€æåïŒ + +#### çµæŽ»æ¶æ +- å ³æ³šç¹å犻ïŒAI æš¡åå亀ææç¬ç«ïŒ +- æ··åæé èœåïŒæ éç»åïŒ +- 坿©å±è®Ÿè®¡ïŒæ¯ææ é亀æåïŒ +- æž æŽèµ·ç¹ïŒæ é»è®€äº€æåïŒ + +#### å¢åŒºç API å± +- RESTful 讟计ïŒå®æŽç CRUD æäœ +- æ°ç«¯ç¹ïŒ + - `GET/PUT /api/models` - AI æš¡åé 眮 + - `GET/PUT /api/exchanges` - 亀ææé 眮 + - `POST/DELETE /api/traders` - 亀æå管ç + - `POST /api/traders/:id/start|stop` - 亀æåæ§å¶ +- æŽæ°ææ API ç«¯ç¹ææ¡£ + +#### ç°ä»£å代ç åº +- ç±»åå®å šïŒéåœå犻é 眮类å +- æ°æ®åºæœè±¡ïŒäœ¿çšé¢å€çè¯å¥ +- å šé¢çé误å€çåéªè¯ +- æŽå¥œç代ç ç»ç»ïŒæ°æ®åºãAPIãäžå¡é»èŸïŒ + +### åæŽ +- **ç Žåæ§åæŽ**ïŒäžåäœ¿çšæ§ç `config.json` æä»¶ +- å¿ é¡»éè¿ Web çé¢è¿è¡é 眮 +- 讟眮æŽç®åïŒçšæ·äœéªæŽå¥œ +- é çœ®æŽæ¹æ éé坿å¡åš + +### 䞺ä»ä¹éèŠ +- ð¯ **çšæ·äœéª**ïŒé 眮åç®¡çæŽå®¹æ +- ð§ **çµæŽ»æ§**ïŒå建 AI æš¡åå亀ææçä»»æç»å +- ð **坿©å±æ§**ïŒæ¯æå€æçå€äº€æå讟眮 +- ð **å¯é æ§**ïŒæ°æ®åºç¡®ä¿æ°æ®æä¹ æ§åäžèŽæ§ +- ð **é¢åæªæ¥**ïŒäžºé«çº§åèœå¥ å®åºç¡ + +--- + +## [2.0.2] - 2025-10-29 + +### ä¿®å€ - å ³é®é误修å€ïŒäº€æåå²åæ§èœåæ + +#### çäºè®¡ç® - é倧éè¯¯ä¿®å€ +- **ä¿®å€**ïŒçäºç°åšè®¡ç®äžºå®é USDT éé¢ïŒèäžæ¯ä» çŸåæ¯ +- ä¹å応ç¥äºä»äœå€§å°åæ æïŒäŸåŠïŒ100 USDT @ 5% = 1000 USDT @ 5%ïŒ +- ç°åšïŒ`çäº (USDT) = ä»äœä»·åŒ Ã ä»·æ Œåå % Ã æ æ` +- 圱åïŒèçãçå©å åå倿®æ¯çç°åšåç¡® + +#### ä»äœè·èžª - çŒºå€±å ³é®æ°æ® +- **ä¿®å€**ïŒæä»è®°åœç°åšååšæ°éåæ æ +- ä¹ååªååšä»·æ Œåæ¶éŽ +- è¿å¯¹åç¡®ççäºè®¡ç®è³å ³éèŠ + +#### ä»äœé®é»èŸ - å€ç©ºå²çª +- **ä¿®å€**ïŒä» `symbol` æ¹äžº `symbol_side` æ ŒåŒ +- ç°åšæ£ç¡®åºåå€å€Žå空倎ä»äœ +- 瀺äŸïŒ`BTCUSDT_long` vs `BTCUSDT_short` + +#### 倿®æ¯çè®¡ç® - 代ç äŒå +- **åæŽ**ïŒçš `math.Sqrt` æ¿æ¢èªå®ä¹çé¡¿æ³ +- æŽå¯é ãå¯ç»Žæ€å髿 + +### 䞺ä»ä¹éèŠ +- åå²äº€æç»è®¡ç°åšæŸç€ºçå®ç USDT çäº +- äžåæ æäº€æä¹éŽçæ§èœæ¯èŸåç¡® +- AI èªåŠä¹ æºå¶æ¥æ¶æ£ç¡®çåéŠ +- å€ä»äœè·èžªïŒåæ¶å€ç©ºïŒæ£åžžå·¥äœ + +--- + +## [2.0.2] - 2025-10-29 + +### ä¿®å€ - Aster 亀ææç²ŸåºŠé误 + +- ä¿®å€ Aster 亀ææç²ŸåºŠé误ïŒä»£ç -1111ïŒ +- æ¹è¿ä»·æ Œåæ°éæ ŒåŒå以å¹é 亀ææèŠæ± +- æ·»å 诊ç»ç粟床å€çæ¥å¿çšäºè°è¯ +- å¢åŒºææè®¢ååœæ°ç粟床å€ç + +#### ææ¯ç»è +- æ·»å `formatFloatWithPrecision` åœæ° +- æ ¹æ®äº€ææè§èæ ŒåŒåä»·æ Œåæ°é +- å é€å°Ÿéé¶ä»¥äŒå API è¯·æ± + +--- + +## [2.0.1] - 2025-10-29 + +### ä¿®å€ - ComparisonChart æ°æ®å€ç + +- ä¿®å€ ComparisonChart æ°æ®å€çé»èŸ +- ä» cycle_number 忢尿¶éŽæ³åç» +- è§£å³å端é坿¶åŸè¡šå»ç»é®é¢ +- æ¹è¿åŸè¡šæ°æ®æŸç€ºïŒææ¶éŽé¡ºåºæŸç€ºææå岿°æ®ïŒ +- å¢åŒºè°è¯æ¥å¿ + +--- + +## [2.0.0] - 2025-10-28 + +### æ°å¢ - éå€§æŽæ° + +- AI èªåŠä¹ æºå¶ïŒåå²åéŠãæ§èœåæïŒ +- å€äº€æåç«èµæš¡åŒïŒQwen vs DeepSeekïŒ +- åžå®é£æ Œ UIïŒå®æŽçé¢ä»¿å¶ïŒ +- æ§èœæ¯èŸåŸè¡šïŒå®æ¶ ROI æ¯èŸïŒ +- é£é©æ§å¶äŒåïŒæ¯åžç§ä»äœéå¶è°æŽïŒ + +### ä¿®å€ + +- ä¿®å€ç¡¬çŒç åå§äœé¢é®é¢ +- ä¿®å€å€äº€æåæ°æ®åæ¥é®é¢ +- äŒååŸè¡šæ°æ®å¯¹éœïŒäœ¿çš cycle_numberïŒ + +--- + +## [1.0.0] - 2025-10-27 + +### æ°å¢ - åå§çæ¬ + +- åºç¡ AI 亀æåèœ +- å³çæ¥å¿ç³»ç» +- ç®åç Web çé¢ +- æ¯æåžå®å纊 +- DeepSeek å Qwen AI æš¡åéæ + +--- + +## åŠäœäœ¿ç𿬿޿°æ¥å¿ + +### çšæ· +- æ¥ç [æªååž] éšåäºè§£å³å°æšåºçåèœ +- æ¥ççæ¬éšåäºè§£åæŽå 容 +- éµåŸªç Žåæ§åæŽçè¿ç§»æå + +### 莡ç®è +è¿è¡æŽæ¹æ¶ïŒå°å®ä»¬æ·»å å° [æªååž] éšåççžåºç±»å«äžïŒ +- **æ°å¢** - æ°åèœ +- **åæŽ** - ç°æåèœçåæŽ +- **åŒçš** - å³å°å é€çåèœ +- **ç§»é€** - å·²å é€çåèœ +- **ä¿®å€** - éè¯¯ä¿®å€ +- **å®å š** - å®å šä¿®å€ + +ååžæ°çæ¬æ¶ïŒå° [æªååž] 项ç®ç§»åšå°åžŠæ¥æçæ°çæ¬éšåã + +--- + +## éŸæ¥ + +- [ææ¡£](docs/README.md) +- [èŽ¡ç®æå](CONTRIBUTING.md) +- [å®å šçç¥](SECURITY.md) +- [GitHub ä»åº](https://github.com/tinkle-community/nofx) + +--- + +**æåæŽæ°:** 2025-11-01 diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..d1c34065 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,237 @@ +# Contributor Covenant Code of Conduct / 莡ç®è å ¬çºŠè¡äžºåå + +**Languages:** [English](#english) | [äžæ](#äžæ) + +--- + +# English + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, caste, color, religion, or sexual +identity and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the overall + community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or advances of + any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email address, + without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at: + + +You can also report via: +- **Telegram:** Direct message to [@Web3Tinkle](https://t.me/Web3Tinkle) +- **Twitter:** DM to [@nofx_ai](https://x.com/nofx_ai) + +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series of +actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or permanent +ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within the +community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.1, available at +[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. + +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. + +For answers to common questions about this code of conduct, see the FAQ at +[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at +[https://www.contributor-covenant.org/translations][translations]. + +[homepage]: https://www.contributor-covenant.org +[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html +[Mozilla CoC]: https://github.com/mozilla/diversity +[FAQ]: https://www.contributor-covenant.org/faq +[translations]: https://www.contributor-covenant.org/translations + +--- + +# äžæ + +## æä»¬çæ¿è¯º + +äœäžºæåã莡ç®è åé¢å¯Œè ïŒæä»¬æ¿è¯ºäœ¿ç€Ÿåºäžçæ¯äžªäººéœäžåéªæ°ïŒæ è®ºå ¶å¹ŽéŸãäœåãææŸæäžææŸçæ®çŸãç§æãæ§å«ç¹åŸãæ§å«è®€åå衚蟟ãç»éªæ°Žå¹³ãæè²çšåºŠã瀟äŒç»æµå°äœãåœç±ã䞪人å€è²ãç§æãç§å§ãè€è²ãå®æææ§è®€åååååŠäœã + +æä»¬æ¿è¯ºä»¥æå©äºåŒæŸãå奜ãå€å ãå 容åå¥åº·ç€Ÿåºçæ¹åŒè¡äºåäºåšã + +## æä»¬çæ å + +æå©äºäžºæä»¬ç瀟åºåé 积æç¯å¢çè¡äžºç€ºäŸå æ¬ïŒ + +* 对ä»äººè¡šç°åºåçå¿ååæ +* å°éäžåçæè§ãè§ç¹åç»éª +* ç»äºå¹¶äŒé å°æ¥å建讟æ§åéŠ +* æ¥å莣任并ååæä»¬é误圱åç人éæïŒå¹¶ä»ç»éªäžåŠä¹ +* å ³æ³šäžä» 对æä»¬äžªäººæå¥œïŒèäžå¯¹æŽäžªç€Ÿåºæå¥œçäºæ + +äžå¯æ¥åçè¡äžºç€ºäŸå æ¬ïŒ + +* äœ¿çšæ§åçè¯èšæåŸåïŒä»¥åä»»äœåœ¢åŒçæ§å ³æ³šææ§æé +* æè¡ ãäŸ®èŸ±æ§æèŽ¬ææ§è¯è®ºïŒä»¥åäººèº«ææ¿æ²»æ»å» +* å ¬åŒæç§äžéªæ° +* æªç»ä»äººæç¡®è®žå¯ïŒååžä»äººçç§äººä¿¡æ¯ïŒåŠç©çå°åæçµåé®ä»¶å°å +* åšäžäžç¯å¢äžå¯èœè¢«åç讀䞺äžéåœçå ¶ä»è¡äžº + +## æ§è¡èޣ任 + +瀟åºé¢å¯Œè èŽèŽ£éæåæ§è¡æä»¬å¯æ¥åè¡äžºçæ åïŒå¹¶å°å¯¹ä»ä»¬è®€äžºäžéåœãåšèæ§ãåç¯æ§ææå®³çä»»äœè¡äžºéåéåœåå ¬å¹³ççº æ£æªæœã + +瀟åºé¢å¯Œè ææå©å莣任å é€ãçŒèŸææç»äžç¬Šåæ¬è¡äžºååçè¯è®ºãæäº€ã代ç ãwiki çŒèŸãé®é¢åå ¶ä»èŽ¡ç®ïŒå¹¶åšéåœæ¶äŒ èŸŸå®¡æ žå³å®çåå ã + +## èåŽ + +æ¬è¡äžºååéçšäºææç€Ÿåºç©ºéŽïŒä¹éçšäºäžªäººåšå ¬å ±ç©ºéŽæ£åŒä»£è¡šç€Ÿåºçæ åµã代衚æä»¬ç€Ÿåºç瀺äŸå æ¬äœ¿çšå®æ¹çµåé®ä»¶å°åãéè¿å®æ¹ç€Ÿäº€åªäœèŽŠæ·ååžä¿¡æ¯ïŒæåšçº¿äžæçº¿äžæŽ»åšäžæ ä»»æå®ä»£è¡šã + +## æ§è¡ + +å¯ä»¥åèŽèŽ£æ§è¡ç瀟åºé¢å¯Œè æ¥å滥çšãéªæ°æå ¶ä»äžå¯æ¥åè¡äžºçå®äŸïŒ + + +æšä¹å¯ä»¥éè¿ä»¥äžæ¹åŒæ¥åïŒ +- **Telegram:** çŽæ¥æ¶æ¯ [@Web3Tinkle](https://t.me/Web3Tinkle) +- **Twitter:** ç§ä¿¡ [@nofx_ai](https://x.com/nofx_ai) + +æææè¯éœå°åŸå°è¿ éåå ¬æ£ç审æ¥åè°æ¥ã + +ææç€Ÿåºé¢å¯Œè éœæä¹å¡å°éä»»äœäºä»¶æ¥åè çéç§åå®å šã + +## æ§è¡æå + +瀟åºé¢å¯Œè å°éµåŸªè¿äºç€Ÿåºåœ±åæåæ¥ç¡®å®ä»ä»¬è®€äžºè¿åæ¬è¡äžºååçä»»äœè¡åšçåæïŒ + +### 1. çº æ£ + +**瀟åºåœ±å**ïŒäœ¿çšäžéåœçè¯èšæå ¶ä»è¢«è®€äžºåšç€Ÿåºäžäžäžäžæäžå欢è¿çè¡äžºã + +**åæ**ïŒç€Ÿåºé¢å¯Œè çç§äžä¹Šé¢èŠåïŒè¯Žæè¿è§çæ§èŽšåè§£é䞺ä»ä¹è¡äžºäžéåœãå¯èœèŠæ±å ¬åŒéæã + +### 2. èŠå + +**瀟åºåœ±å**ïŒéè¿åäžäºä»¶æäžç³»åè¡åšè¿è§ã + +**åæ**ïŒèŠå并诎ææç»è¡äžºçåæãåšæå®æ¶éŽå äžäžçžå ³äººåäºåšïŒå æ¬äžäž»åšäžæ§è¡è¡äžºååç人äºåšãè¿å æ¬é¿å åšç€Ÿåºç©ºéŽä»¥åå€éšæž éïŒåŠç€Ÿäº€åªäœïŒçäºåšãè¿åè¿äºæ¡æ¬Ÿå¯èœå¯ŒèŽäžŽæ¶ææ°žä¹ çŠä»€ã + +### 3. 䞎æ¶çŠä»€ + +**瀟åºåœ±å**ïŒäž¥éè¿åç€Ÿåºæ åïŒå æ¬æç»çäžåœè¡äžºã + +**åæ**ïŒåšæå®æ¶éŽå 䞎æ¶çŠæ¢äžç€Ÿåºè¿è¡ä»»äœåœ¢åŒçäºåšæå ¬åŒäº€æµãåšæ€æéŽïŒäžå 讞äžçžå ³äººåè¿è¡å ¬åŒæç§äžäºåšïŒå æ¬äžäž»åšäžæ§è¡è¡äžºååç人äºåšãè¿åè¿äºæ¡æ¬Ÿå¯èœå¯ŒèŽæ°žä¹ çŠä»€ã + +### 4. æ°žä¹ çŠä»€ + +**瀟åºåœ±å**ïŒè¡šç°åºè¿åç€Ÿåºæ åçæš¡åŒïŒå æ¬æç»çäžåœè¡äžºã对䞪人çéªæ°ïŒæå¯¹äžªäººç±»å«çæ»å»æèެäœã + +**åæ**ïŒæ°žä¹ çŠæ¢åšç€Ÿåºå è¿è¡ä»»äœåœ¢åŒçå ¬åŒäºåšã + +## åœå± + +æ¬è¡äžºååæ¹çŒèª [莡ç®è å ¬çºŠ][homepage] 2.1 çïŒå¯åš +[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1] è·åã + +瀟åºåœ±åæååå° [Mozilla è¡äžºååæ§è¡é¶æ¢¯][Mozilla CoC] çå¯åã + +æå ³æ¬è¡äžºååçåžžè§é®é¢è§£çïŒè¯·åé [https://www.contributor-covenant.org/faq][FAQ]ãç¿»è¯çæ¬å¯åš [https://www.contributor-covenant.org/translations][translations] è·åã + +[homepage]: https://www.contributor-covenant.org +[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html +[Mozilla CoC]: https://github.com/mozilla/diversity +[FAQ]: https://www.contributor-covenant.org/faq +[translations]: https://www.contributor-covenant.org/translations diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..5175fc6a --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 Tinkle Community (NOFX Project) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index 7ac4f409..0fa6210e 100644 --- a/README.md +++ b/README.md @@ -6,10 +6,36 @@ [](LICENSE) [](https://amber.ac) -**Languages:** [English](README.md) | [äžæ](README.zh-CN.md) | [УкÑаÑМÑÑка](README.uk.md) | [Ð ÑÑÑкОй](README.ru.md) +**Languages:** [English](README.md) | [äžæ](docs/i18n/zh-CN/README.md) | [УкÑаÑМÑÑка](docs/i18n/uk/README.md) | [Ð ÑÑÑкОй](docs/i18n/ru/README.md) **Official Twitter:** [@nofx_ai](https://x.com/nofx_ai) +**ð Documentation:** [Docs Home](docs/README.md) | [Getting Started](docs/getting-started/README.md) | [Changelog](CHANGELOG.md) | [Contributing](CONTRIBUTING.md) | [Security](SECURITY.md) + +--- + +## ð Table of Contents + +- [ð Universal AI Trading Operating System](#-universal-ai-trading-operating-system) +- [ð¥ Developer Community](#-developer-community) +- [ð What's New](#-whats-new-latest-update) +- [ðž Screenshots](#-screenshots) +- [âš Current Implementation](#-current-implementation---crypto-markets) +- [ð® Roadmap](#-roadmap---universal-market-expansion) +- [ðïž Technical Architecture](#ïž-technical-architecture) +- [ð° Register Binance Account](#-register-binance-account-save-on-fees) +- [ð Quick Start](#-quick-start) +- [ð AI Decision Flow](#-ai-decision-flow) +- [ð§ AI Self-Learning](#-ai-self-learning-example) +- [ð Web Interface Features](#-web-interface-features) +- [ðïž API Endpoints](#ïž-api-endpoints) +- [â ïž Important Risk Warnings](#ïž-important-risk-warnings) +- [ð ïž Common Issues](#ïž-common-issues) +- [ð Performance Tips](#-performance-optimization-tips) +- [ð Changelog](#-changelog) +- [ð License](#-license) +- [ð€ Contributing](#-contributing) + --- ## ð Universal AI Trading Operating System @@ -168,78 +194,50 @@ NOFX is currently **fully operational in cryptocurrency markets** with the follo ## ð® Roadmap - Universal Market Expansion -Our proven crypto infrastructure is being extended to: +NOFX is on a mission to become the **Universal AI Trading Operating System** for all financial markets. -- **ð Stock Markets**: US equities, A-shares, Hong Kong stocks -- **ð Futures Markets**: Commodity futures, index futures -- **ð¯ Options Trading**: Equity options, crypto options -- **ð± Forex Markets**: Major currency pairs, cross rates +**Vision:** Same architecture. Same agent framework. All markets. -**Same architecture. Same agent framework. All markets.** +**Expansion Markets:** +- ð **Stock Markets**: US equities, A-shares, Hong Kong stocks +- ð **Futures Markets**: Commodity futures, index futures +- ð¯ **Options Trading**: Equity options, crypto options +- ð± **Forex Markets**: Major currency pairs, cross rates + +**Upcoming Features:** +- Enhanced AI capabilities (GPT-4, Claude 3, Gemini Pro, flexible prompt templates) +- New exchange integrations (OKX, Bybit, Lighter, EdgeX + CEX/Perp-DEX) +- Project structure refactoring (high cohesion, low coupling, SOLID principles) +- Security enhancements (AES-256 encryption for API keys, RBAC, 2FA improvements) +- User experience improvements (mobile-responsive, TradingView charts, alert system) + +ð **For detailed roadmap and timeline, see:** +- **English:** [Roadmap Documentation](docs/roadmap/README.md) +- **äžæ:** [è·¯çº¿åŸææ¡£](docs/roadmap/README.zh-CN.md) --- ## ðïž Technical Architecture -``` -nofx/ -âââ main.go # Program entry (multi-trader manager) -âââ config.json # Configuration file (API keys, ~~multi-trader config~~) (Trader config via web interface) -â -âââ api/ # HTTP API service -â âââ server.go # Gin framework, RESTful API -â -âââ trader/ # Trading core -â âââ auto_trader.go # Auto trading main controller (single trader) -â âââ binance_futures.go # Binance futures API wrapper -â -âââ manager/ # Multi-trader management -â âââ trader_manager.go # Manages multiple trader instances -â -âââ mcp/ # Model Context Protocol - AI communication -â âââ client.go # AI API client (DeepSeek/Qwen integration) -â -âââ decision/ # AI decision engine -â âââ engine.go # Decision logic with historical feedback -â -âââ market/ # Market data fetching -â âââ data.go # Market data & technical indicators (K-line, RSI, MACD) -â -âââ pool/ # Coin pool management -â âââ coin_pool.go # AI500 + OI Top merged pool -â -âââ logger/ # Logging system -â âââ decision_logger.go # Decision recording + performance analysis -â -âââ decision_logs/ # Decision log storage -â âââ qwen_trader/ # Qwen trader logs -â âââ deepseek_trader/ # DeepSeek trader logs -â -âââ web/ # React frontend - âââ src/ - â âââ components/ # React components - â â âââ EquityChart.tsx # Equity curve chart - â â âââ ComparisonChart.tsx # Multi-AI comparison chart - â â âââ CompetitionPage.tsx # Competition leaderboard - â âââ lib/api.ts # API call wrapper - â âââ types/index.ts # TypeScript types - â âââ index.css # Binance-style CSS - â âââ App.tsx # Main app - âââ package.json -``` +NOFX is built with a modern, modular architecture: -### Core Dependencies +- **Backend:** Go with Gin framework, SQLite database +- **Frontend:** React 18 + TypeScript + Vite + TailwindCSS +- **Multi-Exchange Support:** Binance, Hyperliquid, Aster DEX +- **AI Integration:** DeepSeek, Qwen, and custom OpenAI-compatible APIs +- **State Management:** Zustand for frontend, database-driven for backend +- **Real-time Updates:** SWR with 5-10s polling intervals -**Backend (Go)** -- `github.com/adshao/go-binance/v2` - Binance API client -- `github.com/markcheno/go-talib` - Technical indicator calculation (TA-Lib) -- `github.com/gin-gonic/gin` - HTTP API framework +**Key Features:** +- ðïž Database-driven configuration (no more JSON editing) +- ð JWT authentication with optional 2FA support +- ð Real-time performance tracking and analytics +- ð€ Multi-AI competition mode with live comparison +- ð RESTful API for all configuration and monitoring -**Frontend (React + TypeScript)** -- `react` + `react-dom` - UI framework -- `recharts` - Chart library (equity curve, comparison charts) -- `swr` - Data fetching and caching -- `tailwindcss` - CSS framework +ð **For detailed architecture documentation, see:** +- **English:** [Architecture Documentation](docs/architecture/README.md) +- **äžæ:** [æ¶æææ¡£](docs/architecture/README.zh-CN.md) --- @@ -326,8 +324,8 @@ Open your browser and visit: **http://localhost:3000** ``` **ð For detailed Docker deployment guide, troubleshooting, and advanced configuration:** -- **English**: See [DOCKER_DEPLOY.en.md](DOCKER_DEPLOY.en.md) -- **äžæ**: æ¥ç [DOCKER_DEPLOY.md](DOCKER_DEPLOY.md) +- **English**: See [docs/getting-started/docker-deploy.en.md](docs/getting-started/docker-deploy.en.md) +- **äžæ**: æ¥ç [docs/getting-started/docker-deploy.zh-CN.md](docs/getting-started/docker-deploy.zh-CN.md) --- @@ -436,7 +434,7 @@ go build -o nofx ``` ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -â ð€ AI倿š¡å亀æç³»ç» - æ¯æ DeepSeek & Qwen â +â ð€ AI倿š¡å亀æç³»ç» - æ¯æ DeepSeek & Qwen â ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ ð€ æ°æ®åºäžçAI亀æåé 眮: @@ -688,12 +686,12 @@ The leverage settings control the maximum leverage the AI can use for each trade ~~**Configuration format:**~~ -~~```json +```json "leverage": { "btc_eth_leverage": 5, // Maximum leverage for BTC and ETH "altcoin_leverage": 5 // Maximum leverage for all other coins } -```~~ +``` *Note: Leverage is now configured through the web interface* @@ -715,20 +713,20 @@ The leverage settings control the maximum leverage the AI can use for each trade **Examples:** ~~**Safe configuration (subaccount or conservative):**~~ -~~```json +```json "leverage": { "btc_eth_leverage": 5, "altcoin_leverage": 5 } -```~~ +``` ~~**Aggressive configuration (main account only):**~~ -~~```json +```json "leverage": { "btc_eth_leverage": 20, "altcoin_leverage": 15 } -```~~ +``` *Note: Leverage configuration is now done through the web interface* @@ -915,109 +913,100 @@ Should return: `{"status":"ok"}` Each decision cycle (default 3 minutes), the system executes the following intelligent process: -``` -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -â 1. ð Analyze Historical Performance (last 20 cycles) â -âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ†-â â Calculate overall win rate, avg profit, P/L ratio â -â â Per-coin statistics (win rate, avg P/L in USDT) â -â â Identify best/worst performing coins â -â â List last 5 trade details with accurate PnL â -â â Calculate Sharpe ratio for risk-adjusted performance â -â ð NEW (v2.0.2): Accurate USDT PnL with leverage â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ - â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -â 2. ð° Get Account Status â -âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ†-â ⢠Total equity & available balance â -â ⢠Number of open positions & unrealized P/L â -â ⢠Margin usage rate (AI manages up to 90%) â -â ⢠Daily P/L tracking & drawdown monitoring â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ - â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -â 3. ð Analyze Existing Positions (if any) â -âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ†-â ⢠For each position, fetch latest market data â -â ⢠Calculate real-time technical indicators: â -â - 3min K-line: RSI(7), MACD, EMA20 â -â - 4hour K-line: RSI(14), EMA20/50, ATR â -â ⢠Track position holding duration (e.g., "2h 15min") â -â ð NEW (v2.0.2): Shows how long each position held â -â ⢠Display: Entry price, current price, P/L%, duration â -â ⢠AI evaluates: Should hold or close? â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ - â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -â 4. ð¯ Evaluate New Opportunities (candidate coins) â -âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ†-â ⢠Fetch coin pool (2 modes): â -â ð Default Mode: BTC, ETH, SOL, BNB, XRP, etc. â -â âïž Advanced Mode: AI500 (top 20) + OI Top (top 20) â -â ⢠Merge & deduplicate candidate coins â -â ⢠Filter: Remove low liquidity (<15M USD OI value) â -â ⢠Batch fetch market data + technical indicators â -â ⢠Calculate volatility, trend strength, volume surge â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ - â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -â 5. ð§ AI Comprehensive Decision (DeepSeek/Qwen) â -âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ†-â ⢠Review historical feedback: â -â - Recent win rate & profit factor â -â - Best/worst coins performance â -â - Avoid repeating mistakes â -â ⢠Analyze all raw sequence data: â -â - 3min priceåºå, 4hour K-lineåºå â -â - Complete indicator sequences (not just latest) â -â ð NEW (v2.0.2): AI has full freedom to analyze â -â ⢠Chain of Thought (CoT) reasoning process â -â ⢠Output structured decisions: â -â - Action: close_long/close_short/open_long/open_shortâ -â - Coin symbol, quantity, leverage â -â - Stop-loss & take-profit levels (â¥1:2 ratio) â -â ⢠Decision: Wait/Hold/Close/Open â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ - â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -â 6. â¡ Execute Trades â -âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ†-â ⢠Priority order: Close existing â Then open new â -â ⢠Risk checks before execution: â -â - Position size limits (1.5x for altcoins, 10x BTC) â -â - No duplicate positions (same coin + direction) â -â - Margin usage within 90% limit â -â ⢠Auto-fetch & apply Binance LOT_SIZE precision â -â ⢠Execute orders via Binance Futures API â -â ⢠After closing: Auto-cancel all pending orders â -â ⢠Record actual execution price & order ID â -â ð Track position open time for duration calculation â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ - â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -â 7. ð Record Complete Logs & Update Performance â -âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ†-â ⢠Save decision log to decision_logs/{trader_id}/ â -â ⢠Log includes: â -â - Complete Chain of Thought (CoT) â -â - Input prompt with all market data â -â - Structured decision JSON â -â - Account snapshot (balance, positions, margin) â -â - Execution results (success/failure, prices) â -â ⢠Update performance database: â -â - Match open/close pairs by symbol_side key â -â ð NEW: Prevents long/short conflicts â -â - Calculate accurate USDT PnL: â -â PnL = Position Value à Price Î% à Leverage â -â ð NEW: Considers quantity + leverage â -â - Store: quantity, leverage, open time, close time â -â - Update win rate, profit factor, Sharpe ratio â -â ⢠Performance data feeds back into next cycle â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ - â - (Repeat every 3-5 min) -``` +### Step 1: ð Analyze Historical Performance (last 20 cycles) +- â Calculate overall win rate, avg profit, P/L ratio +- â Per-coin statistics (win rate, avg P/L in USDT) +- â Identify best/worst performing coins +- â List last 5 trade details with accurate PnL +- â Calculate Sharpe ratio for risk-adjusted performance +- ð **NEW (v2.0.2)**: Accurate USDT PnL with leverage + +**â** + +### Step 2: ð° Get Account Status +- Total equity & available balance +- Number of open positions & unrealized P/L +- Margin usage rate (AI manages up to 90%) +- Daily P/L tracking & drawdown monitoring + +**â** + +### Step 3: ð Analyze Existing Positions (if any) +- For each position, fetch latest market data +- Calculate real-time technical indicators: + - 3min K-line: RSI(7), MACD, EMA20 + - 4hour K-line: RSI(14), EMA20/50, ATR +- Track position holding duration (e.g., "2h 15min") +- ð **NEW (v2.0.2)**: Shows how long each position held +- Display: Entry price, current price, P/L%, duration +- AI evaluates: Should hold or close? + +**â** + +### Step 4: ð¯ Evaluate New Opportunities (candidate coins) +- Fetch coin pool (2 modes): + - ð **Default Mode**: BTC, ETH, SOL, BNB, XRP, etc. + - âïž **Advanced Mode**: AI500 (top 20) + OI Top (top 20) +- Merge & deduplicate candidate coins +- Filter: Remove low liquidity (<15M USD OI value) +- Batch fetch market data + technical indicators +- Calculate volatility, trend strength, volume surge + +**â** + +### Step 5: ð§ AI Comprehensive Decision (DeepSeek/Qwen) +- Review historical feedback: + - Recent win rate & profit factor + - Best/worst coins performance + - Avoid repeating mistakes +- Analyze all raw sequence data: + - 3min price sequences, 4hour K-line sequences + - Complete indicator sequences (not just latest) + - ð **NEW (v2.0.2)**: AI has full freedom to analyze +- Chain of Thought (CoT) reasoning process +- Output structured decisions: + - Action: `close_long` / `close_short` / `open_long` / `open_short` + - Coin symbol, quantity, leverage + - Stop-loss & take-profit levels (â¥1:2 ratio) +- Decision: Wait / Hold / Close / Open + +**â** + +### Step 6: â¡ Execute Trades +- Priority order: Close existing â Then open new +- Risk checks before execution: + - Position size limits (1.5x for altcoins, 10x BTC) + - No duplicate positions (same coin + direction) + - Margin usage within 90% limit +- Auto-fetch & apply Binance LOT_SIZE precision +- Execute orders via Binance Futures API +- After closing: Auto-cancel all pending orders +- Record actual execution price & order ID +- ð Track position open time for duration calculation + +**â** + +### Step 7: ð Record Complete Logs & Update Performance +- Save decision log to `decision_logs/{trader_id}/` +- Log includes: + - Complete Chain of Thought (CoT) + - Input prompt with all market data + - Structured decision JSON + - Account snapshot (balance, positions, margin) + - Execution results (success/failure, prices) +- Update performance database: + - Match open/close pairs by `symbol_side` key + - ð **NEW**: Prevents long/short conflicts + - Calculate accurate USDT PnL: + - `PnL = Position Value à Price Î% à Leverage` + - ð **NEW**: Considers quantity + leverage + - Store: quantity, leverage, open time, close time + - Update win rate, profit factor, Sharpe ratio +- Performance data feeds back into next cycle + +**â** + +**ð (Repeat every 3-5 min)** ### Key Improvements in v2.0.2 @@ -1229,145 +1218,19 @@ sudo apt-get install libta-lib0-dev ## ð Changelog -### v3.0.0 (2025-10-30) - Major Architecture Transformation +ð **For detailed version history and updates, see:** -**ð Complete System Redesign - Web-Based Configuration Platform** +- **English:** [CHANGELOG.md](CHANGELOG.md) +- **äžæ:** [CHANGELOG.zh-CN.md](CHANGELOG.zh-CN.md) -This is a **major breaking update** that completely transforms NOFX from a static config-based system to a modern web-based trading platform. +**Latest Release:** v3.0.0 (2025-10-30) - Major Architecture Transformation -**Revolutionary Changes:** - -**1. Database-Driven Architecture** -- â **SQLite Integration**: Replaced static JSON config with SQLite database -- â **Persistent Storage**: All configurations stored in database with automatic timestamps -- â **Data Integrity**: Foreign key relationships and triggers for data consistency -- â **Schema Design**: Separate tables for AI models, exchanges, traders, and system config - -**2. Web-Based Configuration Interface** -- â **No More JSON Editing**: Complete web-based configuration management -- â **AI Model Setup**: Configure DeepSeek/Qwen API keys through web interface -- â **Exchange Management**: Set up Binance/Hyperliquid credentials independently -- â **Dynamic Trader Creation**: Create traders by combining any AI model with any exchange -- â **Real-Time Control**: Start/stop traders without system restart - -**3. Flexible Architecture** -- â **Separation of Concerns**: AI models and exchanges configured independently -- â **Mix & Match**: Create unlimited combinations (e.g., Qwen + Binance, DeepSeek + Hyperliquid) -- â **Scalable Design**: Support for unlimited traders and configurations -- â **Clean Slate**: No default traders - create only what you need - -**4. Enhanced API Layer** -- â **RESTful Design**: Complete CRUD operations for all configuration entities -- â **New Endpoints**: - - `GET/PUT /api/models` - AI model configuration - - `GET/PUT /api/exchanges` - Exchange configuration - - `POST/DELETE /api/traders` - Trader management - - `POST /api/traders/:id/start|stop` - Trader control -- â **Updated Documentation**: All API endpoints documented - -**5. Modernized Codebase** -- â **Type Safety**: Proper separation of legacy and new configuration types -- â **Database Abstraction**: Clean database layer with prepared statements -- â **Error Handling**: Comprehensive error handling and validation -- â **Code Organization**: Better separation between database, API, and business logic - -**Migration Notes:** -- â ïž **Breaking Change**: Old ~~`config.json`~~ files are no longer used -- â ïž **Fresh Start**: All configurations must be redone through web interface -- â **Easier Setup**: Web-based configuration is much more user-friendly -- â **Better UX**: No more server restarts for configuration changes - -**Why This Update Matters:** -- ð¯ **User Experience**: Much easier to configure and manage -- ð§ **Flexibility**: Create any combination of AI models and exchanges -- ð **Scalability**: Support for complex multi-trader setups -- ð **Reliability**: Database ensures data persistence and consistency -- ð **Future-Proof**: Foundation for advanced features like trader templates, backtesting, etc. - -### v2.0.2 (2025-10-29) - -**Critical Bug Fixes - Trade History & Performance Analysis:** - -This version fixes **critical calculation errors** in the historical trade record and performance analysis system that significantly affected profitability statistics. - -**1. PnL Calculation - Major Error Fixed** (logger/decision_logger.go) -- **Problem**: Previously calculated PnL as percentage only, completely ignoring position size and leverage - - Example: 100 USDT position earning 5% and 1000 USDT position earning 5% both showed `5.0` as profit - - This made performance analysis completely inaccurate -- **Solution**: Now calculates actual USDT profit amount - ``` - PnL (USDT) = Position Value à Price Change % à Leverage - Example: 1000 USDT à 5% à 20x = 1000 USDT actual profit - ``` -- **Impact**: Win rate, profit factor, and Sharpe ratio now based on accurate USDT amounts - -**2. Position Tracking - Missing Critical Data** -- **Problem**: Open position records only stored price and time, missing quantity and leverage -- **Solution**: Now stores complete trade data: - - `quantity`: Position size (in coins) - - `leverage`: Leverage multiplier (e.g., 20x) - - These are essential for accurate PnL calculations - -**3. Position Key Logic - Long/Short Conflict** -- **Problem**: Used `symbol` as position key, causing data conflicts when holding both long and short - - Example: BTCUSDT long and BTCUSDT short would overwrite each other -- **Solution**: Changed to `symbol_side` format (e.g., `BTCUSDT_long`, `BTCUSDT_short`) - - Now properly distinguishes between long and short positions - -**4. Sharpe Ratio Calculation - Code Optimization** -- **Problem**: Used custom Newton's method for square root calculation -- **Solution**: Replaced with standard library `math.Sqrt` - - More reliable, maintainable, and efficient - -**Why This Update Matters:** -- â Historical trade statistics now show **real USDT profit/loss** instead of meaningless percentages -- â Performance comparison between different leverage trades is now accurate -- â AI self-learning mechanism receives correct historical feedback -- â Profit factor and Sharpe ratio calculations are now meaningful -- â Multi-position tracking (long + short simultaneously) works correctly - -**Recommendation**: If you were running the system before this update, your historical statistics were inaccurate. After updating to v2.0.2, new trades will be calculated correctly. - -### v2.0.2 (2025-10-29) - -**Bug Fixes:** -- â Fixed Aster exchange precision error (code -1111: "Precision is over the maximum defined for this asset") -- â Improved price and quantity formatting to match exchange precision requirements -- â Added detailed precision processing logs for debugging -- â Enhanced all order functions (OpenLong, OpenShort, CloseLong, CloseShort, SetStopLoss, SetTakeProfit) with proper precision handling - -**Technical Details:** -- Added `formatFloatWithPrecision` function to convert float64 to strings with correct precision -- Price and quantity parameters are now formatted according to exchange's `pricePrecision` and `quantityPrecision` specifications -- Trailing zeros are removed from formatted values to optimize API requests - -### v2.0.1 (2025-10-29) - -**Bug Fixes:** -- â Fixed ComparisonChart data processing logic - switched from cycle_number to timestamp grouping -- â Resolved chart freezing issue when backend restarts and cycle_number resets -- â Improved chart data display - now shows all historical data points chronologically -- â Enhanced debugging logs for better troubleshooting - -### v2.0.0 (2025-10-28) - -**Major Updates:** -- â AI self-learning mechanism (historical feedback, performance analysis) -- â Multi-trader competition mode (Qwen vs DeepSeek) -- â Binance-style UI (complete Binance interface imitation) -- â Performance comparison charts (real-time ROI comparison) -- â Risk control optimization (per-coin position limit adjustment) - -**Bug Fixes:** -- Fixed hardcoded initial balance issue -- Fixed multi-trader data sync issue -- Optimized chart data alignment (using cycle_number) - -### v1.0.0 (2025-10-27) -- Initial release -- Basic AI trading functionality -- Decision logging system -- Simple Web interface +**Recent Highlights:** +- ð Complete system redesign with web-based configuration +- ðïž Database-driven architecture (SQLite) +- ðš No more JSON editing - all configuration through web interface +- ð§ Mix & match AI models with any exchange +- ð Enhanced API layer with comprehensive endpoints --- @@ -1379,10 +1242,14 @@ MIT License - See [LICENSE](LICENSE) file for details ## ð€ Contributing -Issues and Pull Requests are welcome! +We welcome contributions from the community! See our comprehensive guides: -### Development Guide +- **ð [Contributing Guide](CONTRIBUTING.md)** - Complete development workflow, code standards, and PR process +- **ð€ [Code of Conduct](CODE_OF_CONDUCT.md)** - Community guidelines and standards +- **ð° [Bounty Program](docs/community/bounty-guide.md)** - Earn rewards for contributions +- **ð [Security Policy](SECURITY.md)** - Report vulnerabilities responsibly +**Quick Start:** 1. Fork the project 2. Create feature branch (`git checkout -b feature/AmazingFeature`) 3. Commit changes (`git commit -m 'Add some AmazingFeature'`) diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 00000000..1052d013 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,469 @@ +# Security Policy / å®å šæ¿ç + +**Languages:** [English](#english) | [äžæ](#äžæ) + +--- + +# English + +## ð¡ïž Security Overview + +NOFX is an AI-powered trading system that handles real funds and API credentials. We take security seriously and appreciate the security community's efforts to responsibly disclose vulnerabilities. + +**Critical Areas:** +- ð API key storage and handling +- ð° Trading execution and fund management +- ð Authentication and authorization +- ðïž Database security (SQLite) +- ð Web interface and API endpoints + +--- + +## ð Supported Versions + +We provide security updates for the following versions: + +| Version | Supported | Notes | +| ------- | ------------------ | -------------------- | +| 3.x | â Fully supported | Current stable release | +| 2.x | â ïž Limited support | Security fixes only | +| < 2.0 | â Not supported | Please upgrade | + +**Recommendation:** Always use the latest stable release (v3.x) for best security. + +--- + +## ð Reporting a Vulnerability + +### â ïž Please DO NOT Publicly Disclose + +If you discover a security vulnerability in NOFX, please **DO NOT**: +- â Open a public GitHub Issue +- â Discuss it on social media (Twitter, Reddit, etc.) +- â Share it in Telegram/Discord groups +- â Post it on security forums before we've had time to fix it + +Public disclosure before a fix is available puts all users at risk. + +### â Responsible Disclosure Process + +**Step 1: Report Privately** + +Contact core team directly: +- **Tinkle:** [@Web3Tinkle on Twitter](https://x.com/Web3Tinkle) (DM) + +**Alternative:** Encrypted communication via [Keybase](https://keybase.io/) (if available) + +**Step 2: Include These Details** + +```markdown +Subject: [SECURITY] Brief description of vulnerability + +## Vulnerability Description +Clear explanation of the security issue + +## Affected Components +- Which parts of the system are affected? +- Which versions are vulnerable? + +## Reproduction Steps +1. Step-by-step instructions +2. Sample code or commands (if applicable) +3. Expected vs actual behavior + +## Potential Impact +- Can funds be stolen? +- Can API keys be leaked? +- Can accounts be compromised? +- Rate the severity: Critical / High / Medium / Low + +## Suggested Fix (Optional) +If you have ideas for fixing it, please share! + +## Your Information +- Name (or pseudonym) +- Contact info for follow-up +- If you want public credit (yes/no) +``` + +**Step 3: Wait for Our Response** + +We will: +- â Acknowledge receipt within **24 hours** +- â Provide initial assessment within **72 hours** +- â Keep you updated on fix progress +- â Notify you before public disclosure + +--- + +## â±ïž Response Timeline + +| Stage | Timeline | Action | +|-------|----------|--------| +| **Acknowledgment** | 24 hours | Confirm we received your report | +| **Initial Assessment** | 72 hours | Verify vulnerability, rate severity | +| **Fix Development** | 7-30 days | Depends on complexity and severity | +| **Testing** | 3-7 days | Verify fix doesn't break functionality | +| **Public Disclosure** | After fix deployed | Publish security advisory | + +**Critical vulnerabilities** (fund theft, credential leaks) are prioritized and may be fixed within 48 hours. + +--- + +## ð° Security Bounty Program (Optional) + +We offer rewards for valid security vulnerabilities: + +| Severity | Criteria | Reward | +|----------|----------|--------| +| **ðŽ Critical** | Fund theft, API key extraction, RCE | **$500-1000 USD** | +| **ð High** | Authentication bypass, unauthorized trading | **$200-500 USD** | +| **ð¡ Medium** | Information disclosure, XSS, CSRF | **$100-200 USD** | +| **ð¢ Low** | Security improvements, minor issues | **$50-100 USD or Recognition** | + +**Note:** Bounty amounts are at maintainers' discretion based on: +- Severity and impact +- Quality of report +- Ease of exploitation +- Number of affected users + +**Out of Scope (No Bounty):** +- Issues in third-party libraries (report to them directly) +- Social engineering attacks +- DoS/DDoS attacks +- Issues requiring physical access +- Previously known/reported vulnerabilities + +--- + +## ð Security Best Practices (For Users) + +To keep your NOFX deployment secure: + +### 1. API Key Management +```bash +# â DO: Use environment variables +export BINANCE_API_KEY="your_key" +export BINANCE_SECRET_KEY="your_secret" + +# â DON'T: Hardcode in source files +api_key = "abc123..." # NEVER DO THIS +``` + +### 2. Database Security +```bash +# â Set proper permissions +chmod 600 nofx.db +chmod 600 config.json + +# â DON'T: Leave files world-readable +chmod 777 nofx.db # NEVER DO THIS +``` + +### 3. Network Security +```bash +# â Use firewall to restrict API access +# Only allow localhost to access API server +iptables -A INPUT -p tcp --dport 8080 -s 127.0.0.1 -j ACCEPT +iptables -A INPUT -p tcp --dport 8080 -j DROP + +# â DON'T: Expose API to public internet without authentication +``` + +### 4. Use Subaccounts +- Create dedicated Binance subaccount for trading +- Limit maximum balance +- Restrict withdrawal permissions +- Use IP whitelist + +### 5. Test on Testnet First +- Hyperliquid: Use testnet mode +- Binance: Use testnet API (https://testnet.binancefuture.com) +- Never test with real funds initially + +### 6. Regular Updates +```bash +# Check for updates regularly +git pull origin main +go build -o nofx + +# Subscribe to security advisories +# Watch GitHub releases: https://github.com/tinkle-community/nofx/releases +``` + +--- + +## ðš Security Advisories + +Past security advisories will be published here: + +### 2025-XX-XX: [Title] +- **Severity:** [Critical/High/Medium/Low] +- **Affected Versions:** [x.x.x - x.x.x] +- **Fixed in:** [x.x.x] +- **Description:** [Brief description] +- **Mitigation:** [How to protect yourself] + +*No security advisories have been published yet.* + +--- + +## ð Security Researchers Hall of Fame + +We thank the following security researchers for responsibly disclosing vulnerabilities: + +*No reports have been submitted yet. Be the first!* + +--- + +## ð Additional Resources + +**Security Documentation:** +- [OWASP Top 10](https://owasp.org/www-project-top-ten/) +- [CWE Top 25](https://cwe.mitre.org/top25/) +- [Binance API Security Best Practices](https://www.binance.com/en/support/faq/360002502072) + +**Audit Reports:** +- No third-party audits completed yet +- Self-audit checklist: [TODO: Add link] + +--- + +## ð Contact + +**For security issues ONLY:** +- ðŠ **Twitter DM:** [@Web3Tinkle](https://x.com/Web3Tinkle) + +**For general questions:** +- See [CONTRIBUTING.md](CONTRIBUTING.md) +- Join [Telegram Community](https://t.me/nofx_dev_community) + +--- + +**Thank you for helping keep NOFX secure!** ð + +--- + +# äžæ + +## ð¡ïž å®å šæŠè¿° + +NOFX æ¯äžäžªå€ççå®èµéå API åè¯ç AI 亀æç³»ç»ãæä»¬éåžžéè§å®å šïŒå¹¶æè°¢å®å šç€ŸåºèŽèޣ任尿«é²æŒæŽçåªåã + +**å ³é®é¢åïŒ** +- ð API å¯é¥ååšåå€ç +- ð° äº€ææ§è¡åèµé管ç +- ð 身仜éªè¯åææ +- ðïž æ°æ®åºå®å šïŒSQLiteïŒ +- ð Web çé¢å API ç«¯ç¹ + +--- + +## ð æ¯æççæ¬ + +æä»¬äžºä»¥äžçæ¬æäŸå®å šæŽæ°ïŒ + +| çæ¬ | æ¯æç¶æ | 诎æ | +| ------- | ------------------ | -------------------- | +| 3.x | â å®å 𿝿 | åœåçš³å®çæ¬ | +| 2.x | â ïž æéæ¯æ | ä» å®å šä¿®å€ | +| < 2.0 | â äžæ¯æ | 请å级 | + +**建议ïŒ** å§ç»äœ¿çšææ°ççš³å®çæ¬ïŒv3.xïŒä»¥è·åŸæäœ³å®å šæ§ã + +--- + +## ð æ¥åæŒæŽ + +### â ïž è¯·å¿å ¬åŒæ«é² + +åŠææšåš NOFX äžåç°å®å šæŒæŽïŒè¯·**äžèŠ**ïŒ +- â å ¬åŒå建 GitHub Issue +- â åšç€Ÿäº€åªäœäžè®šè®ºïŒTwitterãReddit çïŒ +- â åš Telegram/Discord 矀ç»äžå享 +- â åšæä»¬ææ¶éŽä¿®å€ä¹åååžå°å®å šè®ºå + +åšä¿®å€å¯çšä¹åå ¬åŒæ«é²äŒäœ¿ææçšæ·é¢äžŽé£é©ã + +### â èŽèŽ£ä»»çæ«é²æµçš + +**æ¥éª€ 1ïŒç§äžæ¥å** + +çŽæ¥èç³»æ žå¿å¢éïŒ +- **Tinkle:** [@Web3Tinkle on Twitter](https://x.com/Web3Tinkle)ïŒç§ä¿¡ïŒ + +**æ¿ä»£æ¹æ¡ïŒ** éè¿ [Keybase](https://keybase.io/) å å¯éä¿¡ïŒåŠæå¯çšïŒ + +**æ¥éª€ 2ïŒå å«è¿äºè¯Šç»ä¿¡æ¯** + +```markdown +äž»é¢ïŒ[SECURITY] æŒæŽç®èŠæè¿° + +## æŒæŽæè¿° +æž æ¥è§£éå®å šé®é¢ + +## å圱åçç»ä»¶ +- ç³»ç»çåªäºéšååå°åœ±åïŒ +- åªäºçæ¬ååšæŒæŽïŒ + +## å€ç°æ¥éª€ +1. éæ¥è¯Žæ +2. 瀺äŸä»£ç æåœä»€ïŒåŠæéçšïŒ +3. 颿è¡äžº vs å®é è¡äžº + +## æœåšåœ±å +- èµéæ¯åŠå¯èœè¢«çïŒ +- API å¯é¥æ¯åŠå¯èœæ³é²ïŒ +- èŽŠæ·æ¯åŠå¯èœè¢«å ¥äŸµïŒ +- 䞥éçšåºŠè¯çº§ïŒäž¥é / é« / äž / äœ + +## 建议修å€ïŒå¯éïŒ +åŠææšæä¿®å€çæ³æ³ïŒè¯·åäº«ïŒ + +## æšçä¿¡æ¯ +- å§åïŒæååïŒ +- åç»èç³»ä¿¡æ¯ +- æ¯åŠåžæå ¬åŒèŽè°¢ïŒæ¯/åŠïŒ +``` + +**æ¥éª€ 3ïŒçåŸ æä»¬çåå€** + +æä»¬å°ïŒ +- â åš **24 å°æ¶**å 确讀æ¶å° +- â åš **72 å°æ¶**å æäŸåæ¥è¯äŒ° +- â åç¥æšä¿®å€è¿å± +- â åšå ¬åŒæ«é²åéç¥æš + +--- + +## â±ïž ååºæ¶éŽè¡š + +| é¶æ®µ | æ¶éŽçº¿ | è¡åš | +|-------|----------|--------| +| **确讀** | 24 å°æ¶ | 确讀æä»¬æ¶å°äºæšçæ¥å | +| **忥è¯äŒ°** | 72 å°æ¶ | éªè¯æŒæŽïŒè¯äŒ°äž¥éçšåºŠ | +| **ä¿®å€åŒå** | 7-30 倩 | åå³äºå€ææ§å䞥éçšåºŠ | +| **æµè¯** | 3-7 倩 | éªè¯ä¿®å€äžäŒç Žååèœ | +| **å ¬åŒæ«é²** | ä¿®å€éšçœ²å | ååžå®å šå ¬å | + +**äž¥éæŒæŽ**ïŒèµéççªãåè¯æ³é²ïŒäŒäŒå å€çïŒå¯èœåš 48 å°æ¶å ä¿®å€ã + +--- + +## ð° å®å šå¥å±è®¡åïŒå¯éïŒ + +æä»¬äžºææçå®å šæŒæŽæäŸå¥å±ïŒ + +| 䞥éçšåºŠ | æ å | å¥å± | +|----------|----------|--------| +| **ðŽ äž¥é** | èµéççªãAPI å¯é¥æåãRCE | **$500-1000 USD** | +| **ð é«** | 讀è¯ç»è¿ãæªææäº€æ | **$200-500 USD** | +| **ð¡ äž** | ä¿¡æ¯æ³é²ãXSSãCSRF | **$100-200 USD** | +| **ð¢ äœ** | å®å šæ¹è¿ãå°é®é¢ | **$50-100 USD æèŽè°¢** | + +**泚æïŒ** å¥å±éé¢ç±ç»Žæ€è æ ¹æ®ä»¥äžå çŽ é æ å³å®ïŒ +- äž¥éæ§å圱å +- æ¥å莚é +- å©çšéŸæåºŠ +- å圱åçšæ·æ°é + +**äžåšèåŽå ïŒæ å¥å±ïŒïŒ** +- ç¬¬äžæ¹åºçé®é¢ïŒçŽæ¥åä»ä»¬æ¥åïŒ +- 瀟äŒå·¥çšæ»å» +- DoS/DDoS æ»å» +- éèŠç©ç访é®çé®é¢ +- å·²ç¥/å·²æ¥åçæŒæŽ + +--- + +## ð å®å šæäœ³å®è·µïŒçšæ·æåïŒ + +ä¿æ€æšç NOFX éšçœ²å®å šïŒ + +### 1. API å¯é¥ç®¡ç +```bash +# â æ£ç¡®ïŒäœ¿çšç¯å¢åé +export BINANCE_API_KEY="your_key" +export BINANCE_SECRET_KEY="your_secret" + +# â é误ïŒåšæºæä»¶äžç¡¬çŒç +api_key = "abc123..." # æ°žè¿äžèŠè¿æ ·å +``` + +### 2. æ°æ®åºå®å š +```bash +# â 讟眮éåœçæé +chmod 600 nofx.db +chmod 600 config.json + +# â äžèŠïŒè®©æä»¶å šå±å¯è¯» +chmod 777 nofx.db # æ°žè¿äžèŠè¿æ ·å +``` + +### 3. çœç»å®å š +```bash +# â 䜿çšé²ç«å¢éå¶ API è®¿é® +# ä» å 讞æ¬å°è®¿é® API æå¡åš +iptables -A INPUT -p tcp --dport 8080 -s 127.0.0.1 -j ACCEPT +iptables -A INPUT -p tcp --dport 8080 -j DROP + +# â äžèŠïŒå𿲡æèº«ä»œéªè¯çæ åµäžå° API æŽé²å°å ¬å ±äºèçœ +``` + +### 4. 䜿çšåèŽŠæ· +- 䞺亀æå建äžçšç Binance åèŽŠæ· +- é嶿倧äœé¢ +- éå¶æç°æé +- äœ¿çš IP çœåå + +### 5. å åšæµè¯çœäžæµè¯ +- HyperliquidïŒäœ¿çšæµè¯çœæš¡åŒ +- BinanceïŒäœ¿çšæµè¯çœ API (https://testnet.binancefuture.com) +- æåæ°žè¿äžèŠçšçå®èµéæµè¯ + +### 6. å®ææŽæ° +```bash +# å®ææ£æ¥æŽæ° +git pull origin main +go build -o nofx + +# 订é å®å šå ¬å +# å ³æ³š GitHub ååžïŒhttps://github.com/tinkle-community/nofx/releases +``` + +--- + +## ðš å®å šå ¬å + +è¿å»çå®å šå ¬åå°åšæ€ååžïŒ + +### 2025-XX-XX: [æ é¢] +- **䞥éçšåºŠïŒ** [䞥é/é«/äž/äœ] +- **å圱åçæ¬ïŒ** [x.x.x - x.x.x] +- **已修å€çæ¬ïŒ** [x.x.x] +- **æè¿°ïŒ** [ç®èŠæè¿°] +- **çŒè§£æªæœïŒ** [åŠäœä¿æ€èªå·±] + +*å°æªååžä»»äœå®å šå ¬åã* + +--- + +## ð å®å šç ç©¶åå人å + +æä»¬æè°¢ä»¥äžå®å šç ç©¶åèŽèޣ任尿«é²æŒæŽïŒ + +*å°æªæ¶å°ä»»äœæ¥åãæäžºç¬¬äžäžªïŒ* + +--- + +## ð èç³»æ¹åŒ + +**ä» éå®å šé®é¢ïŒ** +- ðŠ **Twitter ç§ä¿¡ïŒ** [@Web3Tinkle](https://x.com/Web3Tinkle) + +**äžè¬é®é¢ïŒ** +- å å ¥ [Telegram 瀟åº](https://t.me/nofx_dev_community) + +--- + +**æè°¢æšåž®å©ä¿æ NOFX çå®å šïŒ** ð diff --git a/docs/MIGRATION_GUIDE.md b/docs/MIGRATION_GUIDE.md new file mode 100644 index 00000000..1f4dad42 --- /dev/null +++ b/docs/MIGRATION_GUIDE.md @@ -0,0 +1,242 @@ +# ðŠ Documentation Migration Guide + +## What Changed? + +NOFX documentation has been reorganized into a structured `docs/` directory for better organization and navigation. + +## ðºïž File Locations (Old â New) + +### Deployment Guides +- `DOCKER_DEPLOY.en.md` â `docs/getting-started/docker-deploy.en.md` +- `DOCKER_DEPLOY.md` â `docs/getting-started/docker-deploy.zh-CN.md` +- `PM2_DEPLOYMENT.md` â `docs/getting-started/pm2-deploy.md` +- `CUSTOM_API.md` â `docs/getting-started/custom-api.md` + +### Community Docs +- `HOW_TO_POST_BOUNTY.md` â `docs/community/bounty-guide.md` +- `INTEGRATION_BOUNTY_HYPERLIQUID.md` â `docs/community/bounty-hyperliquid.md` +- `INTEGRATION_BOUNTY_ASTER.md` â `docs/community/bounty-aster.md` + +### Internationalization +- `README.zh-CN.md` â `docs/i18n/zh-CN/README.md` +- `README.ru.md` â `docs/i18n/ru/README.md` +- `README.uk.md` â `docs/i18n/uk/README.md` +- `åžžè§é®é¢.md` â `docs/guides/faq.zh-CN.md` + +### Root Directory (Unchanged) +These stay in the root for GitHub recognition: +- `README.md` â (stays in root) +- `LICENSE` â (stays in root) +- `CONTRIBUTING.md` â (stays in root) +- `CODE_OF_CONDUCT.md` â (stays in root) +- `SECURITY.md` â (stays in root) + +## ð¯ Why This Change? + +### Before (â Problems) +``` +nofx/ +âââ README.md +âââ README.zh-CN.md +âââ README.ru.md +âââ README.uk.md +âââ DOCKER_DEPLOY.md +âââ DOCKER_DEPLOY.en.md +âââ PM2_DEPLOYMENT.md +âââ CUSTOM_API.md +âââ HOW_TO_POST_BOUNTY.md +âââ INTEGRATION_BOUNTY_HYPERLIQUID.md +âââ INTEGRATION_BOUNTY_ASTER.md +âââ åžžè§é®é¢.md +âââ ... (15+ markdown files in root!) +``` + +**Issues:** +- ðµ Too cluttered (15+ files in root) +- ð Hard to find specific docs +- ð Mixed languages +- ð No clear organization + +### After (â Benefits) +``` +nofx/ +âââ README.md # Project homepage +âââ LICENSE # Legal (GitHub needs it here) +âââ CONTRIBUTING.md # GitHub auto-links +âââ CODE_OF_CONDUCT.md # GitHub auto-links +âââ SECURITY.md # GitHub auto-links +â +âââ docs/ # ð Documentation hub + âââ README.md # Documentation home + âââ getting-started/ # ð Setup guides + âââ guides/ # ð User guides + âââ community/ # ð¥ Contribution docs + âââ i18n/ # ð Translations + âââ architecture/ # ðïž Technical docs +``` + +**Benefits:** +- â Clean root directory +- â Logical categorization +- â Easy navigation +- â Scalable structure +- â Professional appearance + +## ð New Documentation Structure + +### Root Level +Files GitHub needs to see: +- `README.md` - Main project page +- `LICENSE` - Open source license +- `CONTRIBUTING.md` - Contributor guide +- `CODE_OF_CONDUCT.md` - Community standards +- `SECURITY.md` - Security policy + +### docs/ Level + +**Navigation:** +- `docs/README.md` - **Start here!** Main documentation hub + +**Categories:** + +1. **`getting-started/`** - Deployment and setup + - Docker deployment (EN/äžæ) + - PM2 deployment + - Custom API configuration + +2. **`guides/`** - Usage guides and tutorials + - FAQ (äžæ) + - Troubleshooting (planned) + - Configuration examples (planned) + +3. **`community/`** - Contribution and bounties + - Bounty guide + - Active bounty tasks + - Contributor recognition + +4. **`i18n/`** - International translations + - `zh-CN/` - Simplified Chinese + - `ru/` - Russian + - `uk/` - Ukrainian + +5. **`architecture/`** - Technical documentation + - System design (planned) + - API reference (planned) + - Database schema (planned) + +## ð Updating Your Links + +### If you bookmarked old links: + +| Old Link | New Link | +|----------|----------| +| `DOCKER_DEPLOY.en.md` | `docs/getting-started/docker-deploy.en.md` | +| `README.zh-CN.md` | `docs/i18n/zh-CN/README.md` | +| `HOW_TO_POST_BOUNTY.md` | `docs/community/bounty-guide.md` | + +### If you linked in your own docs: + +**Update relative links:** +```markdown + +[Docker Deployment](DOCKER_DEPLOY.en.md) + + +[Docker Deployment](docs/getting-started/docker-deploy.en.md) +``` + +**GitHub URLs automatically redirect!** +- Old: `github.com/tinkle-community/nofx/blob/main/DOCKER_DEPLOY.en.md` +- Will redirect to: `github.com/.../docs/getting-started/docker-deploy.en.md` + +## ð ïž For Contributors + +### Cloning/Pulling Latest + +```bash +# Pull latest changes +git pull origin dev + +# Your old bookmarks still work! +# Git tracked the file moves (git mv) +``` + +### Finding Documentation + +**Use the navigation hub:** +1. Start at [docs/README.md](README.md) +2. Browse by category +3. Use the quick navigation section + +**Or search:** +```bash +# Find all markdown docs +find docs -name "*.md" + +# Search content +grep -r "keyword" docs/ +``` + +### Adding New Documentation + +**Follow the structure:** + +```bash +# Getting started guides +docs/getting-started/your-guide.md + +# User guides +docs/guides/your-tutorial.md + +# Community docs +docs/community/your-doc.md + +# Translations +docs/i18n/ja/README.md # Japanese example +``` + +**Update navigation:** +- Add link in relevant category README +- Add to `docs/README.md` main hub + +## ð Commit Messages + +This reorganization was committed as: + +``` +docs: reorganize documentation into structured docs/ directory + +- Move deployment guides to docs/getting-started/ +- Move community docs to docs/community/ +- Move translations to docs/i18n/ +- Create navigation hub at docs/README.md +- Update all internal links in README.md +- Add GitHub issue/PR templates + +BREAKING CHANGE: Direct links to moved files will need updating +(though GitHub redirects should work) + +Closes #XXX +``` + +## ð Need Help? + +**Can't find a document?** +1. Check [docs/README.md](README.md) navigation hub +2. Search GitHub repo +3. Ask in [Telegram](https://t.me/nofx_dev_community) + +**Link broken?** +- Report in [GitHub Issues](https://github.com/tinkle-community/nofx/issues) +- We'll fix it ASAP! + +**Want to contribute docs?** +- See [Contributing Guide](../CONTRIBUTING.md) +- Check [docs/community/](community/README.md) + +--- + +**Migration Date:** 2025-11-01 +**Maintainers:** Tinkle Community + +[â Back to Documentation Home](README.md) diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 00000000..72ea76b2 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,192 @@ +# ð NOFX Documentation Center / ææ¡£äžå¿ + +Welcome to the NOFX documentation! This page helps you find the right documentation quickly. + +æ¬¢è¿æ¥å° NOFX ææ¡£äžå¿ïŒæ¬é¡µé¢åž®å©æšå¿«éæŸå°æéææ¡£ã + +--- + +## ð Getting Started / å¿«éåŒå§ + +**New to NOFX? Start here!** + +| Document | Description | æè¿° | +|----------|-------------|------| +| [Main README](../README.md) | Project overview, features, quick start | é¡¹ç®æŠè¿°ãåèœãå¿«éå ¥éš | +| [Getting Started Index (EN)](getting-started/README.md) | All deployment options | ææéšçœ²é项 | +| [Getting Started Index (äžæ)](getting-started/README.zh-CN.md) | ææéšçœ²é项 | All deployment options | +| [Docker Deployment (EN)](getting-started/docker-deploy.en.md) | Deploy with Docker (recommended) | Docker éšçœ²ïŒæšèïŒ | +| [Docker Deployment (äžæ)](getting-started/docker-deploy.zh-CN.md) | Docker éšçœ²æåïŒäžæïŒ | Docker deployment guide | +| [PM2 Deployment (EN)](getting-started/pm2-deploy.en.md) | Deploy with PM2 process manager | PM2 è¿çšç®¡çåšéšçœ² | +| [PM2 Deployment (äžæ)](getting-started/pm2-deploy.md) | PM2 éšçœ²æåïŒäžæïŒ | PM2 deployment guide | +| [Custom API (EN)](getting-started/custom-api.en.md) | Connect custom AI API providers | è¿æ¥èªå®ä¹ AI API | +| [Custom API (äžæ)](getting-started/custom-api.md) | è¿æ¥èªå®ä¹ AI API æäŸå | Custom AI provider guide | + +**Quick Links:** +- ð See all options â [Getting Started](getting-started/README.md) / [å¿«éåŒå§](getting-started/README.zh-CN.md) +- ð³ Want easiest setup? â [Docker (EN)](getting-started/docker-deploy.en.md) / [Docker (äžæ)](getting-started/docker-deploy.zh-CN.md) +- ð§ Advanced user? â [PM2 (EN)](getting-started/pm2-deploy.en.md) / [PM2 (äžæ)](getting-started/pm2-deploy.md) +- ð€ Custom AI model? â [Custom API (EN)](getting-started/custom-api.en.md) / [èªå®ä¹ API](getting-started/custom-api.md) + +--- + +## ð User Guides / äœ¿çšæå + +**Learn how to use NOFX effectively** + +| Document | Description | æè¿° | +|----------|-------------|------| +| [User Guides Index (EN)](guides/README.md) | All usage guides and tips | ææäœ¿çšæååæå·§ | +| [User Guides Index (äžæ)](guides/README.zh-CN.md) | ææäœ¿çšæååæå·§ | All usage guides and tips | +| [FAQ (English)](guides/faq.en.md) | Frequently asked questions | åžžè§é®é¢è§£ç | +| [FAQ (äžæ)](guides/faq.zh-CN.md) | åžžè§é®é¢è§£ç | Frequently asked questions | +| Troubleshooting *(coming soon)* | Common issues and solutions | æ éææ¥ | +| Configuration Guide *(coming soon)* | Advanced configuration options | é«çº§é 眮é项 | +| Trading Strategies *(coming soon)* | AI trading strategy examples | AI 亀æçç¥ç€ºäŸ | + +--- + +## ð¥ Community & Contributing / 瀟åºäžèŽ¡ç® + +**Join the community and contribute!** + +| Document | Description | æè¿° | +|----------|-------------|------| +| [Code of Conduct](../CODE_OF_CONDUCT.md) | Community guidelines | 瀟åºè¡äžºåå | +| [Security Policy](../SECURITY.md) | Report security vulnerabilities | æ¥åå®å šæŒæŽ | +| [Bounty Guide](community/bounty-guide.md) | How to post bounty tasks | åŠäœååžæ¬èµä»»å¡ | +| [Hyperliquid Bounty](community/bounty-hyperliquid.md) | Hyperliquid integration bounty | Hyperliquid éææ¬èµ | +| [Aster Bounty](community/bounty-aster.md) | Aster DEX integration bounty | Aster DEX éææ¬èµ | + +**Get Involved:** +- ð¬ [Telegram Community](https://t.me/nofx_dev_community) +- ðŠ [Twitter @nofx_ai](https://x.com/nofx_ai) +- ð [Report Issues](https://github.com/tinkle-community/nofx/issues) + +--- + +## ð International / åœé åææ¡£ + +**Documentation in other languages** + +| Language | Main README | Status | +|----------|-------------|--------| +| ðšð³ Chinese (äžæ) | [README.md](i18n/zh-CN/README.md) | â Complete | +| ð·ðº Russian (Ð ÑÑÑкОй) | [README.md](i18n/ru/README.md) | â Complete | +| ðºðŠ Ukrainian (УкÑаÑМÑÑка) | [README.md](i18n/uk/README.md) | â Complete | +| ð¬ð§ English | [README.md](../README.md) | â Complete | + +--- + +## ðïž Architecture & Development / æ¶æäžåŒå + +**For developers who want to understand the internals** + +| Document | Description | æè¿° | +|----------|-------------|------| +| [Architecture Overview (EN)](architecture/README.md) | System architecture, modules, and design | ç³»ç»æ¶æãæš¡åå讟计 | +| [Architecture Overview (äžæ)](architecture/README.zh-CN.md) | ç³»ç»æ¶æãæš¡åå讟计 | System architecture overview | +| API Reference *(coming soon)* | HTTP API documentation | HTTP API ææ¡£ | +| Database Schema *(coming soon)* | SQLite database structure | SQLite æ°æ®åºç»æ | +| Testing Guide *(coming soon)* | How to write tests | åŠäœçŒåæµè¯ | + +--- + +## ðºïž Roadmap / è·¯çº¿åŸ + +**NOFX's strategic development plan and market expansion** + +| Document | Description | æè¿° | +|----------|-------------|------| +| [Roadmap (EN)](roadmap/README.md) | Short-term and long-term roadmap, feature timeline | çæåé¿æè·¯çº¿åŸãåèœæ¶éŽè¡š | +| [Roadmap (äžæ)](roadmap/README.zh-CN.md) | çæåé¿æè·¯çº¿åŸãåèœæ¶éŽè¡š | Strategic development plan | + +**Roadmap Highlights:** +- ð **Short-term (Q2-Q3 2025)**: Advanced risk management, multi-AI ensemble, new exchange integrations +- ð **Long-term (2026)**: Universal market expansion (stocks, futures, options, forex), reinforcement learning, enterprise features + +--- + +## ð Legal & Policies / æ³åŸäžæ¿ç + +| Document | Description | æè¿° | +|----------|-------------|------| +| [License (MIT)](../LICENSE) | Open source license | åŒæºè®žå¯è¯ | +| [Changelog (EN)](../CHANGELOG.md) | Version history and updates | çæ¬åå²åæŽæ° | +| [Changelog (äžæ)](../CHANGELOG.zh-CN.md) | çæ¬åå²åæŽæ° | Version history and updates | +| [Security Policy](../SECURITY.md) | Vulnerability disclosure | æŒæŽæ«é²æ¿ç | +| [Code of Conduct](../CODE_OF_CONDUCT.md) | Community standards | ç€Ÿåºæ å | + +--- + +## ð Quick Navigation / å¿«éå¯Œèª + +**Find what you need fast:** + +### I want to... +- ð **Get started quickly** â [Getting Started](getting-started/README.md) / [å¿«éåŒå§](getting-started/README.zh-CN.md) +- ð **Report a bug** â [GitHub Issues](https://github.com/tinkle-community/nofx/issues/new) +- ð¡ **Suggest a feature** â [Feature Request](https://github.com/tinkle-community/nofx/issues/new?template=feature_request.md) +- ð **Report security issue** â [Security Policy](../SECURITY.md) +- ð° **Claim a bounty** â [Bounty Guide](community/bounty-guide.md) +- ð€ **Contribute code** â [Contributing Guide](../CONTRIBUTING.md) +- ð¬ **Ask questions** â [Telegram Community](https://t.me/nofx_dev_community) + +### I'm looking for... +- ðïž **System architecture** â [Architecture (EN)](architecture/README.md) / [æ¶æææ¡£](architecture/README.zh-CN.md) +- ðºïž **Product roadmap** â [Roadmap (EN)](roadmap/README.md) / [路线åŸ](roadmap/README.zh-CN.md) +- ð **API documentation** â Coming soon +- 𧪠**Testing guide** â Coming soon +- ð§ **Configuration examples** â [Custom API (EN)](getting-started/custom-api.en.md) / [èªå®ä¹ API](getting-started/custom-api.md) +- ð **Multi-language docs** â [International section](#-international--åœé åææ¡£) + +--- + +## ð Documentation Status + +| Category | Status | Last Updated | +|----------|--------|--------------| +| Getting Started | â Complete | 2025-11-01 | +| User Guides | â Complete | 2025-11-01 | +| Community | â Complete | 2025-11-01 | +| Architecture | â Complete | 2025-11-01 | +| Roadmap | â Complete | 2025-11-01 | +| API Reference | ð Planned | - | + +**Legend:** +- â Complete - Documentation is ready +- ð§ In Progress - Being written +- ð Planned - On the roadmap +- â ïž Outdated - Needs update + +--- + +## ð Need Help? + +**Can't find what you're looking for?** + +1. **Search GitHub Issues** - Someone might have asked already +2. **Join Telegram** - [NOFX Developer Community](https://t.me/nofx_dev_community) +3. **Ask on Twitter** - Mention [@nofx_ai](https://x.com/nofx_ai) +4. **Create an Issue** - [New Issue](https://github.com/tinkle-community/nofx/issues/new) + +--- + +## ð€ Contributing to Documentation + +Found an error or want to improve the docs? + +1. **Small fixes** - Click "Edit" on GitHub and submit PR +2. **New documentation** - Create an issue first to discuss +3. **Translations** - See [Contributing Guide](../CONTRIBUTING.md) + +**Documentation Contributors:** +- All documentation follows [Markdown Guide](https://www.markdownguide.org/) +- Use clear, concise language +- Include code examples where helpful +- Add screenshots for UI-related docs + +--- + +**Last Updated:** 2025-11-01 +**Maintained by:** [Tinkle Community](https://github.com/tinkle-community) diff --git a/docs/architecture/README.md b/docs/architecture/README.md new file mode 100644 index 00000000..2c1a2f6f --- /dev/null +++ b/docs/architecture/README.md @@ -0,0 +1,570 @@ +# ðïž NOFX Architecture Documentation + +**Language:** [English](README.md) | [äžæ](README.zh-CN.md) + +Technical documentation for developers who want to understand NOFX internals. + +--- + +## ð Overview + +NOFX is a full-stack AI trading platform with: +- **Backend:** Go (Gin framework, SQLite) +- **Frontend:** React/TypeScript (Vite, TailwindCSS) +- **Architecture:** Microservice-inspired modular design + +--- + +## ð Project Structure + +``` +nofx/ +âââ main.go # Program entry (multi-trader manager) +âââ config.json # ~~Multi-trader config~~ (Now via web interface) +âââ trading.db # SQLite database (traders, models, exchanges) +â +âââ api/ # HTTP API service +â âââ server.go # Gin framework, RESTful API +â +âââ trader/ # Trading core +â âââ auto_trader.go # Auto trading main controller +â âââ interface.go # Unified trader interface +â âââ binance_futures.go # Binance API wrapper +â âââ hyperliquid_trader.go # Hyperliquid DEX wrapper +â âââ aster_trader.go # Aster DEX wrapper +â +âââ manager/ # Multi-trader management +â âââ trader_manager.go # Manages multiple trader instances +â +âââ config/ # Configuration & database +â âââ database.go # SQLite operations and schema +â +âââ auth/ # Authentication +â âââ jwt.go # JWT token management & 2FA +â +âââ mcp/ # Model Context Protocol - AI communication +â âââ client.go # AI API client (DeepSeek/Qwen/Custom) +â +âââ decision/ # AI decision engine +â âââ engine.go # Decision logic with historical feedback +â âââ prompt_manager.go # Prompt template system +â +âââ market/ # Market data fetching +â âââ data.go # Market data & technical indicators (TA-Lib) +â +âââ pool/ # Coin pool management +â âââ coin_pool.go # AI500 + OI Top merged pool +â +âââ logger/ # Logging system +â âââ decision_logger.go # Decision recording + performance analysis +â +âââ decision_logs/ # Decision log storage (JSON files) +â âââ {trader_id}/ # Per-trader logs +â âââ {timestamp}.json # Individual decisions +â +âââ web/ # React frontend + âââ src/ + â âââ components/ # React components + â â âââ EquityChart.tsx # Equity curve chart + â â âââ ComparisonChart.tsx # Multi-AI comparison chart + â â âââ CompetitionPage.tsx # Competition leaderboard + â âââ lib/api.ts # API call wrapper + â âââ types/index.ts # TypeScript types + â âââ stores/ # Zustand state management + â âââ index.css # Binance-style CSS + â âââ App.tsx # Main app + âââ package.json # Frontend dependencies + âââ vite.config.ts # Vite configuration +``` + +--- + +## ð§ Core Dependencies + +### Backend (Go) + +| Package | Purpose | Version | +|---------|---------|---------| +| `github.com/gin-gonic/gin` | HTTP API framework | v1.9+ | +| `github.com/adshao/go-binance/v2` | Binance API client | v2.4+ | +| `github.com/markcheno/go-talib` | Technical indicators (TA-Lib) | Latest | +| `github.com/mattn/go-sqlite3` | SQLite database driver | v1.14+ | +| `github.com/golang-jwt/jwt/v5` | JWT authentication | v5.0+ | +| `github.com/pquerna/otp` | 2FA/TOTP support | v1.4+ | +| `golang.org/x/crypto` | Password hashing (bcrypt) | Latest | + +### Frontend (React + TypeScript) + +| Package | Purpose | Version | +|---------|---------|---------| +| `react` + `react-dom` | UI framework | 18.3+ | +| `typescript` | Type safety | 5.8+ | +| `vite` | Build tool | 6.0+ | +| `recharts` | Charts (equity, comparison) | 2.15+ | +| `swr` | Data fetching & caching | 2.2+ | +| `zustand` | State management | 5.0+ | +| `tailwindcss` | CSS framework | 3.4+ | +| `lucide-react` | Icon library | Latest | + +--- + +## ðïž System Architecture + +### High-Level Overview + +``` +ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ +â PRESENTATION LAYER â +â React SPA (Vite + TypeScript + TailwindCSS) â +â - Competition dashboard, trader management UI â +â - Real-time charts (Recharts), authentication pages â +ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ + â HTTP/JSON API +ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ +â API LAYER (Gin Router) â +â /api/traders, /api/status, /api/positions, /api/decisions â +â Authentication middleware (JWT), CORS handling â +ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ + â +ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ +â BUSINESS LOGIC LAYER â +â ââââââââââââââââââââ ââââââââââââââââââââ ââââââââââââââââââ â +â â TraderManager â â DecisionEngine â â MarketData â â +â â - Multi-trader â â - AI reasoning â â - K-lines â â +â â orchestration â â - Risk control â â - Indicators â â +â ââââââââââââââââââââ ââââââââââââââââââââ ââââââââââââââââââ â +ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ + â +ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ +â DATA ACCESS LAYER â +â ââââââââââââââââ ââââââââââââââââ ââââââââââââââââââââââ â +â â SQLite DB â â File Logger â â External APIs â â +â â - Traders â â - Decisions â â - Binance â â +â â - Models â â - Performanceâ â - Hyperliquid â â +â â - Exchanges â â analysis â â - Aster â â +â ââââââââââââââââ ââââââââââââââââ ââââââââââââââââââââââ â +ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ +``` + +### Component Diagram + +*(Coming soon: detailed component interaction diagram)* + +--- + +## ð Core Modules + +### 1. Trader System (`trader/`) + +**Purpose:** Trading execution layer with multi-exchange support + +**Key Files:** +- `auto_trader.go` - Main trading orchestrator (100+ lines) +- `interface.go` - Unified trader interface +- `binance_futures.go` - Binance API wrapper +- `hyperliquid_trader.go` - Hyperliquid DEX wrapper +- `aster_trader.go` - Aster DEX wrapper + +**Design Pattern:** Strategy pattern with interface-based abstraction + +**Example:** +```go +type ExchangeClient interface { + GetAccount() (*AccountInfo, error) + GetPositions() ([]*Position, error) + CreateOrder(*OrderParams) (*Order, error) + // ... more methods +} +``` + +--- + +### 2. Decision Engine (`decision/`) + +**Purpose:** AI-powered trading decision making + +**Key Files:** +- `engine.go` - Decision logic with historical feedback +- `prompt_manager.go` - Template system for AI prompts + +**Features:** +- Chain-of-Thought reasoning +- Historical performance analysis +- Risk-aware decision making +- Multi-model support (DeepSeek, Qwen, custom) + +**Flow:** +``` +Historical Data â Prompt Generation â AI API Call â +Decision Parsing â Risk Validation â Execution +``` + +--- + +### 3. Market Data System (`market/`) + +**Purpose:** Fetch and analyze market data + +**Key Files:** +- `data.go` - Market data fetching and technical indicators + +**Features:** +- Multi-timeframe K-line data (3min, 4hour) +- Technical indicators via TA-Lib: + - EMA (20, 50) + - MACD + - RSI (7, 14) + - ATR (volatility) +- Open Interest tracking + +--- + +### 4. Manager (`manager/`) + +**Purpose:** Multi-trader orchestration + +**Key Files:** +- `trader_manager.go` - Manages multiple trader instances + +**Responsibilities:** +- Trader lifecycle (start, stop, restart) +- Resource allocation +- Concurrent execution coordination + +--- + +### 5. API Server (`api/`) + +**Purpose:** HTTP API for frontend communication + +**Key Files:** +- `server.go` - Gin framework RESTful API + +**Endpoints:** +``` +GET /api/traders # List all traders +POST /api/traders # Create trader +POST /api/traders/:id/start # Start trader +GET /api/status # System status +GET /api/positions # Current positions +GET /api/decisions/latest # Recent decisions +``` + +--- + +### 6. Database Layer (`config/`) + +**Purpose:** SQLite data persistence + +**Key Files:** +- `database.go` - Database operations and schema + +**Tables:** +- `users` - User accounts (with 2FA support) +- `ai_models` - AI model configurations +- `exchanges` - Exchange credentials +- `traders` - Trader instances +- `equity_history` - Performance tracking +- `system_config` - Application settings + +--- + +### 7. Authentication (`auth/`) + +**Purpose:** User authentication and authorization + +**Features:** +- JWT token-based auth +- 2FA with TOTP (Google Authenticator) +- Bcrypt password hashing +- Admin mode (simplified single-user) + +--- + +## ð Request Flow Examples + +### Example 1: Create New Trader + +``` +User Action (Frontend) + â +POST /api/traders + â +API Server (auth middleware) + â +Database.CreateTrader() + â +TraderManager.StartTrader() + â +AutoTrader.Run() â goroutine + â +Response: {trader_id, status} +``` + +### Example 2: Trading Decision Cycle + +``` +AutoTrader (every 3-5 min) + â +1. FetchAccountStatus() + â +2. GetOpenPositions() + â +3. FetchMarketData() â TA-Lib indicators + â +4. AnalyzeHistory() â last 20 trades + â +5. GeneratePrompt() â full context + â +6. CallAI() â DeepSeek/Qwen + â +7. ParseDecision() â structured output + â +8. ValidateRisk() â position limits, margin + â +9. ExecuteOrders() â exchange API + â +10. LogDecision() â JSON file + database +``` + +--- + +## ð Data Flow + +### Market Data Flow + +``` +Exchange API + â +market.FetchKlines() + â +TA-Lib.Calculate(EMA, MACD, RSI) + â +DecisionEngine (as context) + â +AI Model (reasoning) +``` + +### Decision Logging Flow + +``` +AI Response + â +decision_logger.go + â +JSON file: decision_logs/{trader_id}/{timestamp}.json + â +Database: performance tracking + â +Frontend: /api/decisions/latest +``` + +--- + +## ðïž Database Schema + +### Core Tables + +**users** +```sql +- id (INTEGER PRIMARY KEY) +- username (TEXT UNIQUE) +- password_hash (TEXT) +- totp_secret (TEXT) +- is_admin (BOOLEAN) +- created_at (DATETIME) +``` + +**ai_models** +```sql +- id (INTEGER PRIMARY KEY) +- name (TEXT) +- model_type (TEXT) -- deepseek, qwen, custom +- api_key (TEXT) +- api_url (TEXT) +- enabled (BOOLEAN) +``` + +**traders** +```sql +- id (TEXT PRIMARY KEY) +- name (TEXT) +- ai_model_id (INTEGER FK) +- exchange_id (INTEGER FK) +- initial_balance (REAL) +- current_equity (REAL) +- status (TEXT) -- running, stopped +- created_at (DATETIME) +``` + +*(More details: database-schema.md - coming soon)* + +--- + +## ð API Reference + +### Authentication + +**POST /api/auth/login** +```json +Request: { + "username": "string", + "password": "string", + "totp_code": "string" // optional +} + +Response: { + "token": "jwt_token", + "user": {...} +} +``` + +### Trader Management + +**GET /api/traders** +```json +Response: { + "traders": [ + { + "id": "string", + "name": "string", + "status": "running|stopped", + "balance": 1000.0, + "roi": 5.2 + } + ] +} +``` + +*(Full API reference: api-reference.md - coming soon)* + +--- + +## 𧪠Testing Architecture + +### Current State +- â ïž No unit tests yet +- â ïž Manual testing only +- â ïž Testnet verification + +### Planned Testing Strategy + +**Unit Tests (Priority 1)** +``` +trader/binance_futures_test.go +- Mock API responses +- Test precision handling +- Validate order construction +``` + +**Integration Tests (Priority 2)** +``` +- End-to-end trading flow (testnet) +- Multi-trader scenarios +- Database operations +``` + +**Frontend Tests (Priority 3)** +``` +- Component tests (Vitest + React Testing Library) +- API integration tests +- E2E tests (Playwright) +``` + +*(Testing guide: testing-guide.md - coming soon)* + +--- + +## ð§ Development Tools + +### Build & Run + +```bash +# Backend +go build -o nofx +./nofx + +# Frontend +cd web +npm run dev + +# Docker +docker compose up --build +``` + +### Code Quality + +```bash +# Format Go code +go fmt ./... + +# Lint (if configured) +golangci-lint run + +# Type check TypeScript +cd web && npm run build +``` + +--- + +## ð Performance Considerations + +### Backend +- **Concurrency:** Each trader runs in separate goroutine +- **Database:** SQLite (good for <100 traders) +- **API Rate Limits:** Handled per exchange +- **Memory:** ~50-100MB per trader + +### Frontend +- **Data Fetching:** SWR with 5-10s polling +- **State:** Zustand (lightweight) +- **Bundle Size:** ~500KB (gzipped) + +--- + +## ð® Future Architecture Plans + +### Planned Improvements + +1. **Microservices Split** (if scaling needed) + - Separate decision engine service + - Market data service + - Execution service + +2. **Database Migration** + - Mysql for production (>100 traders) + - Redis for caching + +3. **Event-Driven Architecture** + - WebSocket for real-time updates + - Message queue (RabbitMQ/NATS) + +4. **Kubernetes Deployment** + - Helm charts + - Auto-scaling + - High availability + +--- + +## ð For Developers + +**Want to contribute?** +- Read [Contributing Guide](../../CONTRIBUTING.md) +- Check [Open Issues](https://github.com/tinkle-community/nofx/issues) +- Join [Telegram Community](https://t.me/nofx_dev_community) + +**Need clarification?** +- Open a [GitHub Discussion](https://github.com/tinkle-community/nofx/discussions) +- Ask in Telegram + +--- + +## ð Related Documentation + +- [Getting Started](../getting-started/README.md) - Setup and deployment +- [Contributing](../../CONTRIBUTING.md) - How to contribute +- [Community](../community/README.md) - Bounties and recognition + +--- + +[â Back to Documentation Home](../README.md) diff --git a/docs/architecture/README.zh-CN.md b/docs/architecture/README.zh-CN.md new file mode 100644 index 00000000..36732b09 --- /dev/null +++ b/docs/architecture/README.zh-CN.md @@ -0,0 +1,570 @@ +# ðïž NOFX æ¶æææ¡£ + +**è¯èš:** [English](README.md) | [äžæ](README.zh-CN.md) + +äžºåžæäºè§£ NOFX å éšå®ç°çåŒåè æäŸçææ¯ææ¡£ã + +--- + +## ð æŠè¿° + +NOFX æ¯äžäžªå šæ AI 亀æå¹³å°ïŒ +- **å端ïŒ** Go (Gin æ¡æ¶, SQLite) +- **å端ïŒ** React/TypeScript (Vite, TailwindCSS) +- **æ¶æïŒ** 埮æå¡å¯åçæš¡åå讟计 + +--- + +## ð 项ç®ç»æ + +``` +nofx/ +âââ main.go # çšåºå ¥å£ïŒå€äº€æå管çåšïŒ +âââ config.json # ~~å€äº€æåé 眮~~ (ç°éè¿Webçé¢) +âââ trading.db # SQLite æ°æ®åºïŒäº€æåãæš¡åã亀ææïŒ +â +âââ api/ # HTTP API æå¡ +â âââ server.go # Gin æ¡æ¶ïŒRESTful API +â +âââ trader/ # äº€ææ žå¿ +â âââ auto_trader.go # èªåšäº€æäž»æ§å¶åš +â âââ interface.go # ç»äžäº€æåæ¥å£ +â âââ binance_futures.go # Binance API å è£ åš +â âââ hyperliquid_trader.go # Hyperliquid DEX å è£ åš +â âââ aster_trader.go # Aster DEX å è£ åš +â +âââ manager/ # å€äº€æå管ç +â âââ trader_manager.go # 管çå€äžªäº€æåå®äŸ +â +âââ config/ # é çœ®äžæ°æ®åº +â âââ database.go # SQLite æäœåæš¡åŒ +â +âââ auth/ # è®€è¯ +â âââ jwt.go # JWT token 管ç & 2FA +â +âââ mcp/ # Model Context Protocol - AI éä¿¡ +â âââ client.go # AI API 客æ·ç«¯ïŒDeepSeek/Qwen/èªå®ä¹ïŒ +â +âââ decision/ # AI å³çåŒæ +â âââ engine.go # 垊åå²åéŠçå³çé»èŸ +â âââ prompt_manager.go # æç€ºè¯æš¡æ¿ç³»ç» +â +âââ market/ # åžåºæ°æ®è·å +â âââ data.go # åžåºæ°æ®äžææ¯ææ ïŒTA-LibïŒ +â +âââ pool/ # åžç§æ± 管ç +â âââ coin_pool.go # AI500 + OI Top åå¹¶æ± +â +âââ logger/ # æ¥å¿ç³»ç» +â âââ decision_logger.go # å³çè®°åœ + æ§èœåæ +â +âââ decision_logs/ # å³çæ¥å¿ååšïŒJSON æä»¶ïŒ +â âââ {trader_id}/ # æ¯äžªäº€æåçæ¥å¿ +â âââ {timestamp}.json # å䞪å³ç +â +âââ web/ # React å端 + âââ src/ + â âââ components/ # React ç»ä»¶ + â â âââ EquityChart.tsx # æçæ²çº¿åŸè¡š + â â âââ ComparisonChart.tsx # å€ AI 对æ¯åŸè¡š + â â âââ CompetitionPage.tsx # ç«èµæè¡æŠ + â âââ lib/api.ts # API è°çšå è£ åš + â âââ types/index.ts # TypeScript ç±»å + â âââ stores/ # Zustand ç¶æç®¡ç + â âââ index.css # Binance 飿 Œæ ·åŒ + â âââ App.tsx # äž»åºçš + âââ package.json # å端äŸèµ + âââ vite.config.ts # Vite é 眮 +``` + +--- + +## ð§ æ žå¿äŸèµ + +### å端 (Go) + +| å | çšé | çæ¬ | +|---------|---------|---------| +| `github.com/gin-gonic/gin` | HTTP API æ¡æ¶ | v1.9+ | +| `github.com/adshao/go-binance/v2` | Binance API 客æ·ç«¯ | v2.4+ | +| `github.com/markcheno/go-talib` | ææ¯ææ ïŒTA-LibïŒ | ææ° | +| `github.com/mattn/go-sqlite3` | SQLite æ°æ®åºé©±åš | v1.14+ | +| `github.com/golang-jwt/jwt/v5` | JWT è®€è¯ | v5.0+ | +| `github.com/pquerna/otp` | 2FA/TOTP æ¯æ | v1.4+ | +| `golang.org/x/crypto` | å¯ç ååžïŒbcryptïŒ | ææ° | + +### å端 (React + TypeScript) + +| å | çšé | çæ¬ | +|---------|---------|---------| +| `react` + `react-dom` | UI æ¡æ¶ | 18.3+ | +| `typescript` | ç±»åå®å š | 5.8+ | +| `vite` | æå»ºå·¥å · | 6.0+ | +| `recharts` | åŸè¡šïŒæçã对æ¯ïŒ | 2.15+ | +| `swr` | æ°æ®è·åäžçŒå | 2.2+ | +| `zustand` | ç¶æç®¡ç | 5.0+ | +| `tailwindcss` | CSS æ¡æ¶ | 3.4+ | +| `lucide-react` | åŸæ åº | ææ° | + +--- + +## ðïž ç³»ç»æ¶æ + +### é«å±æ¶ææŠè§ + +``` +ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ +â 衚ç°å± â +â React SPA (Vite + TypeScript + TailwindCSS) â +â - ç«èµä»ªè¡šæ¿ã亀æå管ç UI â +â - 宿¶åŸè¡š (Recharts)ã讀è¯é¡µé¢ â +ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ + â HTTP/JSON API +ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ +â API å± (Gin Router) â +â /api/traders, /api/status, /api/positions, /api/decisions â +â 讀è¯äžéŽä»¶ (JWT)ãCORS å€ç â +ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ + â +ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ +â äžå¡é»èŸå± â +â ââââââââââââââââââââ ââââââââââââââââââââ ââââââââââââââââââ â +â â TraderManager â â DecisionEngine â â MarketData â â +â â - å€äº€æå â â - AI æšç â â - Kçº¿æ°æ® â â +â â çŒæ â â - é£é©æ§å¶ â â - ææ¯ææ â â +â ââââââââââââââââââââ ââââââââââââââââââââ ââââââââââââââââââ â +ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ + â +ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ +â æ°æ®è®¿é®å± â +â ââââââââââââââââ ââââââââââââââââ ââââââââââââââââââââââ â +â â SQLite DB â â æä»¶æ¥å¿ â â å€éš APIs â â +â â - Traders â â - Decisions â â - Binance â â +â â - Models â â - Performanceâ â - Hyperliquid â â +â â - Exchanges â â analysis â â - Aster â â +â ââââââââââââââââ ââââââââââââââââ ââââââââââââââââââââââ â +ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ +``` + +### ç»ä»¶åŸ + +*ïŒå³å°æšåºïŒè¯Šç»çç»ä»¶äº€äºåŸïŒ* + +--- + +## ð æ žå¿æš¡å + +### 1. 亀æç³»ç» (`trader/`) + +**çšéïŒ** æ¯æå€äº€ææçäº€ææ§è¡å± + +**å ³é®æä»¶ïŒ** +- `auto_trader.go` - 䞻亀æçŒæåšïŒ100+ è¡ïŒ +- `interface.go` - ç»äžç亀æåæ¥å£ +- `binance_futures.go` - Binance API å è£ åš +- `hyperliquid_trader.go` - Hyperliquid DEX å è£ åš +- `aster_trader.go` - Aster DEX å è£ åš + +**讟计暡åŒïŒ** åºäºæ¥å£æœè±¡ççç¥æš¡åŒ + +**瀺äŸïŒ** +```go +type ExchangeClient interface { + GetAccount() (*AccountInfo, error) + GetPositions() ([]*Position, error) + CreateOrder(*OrderParams) (*Order, error) + // ... æŽå€æ¹æ³ +} +``` + +--- + +### 2. å³çåŒæ (`decision/`) + +**çšéïŒ** AI 驱åšç亀æå³çå¶å® + +**å ³é®æä»¶ïŒ** +- `engine.go` - 垊åå²åéŠçå³çé»èŸ +- `prompt_manager.go` - AI æç€ºè¯æš¡æ¿ç³»ç» + +**ç¹æ§ïŒ** +- æç»ŽéŸæšç +- åå²è¡šç°åæ +- é£é©æç¥å³ç +- 倿š¡åæ¯æïŒDeepSeekãQwenãèªå®ä¹ïŒ + +**æµçšïŒ** +``` +å岿°æ® â æç€ºè¯çæ â AI API è°çš â +å³çè§£æ â é£é©éªè¯ â æ§è¡ +``` + +--- + +### 3. åžåºæ°æ®ç³»ç» (`market/`) + +**çšéïŒ** è·åååæåžåºæ°æ® + +**å ³é®æä»¶ïŒ** +- `data.go` - åžåºæ°æ®è·ååææ¯ææ + +**ç¹æ§ïŒ** +- 倿¶éŽåšæ Kçº¿æ°æ®ïŒ3åéã4å°æ¶ïŒ +- éè¿ TA-Lib è®¡ç®ææ¯ææ ïŒ + - EMA (20, 50) + - MACD + - RSI (7, 14) + - ATRïŒæ³¢åšçïŒ +- æä»éè·èžª + +--- + +### 4. 管çåš (`manager/`) + +**çšéïŒ** å€äº€æåçŒæ + +**å ³é®æä»¶ïŒ** +- `trader_manager.go` - 管çå€äžªäº€æåå®äŸ + +**è莣ïŒ** +- 亀æåçåœåšæïŒå¯åšã忢ãéå¯ïŒ +- èµæºåé +- å¹¶åæ§è¡åè° + +--- + +### 5. API æå¡åš (`api/`) + +**çšéïŒ** å端éä¿¡ç HTTP API + +**å ³é®æä»¶ïŒ** +- `server.go` - Gin æ¡æ¶ RESTful API + +**端ç¹ïŒ** +``` +GET /api/traders # ååºææäº€æå +POST /api/traders # å建亀æå +POST /api/traders/:id/start # å¯åšäº€æå +GET /api/status # ç³»ç»ç¶æ +GET /api/positions # åœåæä» +GET /api/decisions/latest # æè¿å³ç +``` + +--- + +### 6. æ°æ®åºå± (`config/`) + +**çšéïŒ** SQLite æ°æ®æä¹ å + +**å ³é®æä»¶ïŒ** +- `database.go` - æ°æ®åºæäœåæš¡åŒ + +**衚ïŒ** +- `users` - çšæ·èŽŠæ·ïŒæ¯æ 2FAïŒ +- `ai_models` - AI æš¡åé 眮 +- `exchanges` - 亀ææåè¯ +- `traders` - 亀æåå®äŸ +- `equity_history` - 绩æè·èžª +- `system_config` - åºçšçšåºè®Ÿçœ® + +--- + +### 7. è®€è¯ (`auth/`) + +**çšéïŒ** çšæ·è®€è¯åææ + +**ç¹æ§ïŒ** +- åºäº JWT token çè®€è¯ +- äœ¿çš TOTP ç 2FAïŒGoogle AuthenticatorïŒ +- Bcrypt å¯ç ååž +- 管çåæš¡åŒïŒç®åçåçšæ·æš¡åŒïŒ + +--- + +## ð è¯·æ±æµçšç€ºäŸ + +### ç€ºäŸ 1ïŒå建æ°äº€æå + +``` +çšæ·æäœïŒåç«¯ïŒ + â +POST /api/traders + â +API æå¡åšïŒè®€è¯äžéŽä»¶ïŒ + â +Database.CreateTrader() + â +TraderManager.StartTrader() + â +AutoTrader.Run() â goroutine + â +ååº: {trader_id, status} +``` + +### ç€ºäŸ 2ïŒäº€æå³çåšæ + +``` +AutoTraderïŒæ¯ 3-5 åéïŒ + â +1. FetchAccountStatus() + â +2. GetOpenPositions() + â +3. FetchMarketData() â TA-Lib ææ + â +4. AnalyzeHistory() â æè¿ 20 ç¬äº€æ + â +5. GeneratePrompt() â 宿Žäžäžæ + â +6. CallAI() â DeepSeek/Qwen + â +7. ParseDecision() â ç»æåèŸåº + â +8. ValidateRisk() â ä»äœéå¶ãä¿è¯é + â +9. ExecuteOrders() â äº€ææ API + â +10. LogDecision() â JSON æä»¶ + æ°æ®åº +``` + +--- + +## ð æ°æ®æµ + +### åžåºæ°æ®æµ + +``` +äº€ææ API + â +market.FetchKlines() + â +TA-Lib.Calculate(EMA, MACD, RSI) + â +DecisionEngineïŒäœäžºäžäžæïŒ + â +AI æš¡åïŒæšçïŒ +``` + +### å³çæ¥å¿æµ + +``` +AI ååº + â +decision_logger.go + â +JSON æä»¶: decision_logs/{trader_id}/{timestamp}.json + â +æ°æ®åº: 绩æè·èžª + â +å端: /api/decisions/latest +``` + +--- + +## ðïž æ°æ®åºæ¶æ + +### æ žå¿è¡š + +**users** +```sql +- id (INTEGER PRIMARY KEY) +- username (TEXT UNIQUE) +- password_hash (TEXT) +- totp_secret (TEXT) +- is_admin (BOOLEAN) +- created_at (DATETIME) +``` + +**ai_models** +```sql +- id (INTEGER PRIMARY KEY) +- name (TEXT) +- model_type (TEXT) -- deepseek, qwen, custom +- api_key (TEXT) +- api_url (TEXT) +- enabled (BOOLEAN) +``` + +**traders** +```sql +- id (TEXT PRIMARY KEY) +- name (TEXT) +- ai_model_id (INTEGER FK) +- exchange_id (INTEGER FK) +- initial_balance (REAL) +- current_equity (REAL) +- status (TEXT) -- running, stopped +- created_at (DATETIME) +``` + +*ïŒæŽå€è¯Šæ ïŒdatabase-schema.md - å³å°æšåºïŒ* + +--- + +## ð API åè + +### è®€è¯ + +**POST /api/auth/login** +```json +请æ±: { + "username": "string", + "password": "string", + "totp_code": "string" // å¯é +} + +ååº: { + "token": "jwt_token", + "user": {...} +} +``` + +### 亀æå管ç + +**GET /api/traders** +```json +ååº: { + "traders": [ + { + "id": "string", + "name": "string", + "status": "running|stopped", + "balance": 1000.0, + "roi": 5.2 + } + ] +} +``` + +*ïŒå®æŽ API åèïŒapi-reference.md - å³å°æšåºïŒ* + +--- + +## 𧪠æµè¯æ¶æ + +### åœåç¶æ +- â ïž å°æ åå æµè¯ +- â ïž ä» æåšæµè¯ +- â ïž æµè¯çœéªè¯ + +### 计åçæµè¯çç¥ + +**åå æµè¯ïŒäŒå 级 1ïŒ** +``` +trader/binance_futures_test.go +- æš¡æ API ååº +- æµè¯ç²ŸåºŠå€ç +- éªè¯è®¢åæé +``` + +**éææµè¯ïŒäŒå 级 2ïŒ** +``` +- 端å°ç«¯äº€ææµçšïŒæµè¯çœïŒ +- å€äº€æååºæ¯ +- æ°æ®åºæäœ +``` + +**å端æµè¯ïŒäŒå 级 3ïŒ** +``` +- ç»ä»¶æµè¯ïŒVitest + React Testing LibraryïŒ +- API éææµè¯ +- E2E æµè¯ïŒPlaywrightïŒ +``` + +*ïŒæµè¯æåïŒtesting-guide.md - å³å°æšåºïŒ* + +--- + +## ð§ åŒåå·¥å · + +### æå»ºäžè¿è¡ + +```bash +# å端 +go build -o nofx +./nofx + +# å端 +cd web +npm run dev + +# Docker +docker compose up --build +``` + +### 代ç 莚é + +```bash +# æ ŒåŒå Go 代ç +go fmt ./... + +# LintïŒåŠæé çœ®ïŒ +golangci-lint run + +# TypeScript ç±»åæ£æ¥ +cd web && npm run build +``` + +--- + +## ð æ§èœèè + +### å端 +- **å¹¶åïŒ** æ¯äžªäº€æååšç¬ç«ç goroutine äžè¿è¡ +- **æ°æ®åºïŒ** SQLiteïŒéçšäº <100 䞪亀æåïŒ +- **API éçéå¶ïŒ** æäº€ææå€ç +- **å åïŒ** æ¯äžªäº€æå ~50-100MB + +### å端 +- **æ°æ®è·åïŒ** SWRïŒ5-10 ç§èœ®è¯¢ +- **ç¶æïŒ** ZustandïŒèœ»éçº§ïŒ +- **å 倧å°ïŒ** ~500KBïŒgzippedïŒ + +--- + +## ð® æªæ¥æ¶æè®¡å + +### è®¡åæ¹è¿ + +1. **埮æå¡æå**ïŒåŠéæ©å±ïŒ + - ç¬ç«çå³çåŒææå¡ + - åžåºæ°æ®æå¡ + - æ§è¡æå¡ + +2. **æ°æ®åºè¿ç§»** + - ç产ç¯å¢äœ¿çš Mysql (>100 䞪亀æåïŒ + - Redis çŒå + +3. **äºä»¶é©±åšæ¶æ** + - WebSocket 宿¶æŽæ° + - æ¶æ¯éåïŒRabbitMQ/NATSïŒ + +4. **Kubernetes éšçœ²** + - Helm charts + - èªåšæ©å± + - é«å¯çšæ§ + +--- + +## ð åŒåè èµæº + +**æ³èŠèŽ¡ç®ïŒ** +- é 读[èŽ¡ç®æå](../../CONTRIBUTING.md) +- æ¥ç[åŒæŸé®é¢](https://github.com/tinkle-community/nofx/issues) +- å å ¥ [Telegram 瀟åº](https://t.me/nofx_dev_community) + +**éèŠæŸæž ïŒ** +- åŒå¯ [GitHub 讚论](https://github.com/tinkle-community/nofx/discussions) +- åš Telegram æé® + +--- + +## ð çžå ³ææ¡£ + +- [å¿«éåŒå§](../getting-started/README.zh-CN.md) - 讟眮åéšçœ² +- [èŽ¡ç®æå](../../CONTRIBUTING.md) - åŠäœèŽ¡ç® +- [瀟åº](../community/README.md) - æ¬èµåè®€å¯ + +--- + +[â è¿åææ¡£éŠé¡µ](../README.md) diff --git a/docs/community/README.md b/docs/community/README.md new file mode 100644 index 00000000..497e10c5 --- /dev/null +++ b/docs/community/README.md @@ -0,0 +1,233 @@ +# ð¥ NOFX Community + +Welcome to the NOFX community! This section contains everything you need to contribute and participate. + +--- + +## ð€ How to Contribute + +### Getting Started + +1. **Read the Guides** + - [Contributing Guide](../../CONTRIBUTING.md) - Complete contribution workflow + - [Code of Conduct](../../CODE_OF_CONDUCT.md) - Community standards + - [Security Policy](../../SECURITY.md) - Report vulnerabilities + +2. **Find Something to Work On** + - Browse [GitHub Issues](https://github.com/tinkle-community/nofx/issues) + - Look for `good first issue` label + - Check out [bounty tasks](#-bounty-program) + +3. **Join the Community** + - ð¬ [Telegram Developer Community](https://t.me/nofx_dev_community) + - ðŠ [Twitter @nofx_ai](https://x.com/nofx_ai) + - ð [GitHub Discussions](https://github.com/tinkle-community/nofx/discussions) + +--- + +## ð° Bounty Program + +### Active Bounties + +NOFX offers bounties for valuable contributions: + +| Category | Reward Range | Examples | +|----------|--------------|----------| +| ð¥ Major Features | $500-1000 | Exchange integration, core architecture | +| ð¥ Medium Features | $200-500 | WebSocket support, new AI models | +| ð¥ Small Features | $50-200 | Bug fixes, UI improvements, documentation | + +### How to Claim Bounties + +**ð Complete Guide:** [bounty-guide.md](bounty-guide.md) + +**Quick Steps:** +1. Find issue tagged `[BOUNTY]` +2. Comment with your proposal +3. Wait for approval +4. Work on the task +5. Submit PR with demo +6. Get paid after merge! + +### Current Bounty Tasks + +| Task | Reward | Difficulty | Status | +|------|--------|------------|--------| +| [Hyperliquid Integration](bounty-hyperliquid.md) | TBD | Hard | ð¡ Open | +| [Aster DEX Integration](bounty-aster.md) | TBD | Medium | â Completed | + +--- + +## ð Recognition + +### Ways to Get Recognized + +**Contributor Levels:** +- ð **Active Contributor** - Submit quality PRs +- â **Trusted Contributor** - 3+ merged PRs, given review rights +- ð **Core Team** - Top contributors, invited by maintainers + +**Benefits:** +- Listed in README and release notes +- Direct access to maintainer discussions +- Priority support for your issues +- Invitation to private roadmap planning + +### Hall of Fame + +**Top Contributors:** +- Coming soon! Be the first! ð + +--- + +## ð Contribution Types + +### Code Contributions +- New exchange integrations +- AI model adapters +- Bug fixes and improvements +- Performance optimizations + +**Required:** +- â Code compiles and runs +- â Follows code style guidelines +- â Includes basic tests (preferred) +- â Updates documentation if needed + +### Documentation +- Tutorial writing +- Translation (äžæ, Ð ÑÑÑкОй, УкÑаÑМÑÑка) +- FAQ updates +- Video guides + +**Rewards:** +- $50-200 for comprehensive guides +- Recognition in docs +- Contributor badge + +### Testing & QA +- Bug reports with reproduction steps +- Security vulnerability reports (see [Security Policy](../../SECURITY.md)) +- Testnet verification +- Performance testing + +**Rewards:** +- $50-500 for critical bug finds +- Up to $1000 for security vulnerabilities +- Recognition in security hall of fame + +--- + +## ð Community Channels + +### Primary Channels + +| Platform | Purpose | Link | +|----------|---------|------| +| ð¬ Telegram | Real-time chat, questions | [Join](https://t.me/nofx_dev_community) | +| ð GitHub | Issues, PRs, discussions | [Visit](https://github.com/tinkle-community/nofx) | +| ðŠ Twitter | Announcements, updates | [@nofx_ai](https://x.com/nofx_ai) | + +### Core Team + +- **Tinkle** - [@Web3Tinkle](https://x.com/Web3Tinkle) +- **Zack** - [@0x_ZackH](https://x.com/0x_ZackH) + +**Contact:** +- Technical questions â Telegram or GitHub Issues +- Business inquiries â Twitter DM to core team +- Security reports â [SECURITY.md](../../SECURITY.md) + +--- + +## ð Community Events + +### Regular Activities +- **Weekly Updates** - Development progress (Telegram) +- **Monthly AMA** - Ask maintainers anything +- **Quarterly Roadmap** - Future plans discussion + +### Upcoming Events +- *No scheduled events yet* + +**Want to organize an event?** +- Contact core team on Telegram +- Propose in GitHub Discussions +- Tweet and tag @nofx_ai + +--- + +## ð Learning Resources + +### For Contributors + +**Understanding NOFX:** +- [System Architecture](../architecture/README.md) *(coming soon)* +- [API Reference](../architecture/api-reference.md) *(coming soon)* +- [Database Schema](../architecture/database-schema.md) *(coming soon)* + +**Learning Materials:** +- Go programming: [Tour of Go](https://go.dev/tour/) +- React/TypeScript: [React Docs](https://react.dev/) +- Trading basics: [Binance Academy](https://academy.binance.com/) + +### Recommended Reading + +1. **Before Contributing:** + - [Contributing Guide](../../CONTRIBUTING.md) + - [Code of Conduct](../../CODE_OF_CONDUCT.md) + +2. **For Exchange Integration:** + - [Hyperliquid Bounty](bounty-hyperliquid.md) + - [Aster Bounty](bounty-aster.md) + - Existing code: `trader/binance_futures.go` + +3. **For AI Features:** + - [Custom API Guide](../getting-started/custom-api.md) + - MCP client code: `mcp/client.go` + - Decision engine: `decision/engine.go` + +--- + +## ð¡ïž Community Guidelines + +### Our Values +- **Respect** - Treat everyone with courtesy +- **Transparency** - Open communication and decisions +- **Quality** - High standards for contributions +- **Collaboration** - Work together, help each other + +### Not Acceptable +- â Harassment or discrimination +- â Spam or self-promotion +- â Sharing malicious code +- â Violating [Code of Conduct](../../CODE_OF_CONDUCT.md) + +**Violations will result in:** +1. Warning +2. Temporary ban +3. Permanent ban (serious cases) + +--- + +## ð Community Stats + +| Metric | Count | +|--------|-------| +| GitHub Stars | Check [repo](https://github.com/tinkle-community/nofx) | +| Contributors | 21+ | +| Open Issues | Check [issues](https://github.com/tinkle-community/nofx/issues) | +| Merged PRs | Check [pulls](https://github.com/tinkle-community/nofx/pulls?q=is%3Apr+is%3Amerged) | + +--- + +## ð Quick Links + +- **Want to contribute code?** â [Contributing Guide](../../CONTRIBUTING.md) +- **Want to claim bounty?** â [Bounty Guide](bounty-guide.md) +- **Found a security issue?** â [Security Policy](../../SECURITY.md) +- **Have questions?** â [Telegram Community](https://t.me/nofx_dev_community) + +--- + +[â Back to Documentation Home](../README.md) diff --git a/INTEGRATION_BOUNTY_ASTER.md b/docs/community/bounty-aster.md similarity index 100% rename from INTEGRATION_BOUNTY_ASTER.md rename to docs/community/bounty-aster.md diff --git a/HOW_TO_POST_BOUNTY.md b/docs/community/bounty-guide.md similarity index 100% rename from HOW_TO_POST_BOUNTY.md rename to docs/community/bounty-guide.md diff --git a/INTEGRATION_BOUNTY_HYPERLIQUID.md b/docs/community/bounty-hyperliquid.md similarity index 100% rename from INTEGRATION_BOUNTY_HYPERLIQUID.md rename to docs/community/bounty-hyperliquid.md diff --git a/docs/getting-started/README.md b/docs/getting-started/README.md new file mode 100644 index 00000000..c35926f9 --- /dev/null +++ b/docs/getting-started/README.md @@ -0,0 +1,127 @@ +# ð Getting Started with NOFX + +**Language:** [English](README.md) | [äžæ](README.zh-CN.md) + +This section contains all the documentation you need to get NOFX up and running. + +## ð Deployment Options + +Choose the method that best fits your needs: + +### ð³ Docker Deployment (Recommended) + +**Best for:** Beginners, quick setup, production deployments + +- **English:** [docker-deploy.en.md](docker-deploy.en.md) +- **äžæ:** [docker-deploy.zh-CN.md](docker-deploy.zh-CN.md) + +**Pros:** +- â One-command setup +- â All dependencies included +- â Easy to update and manage +- â Isolated environment + +**Quick Start:** +```bash +cp config.example.jsonc config.json +./start.sh start --build +``` + +--- + +### ð§ PM2 Deployment + +**Best for:** Advanced users, development, custom setups + +- **English:** [pm2-deploy.en.md](pm2-deploy.en.md) +- **äžæ:** [pm2-deploy.md](pm2-deploy.md) + +**Pros:** +- â Direct process control +- â Better for development +- â Lower resource usage +- â More flexible + +**Quick Start:** +```bash +go build -o nofx +cd web && npm install && npm run build +pm2 start ecosystem.config.js +``` + +--- + +## ð€ AI Configuration + +### Custom AI Providers + +- **English:** [custom-api.en.md](custom-api.en.md) +- **äžæ:** [custom-api.md](custom-api.md) + +Use custom AI models or third-party OpenAI-compatible APIs: +- Custom DeepSeek endpoints +- Self-hosted models +- Other LLM providers + +--- + +## ð Prerequisites + +Before starting, ensure you have: + +### For Docker Method: +- â Docker 20.10+ +- â Docker Compose V2 + +### For Manual Method: +- â Go 1.21+ +- â Node.js 18+ +- â TA-Lib library +- â PM2 (optional) + +--- + +## ð Next Steps + +After deployment: + +1. **Configure AI Models** â Web interface at http://localhost:3000 +2. **Set Up Exchange** â Add Binance/Hyperliquid credentials +3. **Create Traders** â Combine AI models with exchanges +4. **Start Trading** â Monitor performance in dashboard + +--- + +## â ïž Important Notes + +**Before Trading:** +- â ïž Test on testnet first +- â ïž Start with small amounts +- â ïž Understand the risks +- â ïž Read [Security Policy](../../SECURITY.md) + +**API Keys:** +- ð Never commit API keys to git +- ð Use environment variables +- ð Restrict IP access +- ð Enable 2FA on exchanges + +--- + +## ð Troubleshooting + +**Common Issues:** + +1. **Docker build fails** â Check Docker version, update to 20.10+ +2. **TA-Lib not found** â `brew install ta-lib` (macOS) or `apt-get install libta-lib0-dev` (Ubuntu) +3. **Port 8080 in use** â Change `API_PORT` in .env file +4. **Frontend won't connect** â Check backend is running on port 8080 + +**Need more help?** +- ð [FAQ](../guides/faq.zh-CN.md) +- ð¬ [Telegram Community](https://t.me/nofx_dev_community) +- ð [GitHub Issues](https://github.com/tinkle-community/nofx/issues) + +--- + +[â Back to Documentation Home](../README.md) diff --git a/docs/getting-started/README.zh-CN.md b/docs/getting-started/README.zh-CN.md new file mode 100644 index 00000000..aafe5cfb --- /dev/null +++ b/docs/getting-started/README.zh-CN.md @@ -0,0 +1,125 @@ +# ð NOFX å¿«éåŒå§ + +æ¬èå å«è®© NOFX è¿è¡èµ·æ¥æéçææææ¡£ã + +## ð éšçœ²é项 + +éæ©æéåæšçæ¹åŒïŒ + +### ð³ Docker éšçœ²ïŒæšèïŒ + +**éåïŒ** ååŠè ãå¿«ééšçœ²ãç产ç¯å¢ + +- **äžæææ¡£ïŒ** [docker-deploy.zh-CN.md](docker-deploy.zh-CN.md) +- **English:** [docker-deploy.en.md](docker-deploy.en.md) + +**äŒå¿ïŒ** +- â äžé®å¯åš +- â å 嫿æäŸèµ +- â æäºæŽæ°å管ç +- â é犻ç¯å¢ + +**å¿«éåŒå§ïŒ** +```bash +cp config.example.jsonc config.json +./start.sh start --build +``` + +--- + +### ð§ PM2 éšçœ² + +**éåïŒ** è¿é¶çšæ·ãåŒåç¯å¢ãèªå®ä¹è®Ÿçœ® + +- **äžæææ¡£ïŒ** [pm2-deploy.md](pm2-deploy.md) +- **English:** [pm2-deploy.en.md](pm2-deploy.en.md) + +**äŒå¿ïŒ** +- â çŽæ¥è¿çšæ§å¶ +- â æŽéååŒå +- â èµæºå çšæŽäœ +- â æŽçµæŽ» + +**å¿«éåŒå§ïŒ** +```bash +go build -o nofx +cd web && npm install && npm run build +pm2 start ecosystem.config.js +``` + +--- + +## ð€ AI é 眮 + +### èªå®ä¹ AI æäŸå + +- **äžæææ¡£ïŒ** [custom-api.md](custom-api.md) +- **English:** [custom-api.en.md](custom-api.en.md) + +䜿çšèªå®ä¹ AI æš¡åæç¬¬äžæ¹ OpenAI å Œå®¹ APIïŒ +- èªå®ä¹ DeepSeek ç«¯ç¹ +- æ¬å°éšçœ²çæš¡å +- å ¶ä» LLM æäŸå + +--- + +## ð ç¯å¢èŠæ± + +åŒå§ä¹åïŒè¯·ç¡®ä¿å·²å®è£ ïŒ + +### Docker æ¹åŒïŒ +- â Docker 20.10+ +- â Docker Compose V2 + +### æåšéšçœ²æ¹åŒïŒ +- â Go 1.21+ +- â Node.js 18+ +- â TA-Lib åº +- â PM2ïŒå¯éïŒ + +--- + +## ð äžäžæ¥ + +éšçœ²å®æåïŒ + +1. **é 眮 AI æš¡å** â è®¿é® Web çé¢ http://localhost:3000 +2. **讟眮亀ææ** â æ·»å Binance/Hyperliquid åè¯ +3. **å建亀æå** â å° AI æš¡åäžäº€ææç»å +4. **åŒå§äº€æ** â åšä»ªè¡šæ¿äžçæ§è¡šç° + +--- + +## â ïž éèŠæç€º + +**亀æåïŒ** +- â ïž å åšæµè¯çœæµè¯ +- â ïž ä»å°éé¢åŒå§ +- â ïž äºè§£é£é© +- â ïž é 读[å®å šçç¥](../../SECURITY.md) + +**API å¯é¥ïŒ** +- ð æ°žè¿äžèŠæäº€ API å¯é¥å° git +- ð 䜿çšç¯å¢åé +- ð éå¶ IP è®¿é® +- ð åšäº€ææå¯çš 2FA + +--- + +## ð æ éæé€ + +**åžžè§é®é¢ïŒ** + +1. **Docker æå»ºå€±èŽ¥** â æ£æ¥ Docker çæ¬ïŒæŽæ°å° 20.10+ +2. **æŸäžå° TA-Lib** â `brew install ta-lib` (macOS) æ `apt-get install libta-lib0-dev` (Ubuntu) +3. **ç«¯å£ 8080 被å çš** â åš .env æä»¶äžæŽæ¹ `API_PORT` +4. **åç«¯æ æ³è¿æ¥** â æ£æ¥å端æ¯åŠåšç«¯å£ 8080 äžè¿è¡ + +**éèŠæŽå€åž®å©ïŒ** +- ð [åžžè§é®é¢](../guides/faq.zh-CN.md) +- ð¬ [Telegram 瀟åº](https://t.me/nofx_dev_community) +- ð [GitHub Issues](https://github.com/tinkle-community/nofx/issues) + +--- + +[â è¿åææ¡£éŠé¡µ](../README.md) diff --git a/docs/getting-started/custom-api.en.md b/docs/getting-started/custom-api.en.md new file mode 100644 index 00000000..44c8a05c --- /dev/null +++ b/docs/getting-started/custom-api.en.md @@ -0,0 +1,207 @@ +# Custom AI API Usage Guide + +## Features + +NOFX now supports using any OpenAI-compatible API format, including: +- OpenAI official API (gpt-4o, gpt-4-turbo, etc.) +- OpenRouter (access to multiple models) +- Locally deployed models (Ollama, LM Studio, etc.) +- Other OpenAI-compatible API services + +## Configuration Method + +~~Add trader using custom API in `config.json` (deprecated):~~ + +*Note: Custom APIs and traders are now configured through the Web interface. config.json only retains basic settings.* + +```json +{ + "traders": [ + { + "id": "trader_custom", + "name": "My Custom AI Trader", + "ai_model": "custom", + "exchange": "binance", + + "binance_api_key": "your_binance_api_key", + "binance_secret_key": "your_binance_secret_key", + + "custom_api_url": "https://api.openai.com/v1", + "custom_api_key": "sk-your-openai-api-key", + "custom_model_name": "gpt-4o", + + "initial_balance": 1000, + "scan_interval_minutes": 3 + } + ] +} +``` + +## Configuration Fields + +| Field | Type | Required | Description | +|-------|------|----------|-------------| +| `ai_model` | string | â | Set to `"custom"` to enable custom API | +| `custom_api_url` | string | â | API Base URL (without `/chat/completions`). Special usage: If ending with `#`, use full URL (no auto path append) | +| `custom_api_key` | string | â | API key | +| `custom_model_name` | string | â | Model name (e.g. `gpt-4o`, `claude-3-5-sonnet`, etc.) | + +## Usage Examples + +### 1. OpenAI Official API + +```json +{ + "ai_model": "custom", + "custom_api_url": "https://api.openai.com/v1", + "custom_api_key": "sk-proj-xxxxx", + "custom_model_name": "gpt-4o" +} +``` + +### 2. OpenRouter + +```json +{ + "ai_model": "custom", + "custom_api_url": "https://openrouter.ai/api/v1", + "custom_api_key": "sk-or-xxxxx", + "custom_model_name": "anthropic/claude-3.5-sonnet" +} +``` + +### 3. Local Ollama + +```json +{ + "ai_model": "custom", + "custom_api_url": "http://localhost:11434/v1", + "custom_api_key": "ollama", + "custom_model_name": "llama3.1:70b" +} +``` + +### 4. Azure OpenAI + +```json +{ + "ai_model": "custom", + "custom_api_url": "https://your-resource.openai.azure.com/openai/deployments/your-deployment", + "custom_api_key": "your-azure-api-key", + "custom_model_name": "gpt-4" +} +``` + +### 5. Using Full Custom Path (append #) + +For certain special API endpoints that already include the full path (including `/chat/completions` or other custom paths), you can append `#` at the end of the URL to force using the full URL: + +```json +{ + "ai_model": "custom", + "custom_api_url": "https://api.example.com/v2/ai/chat/completions#", + "custom_api_key": "your-api-key", + "custom_model_name": "custom-model" +} +``` + +**Note**: The `#` will be automatically removed, and the actual request will be sent to `https://api.example.com/v2/ai/chat/completions` + +## Compatibility Requirements + +Custom APIs must: +1. Support OpenAI Chat Completions format +2. Accept `POST` requests to `/chat/completions` endpoint (or append `#` at URL end for custom path) +3. Support `Authorization: Bearer {api_key}` authentication +4. Return standard OpenAI response format + +## Important Notes + +1. **URL Format**: `custom_api_url` should be the Base URL, system will auto-append `/chat/completions` + - â Correct: `https://api.openai.com/v1` + - â Wrong: `https://api.openai.com/v1/chat/completions` + - ð§ **Special usage**: If you need to use a full custom path (without auto-appending `/chat/completions`), append `#` at the URL end + - Example: `https://api.example.com/custom/path/chat/completions#` + - System will automatically remove `#` and use the full URL directly + +2. **Model Name**: Ensure `custom_model_name` exactly matches the model name supported by your API provider + +3. **API Key**: Some locally deployed models may not require a real API key, you can fill in any string + +4. **Timeout Settings**: Default timeout is 120 seconds, may need adjustment if model response is slow + +## Multi-AI Comparison Trading + +You can configure multiple traders with different AIs for comparison: + +```json +{ + "traders": [ + { + "id": "deepseek_trader", + "ai_model": "deepseek", + "deepseek_key": "sk-xxxxx", + ... + }, + { + "id": "gpt4_trader", + "ai_model": "custom", + "custom_api_url": "https://api.openai.com/v1", + "custom_api_key": "sk-xxxxx", + "custom_model_name": "gpt-4o", + ... + }, + { + "id": "claude_trader", + "ai_model": "custom", + "custom_api_url": "https://openrouter.ai/api/v1", + "custom_api_key": "sk-or-xxxxx", + "custom_model_name": "anthropic/claude-3.5-sonnet", + ... + } + ] +} +``` + +## Troubleshooting + +### Issue: Configuration Validation Failed + +**Error Message**: `䜿çšèªå®ä¹APIæ¶å¿ é¡»é 眮custom_api_url` (custom_api_url must be configured when using custom API) + +**Solution**: After setting `ai_model: "custom"`, ensure you also configure: +- `custom_api_url` +- `custom_api_key` +- `custom_model_name` + +### Issue: API Call Failed + +**Possible Causes**: +1. URL format error + - Normal usage: Should not include `/chat/completions` (system will auto-append) + - Special usage: If full path is needed, remember to append `#` at URL end +2. Invalid API key +3. Incorrect model name +4. Network connection issues + +**Debug Method**: Check error messages in logs, usually includes HTTP status code and error details + +## Backward Compatibility + +Existing `deepseek` and `qwen` configurations are unaffected and can continue to be used: + +```json +{ + "ai_model": "deepseek", + "deepseek_key": "sk-xxxxx" +} +``` + +Or + +```json +{ + "ai_model": "qwen", + "qwen_key": "sk-xxxxx" +} +``` diff --git a/CUSTOM_API.md b/docs/getting-started/custom-api.md similarity index 100% rename from CUSTOM_API.md rename to docs/getting-started/custom-api.md diff --git a/DOCKER_DEPLOY.en.md b/docs/getting-started/docker-deploy.en.md similarity index 100% rename from DOCKER_DEPLOY.en.md rename to docs/getting-started/docker-deploy.en.md diff --git a/DOCKER_DEPLOY.md b/docs/getting-started/docker-deploy.zh-CN.md similarity index 100% rename from DOCKER_DEPLOY.md rename to docs/getting-started/docker-deploy.zh-CN.md diff --git a/docs/getting-started/pm2-deploy.en.md b/docs/getting-started/pm2-deploy.en.md new file mode 100644 index 00000000..428bef88 --- /dev/null +++ b/docs/getting-started/pm2-deploy.en.md @@ -0,0 +1,303 @@ +# NoFX Trading Bot - PM2 Deployment Guide + +Complete guide for local development and production deployment using PM2. + +## ð Quick Start + +### 1. Install PM2 + +```bash +npm install -g pm2 +``` + +### 2. One-Command Launch + +```bash +./pm2.sh start +``` + +That's it! Frontend and backend will start automatically. + +--- + +## ð All Commands + +### Service Management + +```bash +# Start services +./pm2.sh start + +# Stop services +./pm2.sh stop + +# Restart services +./pm2.sh restart + +# View status +./pm2.sh status + +# Delete services +./pm2.sh delete +``` + +### Log Viewing + +```bash +# View all logs (live) +./pm2.sh logs + +# Backend logs only +./pm2.sh logs backend + +# Frontend logs only +./pm2.sh logs frontend +``` + +### Build & Compile + +```bash +# Compile backend +./pm2.sh build + +# Recompile backend and restart +./pm2.sh rebuild +``` + +### Monitoring + +```bash +# Open PM2 monitoring dashboard (real-time CPU/Memory) +./pm2.sh monitor +``` + +--- + +## ð Access URLs + +After successful startup: + +- **Frontend Web Interface**: http://localhost:3000 +- **Backend API**: http://localhost:8080 +- **Health Check**: http://localhost:8080/api/health + +--- + +## ð§ Configuration Files + +### pm2.config.js + +PM2 configuration file, defines frontend and backend startup parameters: + +```javascript +const path = require('path'); + +module.exports = { + apps: [ + { + name: 'nofx-backend', + script: './nofx', // Go binary + cwd: __dirname, // Dynamically get current directory + autorestart: true, + max_memory_restart: '500M' + }, + { + name: 'nofx-frontend', + script: 'npm', + args: 'run dev', // Vite dev server + cwd: path.join(__dirname, 'web'), // Dynamically join path + autorestart: true, + max_memory_restart: '300M' + } + ] +}; +``` + +**After modifying configuration, restart is required:** +```bash +./pm2.sh restart +``` + +--- + +## ð Log File Locations + +- **Backend Logs**: `./logs/backend-error.log` and `./logs/backend-out.log` +- **Frontend Logs**: `./web/logs/frontend-error.log` and `./web/logs/frontend-out.log` + +--- + +## ð Startup on Boot + +Set PM2 to start on boot: + +```bash +# 1. Start services +./pm2.sh start + +# 2. Save current process list +pm2 save + +# 3. Generate startup script +pm2 startup + +# 4. Follow the instructions to execute command (requires sudo) +``` + +**Disable startup on boot:** +```bash +pm2 unstartup +``` + +--- + +## ð ïž Common Operations + +### Restart After Code Changes + +**Backend changes:** +```bash +./pm2.sh rebuild # Auto compile and restart +``` + +**Frontend changes:** +```bash +./pm2.sh restart # Vite will auto hot-reload, no restart needed +``` + +### View Real-time Resource Usage + +```bash +./pm2.sh monitor +``` + +### View Detailed Information + +```bash +pm2 info nofx-backend # Backend details +pm2 info nofx-frontend # Frontend details +``` + +### Clear Logs + +```bash +pm2 flush +``` + +--- + +## ð Troubleshooting + +### Service Startup Failed + +```bash +# 1. View detailed errors +./pm2.sh logs + +# 2. Check port usage +lsof -i :8080 # Backend port +lsof -i :3000 # Frontend port + +# 3. Manual compile test +go build -o nofx +./nofx +``` + +### Backend Won't Start + +```bash +# ~~Check if config.json exists~~ +# ~~ls -l config.json~~ + +# Check if database file exists +ls -l trading.db + +# Check permissions +chmod +x nofx + +# Run manually to see errors +./nofx +``` + +### Frontend Not Accessible + +```bash +# Check node_modules +cd web && npm install + +# Manual start test +npm run dev +``` + +--- + +## ð¯ Production Environment Recommendations + +### 1. Use Production Mode + +Modify `pm2.config.js`: + +```javascript +{ + name: 'nofx-frontend', + script: 'npm', + args: 'run preview', // Change to preview (requires npm run build first) + env: { + NODE_ENV: 'production' + } +} +``` + +### 2. Increase Instances (Load Balancing) + +```javascript +{ + name: 'nofx-backend', + script: './nofx', + instances: 2, // Start 2 instances + exec_mode: 'cluster' +} +``` + +### 3. Auto Restart Strategy + +```javascript +{ + autorestart: true, + max_restarts: 10, + min_uptime: '10s', + max_memory_restart: '500M' +} +``` + +--- + +## ðŠ Comparison with Docker Deployment + +| Feature | PM2 Deployment | Docker Deployment | +|---------|---------------|-------------------| +| Startup Speed | â¡ Fast | ð Slower | +| Resource Usage | ð Low | ð¡ Medium | +| Isolation | ð¡ Medium | ð High | +| Use Case | Dev/Single-machine | Production/Cluster | +| Configuration Complexity | ð Simple | ð¡ Medium | + +**Recommendations:** +- **Development Environment**: Use `./pm2.sh` +- **Production Environment**: Use `./start.sh` (Docker) + +--- + +## ð Getting Help + +```bash +./pm2.sh help +``` + +Or check PM2 official documentation: https://pm2.keymetrics.io/ + +--- + +## ð License + +MIT diff --git a/PM2_DEPLOYMENT.md b/docs/getting-started/pm2-deploy.md similarity index 100% rename from PM2_DEPLOYMENT.md rename to docs/getting-started/pm2-deploy.md diff --git a/docs/guides/README.md b/docs/guides/README.md new file mode 100644 index 00000000..9b5e72b1 --- /dev/null +++ b/docs/guides/README.md @@ -0,0 +1,138 @@ +# ð NOFX User Guides + +**Language:** [English](README.md) | [äžæ](README.zh-CN.md) + +Comprehensive guides to help you use NOFX effectively. + +--- + +## ð Available Guides + +### ð§ Basic Usage + +| Guide | Description | Status | +|-------|-------------|--------| +| [FAQ (English)](faq.en.md) | Frequently asked questions | â Available | +| [FAQ (äžæ)](faq.zh-CN.md) | åžžè§é®é¢è§£ç | â Available | +| Configuration Guide | Advanced settings and options | ð§ Coming Soon | +| Trading Strategies | AI trading strategy examples | ð§ Coming Soon | + +--- + +## ð Troubleshooting + +### Common Issues + +**Issue: TA-Lib not found** +```bash +# macOS +brew install ta-lib + +# Ubuntu/Debian +sudo apt-get install libta-lib0-dev +``` + +**Issue: Precision error** +- System auto-handles LOT_SIZE from exchange +- Check network connection +- Verify exchange API is accessible + +**Issue: AI API timeout** +- Check API key validity +- Verify network connection +- Check API balance/credits +- Timeout is set to 120 seconds + +**Issue: Frontend can't connect** +- Ensure backend is running (http://localhost:8080) +- Check if port 8080 is available +- Check browser console for errors + +--- + +## ð Usage Tips + +### Best Practices + +**1. Risk Management** +- Start with small amounts (100-500 USDT) +- Use subaccounts for additional safety +- Set reasonable leverage limits +- Monitor daily loss limits + +**2. Performance Monitoring** +- Check decision logs regularly +- Analyze win rate and profit factor +- Review AI reasoning (Chain of Thought) +- Track equity curve trends + +**3. Configuration** +- Test on testnet first +- Gradually increase trading amounts +- Adjust scan intervals (3-5 minutes recommended) +- Use default coin list for beginners + +--- + +## ð¯ Advanced Topics + +### Multi-Trader Competition +Run multiple AI models simultaneously: +- Qwen vs DeepSeek head-to-head +- Compare performance in real-time +- Identify best-performing strategies + +### Custom Coin Pools +- Use external API for coin selection +- Combine AI500 + OI Top data +- Filter by liquidity and volume + +### Exchange Integration +- Binance Futures (CEX) +- Hyperliquid (DEX) +- Aster DEX (Binance-compatible) + +--- + +## ð Understanding Metrics + +### Key Performance Indicators + +**Win Rate** +- Percentage of profitable trades +- Target: >50% for consistent profit + +**Profit Factor** +- Ratio of gross profit to gross loss +- Target: >1.5 (1.5:1 or better) + +**Sharpe Ratio** +- Risk-adjusted return measure +- Higher is better (>1.0 is good) + +**Maximum Drawdown** +- Largest peak-to-trough decline +- Keep under 20% for safety + +--- + +## ð Related Documentation + +- [Getting Started (EN)](../getting-started/README.md) - Initial setup +- [Getting Started (äžæ)](../getting-started/README.zh-CN.md) - åå§è®Ÿçœ® +- [Community](../community/README.md) - Contributing and bounties +- [FAQ (English)](faq.en.md) - Common questions +- [FAQ (äžæ)](faq.zh-CN.md) - åžžè§é®é¢ + +--- + +## ð Need Help? + +**Can't find what you need?** +- ð¬ [Telegram Community](https://t.me/nofx_dev_community) +- ð [GitHub Issues](https://github.com/tinkle-community/nofx/issues) +- ðŠ [Twitter @nofx_ai](https://x.com/nofx_ai) + +--- + +[â Back to Documentation Home](../README.md) diff --git a/docs/guides/README.zh-CN.md b/docs/guides/README.zh-CN.md new file mode 100644 index 00000000..2e358f6b --- /dev/null +++ b/docs/guides/README.zh-CN.md @@ -0,0 +1,137 @@ +# ð NOFX äœ¿çšæå + +**è¯èš:** [English](README.md) | [äžæ](README.zh-CN.md) + +åž®å©æšææäœ¿çš NOFX ç绌åæåã + +--- + +## ð å¯çšæå + +### ð§ åºç¡äœ¿çš + +| æå | æè¿° | ç¶æ | +|------|------|------| +| [FAQ (äžæ)](faq.zh-CN.md) | åžžè§é®é¢è§£ç | â å¯çš | +| [FAQ (English)](faq.en.md) | Frequently asked questions | â å¯çš | +| é 眮æå | é«çº§è®Ÿçœ®åé项 | ð§ å³å°æšåº | +| 亀æçç¥ | AI 亀æçç¥ç€ºäŸ | ð§ å³å°æšåº | + +--- + +## ð æ éæé€ + +### åžžè§é®é¢ + +**é®é¢ïŒæŸäžå° TA-Lib** +```bash +# macOS +brew install ta-lib + +# Ubuntu/Debian +sudo apt-get install libta-lib0-dev +``` + +**é®é¢ïŒç²ŸåºŠé误** +- ç³»ç»èªåšå€ç亀ææç LOT_SIZE +- æ£æ¥çœç»è¿æ¥ +- éªè¯äº€ææ API å¯è®¿é® + +**é®é¢ïŒAI API è¶ æ¶** +- æ£æ¥ API å¯é¥æææ§ +- éªè¯çœç»è¿æ¥ +- æ£æ¥ API äœé¢/é¢åºŠ +- è¶ æ¶è®Ÿçœ®äžº 120 ç§ + +**é®é¢ïŒåç«¯æ æ³è¿æ¥** +- ç¡®ä¿å端æ£åšè¿è¡ (http://localhost:8080) +- æ£æ¥ç«¯å£ 8080 æ¯åŠå¯çš +- æ£æ¥æµè§åšæ§å¶å°é误 + +--- + +## ð äœ¿çšæå·§ + +### æäœ³å®è·µ + +**1. é£é©ç®¡ç** +- ä»å°éé¢åŒå§ïŒ100-500 USDTïŒ +- 䜿çšå莊æ·å¢å å®å šæ§ +- 讟眮åççæ æéå¶ +- çæ§æ¯æ¥äºæéå¶ + +**2. æ§èœçæ§** +- å®ææ£æ¥å³çæ¥å¿ +- åæèçåçå©å å +- å®¡æ¥ AI æšçïŒæç»ŽéŸïŒ +- è·èžªæçæ²çº¿è¶å¿ + +**3. é 眮** +- å åšæµè¯çœæµè¯ +- 鿥å¢å 亀æéé¢ +- è°æŽæ«æéŽéïŒæšè 3-5 åéïŒ +- ååŠè 䜿çšé»è®€åžç§å衚 + +--- + +## ð¯ è¿é¶äž»é¢ + +### å€äº€æåç«èµ +åæ¶è¿è¡å€äžª AI æš¡åïŒ +- Qwen vs DeepSeek å¯¹å³ +- 宿¶æ¯èŸæ§èœ +- è¯å«è¡šç°æäœ³ççç¥ + +### èªå®ä¹åžç§æ± +- 䜿çšå€éš API è¿è¡åžç§éæ© +- ç»å AI500 + OI Top æ°æ® +- ææµåšæ§å亀æéè¿æ»€ + +### 亀ææéæ +- Binance FuturesïŒäžå¿å亀ææïŒ +- HyperliquidïŒå»äžå¿å亀ææïŒ +- Aster DEXïŒå Œå®¹ BinanceïŒ + +--- + +## ð çè§£ææ + +### å ³é®æ§èœææ + +**èçïŒWin RateïŒ** +- çå©äº€æççŸåæ¯ +- ç®æ ïŒ>50% 以è·åŸçš³å®çå© + +**çå©å åïŒProfit FactorïŒ** +- æ»çå©äžæ»äºæçæ¯ç +- ç®æ ïŒ>1.5ïŒ1.5:1 ææŽå¥œïŒ + +**倿®æ¯çïŒSharpe RatioïŒ** +- é£é©è°æŽåçæ¶çè¡¡é +- è¶é«è¶å¥œïŒ>1.0 䞺è¯å¥œïŒ + +**æå€§åæ€ïŒMaximum DrawdownïŒ** +- ä»å³°åŒå°è°·åŒçæå€§è·å¹ +- 䞺å®å šèµ·è§ä¿æåš 20% ä»¥äž + +--- + +## ð çžå ³ææ¡£ + +- [å¿«éåŒå§](../getting-started/README.zh-CN.md) - åå§è®Ÿçœ® +- [瀟åº](../community/README.md) - 莡ç®åæ¬èµ +- [FAQ äžæ](faq.zh-CN.md) - åžžè§é®é¢ +- [FAQ English](faq.en.md) - Common questions + +--- + +## ð éèŠåž®å©ïŒ + +**æŸäžå°æšéèŠçå 容ïŒ** +- ð¬ [Telegram 瀟åº](https://t.me/nofx_dev_community) +- ð [GitHub Issues](https://github.com/tinkle-community/nofx/issues) +- ðŠ [Twitter @nofx_ai](https://x.com/nofx_ai) + +--- + +[â è¿åææ¡£éŠé¡µ](../README.md) diff --git a/docs/guides/faq.en.md b/docs/guides/faq.en.md new file mode 100644 index 00000000..7b31142d --- /dev/null +++ b/docs/guides/faq.en.md @@ -0,0 +1,25 @@ +# Frequently Asked Questions + +## Binance Position Mode Error (code=-4061) + +**Error Message**: `Order's position side does not match user's setting` + +**Cause**: The system requires Hedge Mode (dual position), but your Binance account is set to One-way Mode. + +### Solution + +1. Login to [Binance Futures Trading Platform](https://www.binance.com/en/futures/BTCUSDT) + +2. Click **âïž Preferences** in the top right corner + +3. Select **Position Mode** + +4. Switch to **Hedge Mode** (Dual Position) + +5. Confirm the change + +**Note**: You must close all open positions before switching modes. + +--- + +For more issues, check [GitHub Issues](https://github.com/tinkle-community/nofx/issues) diff --git a/åžžè§é®é¢.md b/docs/guides/faq.zh-CN.md similarity index 100% rename from åžžè§é®é¢.md rename to docs/guides/faq.zh-CN.md diff --git a/docs/i18n/README.md b/docs/i18n/README.md new file mode 100644 index 00000000..7668cfb6 --- /dev/null +++ b/docs/i18n/README.md @@ -0,0 +1,231 @@ +# ð International Documentation / åœé åææ¡£ + +NOFX documentation is available in multiple languages. + +NOFX ææ¡£æäŸå€ç§è¯èšçæ¬ã + +--- + +## ð Available Languages / å¯çšè¯èš + +| Language | Main README | Status | Maintainers | +|----------|-------------|--------|-------------| +| ð¬ð§ **English** | [README.md](../../README.md) | â Complete | Core Team | +| ðšð³ **Chinese (äžæ)** | [README.md](zh-CN/README.md) | â Complete | Community | +| ð·ðº **Russian (Ð ÑÑÑкОй)** | [README.md](ru/README.md) | â Complete | Community | +| ðºðŠ **Ukrainian (УкÑаÑМÑÑка)** | [README.md](uk/README.md) | â Complete | Community | + +--- + +## ð Quick Access / å¿«éè®¿é® + +### English ð¬ð§ +- **Main README:** [../../README.md](../../README.md) +- **Contributing:** [../../CONTRIBUTING.md](../../CONTRIBUTING.md) +- **Security:** [../../SECURITY.md](../../SECURITY.md) + +### äžæ ðšð³ +- **äž» README:** [zh-CN/README.md](zh-CN/README.md) +- **èŽ¡ç®æå:** [../../CONTRIBUTING.md](../../CONTRIBUTING.md#äžæ) +- **å®å šæ¿ç:** [../../SECURITY.md](../../SECURITY.md#äžæ) +- **åžžè§é®é¢:** [../guides/faq.zh-CN.md](../guides/faq.zh-CN.md) + +### Ð ÑÑÑкОй ð·ðº +- **ÐÑМПвМПй README:** [ru/README.md](ru/README.md) +- **Ð ÑкПвПЎÑÑвП пП ÑÑаÑÑОÑ:** [../../CONTRIBUTING.md](../../CONTRIBUTING.md) +- **ÐПлОÑОка безПпаÑМПÑÑО:** [../../SECURITY.md](../../SECURITY.md) + +### УкÑаÑМÑÑка ðºðŠ +- **ÐПлПвМОй README:** [uk/README.md](uk/README.md) +- **ÐПÑÑбМОк Ñз вМеÑкÑв:** [../../CONTRIBUTING.md](../../CONTRIBUTING.md) +- **ÐПлÑÑОка безпекО:** [../../SECURITY.md](../../SECURITY.md) + +--- + +## ð€ Help with Translations / åž®å©ç¿»è¯ + +### Want to Contribute Translations? / æ³èŠèŽ¡ç®ç¿»è¯ïŒ + +We welcome translation contributions! / æä»¬æ¬¢è¿ç¿»è¯èŽ¡ç®ïŒ + +**What needs translation? / éèŠç¿»è¯ä»ä¹ïŒ** +- â Main README (complete for 4 languages) +- ð§ Deployment guides (partial) +- ð User guides (needed) +- ð Contributing guide (needed for RU/UK) + +**How to contribute translations? / åŠäœèŽ¡ç®ç¿»è¯ïŒ** + +1. **Check existing translations / æ£æ¥ç°æç¿»è¯** + - Browse this directory + - See what's missing + +2. **Claim a translation task / 讀é¢ç¿»è¯ä»»å¡** + - Open a GitHub Issue + - Title: `[TRANSLATION] Document name to Language` + - Example: `[TRANSLATION] CONTRIBUTING.md to Chinese` + +3. **Submit translation / æäº€ç¿»è¯** + - Follow [Contributing Guide](../../CONTRIBUTING.md) + - Place file in appropriate language folder + - Keep formatting and structure consistent + +4. **Get recognized / è·åŸè®€å¯** + - Listed as translator in credits + - Eligible for contributor badges + - Possible bounty rewards ($50-200) + +--- + +## ð Translation Guidelines / ç¿»è¯æå + +### File Naming Convention / æä»¶åœåè§è + +**Pattern:** `document-name.{language-code}.md` + +**Examples:** +``` +README.md â en (default) +docker-deploy.zh-CN.md â Chinese +docker-deploy.ru.md â Russian +faq.zh-CN.md â Chinese FAQ +``` + +**Language Codes:** +- `en` - English (default, no suffix needed) +- `zh-CN` - Simplified Chinese +- `ru` - Russian +- `uk` - Ukrainian +- `ja` - Japanese *(future)* +- `ko` - Korean *(future)* + +### Quality Standards / èŽšéæ å + +**Must have / å¿ é¡»å ·å€:** +- â Accurate technical terms +- â Natural, fluent language +- â Consistent terminology +- â Preserved formatting (markdown) +- â Working internal links + +**Avoid / é¿å :** +- â Machine translation without review +- â Inconsistent terminology +- â Broken links or formatting +- â Cultural insensitivity + +### Technical Terms / ææ¯æ¯è¯ + +**Keep in English (don't translate):** +- API, HTTP, REST, JSON +- Docker, Kubernetes +- GitHub, Git, Pull Request +- Specific tool names (Binance, Hyperliquid) + +**Example - Chinese:** +- â "å¯åš Docker 容åš" (start Docker container) +- â "å¯åš å€å 容åš" (transliterated Docker) + +--- + +## ð Request a New Language / è¯·æ±æ°è¯èš + +### Want NOFX in your language? / åžæ NOFX æ¯æäœ çè¯èšïŒ + +**Steps / æ¥éª€:** + +1. **Check if it's planned / æ£æ¥æ¯åŠå·²è®¡å** + - See list below + - Search GitHub Issues + +2. **Create a request / å建请æ±** + - Open GitHub Issue + - Title: `[TRANSLATION REQUEST] Language name` + - Explain: Number of potential users, your willingness to help + +3. **Volunteer to help / å¿æ¿åž®å©** + - Offer to translate + - Find other speakers to review + - Commit to maintaining updates + +### Planned Languages / 计åäžçè¯èš + +| Language | Status | Need Volunteers? | +|----------|--------|------------------| +| ð¯ðµ Japanese | ð Planned | â Yes | +| ð°ð· Korean | ð Planned | â Yes | +| ðªðž Spanish | ð Planned | â Yes | +| ð«ð· French | ð Planned | â Yes | +| ð©ðª German | ð Planned | â Yes | + +--- + +## ð¥ Translation Team / ç¿»è¯å¢é + +### Current Translators / åœåç¿»è¯è + +| Language | Translators | Status | +|----------|-------------|--------| +| ðšð³ Chinese | Community | Active | +| ð·ðº Russian | Community | Active | +| ðºðŠ Ukrainian | Community | Active | + +**Want to join the team? / æ³å å ¥å¢éïŒ** +- Contact on [Telegram](https://t.me/nofx_dev_community) +- Open an issue on GitHub +- DM [@nofx_ai](https://x.com/nofx_ai) on Twitter + +--- + +## ð Translation Progress / ç¿»è¯è¿åºŠ + +### Document Coverage / ææ¡£èŠçç + +| Document | EN | äžæ | РУ | УР| +|----------|----|----|----|----| +| Main README | â | â | â | â | +| CONTRIBUTING | â | â | ð§ | ð§ | +| CODE_OF_CONDUCT | â | â | ð§ | ð§ | +| SECURITY | â | â | ð§ | ð§ | +| Docker Deploy | â | â | â | â | +| FAQ | â | â | â | â | + +**Legend / åŸäŸ:** +- â Complete / 宿 +- ð§ In Progress / è¿è¡äž +- â Not Started / æªåŒå§ + +--- + +## ð¯ Priority Translations / äŒå ç¿»è¯ + +**High Priority / é«äŒå 级:** +1. CONTRIBUTING.md (all languages) +2. Docker deployment guides +3. FAQ sections + +**Medium Priority / äžäŒå 级:** +1. User guides +2. Troubleshooting docs +3. API reference + +**Low Priority / äœäŒå 级:** +1. Architecture docs (technical, less urgent) +2. Advanced configuration guides + +--- + +## ð Translation Help / ç¿»è¯åž®å© + +**Questions? / æé®é¢ïŒ** +- ð¬ Ask in [Telegram Community](https://t.me/nofx_dev_community) +- ð Open a [GitHub Issue](https://github.com/tinkle-community/nofx/issues) +- ð§ Contact maintainers + +**Resources / èµæº:** +- [Contributing Guide](../../CONTRIBUTING.md) - How to submit +- [Markdown Guide](https://www.markdownguide.org/) - Formatting reference + +--- + +[â Back to Documentation Home](../README.md) diff --git a/README.ru.md b/docs/i18n/ru/README.md similarity index 66% rename from README.ru.md rename to docs/i18n/ru/README.md index 2d2e6ff3..2feaa824 100644 --- a/README.ru.md +++ b/docs/i18n/ru/README.md @@ -6,10 +6,29 @@ [](LICENSE) [](https://amber.ac) -**ЯзÑкО / Languages:** [English](README.md) | [äžæ](README.zh-CN.md) | [УкÑаÑМÑÑка](README.uk.md) | [Ð ÑÑÑкОй](README.ru.md) +**ЯзÑкО / Languages:** [English](../../../README.md) | [äžæ](../zh-CN/README.md) | [УкÑаÑМÑÑка](../uk/README.md) | [Ð ÑÑÑкОй](../ru/README.md) **ÐÑОÑОалÑМÑй Twitter:** [@nofx_ai](https://x.com/nofx_ai) +**ð ÐПкÑЌеМÑаÑОÑ:** [ÐлавМаÑ](../../README.md) | [ÐаÑалП ÑабПÑÑ](../../getting-started/README.md) | [ÐÑÑМал ОзЌеМеМОй](../../../CHANGELOG.zh-CN.md) | [СППбÑеÑÑвП](../../community/README.md) + +--- + +## ð СПЎеÑжаМОе + +- [ð УМОвеÑÑалÑÐœÐ°Ñ AI ТПÑÐ³ÐŸÐ²Ð°Ñ ÐпеÑаÑÐžÐŸÐœÐœÐ°Ñ Ð¡ÐžÑÑеЌа](#-ÑМОвеÑÑалÑМаÑ-ai-ÑПÑгПваÑ-ПпеÑаÑОПММаÑ-ÑОÑÑеЌа) +- [ð¥ СППбÑеÑÑвП РазÑабПÑÑОкПв](#-ÑППбÑеÑÑвП-ÑазÑабПÑÑОкПв) +- [ð ЧÑП ÐПвПгП](#-ÑÑП-МПвПгП) +- [ðž СкÑОМÑПÑÑ](#-ÑкÑОМÑПÑÑ) +- [⚠ТекÑÑÐ°Ñ Ð ÐµÐ°Ð»ÐžÐ·Ð°ÑÐžÑ - ÐÑОпÑПвалÑÑМÑе Ð ÑМкО](#-ÑекÑÑаÑ-ÑеалОзаÑОÑ---кÑОпÑПвалÑÑМÑе-ÑÑМкО) +- [ð® ÐПÑÐŸÐ¶ÐœÐ°Ñ ÐаÑÑа](#-ЎПÑПжМаÑ-каÑÑа---ÑаÑÑОÑеМОе-Ма-ÑМОвеÑÑалÑМÑе-ÑÑМкО) +- [ðïž Ð¢ÐµÑ ÐœÐžÑеÑÐºÐ°Ñ ÐÑÑ ÐžÑекÑÑÑа](#ïž-ÑÐµÑ ÐœÐžÑеÑкаÑ-аÑÑ ÐžÑекÑÑÑа) +- [ð ÐÑÑÑÑÑй СÑаÑÑ](#-бÑÑÑÑÑй-ÑÑаÑÑ) +- [ð ЀÑМкÑОО Web-ОМÑеÑÑейÑа](#-ÑÑМкÑОО-web-ОМÑеÑÑейÑа) +- [â ïž ÐажМÑе ÐÑеЎÑпÑÐµÐ¶ÐŽÐµÐœÐžÑ ÐŸ РОÑÐºÐ°Ñ ](#ïž-важМÑе-пÑеЎÑпÑежЎеМОÑ-П-ÑОÑÐºÐ°Ñ ) +- [ð ïž ÐбÑОе ÐÑПблеЌÑ](#ïž-ПбÑОе-пÑПблеЌÑ) +- [ð ÐÑÑМал ÐзЌеМеМОй](#-жÑÑМал-ОзЌеМеМОй) + --- ## ð УМОвеÑÑалÑÐœÐ°Ñ AI ТПÑÐ³ÐŸÐ²Ð°Ñ ÐпеÑаÑÐžÐŸÐœÐœÐ°Ñ Ð¡ÐžÑÑеЌа @@ -74,7 +93,7 @@ NOFX ÑепеÑÑ Ð¿ÐŸÐŽÐŽÐµÑÐ¶ÐžÐ²Ð°ÐµÑ **ÑÑО ПÑМПвМÑе бОÑжО* **ÐÑÑÑÑÑй ÑÑаÑÑ:** 1. ÐПлÑÑОÑе пÑОваÑМÑй клÑÑ MetaMask (ÑЎалОÑе пÑеÑÐžÐºÑ `0x`) -2. УÑÑаМПвОÑе `"exchange": "hyperliquid"` в config.json +2. ~~УÑÑаМПвОÑе `"exchange": "hyperliquid"` в config.json~~ *ÐаÑÑÑПйÑе ÑеÑез веб-ОМÑеÑÑейÑ* 3. ÐПбавÑÑе `"hyperliquid_private_key": "your_key"` 4. ÐаÑМОÑе ÑПÑгПваÑÑ! @@ -109,15 +128,19 @@ NOFX ÑепеÑÑ Ð¿ÐŸÐŽÐŽÐµÑÐ¶ÐžÐ²Ð°ÐµÑ **ÑÑО ПÑМПвМÑе бОÑжО* ## ðž СкÑОМÑПÑÑ ### ð РежОЌ кПМкÑÑеМÑОО - ÐОÑва AI в ÑеалÑМПЌ вÑеЌеМО - + *ÐОЎеÑбПÑÐŽ Ñ ÐœÐµÑкПлÑкОЌО AI О гÑаÑОкО ÑÑÐ°Ð²ÐœÐµÐœÐžÑ Ð¿ÑПОзвПЎОÑелÑМПÑÑО в ÑеалÑМПЌ вÑеЌеМО пПказÑваÑÑ Ð±ÐžÑÐ²Ñ Qwen пÑПÑОв DeepSeek* ### ð ÐеÑалО ÑÑейЎеÑа - ÐÐŸÐ»ÐœÐ°Ñ ÑПÑÐ³ÐŸÐ²Ð°Ñ Ð¿Ð°ÐœÐµÐ»Ñ - + *ÐÑПÑеÑÑОПМалÑМÑй ÑПÑгПвÑй ОМÑеÑÑÐµÐ¹Ñ Ñ ÐºÑОвÑЌО капОÑала, жОвÑЌО пПзОÑОÑЌО О лПгаЌО ÑеÑеМОй AI Ñ ÑаÑкÑÑваеЌÑЌО Ð²Ñ ÐŸÐŽÐœÑЌО пÑПЌпÑаЌО О ÑепПÑкПй ÑаÑÑÑжЎеМОй* --- +> ð **ÐÑОЌеÑаМОе**: ÐÑП ÑпÑПÑÐµÐœÐœÐ°Ñ ÑÑÑÑÐºÐ°Ñ Ð²ÐµÑÑÐžÑ README. ÐÐ»Ñ Ð¿ÐŸÐ»ÑÑÐµÐœÐžÑ Ð¿ÐŸÐ»ÐœÐŸÐ¹ ÑÐµÑ ÐœÐžÑеÑкПй ЎПкÑЌеМÑаÑОО, вклÑÑÐ°Ñ Ð°ÑÑ ÐžÑекÑÑÑÑ ÑОÑÑеЌÑ, API-ОМÑеÑÑейÑÑ Ðž ÑаÑÑОÑеММÑе кПМÑОгÑÑаÑОО, ÑÐŒ. [ÐМглОйÑкÑÑ Ð²ÐµÑÑОÑ](../../../README.md) ОлО [ÐОÑайÑкÑÑ Ð²ÐµÑÑОÑ](../zh-CN/README.md). + +--- + ## âš ÐÑМПвМÑе вПзЌПжМПÑÑО ### ð РежОЌ кПМкÑÑеМÑОО МеÑкПлÑÐºÐžÑ AI @@ -173,6 +196,55 @@ NOFX ÑепеÑÑ Ð¿ÐŸÐŽÐŽÐµÑÐ¶ÐžÐ²Ð°ÐµÑ **ÑÑО ПÑМПвМÑе бОÑжО* --- +## ð® ÐПÑÐŸÐ¶ÐœÐ°Ñ ÐаÑÑа - РаÑÑОÑеМОе Ма УМОвеÑÑалÑМÑе Ð ÑМкО + +ÐОÑÑÐžÑ NOFX - ÑÑаÑÑ **УМОвеÑÑалÑМПй AI ТПÑгПвПй ÐпеÑаÑОПММПй СОÑÑеЌПй** ÐŽÐ»Ñ Ð²ÑÐµÑ ÑОМаМÑПвÑÑ ÑÑМкПв. + +**ÐОЎеМОе:** Та же аÑÑ ÐžÑекÑÑÑа. Та же агеМÑÐœÐ°Ñ ÑÑÑÑкÑÑÑа. ÐÑе ÑÑМкО. + +**РаÑÑОÑеМОе Ма Ð ÑМкО:** +- ð **ЀПМЎПвÑе Ð ÑМкО**: ÐкÑОО СКÐ, A-акÑОО, ÐПМкПМгÑÐºÐ°Ñ Ð±ÐžÑжа +- ð **Ð ÑМкО ЀÑÑÑеÑÑПв**: ТПваÑМÑе ÑÑÑÑеÑÑÑ, ОМЎекÑМÑе ÑÑÑÑеÑÑÑ +- ð¯ **ÐпÑÐžÐŸÐœÐœÐ°Ñ Ð¢ÐŸÑгПвлÑ**: ÐпÑÐžÐŸÐœÑ ÐœÐ° акÑОО, кÑОпÑП ПпÑÐžÐŸÐœÑ +- ð± **Ð ÑМкО ЀПÑекÑ**: ÐÑМПвМÑе валÑÑМÑе паÑÑ, кÑПÑÑ-кÑÑÑÑ + +**ÐÑеЎÑÑПÑÑОе ЀÑМкÑОО:** +- РаÑÑОÑеММÑе AI вПзЌПжМПÑÑО (GPT-4, Claude 3, Gemini Pro, гОбкОе ÑÐ°Ð±Ð»ÐŸÐœÑ Ð¿ÑПЌпÑПв) +- ÐПвÑе ОМÑегÑаÑОО бОÑж (OKX, Bybit, Lighter, EdgeX + CEX/Perp-DEX) +- РеÑакÑПÑОМг ÑÑÑÑкÑÑÑÑ Ð¿ÑПекÑа (вÑÑÐŸÐºÐ°Ñ ÑвÑзМПÑÑÑ, ÐœÐžÐ·ÐºÐ°Ñ ÑвÑзаММПÑÑÑ, пÑОМÑÐžÐ¿Ñ SOLID) +- УлÑÑÑÐµÐœÐžÑ Ð±ÐµÐ·ÐŸÐ¿Ð°ÑМПÑÑО (AES-256 ÑОÑÑПваМОе API клÑÑей, RBAC, ÑлÑÑÑÐµÐœÐžÑ 2FA) +- УлÑÑÑÐµÐœÐžÑ Ð¿ÐŸÐ»ÑзПваÑелÑÑкПгП ПпÑÑа (ЌПбОлÑМÑй ОМÑеÑÑейÑ, гÑаÑОкО TradingView, ÑОÑÑеЌа ПпПвеÑеМОй) + +ð **ÐÐ»Ñ Ð¿ÐŸÐŽÑПбМПй ЎПÑПжМПй каÑÑÑ Ðž ÑÑПкПв ÑÐŒ.:** +- **English:** [Roadmap Documentation](../../roadmap/README.md) +- **äžæ:** [è·¯çº¿åŸææ¡£](../../roadmap/README.zh-CN.md) + +--- + +## ðïž Ð¢ÐµÑ ÐœÐžÑеÑÐºÐ°Ñ ÐÑÑ ÐžÑекÑÑÑа + +NOFX пПÑÑÑПеМ Ма ÑПвÑеЌеММПй ЌПЎÑлÑМПй аÑÑ ÐžÑекÑÑÑе: + +- **Backend:** Go Ñ ÑÑейЌвПÑкПЌ Gin, база ЎаММÑÑ SQLite +- **Frontend:** React 18 + TypeScript + Vite + TailwindCSS +- **ÐПЎЎеÑжка ÐОÑж:** Binance, Hyperliquid, Aster DEX +- **ÐМÑегÑаÑÐžÑ AI:** DeepSeek, Qwen О пПлÑзПваÑелÑÑкОе OpenAI-ÑПвЌеÑÑОЌÑе API +- **УпÑавлеМОе СПÑÑПÑМОеЌ:** Zustand ÐŽÐ»Ñ ÑÑПМÑеМЎа, Ма ПÑМПве Ð±Ð°Ð·Ñ ÐŽÐ°ÐœÐœÑÑ ÐŽÐ»Ñ Ð±ÑкеМЎа +- **ÐÐ±ÐœÐŸÐ²Ð»ÐµÐœÐžÑ Ð² РеалÑМПЌ ÐÑеЌеМО:** SWR Ñ ÐžÐœÑеÑвалаЌО ПпÑПÑа 5-10 ÑекÑМЎ + +**ÐлÑÑевÑе ÐÑПбеММПÑÑО:** +- ðïž ÐПМÑОгÑÑаÑÐžÑ ÐœÐ° ПÑМПве Ð±Ð°Ð·Ñ ÐŽÐ°ÐœÐœÑÑ (бПлÑÑе МОкакПгП ÑеЎакÑОÑÐŸÐ²Ð°ÐœÐžÑ JSON) +- ð JWT аÑÑеМÑОÑОкаÑÐžÑ Ñ ÐŸÐ¿ÑОПМалÑМПй пПЎЎеÑжкПй 2FA +- ð ÐÑÑлежОваМОе пÑПОзвПЎОÑелÑМПÑÑО О аМалОÑОка в ÑеалÑМПЌ вÑеЌеМО +- ð€ РежОЌ кПМкÑÑеМÑОО Multi-AI Ñ Ð¶ÐžÐ²ÑÐŒ ÑÑавМеМОеЌ +- ð RESTful API ÐŽÐ»Ñ Ð²ÑÐµÑ ÐœÐ°ÑÑÑПек О ЌПМОÑПÑОМга + +ð **ÐÐ»Ñ Ð¿ÐŸÐŽÑПбМПй ЎПкÑЌеМÑаÑОО пП аÑÑ ÐžÑекÑÑÑе ÑÐŒ.:** +- **Ð ÑÑÑкОй:** [ÐПкÑЌеМÑаÑÐžÑ Ð¿ÐŸ ÐÑÑ ÐžÑекÑÑÑе](../../architecture/README.md) +- **äžæ:** [æ¶æææ¡£](../../architecture/README.zh-CN.md) + +--- + ## ð° РегОÑÑÑаÑÐžÑ Ð°ÐºÐºÐ°ÑМÑа Binance (ÐкПМПЌÑÑе Ма кПЌОÑÑОÑÑ !) ÐеÑеЎ ОÑпПлÑзПваМОеЌ ÑÑПй ÑОÑÑÐµÐŒÑ Ð²Ð°ÐŒ МÑжеМ аккаÑÐœÑ Binance Futures. **ÐÑпПлÑзÑйÑе МаÑÑ ÑеÑеÑалÑМÑÑ ÑÑÑÐ»ÐºÑ ÐŽÐ»Ñ Ð¿ÐŸÐ»ÑÑÐµÐœÐžÑ ÑкОЎкО Ма кПЌОÑÑОО:** @@ -824,103 +896,73 @@ curl http://localhost:8080/api/health ÐажЎÑй ÑОкл пÑОМÑÑÐžÑ ÑеÑеМОй (пП ÑЌПлÑÐ°ÐœÐžÑ 3 ЌОМÑÑÑ), ÑОÑÑеЌа ÑабПÑÐ°ÐµÑ Ð¿ÐŸ ÑлеЎÑÑÑÐµÐŒÑ Ð¿ÑПÑеÑÑÑ: -``` -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -â 1. ð ÐМалОз ОÑÑПÑОÑеÑкПй пÑПОзвПЎОÑелÑМПÑÑО â -â (пПÑлеЎМОе 20 ÑОклПв) â -âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ†-â â РаÑÑÐµÑ ÐŸÐ±ÑегП пÑПÑеМÑа вÑОгÑÑÑей, ÑÑеЎМей пÑОбÑлО, â -â ÑППÑМПÑÐµÐœÐžÑ Ð¿ÑОбÑлО/ÑбÑÑка â -â â СÑаÑОÑÑОка пП кажЎПй ЌПМеÑе (пÑПÑÐµÐœÑ Ð²ÑОгÑÑÑей, â -â ÑÑеЎМОй P/L в USDT) â -â â ÐпÑеЎелеМОе лÑÑÑÐžÑ /Ñ ÑÐŽÑÐžÑ ÐŒÐŸÐœÐµÑ Ð¿ÐŸ пÑПОзвПЎОÑелÑМПÑÑО â -â â СпОÑПк ЎеÑалей пПÑÐ»ÐµÐŽÐœÐžÑ 5 ÑЎелПк Ñ ÑПÑМÑÐŒ P/L â -â â РаÑÑÐµÑ ÐºÐŸÑÑÑОÑОеМÑа КаÑпа ÐŽÐ»Ñ ÐŸÑеМкО ÑОÑка â -â ð ÐÐÐÐÐ (v2.0.2): ТПÑМÑй P/L в USDT Ñ ÑÑеÑПЌ плеÑа â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ - â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -â 2. ð° ÐПлÑÑеМОе ÑПÑÑПÑÐœÐžÑ Ð°ÐºÐºÐ°ÑМÑа â -âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ†-â ⢠ÐапОÑал аккаÑМÑа, ЎПÑÑÑпМÑй балаМÑ, МеÑеалОзПваММÑй â -â P/L â -â ⢠ÐПлОÑеÑÑвП пПзОÑОй, ПбÑОй P/L (ÑеалОзПваММÑй + â -â МеÑеалОзПваММÑй) â -â ⢠ÐÑпПлÑзПваМОе ЌаÑжО (ÑекÑÑее/ЌакÑОЌалÑМПе) â -â ⢠ÐМЎОкаÑПÑÑ ÐŸÑеМкО ÑОÑка â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ - â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -â 3. ð ÐМалОз ÑÑÑеÑÑвÑÑÑÐžÑ Ð¿ÐŸÐ·ÐžÑОй (еÑлО еÑÑÑ) â -âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ†-â ⢠ÐПлÑÑеМОе ÑÑМПÑМÑÑ ÐŽÐ°ÐœÐœÑÑ ÐŽÐ»Ñ ÐºÐ°Ð¶ÐŽÐŸÐ¹ пПзОÑОО â -â (3-ЌОМÑÑМÑе + 4-ÑаÑПвÑе ÑвеÑО) â -â ⢠РаÑÑÐµÑ ÑÐµÑ ÐœÐžÑеÑÐºÐžÑ ÐžÐœÐŽÐžÐºÐ°ÑПÑПв (RSI, MACD, EMA) â -â ⢠ÐÑПбÑажеМОе ЎлОÑелÑМПÑÑО ÑЎеÑÐ¶Ð°ÐœÐžÑ Ð¿ÐŸÐ·ÐžÑОО â -â (МапÑОЌеÑ, "ÑЎеÑжОваеÑÑÑ 2 ÑаÑа 15 ЌОМÑÑ") â -â ⢠AI ПпÑеЎелÑеÑ, МÑжМП лО закÑÑÑÑ (Ñейк-пÑПÑОÑ, â -â ÑÑПп-лПÑÑ ÐžÐ»Ðž кПÑÑекÑОÑПвка) â -â ð ÐÐÐÐÐ (v2.0.2): ÐÑÑлежОваМОе ЎлОÑелÑМПÑÑО пПзОÑОО â -â Ð¿ÐŸÐŒÐŸÐ³Ð°ÐµÑ AI ÑеÑаÑÑ â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ - â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -â 4. ð¯ ÐÑеМка МПвÑÑ Ð²ÐŸÐ·ÐŒÐŸÐ¶ÐœÐŸÑÑей (пÑл каМЎОЎаÑПв ЌПМеÑ) â -âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ†-â ⢠ÐПлÑÑеМОе ÑПп-20 ÐŒÐŸÐœÐµÑ Ñ Ð²ÑÑПкОЌ ÑейÑОМгПЌ AI500 â -â ⢠ÐПлÑÑеМОе ÑПп-20 ÐŒÐŸÐœÐµÑ Ñ ÑаЌÑÐŒ бÑÑÑÑÑÐŒ ÑПÑÑПЌ OI â -â ⢠ÐбÑеЎОМеМОе, ÑЎалеМОе ÐŽÑблОкаÑПв, ÑОлÑÑÑаÑÐžÑ ÐŒÐŸÐœÐµÑ Ñ â -â МОзкПй лОквОЎМПÑÑÑÑ (OI < 15M USD) â -â ⢠ÐаÑÑПвПе пПлÑÑеМОе ÑÑМПÑМÑÑ ÐŽÐ°ÐœÐœÑÑ Ðž ÑÐµÑ ÐœÐžÑеÑÐºÐžÑ â -â ОМЎОкаÑПÑПв â -â ⢠ÐПЎгПÑПвка пПлМÑÑ Ð¿ÐŸÑлеЎПваÑелÑМПÑÑей ÑÑÑÑÑ ÐŽÐ°ÐœÐœÑÑ â -â ÐŽÐ»Ñ ÐºÐ°Ð¶ÐŽÐŸÐ¹ ЌПМеÑÑ-каМЎОЎаÑа â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ - â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -â 5. ð§ ÐПЌплекÑМПе ÑеÑеМОе AI â -âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ†-â ⢠ÐÑПÑЌПÑÑ ÐžÑÑПÑОÑеÑкПй ПбÑаÑМПй ÑвÑзО (пÑПÑÐµÐœÑ â -â вÑОгÑÑÑей, кПÑÑÑОÑÐžÐµÐœÑ P/L, лÑÑÑОе/Ñ ÑÐŽÑОе ЌПМеÑÑ) â -â ⢠ÐПлÑÑеМОе вÑÐµÑ ÐŽÐ°ÐœÐœÑÑ Ð¿ÐŸÑлеЎПваÑелÑМПÑÑей (ÑвеÑО, â -â ОМЎОкаÑПÑÑ, ПÑкÑÑÑÑй ОМÑеÑеÑ) â -â ⢠ÐМалОз Chain of Thought â -â ⢠ÐÑвПЎ ÑеÑеМОÑ: закÑÑÑÑ/ПÑкÑÑÑÑ/ÑЎеÑжОваÑÑ/МаблÑЎаÑÑ â -â ⢠ÐклÑÑÐ°ÐµÑ Ð¿Ð°ÑаЌеÑÑÑ Ð¿Ð»ÐµÑа, ÑазЌеÑа, ÑÑПп-лПÑÑа, â -â Ñейк-пÑПÑОÑа â -â ð ÐÐÐÐÐ (v2.0.2): AI ÐŒÐŸÐ¶ÐµÑ ÑвПбПЎМП аМалОзОÑПваÑÑ â -â ÑÑÑÑе пПÑлеЎПваÑелÑМПÑÑО, Ме ПгÑаМОÑеМ заÑаМее â -â ПпÑеЎелеММÑЌО ОМЎОкаÑПÑаЌО â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ - â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -â 6. â¡ ÐÑпПлМеМОе ÑЎелПк â -âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ†-â ⢠ÐÑОПÑОÑОзаÑОÑ: ÑМаÑала закÑÑÑОе, заÑеЌ ПÑкÑÑÑОе â -â ⢠ÐвÑПЌаÑОÑеÑÐºÐ°Ñ Ð°ÐŽÐ°Ð¿ÑаÑÐžÑ ÑПÑМПÑÑО (пÑавОла LOT_SIZE) â -â ⢠ÐÑеЎПÑвÑаÑеМОе ÐœÐ°ÐºÐŸÐ¿Ð»ÐµÐœÐžÑ Ð¿ÐŸÐ·ÐžÑОй (ПÑклПМеМОе â -â ÐŽÑблОÑÐŸÐ²Ð°ÐœÐžÑ ÐŒÐŸÐœÐµÑа/МапÑавлеМОе) â -â ⢠ÐвÑПЌаÑОÑеÑÐºÐ°Ñ ÐŸÑЌеМа вÑÐµÑ ÐŸÑЎеÑПв пПÑле закÑÑÑÐžÑ â -â ⢠ÐапОÑÑ Ð²ÑеЌеМО ПÑкÑÑÑÐžÑ ÐŽÐ»Ñ ÐŸÑÑÐ»ÐµÐ¶ÐžÐ²Ð°ÐœÐžÑ â -â ЎлОÑелÑМПÑÑО пПзОÑОО â -â ð ÐÐÐÐÐ (v2.0.2): ÐÑÑлежОваМОе вÑеЌеМО ПÑкÑÑÑÐžÑ â -â пПзОÑОО â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ - â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -â 7. ð ÐапОÑÑ Ð»ÐŸÐ³ÐŸÐ² â -âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ†-â â¢ Ð¡ÐŸÑ ÑаМеМОе пПлМПй запОÑО ÑеÑÐµÐœÐžÑ Ð² decision_logs/ â -â ⢠ÐклÑÑÐ°ÐµÑ ÑепПÑÐºÑ ÑаÑÑÑжЎеМОй, JSON ÑеÑеМОÑ, ÑМОЌПк â -â аккаÑМÑа, ÑезÑлÑÑаÑÑ ÐžÑÐ¿ÐŸÐ»ÐœÐµÐœÐžÑ â -â ⢠ХÑаМеМОе пПлМÑÑ ÐŽÐ°ÐœÐœÑÑ Ð¿ÐŸÐ·ÐžÑОО (кПлОÑеÑÑвП, плеÑП, â -â вÑÐµÐŒÑ ÐŸÑкÑÑÑОÑ/закÑÑÑОÑ) â -â ⢠ÐÑпПлÑзПваМОе клÑÑей symbol_side ÐŽÐ»Ñ Ð¿ÑеЎПÑвÑаÑÐµÐœÐžÑ â -â кПМÑлОкÑПв лПМг/ÑПÑÑ â -â ð ÐÐÐÐÐ (v2.0.2): ÐÑеЎПÑвÑаÑеМОе кПМÑлОкÑПв пÑО â -â ÑЎеÑжаМОО лПМг + ÑПÑÑ, ÑÑÐµÑ ÐºÐŸÐ»ÐžÑеÑÑва + плеÑа â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -``` +### Каг 1: ð ÐМалОз ОÑÑПÑОÑеÑкПй пÑПОзвПЎОÑелÑМПÑÑО (пПÑлеЎМОе 20 ÑОклПв) +- â РаÑÑÐµÑ ÐŸÐ±ÑегП пÑПÑеМÑа вÑОгÑÑÑей, ÑÑеЎМей пÑОбÑлО, ÑППÑМПÑÐµÐœÐžÑ Ð¿ÑОбÑлО/ÑбÑÑка +- â СÑаÑОÑÑОка пП кажЎПй ЌПМеÑе (пÑПÑÐµÐœÑ Ð²ÑОгÑÑÑей, ÑÑеЎМОй P/L в USDT) +- â ÐпÑеЎелеМОе лÑÑÑÐžÑ /Ñ ÑÐŽÑÐžÑ ÐŒÐŸÐœÐµÑ Ð¿ÐŸ пÑПОзвПЎОÑелÑМПÑÑО +- â СпОÑПк ЎеÑалей пПÑÐ»ÐµÐŽÐœÐžÑ 5 ÑЎелПк Ñ ÑПÑМÑÐŒ P/L +- â РаÑÑÐµÑ ÐºÐŸÑÑÑОÑОеМÑа КаÑпа ÐŽÐ»Ñ ÐŸÑеМкО ÑОÑка +- ð **ÐÐÐÐÐ (v2.0.2)**: ТПÑМÑй P/L в USDT Ñ ÑÑеÑПЌ плеÑа + +**â** + +### Каг 2: ð° ÐПлÑÑеМОе ÑПÑÑПÑÐœÐžÑ Ð°ÐºÐºÐ°ÑМÑа +- ÐапОÑал аккаÑМÑа, ЎПÑÑÑпМÑй балаМÑ, МеÑеалОзПваММÑй P/L +- ÐПлОÑеÑÑвП пПзОÑОй, ПбÑОй P/L (ÑеалОзПваММÑй + МеÑеалОзПваММÑй) +- ÐÑпПлÑзПваМОе ЌаÑжО (ÑекÑÑее/ЌакÑОЌалÑМПе) +- ÐМЎОкаÑПÑÑ ÐŸÑеМкО ÑОÑка + +**â** + +### Каг 3: ð ÐМалОз ÑÑÑеÑÑвÑÑÑÐžÑ Ð¿ÐŸÐ·ÐžÑОй (еÑлО еÑÑÑ) +- ÐПлÑÑеМОе ÑÑМПÑМÑÑ ÐŽÐ°ÐœÐœÑÑ ÐŽÐ»Ñ ÐºÐ°Ð¶ÐŽÐŸÐ¹ пПзОÑОО (3-ЌОМÑÑМÑе + 4-ÑаÑПвÑе ÑвеÑО) +- РаÑÑÐµÑ ÑÐµÑ ÐœÐžÑеÑÐºÐžÑ ÐžÐœÐŽÐžÐºÐ°ÑПÑПв (RSI, MACD, EMA) +- ÐÑПбÑажеМОе ЎлОÑелÑМПÑÑО ÑЎеÑÐ¶Ð°ÐœÐžÑ Ð¿ÐŸÐ·ÐžÑОО (МапÑОЌеÑ, "ÑЎеÑжОваеÑÑÑ 2 ÑаÑа 15 ЌОМÑÑ") +- AI ПпÑеЎелÑеÑ, МÑжМП лО закÑÑÑÑ (Ñейк-пÑПÑОÑ, ÑÑПп-лПÑÑ ÐžÐ»Ðž кПÑÑекÑОÑПвка) +- ð **ÐÐÐÐÐ (v2.0.2)**: ÐÑÑлежОваМОе ЎлОÑелÑМПÑÑО пПзОÑОО Ð¿ÐŸÐŒÐŸÐ³Ð°ÐµÑ AI ÑеÑаÑÑ + +**â** + +### Каг 4: ð¯ ÐÑеМка МПвÑÑ Ð²ÐŸÐ·ÐŒÐŸÐ¶ÐœÐŸÑÑей (пÑл каМЎОЎаÑПв ЌПМеÑ) +- ÐПлÑÑеМОе пÑла ÐŒÐŸÐœÐµÑ (2 ÑежОЌа): + - ð **РежОЌ пП ÑЌПлÑаМОÑ**: BTC, ETH, SOL, BNB, XRP О Ñ.ÐŽ. + - âïž **РаÑÑОÑеММÑй ÑежОЌ**: AI500 (ÑПп-20) + OI Top (ÑПп-20) +- ÐбÑеЎОМеМОе, ÑЎалеМОе ÐŽÑблОкаÑПв, ÑОлÑÑÑаÑÐžÑ ÐŒÐŸÐœÐµÑ Ñ ÐœÐžÐ·ÐºÐŸÐ¹ лОквОЎМПÑÑÑÑ (OI < 15M USD) +- ÐаÑÑПвПе пПлÑÑеМОе ÑÑМПÑМÑÑ ÐŽÐ°ÐœÐœÑÑ Ðž ÑÐµÑ ÐœÐžÑеÑÐºÐžÑ ÐžÐœÐŽÐžÐºÐ°ÑПÑПв +- ÐПЎгПÑПвка пПлМÑÑ Ð¿ÐŸÑлеЎПваÑелÑМПÑÑей ÑÑÑÑÑ ÐŽÐ°ÐœÐœÑÑ ÐŽÐ»Ñ ÐºÐ°Ð¶ÐŽÐŸÐ¹ ЌПМеÑÑ-каМЎОЎаÑа + +**â** + +### Каг 5: ð§ ÐПЌплекÑМПе ÑеÑеМОе AI +- ÐÑПÑЌПÑÑ ÐžÑÑПÑОÑеÑкПй ПбÑаÑМПй ÑвÑзО (пÑПÑÐµÐœÑ Ð²ÑОгÑÑÑей, кПÑÑÑОÑÐžÐµÐœÑ P/L, лÑÑÑОе/Ñ ÑÐŽÑОе ЌПМеÑÑ) +- ÐПлÑÑеМОе вÑÐµÑ ÐŽÐ°ÐœÐœÑÑ Ð¿ÐŸÑлеЎПваÑелÑМПÑÑей (ÑвеÑО, ОМЎОкаÑПÑÑ, ПÑкÑÑÑÑй ОМÑеÑеÑ) +- ÐМалОз Chain of Thought +- ÐÑвПЎ ÑеÑеМОÑ: закÑÑÑÑ/ПÑкÑÑÑÑ/ÑЎеÑжОваÑÑ/МаблÑЎаÑÑ +- ÐклÑÑÐ°ÐµÑ Ð¿Ð°ÑаЌеÑÑÑ Ð¿Ð»ÐµÑа, ÑазЌеÑа, ÑÑПп-лПÑÑа, Ñейк-пÑПÑОÑа +- ð **ÐÐÐÐÐ (v2.0.2)**: AI ÐŒÐŸÐ¶ÐµÑ ÑвПбПЎМП аМалОзОÑПваÑÑ ÑÑÑÑе пПÑлеЎПваÑелÑМПÑÑО, Ме ПгÑаМОÑеМ заÑаМее ПпÑеЎелеММÑЌО ОМЎОкаÑПÑаЌО + +**â** + +### Каг 6: â¡ ÐÑпПлМеМОе ÑЎелПк +- ÐÑОПÑОÑОзаÑОÑ: ÑМаÑала закÑÑÑОе, заÑеЌ ПÑкÑÑÑОе +- ÐвÑПЌаÑОÑеÑÐºÐ°Ñ Ð°ÐŽÐ°Ð¿ÑаÑÐžÑ ÑПÑМПÑÑО (пÑавОла LOT_SIZE) +- ÐÑеЎПÑвÑаÑеМОе ÐœÐ°ÐºÐŸÐ¿Ð»ÐµÐœÐžÑ Ð¿ÐŸÐ·ÐžÑОй (ПÑклПМеМОе ÐŽÑблОÑÐŸÐ²Ð°ÐœÐžÑ ÐŒÐŸÐœÐµÑа/МапÑавлеМОе) +- ÐвÑПЌаÑОÑеÑÐºÐ°Ñ ÐŸÑЌеМа вÑÐµÑ ÐŸÑЎеÑПв пПÑле закÑÑÑÐžÑ +- ÐапОÑÑ Ð²ÑеЌеМО ПÑкÑÑÑÐžÑ ÐŽÐ»Ñ ÐŸÑÑÐ»ÐµÐ¶ÐžÐ²Ð°ÐœÐžÑ ÐŽÐ»ÐžÑелÑМПÑÑО пПзОÑОО +- ð ÐÑÑлежОваМОе вÑеЌеМО ПÑкÑÑÑÐžÑ Ð¿ÐŸÐ·ÐžÑОО + +**â** + +### Каг 7: ð ÐапОÑÑ Ð»ÐŸÐ³ÐŸÐ² +- Ð¡ÐŸÑ ÑаМеМОе пПлМПй запОÑО ÑеÑÐµÐœÐžÑ Ð² `decision_logs/` +- ÐклÑÑÐ°ÐµÑ ÑепПÑÐºÑ ÑаÑÑÑжЎеМОй, JSON ÑеÑеМОÑ, ÑМОЌПк аккаÑМÑа, ÑезÑлÑÑаÑÑ ÐžÑÐ¿ÐŸÐ»ÐœÐµÐœÐžÑ +- Ð¥ÑаМеМОе пПлМÑÑ ÐŽÐ°ÐœÐœÑÑ Ð¿ÐŸÐ·ÐžÑОО (кПлОÑеÑÑвП, плеÑП, вÑÐµÐŒÑ ÐŸÑкÑÑÑОÑ/закÑÑÑОÑ) +- ÐÑпПлÑзПваМОе клÑÑей `symbol_side` ÐŽÐ»Ñ Ð¿ÑеЎПÑвÑаÑÐµÐœÐžÑ ÐºÐŸÐœÑлОкÑПв лПМг/ÑПÑÑ +- ð **ÐÐÐÐÐ (v2.0.2)**: ÐÑеЎПÑвÑаÑеМОе кПМÑлОкÑПв пÑО ÑЎеÑжаМОО лПМг + ÑПÑÑ, ÑÑÐµÑ ÐºÐŸÐ»ÐžÑеÑÑва + плеÑа + +**â** + +**ð (ÐПвÑÐŸÑ ÐºÐ°Ð¶ÐŽÑе 3-5 ЌОМÑÑ)** ### ÐлÑÑевÑе ÑлÑÑÑÐµÐœÐžÑ Ð² v2.0.2 @@ -1058,263 +1100,24 @@ sudo apt-get install libta-lib0-dev --- -## ð ÐÑÑПÑÐžÑ ÐžÐ·ÐŒÐµÐœÐµÐœÐžÐ¹ +## ð ÐÑÑМал ÐзЌеМеМОй -```json -{ - "traders": [ - { - "id": "qwen_trader", - "name": "Qwen AI Trader", - "ai_model": "qwen", - "binance_api_key": "ÐÐК_BINANCE_API_KEY", - "binance_secret_key": "ÐÐК_BINANCE_SECRET_KEY", - "use_qwen": true, - "qwen_key": "sk-xxxxx", - "scan_interval_minutes": 3, - "initial_balance": 1000.0 - }, - { - "id": "deepseek_trader", - "name": "DeepSeek AI Trader", - "ai_model": "deepseek", - "binance_api_key": "ÐÐК_BINANCE_API_KEY_2", - "binance_secret_key": "ÐÐК_BINANCE_SECRET_KEY_2", - "use_qwen": false, - "deepseek_key": "sk-xxxxx", - "scan_interval_minutes": 3, - "initial_balance": 1000.0 - } - ], - "use_default_coins": false, - "coin_pool_api_url": "http://x.x.x.x:xxx/api/ai500/list?auth=ÐÐК_AUTH", - "oi_top_api_url": "http://x.x.x.x:xxx/api/oi/top?auth=ÐÐК_AUTH", - "api_server_port": 8080 -} -``` +ð **ÐÐ»Ñ Ð¿ÐŸÐŽÑПбМПй ОÑÑПÑОО веÑÑОй О ПбМПвлеМОй ÑÐŒ.:** -**ÐÑОЌеÑÐ°ÐœÐžÑ Ðº кПМÑОгÑÑаÑОО:** -- `traders`: ÐаÑÑÑПйÑе 1-N ÑÑейЎеÑПв (ПЎОМ AI ОлО ÑПÑевМПваМОе МеÑкПлÑÐºÐžÑ AI) -- `id`: УМОкалÑМÑй ОЎеМÑОÑОкаÑÐŸÑ ÑÑейЎеÑа (ОÑпПлÑзÑеÑÑÑ ÐŽÐ»Ñ ÐŽÐžÑекÑПÑОО лПгПв) -- `ai_model`: "qwen" ОлО "deepseek" -- `binance_api_key/secret_key`: ÐажЎÑй ÑÑÐµÐ¹ÐŽÐµÑ ÐžÑпПлÑзÑÐµÑ ÐœÐµÐ·Ð°Ð²ÐžÑОЌÑй аккаÑÐœÑ Binance -- `initial_balance`: ÐаÑалÑМÑй Ð±Ð°Ð»Ð°ÐœÑ (ÐŽÐ»Ñ ÑаÑÑеÑа P/L%) -- `scan_interval_minutes`: ЊОкл пÑОМÑÑÐžÑ ÑеÑеМОй (ÑекПЌеМЎÑеÑÑÑ 3-5 ЌОМÑÑ) -- `use_default_coins`: **true** = ÐÑпПлÑзПваÑÑ 8 ПÑМПвМÑÑ ÐŒÐŸÐœÐµÑ Ð¿ÐŸ ÑЌПлÑÐ°ÐœÐžÑ | **false** = ÐÑпПлÑзПваÑÑ API пÑл ÐŒÐŸÐœÐµÑ (ÑекПЌеМЎÑеÑÑÑ ÐŽÐ»Ñ ÐœÐŸÐ²ÐžÑкПв: true) -- `coin_pool_api_url`: API пÑла ÐŒÐŸÐœÐµÑ AI500 (ПпÑОПМалÑМП, ОгМПÑОÑÑеÑÑÑ Ð¿ÑО use_default_coins=true) -- `oi_top_api_url`: API ПÑкÑÑÑПгП ОМÑеÑеÑа OI Top (ПпÑОПМалÑМП, еÑлО пÑÑÑП, ЎаММÑе OI Top пÑПпÑÑкаÑÑÑÑ) +- **Ð ÑÑÑкОй:** [CHANGELOG.zh-CN.md](../../../CHANGELOG.zh-CN.md) +- **English:** [CHANGELOG.md](../../../CHANGELOG.md) -**СпОÑПк ÐŒÐŸÐœÐµÑ Ð¿ÐŸ ÑЌПлÑаМОÑ** (кПгЎа `use_default_coins: true`): -- BTC, ETH, SOL, BNB, XRP, DOGE, ADA, HYPE +**ÐПÑлеЎМÑÑ ÐеÑÑОÑ:** v3.0.0 (2025-10-30) - ÐаÑÑÑÐ°Ð±ÐœÐ°Ñ Ð¢ÑаМÑÑПÑЌаÑÐžÑ ÐÑÑ ÐžÑекÑÑÑÑ -### 5. ÐапÑÑк ÑОÑÑÐµÐŒÑ - -**ÐапÑÑк backend (ÑОÑÑеЌа AI ÑПÑгПвлО + API ÑеÑвеÑ):** - -```bash -go build -o nofx -./nofx -``` - -**ÐапÑÑк frontend (веб-паМелÑ):** - -ÐÑкÑПйÑе МПвÑй ÑеÑЌОМал: - -```bash -cd web -npm run dev -``` - -**ÐПÑÑÑп к ОМÑеÑÑейÑÑ:** -``` -Ðеб-паМелÑ: http://localhost:3000 -API ÑеÑвеÑ: http://localhost:8080 -``` - -### 6. ÐÑÑаМПвка ÑОÑÑÐµÐŒÑ - -ÐажЌОÑе `Ctrl+C` в ÐŸÐ±ÐŸÐžÑ ÑеÑÐŒÐžÐœÐ°Ð»Ð°Ñ - ---- - -## â ïž ÐажМÑе пÑеЎÑпÑÐµÐ¶ÐŽÐµÐœÐžÑ ÐŸ ÑОÑÐºÐ°Ñ - -### ТПÑгПвÑе ÑОÑкО - -1. **Ð ÑМкО кÑОпÑПвалÑÑ ÑÑезвÑÑайМП вПлаÑОлÑМÑ**, ÑеÑÐµÐœÐžÑ AI Ме гаÑаМÑОÑÑÑÑ Ð¿ÑОбÑÐ»Ñ -2. **ТПÑÐ³ÐŸÐ²Ð»Ñ ÑÑÑÑеÑÑаЌО ОÑпПлÑзÑÐµÑ Ð¿Ð»ÐµÑП**, ÑбÑÑкО ЌПгÑÑ Ð¿ÑевÑÑОÑÑ ÐŸÑМПвМÑÑ ÑÑÐŒÐŒÑ -3. **ÐкÑÑÑеЌалÑМÑе ÑÑМПÑМÑе ÑÑлПвОÑ** ЌПгÑÑ Ð¿ÑОвеÑÑО к лОквОЎаÑОО -4. **ÐПЌОÑÑОО за ÑОМаМÑОÑПваМОе** ЌПгÑÑ Ð¿ÐŸÐ²Ð»ÐžÑÑÑ ÐœÐ° ÑÑПОЌПÑÑÑ ÑЎеÑÐ¶Ð°ÐœÐžÑ -5. **РОÑк лОквОЎМПÑÑО**: ÐекПÑПÑÑе ЌПМеÑÑ ÐŒÐŸÐ³ÑÑ ÐžÑпÑÑÑваÑÑ Ð¿ÑПÑкалÑзÑваМОе - -### Ð¢ÐµÑ ÐœÐžÑеÑкОе ÑОÑкО - -1. **ÐаЎеÑжка ÑеÑО** ÐŒÐŸÐ¶ÐµÑ Ð²ÑзваÑÑ Ð¿ÑПÑкалÑзÑваМОе ÑÐµÐœÑ -2. **ÐОЌОÑÑ API** ЌПгÑÑ Ð¿ÐŸÐ²Ð»ÐžÑÑÑ ÐœÐ° ОÑпПлМеМОе ÑЎелПк -3. **ТайЌ-аÑÑÑ AI API** ЌПгÑÑ Ð²ÑзваÑÑ ÑбПО ÑеÑеМОй -4. **СОÑÑеЌМÑе ПÑОбкО** ЌПгÑÑ Ð²ÑзваÑÑ ÐœÐµÐŸÐ¶ÐžÐŽÐ°ÐœÐœÐŸÐµ пПвеЎеМОе - -### РекПЌеМЎаÑОО пП ОÑпПлÑÐ·ÐŸÐ²Ð°ÐœÐžÑ - -â **РекПЌеМЎÑеÑÑÑ** -- ÐÑпПлÑзÑйÑе ÑПлÑкП ÑÑеЎÑÑва, пПÑеÑÑ ÐºÐŸÑПÑÑÑ Ð²Ñ ÐŒÐŸÐ¶ÐµÑе пПзвПлОÑÑ ÐŽÐ»Ñ ÑеÑÑОÑÐŸÐ²Ð°ÐœÐžÑ -- ÐаÑМОÑе Ñ ÐœÐµÐ±ÐŸÐ»ÑÑÐžÑ ÑÑЌЌ (ÑекПЌеМЎÑеÑÑÑ 100-500 USDT) -- РегÑлÑÑМП пÑПвеÑÑйÑе ÑПÑÑПÑМОе ÑабПÑÑ ÑОÑÑÐµÐŒÑ -- ÐÑÑлежОвайÑе ÐžÐ·ÐŒÐµÐœÐµÐœÐžÑ Ð±Ð°Ð»Ð°ÐœÑа ÑÑеÑа -- ÐМалОзОÑÑйÑе лПгО ÑеÑеМОй AI ÐŽÐ»Ñ Ð¿ÐŸÐœÐžÐŒÐ°ÐœÐžÑ ÑÑÑаÑегОО - -â **Ðе ÑекПЌеМЎÑеÑÑÑ** -- ÐМвеÑÑОÑПваÑÑ Ð²Ñе ÑÑеЎÑÑва ОлО заеЌМÑе ЎеМÑгО -- ÐапÑÑкаÑÑ Ð±ÐµÐ· пÑОÑЌПÑÑа Ма ЎлОÑелÑМÑе пеÑÐžÐŸÐŽÑ -- СлепП ЎПвеÑÑÑÑ ÑеÑеМОÑÐŒ AI -- ÐÑпПлÑзПваÑÑ Ð±ÐµÐ· Ð¿ÐŸÐœÐžÐŒÐ°ÐœÐžÑ ÑОÑÑÐµÐŒÑ -- ÐапÑÑкаÑÑ Ð²ÐŸ вÑÐµÐŒÑ ÑкÑÑÑеЌалÑМПй вПлаÑОлÑМПÑÑО ÑÑМка - ---- - -## ð ïž Ð§Ð°ÑÑÑе пÑÐŸÐ±Ð»ÐµÐŒÑ - -### 1. ÐÑОбка кПЌпОлÑÑОО: TA-Lib Ме МайЎеМа - -**РеÑеМОе**: УÑÑаМПвОÑе бОблОПÑÐµÐºÑ TA-Lib -```bash -# macOS -brew install ta-lib - -# Ubuntu -sudo apt-get install libta-lib0-dev -``` - -### 2. ÐÑОбка ÑПÑМПÑÑО: ТПÑМПÑÑÑ Ð¿ÑевÑÑÐ°ÐµÑ ÐŒÐ°ÐºÑОЌÑÐŒ - -**РеÑеМОе**: СОÑÑеЌа авÑПЌаÑОÑеÑкО ПбÑабаÑÑÐ²Ð°ÐµÑ ÑПÑМПÑÑÑ ÐžÐ· Binance LOT_SIZE. ÐÑлО ПÑОбка ÑÐŸÑ ÑаМÑеÑÑÑ, пÑПвеÑÑÑе ÑеÑевПе пПЎклÑÑеМОе. - -### 3. ТайЌ-аÑÑ AI API - -**РеÑеМОе**: -- ÐÑПвеÑÑÑе пÑавОлÑМПÑÑÑ API клÑÑа -- ÐÑПвеÑÑÑе ÑеÑевПе пПЎклÑÑеМОе (ÐŒÐŸÐ¶ÐµÑ Ð¿ÐŸÑÑебПваÑÑÑÑ Ð¿ÑПкÑО) -- ТайЌ-аÑÑ ÑОÑÑÐµÐŒÑ ÑÑÑаМПвлеМ Ма 120 ÑекÑМЎ - -### 4. Frontend Ме ÐŒÐŸÐ¶ÐµÑ Ð¿ÐŸÐŽÐºÐ»ÑÑОÑÑÑÑ Ðº backend - -**РеÑеМОе**: -- УбеЎОÑеÑÑ, ÑÑП backend запÑÑеМ (http://localhost:8080) -- ÐÑПвеÑÑÑе, Ме заМÑÑ Ð»Ðž пПÑÑ 8080 -- ÐÑПвеÑÑÑе ПÑОбкО в кПМÑПлО бÑаÑзеÑа - -### 5. СбПй API пÑла ÐŒÐŸÐœÐµÑ - -**РеÑеМОе**: -- API пÑла ÐŒÐŸÐœÐµÑ ÐŸÐ¿ÑОПМалеМ -- ÐÑлО API Ме ÑабПÑаеÑ, ÑОÑÑеЌа ОÑпПлÑзÑÐµÑ ÐŸÑМПвМÑе ЌПМеÑÑ Ð¿ÐŸ ÑЌПлÑÐ°ÐœÐžÑ (BTC, ETH О Ñ.ÐŽ.) -- ÐÑПвеÑÑÑе URL API О паÑаЌеÑÑ auth в config.json - ---- - -## ð ÐОÑÐµÐœÐ·ÐžÑ - -ÐОÑÐµÐœÐ·ÐžÑ MIT - СЌ. Ñайл [LICENSE](LICENSE) ÐŽÐ»Ñ ÐŽÐµÑалей - ---- - -## ð€ ÐклаЎ в пÑÐŸÐµÐºÑ - -ÐÑОвеÑÑÑвÑÑÑÑÑ Issues О Pull Requests! - -### Ð ÑкПвПЎÑÑвП пП ÑазÑабПÑке - -1. СЎелайÑе Fork пÑПекÑа -2. СПзЎайÑе веÑÐºÑ ÑÑМкÑОО (`git checkout -b feature/AmazingFeature`) -3. ÐаÑОкÑОÑÑйÑе ÐžÐ·ÐŒÐµÐœÐµÐœÐžÑ (`git commit -m 'Add some AmazingFeature'`) -4. ÐÑпÑавÑÑе в веÑÐºÑ (`git push origin feature/AmazingFeature`) -5. ÐÑкÑПйÑе Pull Request - ---- - -## ð¬ ÐПМÑакÑÑ - -- **Twitter/X**: [@Web3Tinkle](https://x.com/Web3Tinkle) -- **GitHub Issues**: [СПзЎаÑÑ Issue](https://github.com/tinkle-community/nofx/issues) - ---- - -## ð ÐлагПЎаÑМПÑÑО - -- [Binance API](https://binance-docs.github.io/apidocs/futures/en/) - Binance Futures API -- [DeepSeek](https://platform.deepseek.com/) - DeepSeek AI API -- [Qwen](https://dashscope.aliyuncs.com/) - Alibaba Cloud Qwen -- [TA-Lib](https://ta-lib.org/) - ÐОблОПÑека ÑÐµÑ ÐœÐžÑеÑÐºÐžÑ ÐžÐœÐŽÐžÐºÐ°ÑПÑПв -- [Recharts](https://recharts.org/) - ÐОблОПÑека гÑаÑОкПв React - ---- - -## ð ÐÑÑПÑÐžÑ ÐžÐ·ÐŒÐµÐœÐµÐœÐžÐ¹ - -### v2.0.2 (2025-10-29) - -**ÐÑОÑОÑеÑкОе ОÑпÑÐ°Ð²Ð»ÐµÐœÐžÑ ÐŸÑОбПк - ÐÑÑПÑÐžÑ ÑЎелПк О аМалОз пÑПОзвПЎОÑелÑМПÑÑО:** - -ÐÑа веÑÑÐžÑ ÐžÑпÑавлÑÐµÑ **кÑОÑОÑеÑкОе ПÑОбкО ÑаÑÑеÑа** в ÑОÑÑеЌе ОÑÑПÑОÑеÑÐºÐžÑ Ð·Ð°Ð¿ÐžÑей ÑЎелПк О аМалОза пÑПОзвПЎОÑелÑМПÑÑО, кПÑПÑÑе зМаÑОÑелÑМП влОÑлО Ма ÑÑаÑОÑÑÐžÐºÑ Ð¿ÑОбÑлÑМПÑÑО. - -**1. РаÑÑÐµÑ P/L - ÐÑпÑавлеМОе кÑÑпМПй ПÑОбкО** (logger/decision_logger.go) -- **ÐÑПблеЌа**: РаМее P/L ÑаÑÑÑОÑÑвалÑÑ ÑПлÑкП как пÑПÑеМÑ, пПлМПÑÑÑÑ ÐžÐ³ÐœÐŸÑОÑÑÑ ÑÐ°Ð·ÐŒÐµÑ Ð¿ÐŸÐ·ÐžÑОО О плеÑП - - ÐÑОЌеÑ: ÐПзОÑÐžÑ 100 USDT Ñ ÐŽÐŸÑ ÐŸÐŽÐŸÐŒ 5% О пПзОÑÐžÑ 1000 USDT Ñ ÐŽÐŸÑ ÐŸÐŽÐŸÐŒ 5% Пбе пПказÑвалО `5.0` как пÑОбÑÐ»Ñ - - ÐÑП ЎелалП аМалОз пÑПОзвПЎОÑелÑМПÑÑО пПлМПÑÑÑÑ ÐœÐµÑПÑМÑÐŒ -- **РеÑеМОе**: ТепеÑÑ ÑаÑÑÑОÑÑваеÑÑÑ ÑакÑОÑеÑÐºÐ°Ñ Ð¿ÑОбÑÐ»Ñ Ð² USDT - ``` - P/L (USDT) = СÑПОЌПÑÑÑ Ð¿ÐŸÐ·ÐžÑОО à ÐзЌеМеМОе ÑÐµÐœÑ % à ÐлеÑП - ÐÑОЌеÑ: 1000 USDT à 5% à 20x = 1000 USDT ÑакÑОÑеÑкПй пÑОбÑлО - ``` -- **ÐлОÑМОе**: ÐÑПÑÐµÐœÑ Ð²ÑОгÑÑÑей, кПÑÑÑОÑÐžÐµÐœÑ Ð¿ÑОбÑлО О кПÑÑÑОÑÐžÐµÐœÑ ÐšÐ°Ñпа ÑепеÑÑ ÐŸÑÐœÐŸÐ²Ð°ÐœÑ ÐœÐ° ÑПÑМÑÑ ÑÑÐŒÐŒÐ°Ñ USDT - -**2. ÐÑÑлежОваМОе пПзОÑОй - ÐÑÑÑÑÑÑвОе кÑОÑОÑеÑÐºÐžÑ ÐŽÐ°ÐœÐœÑÑ ** -- **ÐÑПблеЌа**: ÐапОÑО ПÑкÑÑÑÑÑ Ð¿ÐŸÐ·ÐžÑОй Ñ ÑаМОлО ÑПлÑкП ÑÐµÐœÑ Ðž вÑеЌÑ, пÑПпÑÑÐºÐ°Ñ ÐºÐŸÐ»ÐžÑеÑÑвП О плеÑП -- **РеÑеМОе**: ТепеÑÑ Ñ ÑÐ°ÐœÐžÑ Ð¿ÐŸÐ»ÐœÑе ÑПÑгПвÑе ЎаММÑе: - - `quantity`: Ð Ð°Ð·ÐŒÐµÑ Ð¿ÐŸÐ·ÐžÑОО (в ЌПМеÑÐ°Ñ ) - - `leverage`: ÐМПжОÑÐµÐ»Ñ Ð¿Ð»ÐµÑа (МапÑОЌеÑ, 20x) - - ÐÑО ЎаММÑе ÐœÐµÐŸÐ±Ñ ÐŸÐŽÐžÐŒÑ ÐŽÐ»Ñ ÑПÑМПгП ÑаÑÑеÑа P/L - -**3. ÐПгОка клÑÑа пПзОÑОО - ÐПМÑÐ»ÐžÐºÑ Long/Short** -- **ÐÑПблеЌа**: ÐÑпПлÑзПвалÑÑ `symbol` как клÑÑ Ð¿ÐŸÐ·ÐžÑОО, ÑÑП вÑзÑвалП кПМÑлОкÑÑ ÐŽÐ°ÐœÐœÑÑ Ð¿ÑО ПЎМПвÑеЌеММПЌ ÑЎеÑжаМОО лПМгПв О ÑПÑÑПв - - ÐÑОЌеÑ: BTCUSDT лПМг О BTCUSDT ÑПÑÑ Ð¿ÐµÑезапОÑÑвалО ÐŽÑÑг ÐŽÑÑга -- **РеÑеМОе**: ÐзЌеМеМП Ма ÑПÑÐŒÐ°Ñ `symbol_side` (МапÑОЌеÑ, `BTCUSDT_long`, `BTCUSDT_short`) - - ТепеÑÑ Ð¿ÑавОлÑМП ÑазлОÑÐ°ÐµÑ Ð»ÐŸÐœÐ³ О ÑПÑÑ Ð¿ÐŸÐ·ÐžÑОО - -**4. РаÑÑÐµÑ ÐºÐŸÑÑÑОÑОеМÑа КаÑпа - ÐпÑОЌОзаÑÐžÑ ÐºÐŸÐŽÐ°** -- **ÐÑПблеЌа**: ÐÑпПлÑзПвалÑÑ Ð¿ÐŸÐ»ÑзПваÑелÑÑкОй ЌеÑПЎ ÐÑÑÑПМа ÐŽÐ»Ñ ÑаÑÑеÑа кваЎÑаÑМПгП кПÑÐœÑ -- **РеÑеМОе**: ÐаЌеМеМ Ма ÑÑаМЎаÑÑМÑÑ Ð±ÐžÐ±Ð»ÐžÐŸÑÐµÐºÑ `math.Sqrt` - - ÐПлее МаЎежМÑй, пПЎЎеÑжОваеЌÑй О ÑÑÑекÑОвМÑй - -**ÐПÑÐµÐŒÑ ÑÑП ПбМПвлеМОе важМП:** -- â ÐÑÑПÑОÑеÑÐºÐ°Ñ ÑÑаÑОÑÑОка ÑЎелПк ÑепеÑÑ Ð¿ÐŸÐºÐ°Ð·ÑÐ²Ð°ÐµÑ **ÑеалÑМÑÑ Ð¿ÑОбÑлÑ/ÑбÑÑПк в USDT** вЌеÑÑП беÑÑÐŒÑÑлеММÑÑ Ð¿ÑПÑеМÑПв -- â СÑавМеМОе пÑПОзвПЎОÑелÑМПÑÑО ÐŒÐµÐ¶ÐŽÑ ÑЎелкаЌО Ñ ÑазМÑÐŒ плеÑПЌ ÑепеÑÑ ÑПÑМП -- â ÐÐµÑ Ð°ÐœÐžÐ·ÐŒ ÑаЌППбÑÑÐµÐœÐžÑ AI пПлÑÑÐ°ÐµÑ Ð¿ÑавОлÑМÑÑ ÐžÑÑПÑОÑеÑкÑÑ ÐŸÐ±ÑаÑМÑÑ ÑвÑÐ·Ñ -- â РаÑÑеÑÑ ÐºÐŸÑÑÑОÑОеМÑа пÑОбÑлО О кПÑÑÑОÑОеМÑа КаÑпа ÑепеÑÑ ÐžÐŒÐµÑÑ ÑÐŒÑÑл -- â ÐÑÑлежОваМОе МеÑкПлÑÐºÐžÑ Ð¿ÐŸÐ·ÐžÑОй (лПМг + ÑПÑÑ ÐŸÐŽÐœÐŸÐ²ÑеЌеММП) ÑепеÑÑ ÑабПÑÐ°ÐµÑ Ð¿ÑавОлÑМП - -**РекПЌеМЎаÑОÑ**: ÐÑлО Ð²Ñ Ð·Ð°Ð¿ÑÑкалО ÑОÑÑÐµÐŒÑ ÐŽÐŸ ÑÑПгП ПбМПвлеМОÑ, ваÑа ОÑÑПÑОÑеÑÐºÐ°Ñ ÑÑаÑОÑÑОка бÑла МеÑПÑМПй. ÐПÑле ÐŸÐ±ÐœÐŸÐ²Ð»ÐµÐœÐžÑ ÐŽÐŸ v2.0.2, МПвÑе ÑЎелкО бÑÐŽÑÑ ÑаÑÑÑОÑÑваÑÑÑÑ Ð¿ÑавОлÑМП. - -### v2.0.1 (2025-10-29) - -**ÐÑпÑÐ°Ð²Ð»ÐµÐœÐžÑ ÐŸÑОбПк:** -- â ÐÑпÑавлеМа лПгОка ПбÑабПÑкО ЎаММÑÑ ComparisonChart - пеÑÐµÑ ÐŸÐŽ ÐŸÑ Ð³ÑÑппОÑПвкО пП cycle_number к timestamp -- â РеÑеМа пÑПблеЌа заЌПÑÐ°Ð¶ÐžÐ²Ð°ÐœÐžÑ Ð³ÑаÑОка пÑО пеÑезапÑÑке backend О ÑбÑПÑе cycle_number -- â УлÑÑÑеМП ПÑПбÑажеМОе ЎаММÑÑ Ð³ÑаÑОка - ÑепеÑÑ Ð¿ÐŸÐºÐ°Ð·ÑÐ²Ð°ÐµÑ Ð²Ñе ОÑÑПÑОÑеÑкОе ÑПÑкО в Ñ ÑПМПлПгОÑеÑкПЌ пПÑÑЎке -- â УлÑÑÑеММÑе ПÑлаЎПÑМÑе лПгО ÐŽÐ»Ñ Ð»ÑÑÑей ЎОагМПÑÑОкО - -### v2.0.0 (2025-10-28) - -**ÐÑМПвМÑе ПбМПвлеМОÑ:** -- â ÐÐµÑ Ð°ÐœÐžÐ·ÐŒ ÑаЌППбÑÑÐµÐœÐžÑ AI (ОÑÑПÑОÑеÑкОй аМалОз, аМалОз пÑПОзвПЎОÑелÑМПÑÑО) -- â РежОЌ кПМкÑÑеМÑОО МеÑкПлÑÐºÐžÑ ÑÑейЎеÑПв (Qwen vs DeepSeek) -- â UI в ÑÑОле Binance (Ð¿ÐŸÐ»ÐœÐ°Ñ ÐžÐŒÐžÑаÑÐžÑ ÐžÐœÑеÑÑейÑа Binance) -- â ÐÑаÑОкО ÑÑÐ°Ð²ÐœÐµÐœÐžÑ Ð¿ÑПОзвПЎОÑелÑМПÑÑО (ÑÑавМеМОе ROI в ÑеалÑМПЌ вÑеЌеМО) -- â ÐпÑОЌОзаÑÐžÑ ÐºÐŸÐœÑÑÐŸÐ»Ñ ÑОÑкПв (кПÑÑекÑОÑПвка лОЌОÑа пПзОÑОО пП ЌПМеÑаЌ) - ---- - -**ÐПÑлеЎМее ПбМПвлеМОе**: 2025-10-29 (v2.0.2) +**ÐеЎавМОе ÐÑМПвМÑе ÐПЌеМÑÑ:** +- ð ÐÐŸÐ»ÐœÐ°Ñ Ð¿ÐµÑеÑабПÑка ÑОÑÑÐµÐŒÑ Ñ Ð²ÐµÐ±-кПМÑОгÑÑаÑОей +- ðïž ÐÑÑ ÐžÑекÑÑÑа Ма ПÑМПве Ð±Ð°Ð·Ñ ÐŽÐ°ÐœÐœÑÑ (SQLite) +- ðš ÐОкакПгП ÑеЎакÑОÑÐŸÐ²Ð°ÐœÐžÑ JSON - вÑÑ ÐºÐŸÐœÑОгÑÑаÑÐžÑ ÑеÑез веб-ОМÑеÑÑÐµÐ¹Ñ +- ð§ ÐПЌбОМОÑÑйÑе AI ЌПЎелО Ñ Ð»ÑбПй бОÑжей +- ð РаÑÑОÑеММÑй API ÑлПй Ñ ÐºÐŸÐŒÐ¿Ð»ÐµÐºÑМÑЌО ÑМЎпПОМÑаЌО +- ð ÐÑÑеМÑОÑОкаÑÐžÑ JWT + пПЎЎеÑжка 2FA +- ð ÐПЎЎеÑжка каÑÑПЌМÑÑ API (ÑПвЌеÑÑОЌÑÑ Ñ OpenAI) +- ð СОÑÑеЌа ÑаблПМПв пÑПЌпÑПв Ñ ÑЎалеММПй аÑÑеМÑОÑОкаÑОей **â¡ ÐÑÑлеЎÑйÑе вПзЌПжМПÑÑО кПлОÑеÑÑвеММПй ÑПÑгПвлО Ñ ÑОлПй AI!** diff --git a/README.uk.md b/docs/i18n/uk/README.md similarity index 68% rename from README.uk.md rename to docs/i18n/uk/README.md index 0ec6d5df..19d506ef 100644 --- a/README.uk.md +++ b/docs/i18n/uk/README.md @@ -6,10 +6,30 @@ [](LICENSE) [](https://amber.ac) -**ÐПвО / Languages:** [English](README.md) | [äžæ](README.zh-CN.md) | [УкÑаÑМÑÑка](README.uk.md) | [Ð ÑÑÑкОй](README.ru.md) +**ÐПвО / Languages:** [English](../../../README.md) | [äžæ](../zh-CN/README.md) | [УкÑаÑМÑÑка](../uk/README.md) | [Ð ÑÑÑкОй](../ru/README.md) **ÐÑÑÑÑйМОй Twitter:** [@nofx_ai](https://x.com/nofx_ai) +**ð ÐПкÑЌеМÑаÑÑÑ:** [ÐПлПвМа](../../README.md) | [ÐПÑаÑПк ÑПбПÑО](../../getting-started/README.md) | [СпÑлÑМПÑа](../../community/README.md) | [ÐÑÑМал ÐÐŒÑМ](../../../CHANGELOG.md) + +--- + +## ð ÐÐŒÑÑÑ + +- [ð УМÑвеÑÑалÑМа AI ТПÑгПва ÐпеÑаÑÑйМа СОÑÑеЌа](#-ÑМÑвеÑÑалÑМа-ai-ÑПÑгПва-ПпеÑаÑÑйМа-ÑОÑÑеЌа) +- [ð¥ СпÑлÑМПÑа ÑПзÑПбМОкÑв](#-ÑпÑлÑМПÑа-ÑПзÑПбМОкÑв) +- [ð ÐÑÑÐ°ÐœÐœÑ ÐŸÐœÐŸÐ²Ð»ÐµÐœÐœÑ](#-ПÑÑаММÑ-ПМПвлеММÑ) +- [ðïž Ð¢ÐµÑ ÐœÑÑМа ÐÑÑ ÑÑекÑÑÑа](#ïž-ÑÐµÑ ÐœÑÑМа-аÑÑ ÑÑекÑÑÑа) +- [ðž СОÑÑÐµÐŒÐœÑ Ð¡ÐºÑÑМÑПÑО](#-ÑОÑÑеЌМÑ-ÑкÑÑМÑПÑО) +- [ð® КвОЎкОй СÑаÑÑ](#-ÑвОЎкОй-ÑÑаÑÑ) +- [ð AI ÐПЎелÑ](#-ai-ЌПЎелÑ) +- [ð ÐглÑÐŽ ÐÑПЎÑкÑОвМПÑÑÑ](#-ПглÑÐŽ-пÑПЎÑкÑОвМПÑÑÑ) +- [ð ÐÑÑеМзÑÑ](#-лÑÑеМзÑÑ) +- [ð€ ÐМеÑПк Ñ Ð¿ÑПÑкÑ](#-вМеÑПк-Ñ-пÑПÑкÑ) +- [ð¬ ÐПМÑакÑО](#-кПМÑакÑО) +- [ð ÐПЎÑкО](#-пПЎÑкО) +- [ð ÐÑÑМал ÐÐŒÑМ](#-жÑÑМал-зЌÑМ) + --- ## ð УМÑвеÑÑалÑМа AI ТПÑгПва ÐпеÑаÑÑйМа СОÑÑеЌа @@ -74,7 +94,7 @@ NOFX ÑÐµÐ¿ÐµÑ Ð¿ÑÐŽÑÑОЌÑÑ **ÑÑО ПÑÐœÐŸÐ²ÐœÑ Ð±ÑÑжÑ**: Binance **КвОЎкОй ÑÑаÑÑ:** 1. ÐÑÑОЌайÑе пÑОваÑМОй клÑÑ MetaMask (вОЎалÑÑÑ Ð¿ÑеÑÑÐºÑ `0x`) -2. ÐÑÑаМПвÑÑÑ `"exchange": "hyperliquid"` в config.json +2. ~~ÐÑÑаМПвÑÑÑ `"exchange": "hyperliquid"` в config.json~~ *ÐалаÑÑÑйÑе ÑеÑез веб-ÑМÑеÑÑейÑ* 3. ÐПЎайÑе `"hyperliquid_private_key": "your_key"` 4. ÐПÑМÑÑÑ ÑПÑгÑваÑО! @@ -109,15 +129,19 @@ NOFX ÑÐµÐ¿ÐµÑ Ð¿ÑÐŽÑÑОЌÑÑ **ÑÑО ПÑÐœÐŸÐ²ÐœÑ Ð±ÑÑжÑ**: Binance ## ðž СкÑОМÑПÑО ### ð РежОЌ Ð·ÐŒÐ°Ð³Ð°ÐœÐœÑ - ÐОÑва AI в ÑеалÑÐœÐŸÐŒÑ ÑаÑÑ - + *ÐÑЎеÑбПÑÐŽ з кÑлÑкПЌа AI Ñа гÑаÑÑкО пПÑÑвМÑÐœÐœÑ Ð¿ÑПЎÑкÑОвМПÑÑÑ Ð² ÑеалÑÐœÐŸÐŒÑ ÑаÑÑ Ð¿ÐŸÐºÐ°Ð·ÑÑÑÑ Ð±ÐžÑÐ²Ñ Qwen пÑПÑО DeepSeek* ### ð ÐеÑÐ°Ð»Ñ ÑÑейЎеÑа - ÐПвМа ÑПÑгПва Ð¿Ð°ÐœÐµÐ»Ñ - + *ÐÑПÑеÑÑйМОй ÑПÑгПвОй ÑМÑеÑÑÐµÐ¹Ñ Ð· кÑОвОЌО капÑÑалÑ, жОвОЌО пПзОÑÑÑЌО Ñа лПгаЌО ÑÑÑÐµÐœÑ AI з ÑПзкÑОваÑЌОЌО Ð²Ñ ÑЎМОЌО пÑПЌпÑаЌО Ñа лаМÑÑгПЌ ÐŒÑÑкÑваМÑ* --- +> ð **ÐÑОЌÑÑка**: Ње ÑпÑПÑеМа ÑкÑаÑМÑÑка веÑÑÑÑ README. ÐÐ»Ñ ÐŸÑÑÐžÐŒÐ°ÐœÐœÑ Ð¿ÐŸÐ²ÐœÐŸÑ ÑÐµÑ ÐœÑÑÐœÐŸÑ ÐŽÐŸÐºÑЌеМÑаÑÑÑ, вклÑÑаÑÑО аÑÑ ÑÑекÑÑÑÑ ÑОÑÑеЌО, API-ÑМÑеÑÑейÑО Ñа ÑПзÑОÑÐµÐœÑ ÐºÐŸÐœÑÑгÑÑаÑÑÑ, ЎОв. [ÐМглÑйÑÑÐºÑ Ð²ÐµÑÑÑÑ](../../../README.md) абП [ÐОÑайÑÑÐºÑ Ð²ÐµÑÑÑÑ](../zh-CN/README.md). + +--- + ## âš ÐÑÐœÐŸÐ²ÐœÑ ÐŒÐŸÐ¶Ð»ÐžÐ²ÐŸÑÑÑ ### ð РежОЌ Ð·ÐŒÐ°Ð³Ð°ÐœÐœÑ ÐºÑлÑÐºÐŸÑ AI @@ -173,6 +197,57 @@ NOFX ÑÐµÐ¿ÐµÑ Ð¿ÑÐŽÑÑОЌÑÑ **ÑÑО ПÑÐœÐŸÐ²ÐœÑ Ð±ÑÑжÑ**: Binance --- +## ð® ÐПÑÐŸÐ¶ÐœÑ ÐаÑÑа - РПзÑОÑÐµÐœÐœÑ ÐœÐ° УМÑвеÑÑалÑÐœÑ Ð ÐžÐœÐºÐž + +ÐÑÑÑÑ NOFX - ÑÑаÑО **УМÑвеÑÑалÑÐœÐŸÑ AI ТПÑÐ³ÐŸÐ²ÐŸÑ ÐпеÑаÑÑÐ¹ÐœÐŸÑ Ð¡ÐžÑÑеЌПÑ** ÐŽÐ»Ñ Ð²ÑÑÑ ÑÑМаМÑÐŸÐ²ÐžÑ ÑОМкÑв. + +**ÐаÑеММÑ:** Та ÑаЌа аÑÑ ÑÑекÑÑÑа. Та ÑаЌа агеМÑМа ÑÑÑÑкÑÑÑа. ÐÑÑ ÑОМкО. + +**РПзÑОÑÐµÐœÐœÑ ÐœÐ° РОМкО:** +- ð **Ð€ÐŸÐœÐŽÐŸÐ²Ñ Ð ÐžÐœÐºÐž**: ÐкÑÑÑ Ð¡ÐšÐ, A-акÑÑÑ, ÐПМкПМгÑÑка бÑÑжа +- ð **РОМкО Ѐ'ÑÑеÑÑÑв**: ТПваÑÐœÑ Ñ'ÑÑеÑÑО, ÑМЎекÑÐœÑ Ñ'ÑÑеÑÑО +- ð¯ **ÐпÑÑПММа ТПÑгÑвлÑ**: ÐпÑÑПМО Ма акÑÑÑ, кÑОпÑП ПпÑÑПМО +- ð± **РОМкО ЀПÑекÑ**: ÐÑÐœÐŸÐ²ÐœÑ Ð²Ð°Ð»ÑÑÐœÑ Ð¿Ð°ÑО, кÑПÑ-кÑÑÑО + +**ÐайбÑÑÐœÑ Ð€ÑМкÑÑÑ:** +- РПзÑОÑÐµÐœÑ AI ЌПжлОвПÑÑÑ (GPT-4, Claude 3, Gemini Pro, гМÑÑÐºÑ ÑаблПМО пÑПЌпÑÑв) +- ÐÐŸÐ²Ñ ÑМÑегÑаÑÑÑ Ð±ÑÑж (OKX, Bybit, Lighter, EdgeX + CEX/Perp-DEX) +- РеÑакÑПÑОМг ÑÑÑÑкÑÑÑО пÑПÑкÑÑ (вОÑПка зв'ÑзМÑÑÑÑ, МОзÑка зÑеплеМÑÑÑÑ, пÑОМÑОпО SOLID) +- ÐПкÑаÑÐµÐœÐœÑ Ð±ÐµÐ·Ð¿ÐµÐºÐž (AES-256 ÑОÑÑÑÐ²Ð°ÐœÐœÑ API клÑÑÑв, RBAC, пПкÑаÑÐµÐœÐœÑ 2FA) +- ÐПкÑаÑÐµÐœÐœÑ ÐºÐŸÑОÑÑÑваÑÑкПгП ЎПÑвÑÐŽÑ (ЌПбÑлÑМОй ÑМÑеÑÑейÑ, гÑаÑÑкО TradingView, ÑОÑÑеЌа ÑпПвÑÑеМÑ) + +ð **ÐÐ»Ñ ÐŽÐµÑалÑÐœÐŸÑ ÐŽÐŸÑПжМÑÐŸÑ ÐºÐ°ÑÑО Ñа ÑеÑÐŒÑМÑв ЎОв.:** +- **English:** [Roadmap Documentation](../../roadmap/README.md) +- **äžæ:** [è·¯çº¿åŸææ¡£](../../roadmap/README.zh-CN.md) + +--- + +## ðïž Ð¢ÐµÑ ÐœÑÑМа ÐÑÑ ÑÑекÑÑÑа + +NOFX пПбÑЎПваМП Ма ÑÑÑаÑМÑй ЌПЎÑлÑМÑй аÑÑ ÑÑекÑÑÑÑ: + +- **Backend:** Go з ÑÑейЌвПÑкПЌ Gin, база ÐŽÐ°ÐœÐžÑ SQLite +- **Frontend:** React 18 + TypeScript + Vite + TailwindCSS +- **AI ÑМÑегÑаÑÑÑ:** DeepSeek, Qwen, каÑÑÐŸÐŒÐœÑ API (ÑÑÐŒÑÑÐœÑ Ð· OpenAI) +- **ÐÑÐŽÑÑОЌка бÑÑж:** Binance Futures, Hyperliquid DEX, Aster DEX +- **ÐÑÑеМÑОÑÑкаÑÑÑ:** JWT ÑПкеМО + пÑÐŽÑÑОЌка 2FA +- **УпÑавлÑÐœÐœÑ ÑÑаМПЌ:** Zustand (легкПвагПве) +- **ÐÑÑÐžÐŒÐ°ÐœÐœÑ ÐŽÐ°ÐœÐžÑ :** SWR з ПпОÑÑваММÑÐŒ 5-10Ñ +- **ÐÑаÑÑкО:** Recharts ÐŽÐ»Ñ ÐºÑÐžÐ²ÐžÑ ÐºÐ°Ð¿ÑÑÐ°Ð»Ñ Ñа пПÑÑвМÑÐœÑ + +**ÐлÑÑÐŸÐ²Ñ ÐŸÑПблОвПÑÑÑ:** +- ð§ ÐÑÑ ÑÑекÑÑÑа Ма ПÑÐœÐŸÐ²Ñ Ð±Ð°Ð·Ðž ÐŽÐ°ÐœÐžÑ (кПМÑÑгÑÑаÑÑÑ ÑеÑез веб-ÑМÑеÑÑейÑ, без JSON) +- ð¯ ÐПЌбÑМÑйÑе бÑÐŽÑ-ÑÐºÑ AI ÐŒÐŸÐŽÐµÐ»Ñ Ð· бÑÐŽÑ-ÑÐºÐŸÑ Ð±ÑÑÐ¶ÐµÑ +- ð RESTful API з кПЌплекÑМОЌО еМЎпПÑМÑаЌО +- ð ÐезпеÑМе ÑпÑавлÑÐœÐœÑ ÐŸÐ±Ð»ÑÐºÐŸÐ²ÐžÑ ÐŽÐ°ÐœÐžÑ +- ð СОÑÑеЌа ÑаблПМÑв пÑПЌпÑÑв з вÑÐŽÐŽÐ°Ð»ÐµÐœÐŸÑ Ð°ÑÑеМÑОÑÑкаÑÑÑÑ + +ð **ÐеÑалÑМа ЎПкÑЌеМÑаÑÑÑ Ð¿ÐŸ аÑÑ ÑÑекÑÑÑÑ:** +- **English:** [Architecture Documentation](../../architecture/README.md) +- **äžæ:** [æ¶æææ¡£](../../architecture/README.zh-CN.md) + +--- + ## ð° РеÑÑÑÑаÑÑÑ Ð°ÐºÐ°ÑМÑа Binance (ÐаПÑаЎжÑйÑе Ма кПЌÑÑÑÑÑ !) ÐеÑеЎ вОкПÑОÑÑаММÑÐŒ ÑÑÑÑ ÑОÑÑеЌО ваЌ пПÑÑÑбеМ акаÑÐœÑ Binance Futures. **ÐОкПÑОÑÑПвÑйÑе МаÑе ÑеÑеÑалÑМе пПÑÐžÐ»Ð°ÐœÐœÑ ÐŽÐ»Ñ ÐŸÑÑÐžÐŒÐ°ÐœÐœÑ Ð·ÐœÐžÐ¶ÐºÐž Ма кПЌÑÑÑÑ:** @@ -824,104 +899,73 @@ curl http://localhost:8080/api/health ÐПжеМ ÑОкл пÑОйМÑÑÑÑ ÑÑÑÐµÐœÑ (за заЌПвÑÑваММÑÐŒ 3 Ñ Ð²ÐžÐ»ÐžÐœÐž), ÑОÑÑеЌа пÑаÑÑÑ Ð·Ð° МаÑÑÑпМОЌ пÑПÑеÑПЌ: -``` -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -â 1. ð ÐМалÑз ÑÑÑПÑОÑÐœÐŸÑ Ð¿ÑПЎÑкÑОвМПÑÑÑ â -â (ПÑÑÐ°ÐœÐœÑ 20 ÑОклÑв) â -âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ†-â â РПзÑÐ°Ñ ÑМПк загалÑМПгП вÑÐŽÑПÑка вОгÑаÑÑв, ÑеÑеЎМÑПгП â -â пÑОбÑÑкÑ, ÑпÑввÑЎМПÑÐµÐœÐœÑ Ð¿ÑОбÑÑкÑ/збОÑÐºÑ â -â â СÑаÑОÑÑОка пП кПжМÑй ЌПМеÑÑ (вÑÐŽÑПÑПк вОгÑаÑÑв, â -â ÑеÑеЎМÑй P/L в USDT) â -â â ÐОзМаÑÐµÐœÐœÑ ÐœÐ°Ð¹ÐºÑаÑÐžÑ /МайгÑÑÑÐžÑ ÐŒÐŸÐœÐµÑ Ð·Ð° â -â пÑПЎÑкÑОвМÑÑÑÑ â -â â СпОÑПк ЎеÑалей ПÑÑаММÑÑ 5 ÑгПЎ з ÑПÑМОЌ P/L â -â â РПзÑÐ°Ñ ÑМПк кПеÑÑÑÑÑМÑа КаÑпа ÐŽÐ»Ñ ÐŸÑÑМкО ÑÐžÐ·ÐžÐºÑ â -â ð ÐÐÐÐ (v2.0.2): ТПÑМОй P/L в USDT з вÑÐ°Ñ ÑваММÑÐŒ â -â плеÑа â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ - â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -â 2. ð° ÐÑÑÐžÐŒÐ°ÐœÐœÑ ÑÑÐ°ÐœÑ Ð°ÐºÐ°ÑМÑа â -âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ†-â ⢠ÐапÑÑал акаÑМÑа, ЎПÑÑÑпМОй балаМÑ, МеÑеалÑзПваМОй â -â P/L â -â ⢠ÐÑлÑкÑÑÑÑ Ð¿ÐŸÐ·ÐžÑÑй, загалÑМОй P/L (ÑеалÑзПваМОй + â -â МеÑеалÑзПваМОй) â -â ⢠ÐОкПÑОÑÑÐ°ÐœÐœÑ ÐŒÐ°ÑÐ¶Ñ (пПÑПÑМе/ЌакÑОЌалÑМе) â -â ⢠ÐМЎОкаÑПÑО ПÑÑМкО ÑÐžÐ·ÐžÐºÑ â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ - â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -â 3. ð ÐМалÑз ÑÑМÑÑÑÐžÑ Ð¿ÐŸÐ·ÐžÑÑй (ÑкÑП Ñ) â -âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ†-â ⢠ÐÑÑÐžÐŒÐ°ÐœÐœÑ ÑÐžÐœÐºÐŸÐ²ÐžÑ ÐŽÐ°ÐœÐžÑ ÐŽÐ»Ñ ÐºÐŸÐ¶ÐœÐŸÑ Ð¿ÐŸÐ·ÐžÑÑÑ â -â (3-Ñ Ð²ÐžÐ»ÐžÐœÐœÑ + 4-Ð³ÐŸÐŽÐžÐœÐœÑ ÑвÑÑкО) â -â ⢠РПзÑÐ°Ñ ÑМПк ÑÐµÑ ÐœÑÑÐœÐžÑ ÑМЎОкаÑПÑÑв (RSI, MACD, EMA) â -â ⢠ÐÑЎПбÑÐ°Ð¶ÐµÐœÐœÑ ÑÑОвалПÑÑÑ ÑÑÑÐžÐŒÐ°ÐœÐœÑ Ð¿ÐŸÐ·ÐžÑÑÑ â -â (МапÑОклаЎ, "ÑÑÑОЌÑÑÑÑÑÑ 2 гПЎОМО 15 Ñ Ð²ÐžÐ»ÐžÐœ") â -â ⢠AI вОзМаÑаÑ, ÑО пПÑÑÑбМП закÑОÑО (Ñейк-пÑПÑÑÑ, â -â ÑÑПп-лПÑÑ Ð°Ð±ÐŸ кПÑОгÑваММÑ) â -â ð ÐÐÐÐ (v2.0.2): ÐÑÐŽÑÑÐµÐ¶ÐµÐœÐœÑ ÑÑОвалПÑÑÑ Ð¿ÐŸÐ·ÐžÑÑÑ â -â ÐŽÐŸÐ¿ÐŸÐŒÐ°Ð³Ð°Ñ AI вОÑÑÑÑваÑО â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ - â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -â 4. ð¯ ÐÑÑМка ÐœÐŸÐ²ÐžÑ ÐŒÐŸÐ¶Ð»ÐžÐ²ÐŸÑÑей (пÑл каМЎОЎаÑÑв ЌПМеÑ) â -âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ†-â ⢠ÐÑÑÐžÐŒÐ°ÐœÐœÑ ÑПп-20 ÐŒÐŸÐœÐµÑ Ð· вОÑПкОЌ ÑейÑОМгПЌ AI500 â -â ⢠ÐÑÑÐžÐŒÐ°ÐœÐœÑ ÑПп-20 ÐŒÐŸÐœÐµÑ Ð· МайÑвОЎÑОЌ зÑПÑÑаММÑÐŒ OI â -â ⢠Ðб'ÑЎМаММÑ, Ð²ÐžÐŽÐ°Ð»ÐµÐœÐœÑ ÐŽÑблÑкаÑÑв, ÑÑлÑÑÑаÑÑÑ ÐŒÐŸÐœÐµÑ Ð· â -â МОзÑÐºÐŸÑ Ð»ÑквÑЎМÑÑÑÑ (OI < 15M USD) â -â ⢠ÐаÑПве ПÑÑÐžÐŒÐ°ÐœÐœÑ ÑÐžÐœÐºÐŸÐ²ÐžÑ ÐŽÐ°ÐœÐžÑ Ñа ÑÐµÑ ÐœÑÑÐœÐžÑ â -â ÑМЎОкаÑПÑÑв â -â ⢠ÐÑЎгПÑПвка Ð¿ÐŸÐ²ÐœÐžÑ Ð¿ÐŸÑлÑЎПвМПÑÑей ÑОÑÐžÑ ÐŽÐ°ÐœÐžÑ ÐŽÐ»Ñ â -â ÐºÐŸÐ¶ÐœÐŸÑ ÐŒÐŸÐœÐµÑО-каМЎОЎаÑа â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ - â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -â 5. ð§ ÐПЌплекÑМе ÑÑÑÐµÐœÐœÑ AI â -âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ†-â ⢠ÐеÑеглÑÐŽ ÑÑÑПÑОÑМПгП звПÑПÑМПгП зв'ÑÐ·ÐºÑ (вÑÐŽÑПÑПк â -â вОгÑаÑÑв, кПеÑÑÑÑÑÐœÑ P/L, МайкÑаÑÑ/МайгÑÑÑÑ ÐŒÐŸÐœÐµÑО) â -â ⢠ÐÑÑÐžÐŒÐ°ÐœÐœÑ Ð²ÑÑÑ ÐŽÐ°ÐœÐžÑ Ð¿ÐŸÑлÑЎПвМПÑÑей (ÑвÑÑкО, â -â ÑМЎОкаÑПÑО, вÑЎкÑОÑОй ÑМÑеÑеÑ) â -â ⢠ÐМалÑз Chain of Thought â -â ⢠ÐОвÑÐŽ ÑÑÑеММÑ: закÑОÑО/вÑЎкÑОÑО/ÑÑÑОЌÑваÑО/ÑпПÑÑеÑÑгаÑО â -â ⢠ÐклÑÑÐ°Ñ Ð¿Ð°ÑаЌеÑÑО плеÑа, ÑПзЌÑÑÑ, ÑÑПп-лПÑÑа, â -â Ñейк-пÑПÑÑÑа â -â ð ÐÐÐÐ (v2.0.2): AI ЌПже вÑлÑМП аМалÑзÑваÑО ÑОÑÑ â -â пПÑлÑЎПвМПÑÑÑ, Ме ПбЌежеМОй зазЎалегÑÐŽÑ Ð²ÐžÐ·ÐœÐ°ÑеМОЌО â -â ÑМЎОкаÑПÑаЌО â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ - â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -â 6. â¡ ÐÐžÐºÐŸÐœÐ°ÐœÐœÑ ÑгПЎ â -âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ†-â ⢠ÐÑÑПÑОÑОзаÑÑÑ: ÑпПÑаÑÐºÑ Ð·Ð°ÐºÑОÑÑÑ, пПÑÑÐŒ вÑЎкÑОÑÑÑ â -â ⢠ÐвÑПЌаÑОÑМа аЎапÑаÑÑÑ ÑПÑМПÑÑÑ (пÑавОла LOT_SIZE) â -â ⢠ÐапПбÑÐ³Ð°ÐœÐœÑ ÐœÐ°ÐºÐŸÐ¿ÐžÑÐµÐœÐœÑ Ð¿ÐŸÐ·ÐžÑÑй (вÑÐŽÑ ÐžÐ»ÐµÐœÐœÑ â -â ÐŽÑблÑÐ²Ð°ÐœÐœÑ ÐŒÐŸÐœÐµÑа/МапÑÑЌПк) â -â ⢠ÐвÑПЌаÑОÑМа вÑÐŽÐŒÑМа вÑÑÑ ÐŸÑЎеÑÑв пÑÑÐ»Ñ Ð·Ð°ÐºÑОÑÑÑ â -â ⢠ÐÐ°Ð¿ÐžÑ ÑаÑÑ Ð²ÑЎкÑОÑÑÑ ÐŽÐ»Ñ Ð²ÑÐŽÑÑÐµÐ¶ÐµÐœÐœÑ ÑÑОвалПÑÑÑ â -â пПзОÑÑÑ â -â ð ÐÐÐÐ (v2.0.2): ÐÑÐŽÑÑÐµÐ¶ÐµÐœÐœÑ ÑаÑÑ Ð²ÑЎкÑОÑÑÑ Ð¿ÐŸÐ·ÐžÑÑÑ â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ - â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -â 7. ð ÐÐ°Ð¿ÐžÑ Ð»ÐŸÐ³Ñв â -âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ†-â ⢠ÐбеÑÐµÐ¶ÐµÐœÐœÑ Ð¿ÐŸÐ²ÐœÐŸÐ³ÐŸ запОÑÑ ÑÑÑÐµÐœÐœÑ Ð² decision_logs/ â -â ⢠ÐклÑÑÐ°Ñ Ð»Ð°ÐœÑÑг ÐŒÑÑкÑваМÑ, JSON ÑÑÑеММÑ, зМÑЌПк â -â акаÑМÑа, ÑезÑлÑÑаÑО Ð²ÐžÐºÐŸÐœÐ°ÐœÐœÑ â -â ⢠ÐбеÑÑÐ³Ð°ÐœÐœÑ Ð¿ÐŸÐ²ÐœÐžÑ ÐŽÐ°ÐœÐžÑ Ð¿ÐŸÐ·ÐžÑÑÑ (кÑлÑкÑÑÑÑ, плеÑе, â -â ÑÐ°Ñ Ð²ÑЎкÑОÑÑÑ/закÑОÑÑÑ) â -â ⢠ÐОкПÑОÑÑÐ°ÐœÐœÑ ÐºÐ»ÑÑÑв symbol_side ÐŽÐ»Ñ Ð·Ð°Ð¿ÐŸÐ±ÑÐ³Ð°ÐœÐœÑ â -â кПМÑлÑкÑÑв лПМг/ÑПÑÑ â -â ð ÐÐÐÐ (v2.0.2): ÐапПбÑÐ³Ð°ÐœÐœÑ ÐºÐŸÐœÑлÑкÑÑв пÑО ÑÑÑÐžÐŒÐ°ÐœÐœÑ â -â лПМг + ÑПÑÑ, вÑÐ°Ñ ÑÐ²Ð°ÐœÐœÑ ÐºÑлÑкПÑÑÑ + плеÑа â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -``` +### ÐÑПк 1: ð ÐМалÑз ÑÑÑПÑОÑÐœÐŸÑ Ð¿ÑПЎÑкÑОвМПÑÑÑ (ПÑÑÐ°ÐœÐœÑ 20 ÑОклÑв) +- â РПзÑÐ°Ñ ÑМПк загалÑМПгП вÑÐŽÑПÑка вОгÑаÑÑв, ÑеÑеЎМÑПгП пÑОбÑÑкÑ, ÑпÑввÑЎМПÑÐµÐœÐœÑ Ð¿ÑОбÑÑкÑ/збОÑÐºÑ +- â СÑаÑОÑÑОка пП кПжМÑй ЌПМеÑÑ (вÑÐŽÑПÑПк вОгÑаÑÑв, ÑеÑеЎМÑй P/L в USDT) +- â ÐОзМаÑÐµÐœÐœÑ ÐœÐ°Ð¹ÐºÑаÑÐžÑ /МайгÑÑÑÐžÑ ÐŒÐŸÐœÐµÑ Ð·Ð° пÑПЎÑкÑОвМÑÑÑÑ +- â СпОÑПк ЎеÑалей ПÑÑаММÑÑ 5 ÑгПЎ з ÑПÑМОЌ P/L +- â РПзÑÐ°Ñ ÑМПк кПеÑÑÑÑÑМÑа КаÑпа ÐŽÐ»Ñ ÐŸÑÑМкО ÑÐžÐ·ÐžÐºÑ +- ð **ÐÐÐÐ (v2.0.2)**: ТПÑМОй P/L в USDT з вÑÐ°Ñ ÑваММÑÐŒ плеÑа + +**â** + +### ÐÑПк 2: ð° ÐÑÑÐžÐŒÐ°ÐœÐœÑ ÑÑÐ°ÐœÑ Ð°ÐºÐ°ÑМÑа +- ÐапÑÑал акаÑМÑа, ЎПÑÑÑпМОй балаМÑ, МеÑеалÑзПваМОй P/L +- ÐÑлÑкÑÑÑÑ Ð¿ÐŸÐ·ÐžÑÑй, загалÑМОй P/L (ÑеалÑзПваМОй + МеÑеалÑзПваМОй) +- ÐОкПÑОÑÑÐ°ÐœÐœÑ ÐŒÐ°ÑÐ¶Ñ (пПÑПÑМе/ЌакÑОЌалÑМе) +- ÐМЎОкаÑПÑО ПÑÑМкО ÑÐžÐ·ÐžÐºÑ + +**â** + +### ÐÑПк 3: ð ÐМалÑз ÑÑМÑÑÑÐžÑ Ð¿ÐŸÐ·ÐžÑÑй (ÑкÑП Ñ) +- ÐÑÑÐžÐŒÐ°ÐœÐœÑ ÑÐžÐœÐºÐŸÐ²ÐžÑ ÐŽÐ°ÐœÐžÑ ÐŽÐ»Ñ ÐºÐŸÐ¶ÐœÐŸÑ Ð¿ÐŸÐ·ÐžÑÑÑ (3-Ñ Ð²ÐžÐ»ÐžÐœÐœÑ + 4-Ð³ÐŸÐŽÐžÐœÐœÑ ÑвÑÑкО) +- РПзÑÐ°Ñ ÑМПк ÑÐµÑ ÐœÑÑÐœÐžÑ ÑМЎОкаÑПÑÑв (RSI, MACD, EMA) +- ÐÑЎПбÑÐ°Ð¶ÐµÐœÐœÑ ÑÑОвалПÑÑÑ ÑÑÑÐžÐŒÐ°ÐœÐœÑ Ð¿ÐŸÐ·ÐžÑÑÑ (МапÑОклаЎ, "ÑÑÑОЌÑÑÑÑÑÑ 2 гПЎОМО 15 Ñ Ð²ÐžÐ»ÐžÐœ") +- AI вОзМаÑаÑ, ÑО пПÑÑÑбМП закÑОÑО (Ñейк-пÑПÑÑÑ, ÑÑПп-лПÑÑ Ð°Ð±ÐŸ кПÑОгÑваММÑ) +- ð **ÐÐÐÐ (v2.0.2)**: ÐÑÐŽÑÑÐµÐ¶ÐµÐœÐœÑ ÑÑОвалПÑÑÑ Ð¿ÐŸÐ·ÐžÑÑÑ ÐŽÐŸÐ¿ÐŸÐŒÐ°Ð³Ð°Ñ AI вОÑÑÑÑваÑО + +**â** + +### ÐÑПк 4: ð¯ ÐÑÑМка ÐœÐŸÐ²ÐžÑ ÐŒÐŸÐ¶Ð»ÐžÐ²ÐŸÑÑей (пÑл каМЎОЎаÑÑв ЌПМеÑ) +- ÐÑÑÐžÐŒÐ°ÐœÐœÑ Ð¿ÑÐ»Ñ ÐŒÐŸÐœÐµÑ (2 ÑежОЌО): + - ð **РежОЌ за заЌПвÑÑваММÑÐŒ**: BTC, ETH, SOL, BNB, XRP ÑПÑП + - âïž **РПзÑОÑеМОй ÑежОЌ**: AI500 (ÑПп-20) + OI Top (ÑПп-20) +- Ðб'ÑЎМаММÑ, Ð²ÐžÐŽÐ°Ð»ÐµÐœÐœÑ ÐŽÑблÑкаÑÑв, ÑÑлÑÑÑаÑÑÑ ÐŒÐŸÐœÐµÑ Ð· МОзÑÐºÐŸÑ Ð»ÑквÑЎМÑÑÑÑ (OI < 15M USD) +- ÐаÑПве ПÑÑÐžÐŒÐ°ÐœÐœÑ ÑÐžÐœÐºÐŸÐ²ÐžÑ ÐŽÐ°ÐœÐžÑ Ñа ÑÐµÑ ÐœÑÑÐœÐžÑ ÑМЎОкаÑПÑÑв +- ÐÑЎгПÑПвка Ð¿ÐŸÐ²ÐœÐžÑ Ð¿ÐŸÑлÑЎПвМПÑÑей ÑОÑÐžÑ ÐŽÐ°ÐœÐžÑ ÐŽÐ»Ñ ÐºÐŸÐ¶ÐœÐŸÑ ÐŒÐŸÐœÐµÑО-каМЎОЎаÑа + +**â** + +### ÐÑПк 5: ð§ ÐПЌплекÑМе ÑÑÑÐµÐœÐœÑ AI +- ÐеÑеглÑÐŽ ÑÑÑПÑОÑМПгП звПÑПÑМПгП зв'ÑÐ·ÐºÑ (вÑÐŽÑПÑПк вОгÑаÑÑв, кПеÑÑÑÑÑÐœÑ P/L, МайкÑаÑÑ/МайгÑÑÑÑ ÐŒÐŸÐœÐµÑО) +- ÐÑÑÐžÐŒÐ°ÐœÐœÑ Ð²ÑÑÑ ÐŽÐ°ÐœÐžÑ Ð¿ÐŸÑлÑЎПвМПÑÑей (ÑвÑÑкО, ÑМЎОкаÑПÑО, вÑЎкÑОÑОй ÑМÑеÑеÑ) +- ÐМалÑз Chain of Thought +- ÐОвÑÐŽ ÑÑÑеММÑ: закÑОÑО/вÑЎкÑОÑО/ÑÑÑОЌÑваÑО/ÑпПÑÑеÑÑгаÑО +- ÐклÑÑÐ°Ñ Ð¿Ð°ÑаЌеÑÑО плеÑа, ÑПзЌÑÑÑ, ÑÑПп-лПÑÑа, Ñейк-пÑПÑÑÑа +- ð **ÐÐÐÐ (v2.0.2)**: AI ЌПже вÑлÑМП аМалÑзÑваÑО ÑОÑÑ Ð¿ÐŸÑлÑЎПвМПÑÑÑ, Ме ПбЌежеМОй зазЎалегÑÐŽÑ Ð²ÐžÐ·ÐœÐ°ÑеМОЌО ÑМЎОкаÑПÑаЌО + +**â** + +### ÐÑПк 6: â¡ ÐÐžÐºÐŸÐœÐ°ÐœÐœÑ ÑгПЎ +- ÐÑÑПÑОÑОзаÑÑÑ: ÑпПÑаÑÐºÑ Ð·Ð°ÐºÑОÑÑÑ, пПÑÑÐŒ вÑЎкÑОÑÑÑ +- ÐвÑПЌаÑОÑМа аЎапÑаÑÑÑ ÑПÑМПÑÑÑ (пÑавОла LOT_SIZE) +- ÐапПбÑÐ³Ð°ÐœÐœÑ ÐœÐ°ÐºÐŸÐ¿ÐžÑÐµÐœÐœÑ Ð¿ÐŸÐ·ÐžÑÑй (вÑÐŽÑ ÐžÐ»ÐµÐœÐœÑ ÐŽÑблÑÐ²Ð°ÐœÐœÑ ÐŒÐŸÐœÐµÑа/МапÑÑЌПк) +- ÐвÑПЌаÑОÑМа вÑÐŽÐŒÑМа вÑÑÑ ÐŸÑЎеÑÑв пÑÑÐ»Ñ Ð·Ð°ÐºÑОÑÑÑ +- ÐÐ°Ð¿ÐžÑ ÑаÑÑ Ð²ÑЎкÑОÑÑÑ ÐŽÐ»Ñ Ð²ÑÐŽÑÑÐµÐ¶ÐµÐœÐœÑ ÑÑОвалПÑÑÑ Ð¿ÐŸÐ·ÐžÑÑÑ +- ð ÐÑÐŽÑÑÐµÐ¶ÐµÐœÐœÑ ÑаÑÑ Ð²ÑЎкÑОÑÑÑ Ð¿ÐŸÐ·ÐžÑÑÑ + +**â** + +### ÐÑПк 7: ð ÐÐ°Ð¿ÐžÑ Ð»ÐŸÐ³Ñв +- ÐбеÑÐµÐ¶ÐµÐœÐœÑ Ð¿ÐŸÐ²ÐœÐŸÐ³ÐŸ запОÑÑ ÑÑÑÐµÐœÐœÑ Ð² `decision_logs/` +- ÐклÑÑÐ°Ñ Ð»Ð°ÐœÑÑг ÐŒÑÑкÑваМÑ, JSON ÑÑÑеММÑ, зМÑЌПк акаÑМÑа, ÑезÑлÑÑаÑО Ð²ÐžÐºÐŸÐœÐ°ÐœÐœÑ +- ÐбеÑÑÐ³Ð°ÐœÐœÑ Ð¿ÐŸÐ²ÐœÐžÑ ÐŽÐ°ÐœÐžÑ Ð¿ÐŸÐ·ÐžÑÑÑ (кÑлÑкÑÑÑÑ, плеÑе, ÑÐ°Ñ Ð²ÑЎкÑОÑÑÑ/закÑОÑÑÑ) +- ÐОкПÑОÑÑÐ°ÐœÐœÑ ÐºÐ»ÑÑÑв `symbol_side` ÐŽÐ»Ñ Ð·Ð°Ð¿ÐŸÐ±ÑÐ³Ð°ÐœÐœÑ ÐºÐŸÐœÑлÑкÑÑв лПМг/ÑПÑÑ +- ð **ÐÐÐÐ (v2.0.2)**: ÐапПбÑÐ³Ð°ÐœÐœÑ ÐºÐŸÐœÑлÑкÑÑв пÑО ÑÑÑÐžÐŒÐ°ÐœÐœÑ Ð»ÐŸÐœÐ³ + ÑПÑÑ, вÑÐ°Ñ ÑÐ²Ð°ÐœÐœÑ ÐºÑлÑкПÑÑÑ + плеÑа + +**â** + +**ð (ÐПвÑÐŸÑ ÐºÐŸÐ¶ÐœÑ 3-5 Ñ Ð²ÐžÐ»ÐžÐœ)** ### ÐлÑÑÐŸÐ²Ñ Ð¿ÐŸÐºÑаÑÐµÐœÐœÑ Ð² v2.0.2 @@ -950,6 +994,7 @@ curl http://localhost:8080/api/health ## â ïž ÐÐ°Ð¶Ð»ÐžÐ²Ñ Ð¿ÐŸÐ¿ÐµÑÐµÐŽÐ¶ÐµÐœÐœÑ Ð¿ÑП ÑОзОкО ### ТПÑгПвелÑÐœÑ ÑОзОкО +``` { "id": "qwen_trader", "name": "Qwen AI Trader", @@ -1013,6 +1058,7 @@ npm run dev ``` **ÐПÑÑÑп ЎП ÑМÑеÑÑейÑÑ:** + ``` Ðеб-паМелÑ: http://localhost:3000 API ÑеÑвеÑ: http://localhost:8080 @@ -1024,184 +1070,26 @@ API ÑеÑвеÑ: http://localhost:8080 --- -## â ïž ÐÐ°Ð¶Ð»ÐžÐ²Ñ Ð¿ÐŸÐ¿ÐµÑÐµÐŽÐ¶ÐµÐœÐœÑ Ð¿ÑП ÑОзОкО - -### ТПÑгПвелÑÐœÑ ÑОзОкО - -1. **РОМкО кÑОпÑПвалÑÑ ÐœÐ°ÐŽÐ·Ð²ÐžÑайМП вПлаÑОлÑМÑ**, ÑÑÑÐµÐœÐœÑ AI Ме гаÑаМÑÑÑÑÑ Ð¿ÑОбÑÑПк -2. **ТПÑгÑÐ²Ð»Ñ Ñ'ÑÑеÑÑаЌО вОкПÑОÑÑПвÑÑ Ð¿Ð»ÐµÑе**, збОÑкО ЌПжÑÑÑ Ð¿ÐµÑевОÑОÑО ПÑÐœÐŸÐ²ÐœÑ ÑÑÐŒÑ -3. **ÐкÑÑÑеЌалÑÐœÑ ÑÐžÐœÐºÐŸÐ²Ñ ÑЌПвО** ЌПжÑÑÑ Ð¿ÑОзвеÑÑО ЎП лÑквÑЎаÑÑÑ -4. **ÐПЌÑÑÑÑ Ð·Ð° ÑÑМаМÑÑваММÑ** ЌПжÑÑÑ Ð²Ð¿Ð»ÐžÐœÑÑО Ма ваÑÑÑÑÑÑ ÑÑÑÐžÐŒÐ°ÐœÐœÑ -5. **РОзОк лÑквÑЎМПÑÑÑ**: ÐеÑÐºÑ ÐŒÐŸÐœÐµÑО ЌПжÑÑÑ Ð²ÑÐŽÑÑваÑО пÑПкПвзÑÐ²Ð°ÐœÐœÑ - -### Ð¢ÐµÑ ÐœÑÑÐœÑ ÑОзОкО - -1. **ÐаÑÑОЌка ЌеÑежÑ** ЌПже вОклОкаÑО пÑПкПвзÑÐ²Ð°ÐœÐœÑ ÑÑМО -2. **ÐÑÐŒÑÑО API** ЌПжÑÑÑ Ð²Ð¿Ð»ÐžÐœÑÑО Ма Ð²ÐžÐºÐŸÐœÐ°ÐœÐœÑ ÑгПЎ -3. **ТайЌ-аÑÑО AI API** ЌПжÑÑÑ Ð²ÐžÐºÐ»ÐžÐºÐ°ÑО Ð·Ð±ÐŸÑ ÑÑÑÐµÐœÑ -4. **СОÑÑÐµÐŒÐœÑ Ð¿ÐŸÐŒÐžÐ»ÐºÐž** ЌПжÑÑÑ Ð²ÐžÐºÐ»ÐžÐºÐ°ÑО МеПÑÑкÑÐ²Ð°ÐœÑ Ð¿ÐŸÐ²ÐµÐŽÑÐœÐºÑ - -### РекПЌеМЎаÑÑÑ ÑПЎП вОкПÑОÑÑÐ°ÐœÐœÑ - -â **РекПЌеМЎÑÑÑÑÑÑ** -- ÐОкПÑОÑÑПвÑйÑе лОÑе кПÑÑО, вÑÑаÑÑ ÑÐºÐžÑ Ð²Ðž ЌПжеÑе ЎПзвПлОÑО ÐŽÐ»Ñ ÑеÑÑÑÐ²Ð°ÐœÐœÑ -- ÐПÑМÑÑÑ Ð· ÐœÐµÐ²ÐµÐ»ÐžÐºÐžÑ ÑÑÐŒ (ÑекПЌеМЎÑÑÑÑÑÑ 100-500 USDT) -- РегÑлÑÑМП пеÑевÑÑÑйÑе ÑÑаМ ÑПбПÑО ÑОÑÑеЌО -- ÐÑÐŽÑÑежÑйÑе зЌÑМО балаМÑÑ ÑÐ°Ñ ÑÐœÐºÑ -- ÐМалÑзÑйÑе лПгО ÑÑÑÐµÐœÑ AI ÐŽÐ»Ñ ÑПзÑÐŒÑÐœÐœÑ ÑÑÑаÑегÑÑ - -â **Ðе ÑекПЌеМЎÑÑÑÑÑÑ** -- ÐМвеÑÑÑваÑО вÑÑ ÐºÐŸÑÑО абП пПзОÑÐµÐœÑ Ð³ÑПÑÑ -- ÐапÑÑкаÑО без МаглÑÐŽÑ ÐœÐ° ÑÑÐžÐ²Ð°Ð»Ñ Ð¿ÐµÑÑПЎО -- СлÑпП ЎПвÑÑÑÑО ÑÑÑеММÑÐŒ AI -- ÐОкПÑОÑÑПвÑваÑО без ÑПзÑÐŒÑÐœÐœÑ ÑОÑÑеЌО -- ÐапÑÑкаÑО пÑÐŽ ÑÐ°Ñ ÐµÐºÑÑÑеЌалÑÐœÐŸÑ Ð²ÐŸÐ»Ð°ÑОлÑМПÑÑÑ ÑÐžÐœÐºÑ - --- -## ð ïž Ð§Ð°ÑÑÑ Ð¿ÑПблеЌО +## ð ÐÑÑМал ÐÐŒÑМ -### 1. ÐПЌОлка кПЌпÑлÑÑÑÑ: TA-Lib Ме зМайЎеМа +ð **ÐÐ»Ñ ÐŽÐµÑалÑÐœÐŸÑ ÑÑÑПÑÑÑ Ð²ÐµÑÑÑй Ñа ÐŸÐœÐŸÐ²Ð»ÐµÐœÑ ÐŽÐžÐ².:** -**Ð ÑÑеММÑ**: ÐÑÑаМПвÑÑÑ Ð±ÑблÑПÑÐµÐºÑ TA-Lib -```bash -# macOS -brew install ta-lib +- **УкÑаÑМÑÑка:** [CHANGELOG.zh-CN.md](../../../CHANGELOG.zh-CN.md) +- **English:** [CHANGELOG.md](../../../CHANGELOG.md) -# Ubuntu -sudo apt-get install libta-lib0-dev -``` +**ÐÑÑÐ°ÐœÐœÑ ÐеÑÑÑÑ:** v3.0.0 (2025-10-30) - ÐаÑÑÑабМа ТÑаМÑÑПÑЌаÑÑÑ ÐÑÑ ÑÑекÑÑÑО -### 2. ÐПЌОлка ÑПÑМПÑÑÑ: ТПÑМÑÑÑÑ Ð¿ÐµÑевОÑÑÑ ÐŒÐ°ÐºÑОЌÑÐŒ - -**Ð ÑÑеММÑ**: СОÑÑеЌа авÑПЌаÑОÑМП ПбÑПблÑÑ ÑПÑМÑÑÑÑ Ð· Binance LOT_SIZE. ЯкÑП пПЌОлка збеÑÑгаÑÑÑÑÑ, пеÑевÑÑÑе ЌеÑежеве пÑЎклÑÑеММÑ. - -### 3. ТайЌ-аÑÑ AI API - -**Ð ÑÑеММÑ**: -- ÐеÑевÑÑÑе пÑавОлÑМÑÑÑÑ API клÑÑа -- ÐеÑевÑÑÑе ЌеÑежеве пÑЎклÑÑÐµÐœÐœÑ (ЌПже зМаЎПбОÑОÑÑ Ð¿ÑПкÑÑ) -- ТайЌ-аÑÑ ÑОÑÑеЌО вÑÑаМПвлеМП Ма 120 ÑекÑМЎ - -### 4. Frontend Ме ЌПже пÑЎклÑÑОÑОÑÑ ÐŽÐŸ backend - -**Ð ÑÑеММÑ**: -- ÐеÑекПМайÑеÑÑ, ÑП backend запÑÑеМП (http://localhost:8080) -- ÐеÑевÑÑÑе, ÑО Ме зайМÑÑОй пПÑÑ 8080 -- ÐеÑевÑÑÑе пПЌОлкО в кПМÑÐŸÐ»Ñ Ð±ÑаÑзеÑа - -### 5. ÐбÑй API пÑÐ»Ñ ÐŒÐŸÐœÐµÑ - -**Ð ÑÑеММÑ**: -- API пÑÐ»Ñ ÐŒÐŸÐœÐµÑ ÐŸÐ¿ÑÑПМалеМ -- ЯкÑП API Ме пÑаÑÑÑ, ÑОÑÑеЌа вОкПÑОÑÑПвÑÑ ÐŸÑÐœÐŸÐ²ÐœÑ ÐŒÐŸÐœÐµÑО за заЌПвÑÑваММÑÐŒ (BTC, ETH ÑПÑП) -- ÐеÑевÑÑÑе URL API Ñа паÑаЌеÑÑ auth в config.json - ---- - -## ð ÐÑÑеМзÑÑ - -ÐÑÑеМзÑÑ MIT - ÐОв. Ñайл [LICENSE](LICENSE) ÐŽÐ»Ñ ÐŽÐµÑалей - ---- - -## ð€ ÐМеÑПк Ñ Ð¿ÑПÑÐºÑ - -ÐÑÑаÑÑÑÑÑ Issues Ñа Pull Requests! - -### ÐеÑÑвМОÑÑвП з ÑПзÑПбкО - -1. ÐÑПбÑÑÑ Fork пÑПÑкÑÑ -2. СÑвПÑÑÑÑ Ð³ÑÐ»ÐºÑ ÑÑМкÑÑÑ (`git checkout -b feature/AmazingFeature`) -3. ÐаÑÑкÑÑйÑе зЌÑМО (`git commit -m 'Add some AmazingFeature'`) -4. ÐаЎÑÑлÑÑÑ ÐŽÐŸ гÑлкО (`git push origin feature/AmazingFeature`) -5. ÐÑЎкÑОйÑе Pull Request - ---- - -## ð¬ ÐПМÑакÑО - -- **Twitter/X**: [@Web3Tinkle](https://x.com/Web3Tinkle) -- **GitHub Issues**: [СÑвПÑОÑО Issue](https://github.com/tinkle-community/nofx/issues) - ---- - -## ð ÐПЎÑкО - -- [Binance API](https://binance-docs.github.io/apidocs/futures/en/) - Binance Futures API -- [DeepSeek](https://platform.deepseek.com/) - DeepSeek AI API -- [Qwen](https://dashscope.aliyuncs.com/) - Alibaba Cloud Qwen -- [TA-Lib](https://ta-lib.org/) - ÐÑблÑПÑека ÑÐµÑ ÐœÑÑÐœÐžÑ ÑМЎОкаÑПÑÑв -- [Recharts](https://recharts.org/) - ÐÑблÑПÑека гÑаÑÑкÑв React - ---- - -## ð ÐÑÑПÑÑÑ Ð·ÐŒÑМ - -### v2.0.2 (2025-10-29) - -**ÐÑОÑОÑÐœÑ Ð²ÐžÐ¿ÑÐ°Ð²Ð»ÐµÐœÐœÑ Ð¿ÐŸÐŒÐžÐ»ÐŸÐº - ÐÑÑПÑÑÑ ÑгПЎ Ñа аМалÑз пÑПЎÑкÑОвМПÑÑÑ:** - -ÐŠÑ Ð²ÐµÑÑÑÑ Ð²ÐžÐ¿ÑавлÑÑ **кÑОÑОÑÐœÑ Ð¿ÐŸÐŒÐžÐ»ÐºÐž ÑПзÑÐ°Ñ ÑМкÑ** в ÑОÑÑÐµÐŒÑ ÑÑÑПÑОÑÐœÐžÑ Ð·Ð°Ð¿ÐžÑÑв ÑгПЎ Ñа аМалÑÐ·Ñ Ð¿ÑПЎÑкÑОвМПÑÑÑ, ÑÐºÑ Ð·ÐœÐ°ÑМП вплОвалО Ма ÑÑаÑОÑÑÐžÐºÑ Ð¿ÑОбÑÑкПвПÑÑÑ. - -**1. РПзÑÐ°Ñ ÑМПк P/L - ÐОпÑÐ°Ð²Ð»ÐµÐœÐœÑ Ð²ÐµÐ»ÐžÐºÐŸÑ Ð¿ÐŸÐŒÐžÐ»ÐºÐž** (logger/decision_logger.go) -- **ÐÑПблеЌа**: РаМÑÑе P/L ÑПзÑÐ°Ñ ÐŸÐ²ÑвавÑÑ Ð»ÐžÑе Ñк вÑÐŽÑПÑПк, пПвМÑÑÑÑ ÑгМПÑÑÑÑО ÑПзЌÑÑ Ð¿ÐŸÐ·ÐžÑÑÑ Ñа плеÑе - - ÐÑОклаЎ: ÐПзОÑÑÑ 100 USDT з ÐŽÐŸÑ ÐŸÐŽÐŸÐŒ 5% Ñа пПзОÑÑÑ 1000 USDT з ÐŽÐŸÑ ÐŸÐŽÐŸÐŒ 5% ÐŸÐ±ÐžÐŽÐ²Ñ Ð¿ÐŸÐºÐ°Ð·ÑвалО `5.0` Ñк пÑОбÑÑПк - - Ње ÑПбОлП аМалÑз пÑПЎÑкÑОвМПÑÑÑ Ð¿ÐŸÐ²ÐœÑÑÑÑ ÐœÐµÑПÑМОЌ -- **Ð ÑÑеММÑ**: Ð¢ÐµÐ¿ÐµÑ ÑПзÑÐ°Ñ ÐŸÐ²ÑÑÑÑÑÑ ÑакÑОÑМОй пÑОбÑÑПк в USDT - ``` - P/L (USDT) = ÐаÑÑÑÑÑÑ Ð¿ÐŸÐ·ÐžÑÑÑ Ã ÐÐŒÑМа ÑÑМО % à ÐлеÑе - ÐÑОклаЎ: 1000 USDT à 5% à 20x = 1000 USDT ÑакÑОÑМПгП пÑОбÑÑÐºÑ - ``` -- **ÐплОв**: ÐÑÐŽÑПÑПк вОгÑаÑÑв, кПеÑÑÑÑÑÐœÑ Ð¿ÑОбÑÑÐºÑ Ñа кПеÑÑÑÑÑÐœÑ ÐšÐ°Ñпа ÑÐµÐ¿ÐµÑ Ð·Ð°ÑÐœÐŸÐ²Ð°ÐœÑ ÐœÐ° ÑПÑÐœÐžÑ ÑÑÐŒÐ°Ñ USDT - -**2. ÐÑÐŽÑÑÐµÐ¶ÐµÐœÐœÑ Ð¿ÐŸÐ·ÐžÑÑй - ÐÑÐŽÑÑÑМÑÑÑÑ ÐºÑОÑОÑÐœÐžÑ ÐŽÐ°ÐœÐžÑ ** -- **ÐÑПблеЌа**: ÐапОÑО вÑЎкÑОÑÐžÑ Ð¿ÐŸÐ·ÐžÑÑй збеÑÑгалО лОÑе ÑÑÐœÑ Ñа ÑаÑ, пÑПпÑÑкаÑÑО кÑлÑкÑÑÑÑ Ñа плеÑе -- **Ð ÑÑеММÑ**: Ð¢ÐµÐ¿ÐµÑ Ð·Ð±ÐµÑÑÐ³Ð°Ñ Ð¿ÐŸÐ²ÐœÑ ÑПÑÐ³ÐŸÐ²Ñ ÐŽÐ°ÐœÑ: - - `quantity`: РПзЌÑÑ Ð¿ÐŸÐ·ÐžÑÑÑ (в ЌПМеÑÐ°Ñ ) - - `leverage`: ÐМПжМОк плеÑа (МапÑОклаЎ, 20x) - - ÐŠÑ ÐŽÐ°ÐœÑ ÐœÐµÐŸÐ±Ñ ÑÐŽÐœÑ ÐŽÐ»Ñ ÑПÑМПгП ÑПзÑÐ°Ñ ÑÐœÐºÑ P/L - -**3. ÐПгÑка клÑÑа пПзОÑÑÑ - ÐПМÑлÑÐºÑ Long/Short** -- **ÐÑПблеЌа**: ÐОкПÑОÑÑПвÑвавÑÑ `symbol` Ñк клÑÑ Ð¿ÐŸÐ·ÐžÑÑÑ, ÑП вОклОкалП кПМÑлÑкÑО ÐŽÐ°ÐœÐžÑ Ð¿ÑО ПЎМПÑаÑÐœÐŸÐŒÑ ÑÑÑÐžÐŒÐ°ÐœÐœÑ Ð»ÐŸÐœÐ³Ñв Ñа ÑПÑÑÑв - - ÐÑОклаЎ: BTCUSDT лПМг Ñа BTCUSDT ÑПÑÑ Ð¿ÐµÑезапОÑÑвалО ПЎОМ ПЎМПгП -- **Ð ÑÑеММÑ**: ÐÐŒÑМеМП Ма ÑПÑÐŒÐ°Ñ `symbol_side` (МапÑОклаЎ, `BTCUSDT_long`, `BTCUSDT_short`) - - Ð¢ÐµÐ¿ÐµÑ Ð¿ÑавОлÑМП ÑПзÑÑзМÑÑ Ð»ÐŸÐœÐ³ Ñа ÑПÑÑ Ð¿ÐŸÐ·ÐžÑÑÑ - -**4. РПзÑÐ°Ñ ÑМПк кПеÑÑÑÑÑМÑа КаÑпа - ÐпÑОЌÑзаÑÑÑ ÐºÐŸÐŽÑ** -- **ÐÑПблеЌа**: ÐОкПÑОÑÑПвÑвавÑÑ ÐºÐŸÑОÑÑÑваÑÑкОй ЌеÑПЎ ÐÑÑÑПМа ÐŽÐ»Ñ ÑПзÑÐ°Ñ ÑÐœÐºÑ ÐºÐ²Ð°ÐŽÑаÑМПгП кПÑÐµÐœÑ -- **Ð ÑÑеММÑ**: ÐаЌÑМеМП Ма ÑÑаМЎаÑÑÐœÑ Ð±ÑблÑПÑÐµÐºÑ `math.Sqrt` - - ÐÑлÑÑ ÐœÐ°ÐŽÑйМОй, пÑÐŽÑÑОЌÑваМОй Ñа еÑекÑОвМОй - -**Ð§ÐŸÐŒÑ Ñе ÐŸÐœÐŸÐ²Ð»ÐµÐœÐœÑ Ð²Ð°Ð¶Ð»ÐžÐ²Ðµ:** -- â ÐÑÑПÑОÑМа ÑÑаÑОÑÑОка ÑгПЎ ÑÐµÐ¿ÐµÑ Ð¿ÐŸÐºÐ°Ð·ÑÑ **ÑеалÑМОй пÑОбÑÑПк/збОÑПк в USDT** заЌÑÑÑÑ Ð±ÐµÐ·Ð³Ð»ÑÐ·ÐŽÐžÑ Ð²ÑÐŽÑПÑкÑв -- â ÐПÑÑвМÑÐœÐœÑ Ð¿ÑПЎÑкÑОвМПÑÑÑ ÐŒÑж ÑгПЎаЌО з ÑÑзМОЌ плеÑеЌ ÑÐµÐ¿ÐµÑ ÑПÑМе -- â ÐÐµÑ Ð°ÐœÑзЌ ÑаЌПМавÑÐ°ÐœÐœÑ AI ПÑÑОЌÑÑ Ð¿ÑавОлÑМОй ÑÑÑПÑОÑМОй звПÑПÑМОй зв'ÑзПк -- â РПзÑÐ°Ñ ÑМкО кПеÑÑÑÑÑМÑа пÑОбÑÑÐºÑ Ñа кПеÑÑÑÑÑМÑа КаÑпа ÑÐµÐ¿ÐµÑ ÐŒÐ°ÑÑÑ ÑÐµÐœÑ -- â ÐÑÐŽÑÑÐµÐ¶ÐµÐœÐœÑ ÐºÑлÑÐºÐŸÑ Ð¿ÐŸÐ·ÐžÑÑй (лПМг + ÑПÑÑ ÐŸÐŽÐœÐŸÑаÑМП) ÑÐµÐ¿ÐµÑ Ð¿ÑаÑÑÑ Ð¿ÑавОлÑМП - -**РекПЌеМЎаÑÑÑ**: ЯкÑП вО запÑÑкалО ÑОÑÑÐµÐŒÑ ÐŽÐŸ ÑÑПгП ПМПвлеММÑ, ваÑа ÑÑÑПÑОÑМа ÑÑаÑОÑÑОка бÑла МеÑПÑМПÑ. ÐÑÑÐ»Ñ ÐŸÐœÐŸÐ²Ð»ÐµÐœÐœÑ ÐŽÐŸ v2.0.2, ÐœÐŸÐ²Ñ ÑгПЎО бÑÐŽÑÑÑ ÑПзÑÐ°Ñ ÐŸÐ²ÑваÑОÑÑ Ð¿ÑавОлÑМП. - -### v2.0.1 (2025-10-29) - -**ÐОпÑÐ°Ð²Ð»ÐµÐœÐœÑ Ð¿ÐŸÐŒÐžÐ»ÐŸÐº:** -- â ÐОпÑавлеМП лПгÑÐºÑ ÐŸÐ±ÑПбкО ÐŽÐ°ÐœÐžÑ ComparisonChart - пеÑÐµÑ ÑÐŽ вÑÐŽ гÑÑпÑÐ²Ð°ÐœÐœÑ Ð¿ÐŸ cycle_number ЎП timestamp -- â ÐОÑÑÑеМП пÑÐŸÐ±Ð»ÐµÐŒÑ Ð·Ð°ÐŒÐŸÑПжÑÐ²Ð°ÐœÐœÑ Ð³ÑаÑÑка пÑО пеÑезапÑÑÐºÑ backend Ñа ÑÐºÐžÐŽÐ°ÐœÐœÑ cycle_number -- â ÐПкÑаÑеМП вÑЎПбÑÐ°Ð¶ÐµÐœÐœÑ ÐŽÐ°ÐœÐžÑ Ð³ÑаÑÑка - ÑÐµÐ¿ÐµÑ Ð¿ÐŸÐºÐ°Ð·ÑÑ Ð²ÑÑ ÑÑÑПÑОÑÐœÑ ÑПÑкО в Ñ ÑПМПлПгÑÑÐœÐŸÐŒÑ Ð¿ÐŸÑÑÐŽÐºÑ -- â ÐПкÑаÑÐµÐœÑ Ð²ÑЎлаЎПÑÐœÑ Ð»ÐŸÐ³Ðž ÐŽÐ»Ñ ÐºÑаÑÐŸÑ ÐŽÑагМПÑÑОкО - -### v2.0.0 (2025-10-28) - -**ÐÑÐœÐŸÐ²ÐœÑ ÐŸÐœÐŸÐ²Ð»ÐµÐœÐœÑ:** -- â ÐÐµÑ Ð°ÐœÑзЌ ÑаЌПМавÑÐ°ÐœÐœÑ AI (ÑÑÑПÑОÑМОй аМалÑз, аМалÑз пÑПЎÑкÑОвМПÑÑÑ) -- â РежОЌ Ð·ÐŒÐ°Ð³Ð°ÐœÐœÑ ÐºÑлÑÐºÐŸÑ ÑÑейЎеÑÑв (Qwen vs DeepSeek) -- â UI в ÑÑÐžÐ»Ñ Binance (пПвМа ÑÐŒÑÑаÑÑÑ ÑМÑеÑÑейÑÑ Binance) -- â ÐÑаÑÑкО пПÑÑвМÑÐœÐœÑ Ð¿ÑПЎÑкÑОвМПÑÑÑ (пПÑÑвМÑÐœÐœÑ ROI в ÑеалÑÐœÐŸÐŒÑ ÑаÑÑ) -- â ÐпÑОЌÑзаÑÑÑ ÐºÐŸÐœÑÑÐŸÐ»Ñ ÑОзОкÑв (кПÑОгÑÐ²Ð°ÐœÐœÑ Ð»ÑÐŒÑÑÑ Ð¿ÐŸÐ·ÐžÑÑÑ Ð¿ÐŸ ЌПМеÑÐ°Ñ ) - ---- - -**ÐÑÑÐ°ÐœÐœÑ ÐŸÐœÐŸÐ²Ð»ÐµÐœÐœÑ**: 2025-10-29 (v2.0.2) +**ÐÐµÐŽÐ°Ð²ÐœÑ ÐÑÐœÐŸÐ²ÐœÑ ÐПЌеМÑО:** +- ð ÐПвМа пеÑеÑПбка ÑОÑÑеЌО з веб-кПМÑÑгÑÑаÑÑÑÑ +- ðïž ÐÑÑ ÑÑекÑÑÑа Ма ПÑÐœÐŸÐ²Ñ Ð±Ð°Ð·Ðž ÐŽÐ°ÐœÐžÑ (SQLite) +- ðš ÐÑÑкПгП ÑеЎагÑÐ²Ð°ÐœÐœÑ JSON - вÑÑ ÐºÐŸÐœÑÑгÑÑаÑÑÑ ÑеÑез веб-ÑМÑеÑÑÐµÐ¹Ñ +- ð§ ÐПЌбÑМÑйÑе AI ÐŒÐŸÐŽÐµÐ»Ñ Ð· бÑÐŽÑ-ÑÐºÐŸÑ Ð±ÑÑÐ¶ÐµÑ +- ð РПзÑОÑеМОй API ÑÐ°Ñ Ð· кПЌплекÑМОЌО еМЎпПÑМÑаЌО +- ð ÐÑÑеМÑОÑÑкаÑÑÑ JWT + пÑÐŽÑÑОЌка 2FA +- ð ÐÑÐŽÑÑОЌка каÑÑÐŸÐŒÐœÐžÑ API (ÑÑÐŒÑÑÐœÐžÑ Ð· OpenAI) +- ð СОÑÑеЌа ÑаблПМÑв пÑПЌпÑÑв з вÑÐŽÐŽÐ°Ð»ÐµÐœÐŸÑ Ð°ÑÑеМÑОÑÑкаÑÑÑÑ **â¡ ÐПÑлÑЎжÑйÑе ЌПжлОвПÑÑÑ ÐºÑлÑкÑÑÐœÐŸÑ ÑПÑгÑÐ²Ð»Ñ Ð· ÑÐžÐ»ÐŸÑ AI!** diff --git a/README.zh-CN.md b/docs/i18n/zh-CN/README.md similarity index 71% rename from README.zh-CN.md rename to docs/i18n/zh-CN/README.md index 75be2f64..29d69c8e 100644 --- a/README.zh-CN.md +++ b/docs/i18n/zh-CN/README.md @@ -6,10 +6,38 @@ [](LICENSE) [](https://amber.ac) -**è¯èš / Languages:** [English](README.md) | [äžæ](README.zh-CN.md) | [УкÑаÑМÑÑка](README.uk.md) | [Ð ÑÑÑкОй](README.ru.md) +**è¯èš / Languages:** [English](../../../README.md) | [äžæ](../zh-CN/README.md) | [УкÑаÑМÑÑка](../uk/README.md) | [Ð ÑÑÑкОй](../ru/README.md) **宿¹æšç¹:** [@nofx_ai](https://x.com/nofx_ai) +**ð ææ¡£äžå¿:** [ææ¡£éŠé¡µ](../../README.md) | [å¿«éåŒå§](../../getting-started/README.zh-CN.md) | [æŽæ°æ¥å¿](../../../CHANGELOG.zh-CN.md) | [ç€Ÿåºæå](../../community/README.md) + +--- + +## ð ç®åœ + +- [ð éçšAI亀ææäœç³»ç»](#-éçšai亀ææäœç³»ç») +- [ð¥ åŒåè 瀟åº](#-åŒåè 瀟åº) +- [ð ææ°æŽæ°](#-ææ°æŽæ°) +- [ðž ç³»ç»æªåŸ](#-ç³»ç»æªåŸ) +- [âš åœåå®ç°](#-åœåå®ç°---å å¯èާåžåžåº) +- [ð® 路线åŸ](#-路线åŸ---éçšåžåºæ©å±) +- [ðïž ææ¯æ¶æ](#ïž-ææ¯æ¶æ) +- [ð° æ³šååžå®èŽŠæ·](#-泚ååžå®èŽŠæ·çæç»è޹) +- [ð å¿«éåŒå§](#-å¿«éåŒå§) +- [ð AIå³çæµçš](#-aiå³çæµçš) +- [ð§ AIèªæåŠä¹ 瀺äŸ](#-aièªæåŠä¹ 瀺äŸ) +- [ð Webçé¢åèœ](#-webçé¢åèœ) +- [ðïž APIæ¥å£](#ïž-apiæ¥å£) +- [ð å³çæ¥å¿æ ŒåŒ](#-å³çæ¥å¿æ ŒåŒ) +- [ð§ é£é©æ§å¶è¯Šè§£](#-é£é©æ§å¶è¯Šè§£) +- [â ïž éèŠé£é©æç€º](#ïž-éèŠé£é©æç€º) +- [ð ïž åžžè§é®é¢](#ïž-åžžè§é®é¢) +- [ð æ§èœäŒå建议](#-æ§èœäŒå建议) +- [ð æŽæ°æ¥å¿](#-æŽæ°æ¥å¿) +- [ð åŒæºåè®®](#-åŒæºåè®®) +- [ð€ èŽ¡ç®æå](#-èŽ¡ç®æå) + --- ## ð éçšAI亀ææäœç³»ç» @@ -109,11 +137,11 @@ NOFXç°å·²æ¯æ**äžå€§äº€ææ**ïŒBinanceãHyperliquidåAster DEXïŒ ## ðž ç³»ç»æªåŸ ### ð ç«èµæš¡åŒ - AI宿¶å¯¹æ - + *å€AIæè¡æŠå宿¶æ§èœå¯¹æ¯åŸè¡šïŒå±ç€ºQwen vs DeepSeek宿¶äº€æå¯¹æ* ### ð 亀æè¯Šæ - 宿Žäº€æä»ªè¡šç - + *äžäžäº€æçé¢ïŒå å«æçæ²çº¿ã宿¶æä»ãAIå³çæ¥å¿ïŒæ¯æå±åŒæ¥çèŸå ¥æç€ºè¯åAIæç»ŽéŸæšçè¿çš* --- @@ -168,78 +196,50 @@ NOFX ç®åå·²åš**å å¯èާåžåžåºå šé¢è¿è¡**ïŒå ·å€ä»¥äžç»è¿éªè¯ ## ð® è·¯çº¿åŸ - éçšåžåºæ©å± -æä»¬ç»è¿éªè¯çå å¯èާåžåºç¡è®Ÿæœæ£åšæ©å±å°ïŒ +NOFX çäœ¿åœæ¯æäžºææéèåžåºç**éçš AI 亀ææäœç³»ç»**ã -- **ð è¡ç¥šåžåº**ïŒçŸè¡ãAè¡ãæž¯è¡ -- **ð æèާåžåº**ïŒååæèŽ§ãææ°æèާ -- **ð¯ ææäº€æ**ïŒè¡ç¥šææãå 坿æ -- **ð± 倿±åžåº**ïŒäž»èŠèާåžå¯¹ã亀åç +**æ¿æ¯ïŒ** çžåæ¶æãçžåæºèœäœæ¡æ¶ãææåžåºã -**çžåæ¶æãçžåæºèœäœæ¡æ¶ãææåžåºã** +**æ©å±åžåºïŒ** +- ð **è¡ç¥šåžåº**ïŒçŸè¡ãAè¡ãæž¯è¡ +- ð **æèާåžåº**ïŒååæèŽ§ãææ°æèާ +- ð¯ **ææäº€æ**ïŒè¡ç¥šææãå 坿æ +- ð± **倿±åžåº**ïŒäž»èŠèާåžå¯¹ã亀åç + +**å³å°æšåºçåèœïŒ** +- å¢åŒºAIèœåïŒGPT-4ãClaude 3ãGemini ProãçµæŽ»promptæš¡æ¿ïŒ +- æ°äº€ææéæïŒOKXãBybitãLighterãEdgeX + CEX/Perp-DEXïŒ +- 项ç®ç»æéæïŒé«å èäœèŠåãSOLIDååïŒ +- å®å šæ§å¢åŒºïŒAPIå¯é¥AES-256å å¯ãRBACã2FAæ¹è¿ïŒ +- çšæ·äœéªæ¹è¿ïŒç§»åšç«¯ååºåŒãTradingViewåŸè¡šãåèŠç³»ç»ïŒ + +ð **诊ç»è·¯çº¿åŸåæ¶éŽè¡šïŒè¯·åé ïŒ** +- **äžæ:** [è·¯çº¿åŸææ¡£](../../roadmap/README.zh-CN.md) +- **English:** [Roadmap Documentation](../../roadmap/README.md) --- ## ðïž ææ¯æ¶æ -``` -nofx/ -âââ main.go # çšåºå ¥å£ïŒå€trader管çåšïŒ -âââ config.json # é 眮æä»¶ïŒAPIå¯é¥ã~~å€traderé 眮~~ïŒ(亀æåé 眮éè¿Webçé¢) -â -âââ api/ # HTTP APIæå¡ -â âââ server.go # Ginæ¡æ¶ïŒRESTful API -â -âââ trader/ # äº€ææ žå¿ -â âââ auto_trader.go # èªåšäº€æäž»æ§ïŒåtraderïŒ -â âââ binance_futures.go # åžå®å纊APIå°è£ -â -âââ manager/ # å€trader管ç -â âââ trader_manager.go # 管çå€äžªtraderå®äŸ -â -âââ mcp/ # Model Context Protocol - AIéä¿¡ -â âââ client.go # AI API客æ·ç«¯ïŒDeepSeek/QwenéæïŒ -â -âââ decision/ # AIå³çåŒæ -â âââ engine.go # å³çé»èŸïŒå«åå²åéŠïŒ -â -âââ market/ # åžåºæ°æ®è·å -â âââ data.go # åžåºæ°æ®äžææ¯ææ ïŒK线ãRSIãMACDïŒ -â -âââ pool/ # åžç§æ± 管ç -â âââ coin_pool.go # AI500 + OI Topåå¹¶æ± -â -âââ logger/ # æ¥å¿ç³»ç» -â âââ decision_logger.go # å³çè®°åœ + 衚ç°åæ -â -âââ decision_logs/ # å³çæ¥å¿ååš -â âââ qwen_trader/ # Qwen traderæ¥å¿ -â âââ deepseek_trader/ # DeepSeek traderæ¥å¿ -â -âââ web/ # Reactå端 - âââ src/ - â âââ components/ # Reactç»ä»¶ - â â âââ EquityChart.tsx # æ¶ççæ²çº¿åŸ - â â âââ ComparisonChart.tsx # å€AI对æ¯åŸ - â â âââ CompetitionPage.tsx # ç«èµæè¡æŠ - â âââ lib/api.ts # APIè°çšå°è£ - â âââ types/index.ts # TypeScriptç±»å - â âââ index.css # Binance飿 Œæ ·åŒ - â âââ App.tsx # äž»åºçš - âââ package.json -``` +NOFX éçšç°ä»£åçæš¡ååæ¶æïŒ -### æ žå¿äŸèµ +- **å端ïŒ** Go + Gin æ¡æ¶ïŒSQLite æ°æ®åº +- **å端ïŒ** React 18 + TypeScript + Vite + TailwindCSS +- **å€äº€æææ¯æïŒ** BinanceãHyperliquidãAster DEX +- **AI éæïŒ** DeepSeekãQwen åèªå®ä¹ OpenAI å Œå®¹ API +- **ç¶æç®¡çïŒ** å端 ZustandïŒåç«¯æ°æ®åºé©±åš +- **宿¶æŽæ°ïŒ** SWRïŒ5-10 ç§èœ®è¯¢éŽé -**å端 (Go)** -- `github.com/adshao/go-binance/v2` - åžå®API客æ·ç«¯ -- `github.com/markcheno/go-talib` - ææ¯ææ è®¡ç®ïŒTA-LibïŒ -- `github.com/gin-gonic/gin` - HTTP APIæ¡æ¶ +**æ žå¿ç¹æ§ïŒ** +- ðïž æ°æ®åºé©±åšçé çœ®ïŒæ éçŒèŸ JSONïŒ +- ð JWT 讀è¯ïŒæ¯æå¯éç 2FA +- ð 宿¶æ§èœè·èžªååæ +- ð€ å€ AI ç«èµæš¡åŒïŒå®æ¶å¯¹æ¯ +- ð RESTful APIïŒå®æŽçé 眮åçæ§ -**å端 (React + TypeScript)** -- `react` + `react-dom` - UIæ¡æ¶ -- `recharts` - åŸè¡šåºïŒæ¶ççæ²çº¿ã对æ¯åŸïŒ -- `swr` - æ°æ®è·ååçŒå -- `tailwindcss` - CSSæ¡æ¶ +ð **è¯Šç»æ¶æææ¡£ïŒè¯·æ¥çïŒ** +- **äžæçïŒ** [æ¶æææ¡£](../../architecture/README.zh-CN.md) +- **English:** [Architecture Documentation](../../architecture/README.md) --- @@ -420,9 +420,9 @@ cd .. ~~**æ¥éª€1**ïŒå€å¶å¹¶éåœå瀺äŸé 眮æä»¶~~ -~~```bash +```bash cp config.example.jsonc config.json -```~~ +``` ~~**æ¥éª€2**ïŒçŒèŸ`config.json`å¡«å ¥æšçAPIå¯é¥~~ @@ -897,79 +897,73 @@ curl http://localhost:8080/api/health æ¯äžªå³çåšæïŒé»è®€3åéïŒïŒç³»ç»æä»¥äžæµçšè¿è¡ïŒ -``` -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -â 1. ð åæåå²è¡šç°ïŒæè¿20äžªåšæïŒ â -âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ†-â â è®¡ç®æŽäœèçãå¹³åçå©ãçäºæ¯ â -â â ç»è®¡ååžç§è¡šç°ïŒèçãå¹³åUSDTçäºïŒ â -â â è¯å«æäœ³/æå·®åžç§ â -â â ååºæè¿5ç¬äº€æè¯Šæ ïŒå«åç¡®çäºéé¢ïŒ â -â â 计ç®å€æ®æ¯çè¡¡éé£é©è°æŽåæ¶ç â -â ð æ°å¢ (v2.0.2): èèæ æçåç¡®USDTçäºè®¡ç® â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ - â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -â 2. ð° è·å莊æ·ç¶æ â -âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ†-â ⢠莊æ·ååŒãå¯çšäœé¢ãæªå®ç°çäº â -â ⢠æä»æ°éãæ»çäºïŒå·²å®ç°+æªå®ç°ïŒ â -â ⢠ä¿è¯é䜿çšçïŒcurrent/maximumïŒ â -â ⢠é£é©è¯äŒ°ææ â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ - â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -â 3. ð åæç°ææä»ïŒåŠææïŒ â -âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ†-â ⢠è·åæ¯äžªæä»çåžåºæ°æ®ïŒ3åé+4å°æ¶Kçº¿ïŒ â -â â¢ è®¡ç®ææ¯ææ ïŒRSIãMACDãEMAïŒ â -â ⢠æŸç€ºæä»æ¶é¿ïŒäŸåŠ"æä»æ¶é¿2å°æ¶15åé"ïŒ â -â ⢠AI倿æ¯åŠéèŠå¹³ä»ïŒæ¢çãæ¢ææè°æŽïŒ â -â ð æ°å¢ (v2.0.2): 远螪æä»æ¶é¿åž®å©AIå³ç â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ - â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -â 4. ð¯ è¯äŒ°æ°æºäŒïŒåéåžç§æ± ïŒ â -âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ†-â ⢠è·åAI500é«è¯ååžç§ïŒå20äžªïŒ â -â ⢠è·åOI Topæä»å¢é¿åžç§ïŒå20äžªïŒ â -â ⢠åå¹¶å»éïŒè¿æ»€äœæµåšæ§åžç§ïŒæä»é<15M USDïŒ â -â ⢠æ¹éè·ååžåºæ°æ®åææ¯ææ â -â ⢠䞺æ¯äžªåéåžç§åå€å®æŽçåå§æ°æ®åºå â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ - â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -â 5. ð§ AI绌åå³ç â -âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ†-â ⢠æ¥çåå²åéŠïŒèçãçäºæ¯ãæäœ³/æå·®åžç§ïŒ â -â â¢ æ¥æ¶ææåå§åºåæ°æ®ïŒKçº¿ãææ ãæä»éïŒ â -â ⢠Chain of Thought æç»ŽéŸåæ â -â ⢠èŸåºå³çïŒå¹³ä»/åŒä»/ææ/è§æ â -â ⢠å 嫿 æãä»äœãæ¢æãæ¢çåæ° â -â ð æ°å¢ (v2.0.2): AIå¯èªç±åæåå§åºåïŒäžåé¢å®ä¹ææ éå¶ â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ - â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -â 6. â¡ æ§è¡äº€æ â -âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ†-â ⢠äŒå 级æåºïŒå å¹³ä»ïŒååŒä» â -â ⢠粟床èªåšéé ïŒLOT_SIZEè§åïŒ â -â â¢ é²æ¢ä»äœå å ïŒååžç§åæ¹åæç»åŒä»ïŒ â -â ⢠平ä»åèªåšåæ¶æææå â -â ⢠记åœåŒä»æ¶éŽçšäºæä»æ¶é¿è¿œèžª â -â ð æ°å¢ (v2.0.2): 远螪æä»åŒä»æ¶éŽ â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ - â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -â 7. ð è®°åœæ¥å¿ â -âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ†-â ⢠ä¿å宿Žå³çè®°åœå° decision_logs/ â -â ⢠å å«æç»ŽéŸãå³çJSONã莊æ·å¿«ç §ãæ§è¡ç»æ â -â ⢠ååšå®æŽæä»æ°æ®ïŒæ°éãæ æãåŒ/平仿¶éŽïŒ â -â ⢠䜿çšsymbol_sideé®åŒé²æ¢å€ç©ºå²çª â -â ð æ°å¢ (v2.0.2): 鲿¢å€ç©ºæä»å²çªïŒèèæ°é+æ æ â -ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -``` +### æ¥éª€1: ð åæåå²è¡šç°ïŒæè¿20äžªåšæïŒ +- â è®¡ç®æŽäœèçãå¹³åçå©ãçäºæ¯ +- â ç»è®¡ååžç§è¡šç°ïŒèçãå¹³åUSDTçäºïŒ +- â è¯å«æäœ³/æå·®åžç§ +- â ååºæè¿5ç¬äº€æè¯Šæ ïŒå«åç¡®çäºéé¢ïŒ +- â 计ç®å€æ®æ¯çè¡¡éé£é©è°æŽåæ¶ç +- ð **æ°å¢ (v2.0.2)**: èèæ æçåç¡®USDTçäºè®¡ç® + +**â** + +### æ¥éª€2: ð° è·å莊æ·ç¶æ +- 莊æ·ååŒãå¯çšäœé¢ãæªå®ç°çäº +- æä»æ°éãæ»çäºïŒå·²å®ç°+æªå®ç°ïŒ +- ä¿è¯é䜿çšçïŒcurrent/maximumïŒ +- é£é©è¯äŒ°ææ + +**â** + +### æ¥éª€3: ð åæç°ææä»ïŒåŠææïŒ +- è·åæ¯äžªæä»çåžåºæ°æ®ïŒ3åé+4å°æ¶Kçº¿ïŒ +- è®¡ç®ææ¯ææ ïŒRSIãMACDãEMAïŒ +- æŸç€ºæä»æ¶é¿ïŒäŸåŠ"æä»æ¶é¿2å°æ¶15åé"ïŒ +- AI倿æ¯åŠéèŠå¹³ä»ïŒæ¢çãæ¢ææè°æŽïŒ +- ð **æ°å¢ (v2.0.2)**: 远螪æä»æ¶é¿åž®å©AIå³ç + +**â** + +### æ¥éª€4: ð¯ è¯äŒ°æ°æºäŒïŒåéåžç§æ± ïŒ +- è·ååžç§æ± ïŒ2ç§æš¡åŒïŒïŒ + - ð **é»è®€æš¡åŒ**: BTCãETHãSOLãBNBãXRPç + - âïž **é«çº§æš¡åŒ**: AI500ïŒå20ïŒ + OI TopïŒå20ïŒ +- åå¹¶å»éïŒè¿æ»€äœæµåšæ§åžç§ïŒæä»é<15M USDïŒ +- æ¹éè·ååžåºæ°æ®åææ¯ææ +- 䞺æ¯äžªåéåžç§åå€å®æŽçåå§æ°æ®åºå + +**â** + +### æ¥éª€5: ð§ AI绌åå³ç +- æ¥çåå²åéŠïŒèçãçäºæ¯ãæäœ³/æå·®åžç§ïŒ +- æ¥æ¶ææåå§åºåæ°æ®ïŒKçº¿ãææ ãæä»éïŒ +- Chain of Thought æç»ŽéŸåæ +- èŸåºå³çïŒå¹³ä»/åŒä»/ææ/è§æ +- å 嫿 æãä»äœãæ¢æãæ¢çåæ° +- ð **æ°å¢ (v2.0.2)**: AIå¯èªç±åæåå§åºåïŒäžåé¢å®ä¹ææ éå¶ + +**â** + +### æ¥éª€6: â¡ æ§è¡äº€æ +- äŒå 级æåºïŒå å¹³ä»ïŒååŒä» +- 粟床èªåšéé ïŒLOT_SIZEè§åïŒ +- 鲿¢ä»äœå å ïŒååžç§åæ¹åæç»åŒä»ïŒ +- å¹³ä»åèªåšåæ¶æææå +- è®°åœåŒä»æ¶éŽçšäºæä»æ¶é¿è¿œèžª +- ð 远螪æä»åŒä»æ¶éŽ + +**â** + +### æ¥éª€7: ð è®°åœæ¥å¿ +- ä¿å宿Žå³çè®°åœå° `decision_logs/` +- å å«æç»ŽéŸãå³çJSONã莊æ·å¿«ç §ãæ§è¡ç»æ +- ååšå®æŽæä»æ°æ®ïŒæ°éãæ æãåŒ/平仿¶éŽïŒ +- äœ¿çš `symbol_side` é®åŒé²æ¢å€ç©ºå²çª +- ð **æ°å¢ (v2.0.2)**: 鲿¢å€ç©ºæä»å²çªïŒèèæ°é+æ æ + +**â** + +**ð ïŒæ¯3-5åééå€äžæ¬¡ïŒ** ### v2.0.2çæ žå¿æ¹è¿ @@ -1248,77 +1242,19 @@ sudo apt-get install libta-lib0-dev ## ð æŽæ°æ¥å¿ -### v2.0.2 (2025-10-29) +ð **诊ç»ççæ¬åå²åæŽæ°ïŒè¯·æ¥çïŒ** -**å ³é®Bugä¿®å€ - 亀æåå²è®°åœäžæ§èœåæïŒ** +- **äžæçïŒ** [CHANGELOG.zh-CN.md](../../../CHANGELOG.zh-CN.md) +- **English:** [CHANGELOG.md](../../../CHANGELOG.md) -æ¬çæ¬ä¿®å€äºåå²äº€æè®°åœåæ§èœåæç³»ç»äžç**䞥é计ç®é误**ïŒè¿äºé误䞥é圱åäºçå©ç»è®¡çåç¡®æ§ã +**ææ°çæ¬ïŒ** v3.0.0 (2025-10-30) - éå€§æ¶æåé© -**1. çäºè®¡ç® - é倧é误修å€** (logger/decision_logger.go) -- **é®é¢**ïŒä¹ååªçšçŸåæ¯è®¡ç®çäºïŒå®å šå¿œç¥äºä»äœå€§å°åæ æåæ° - - 瀺äŸïŒ100 USDTä»äœèµ5%å1000 USDTä»äœèµ5%éœæŸç€º`5.0`äœäžºçå© - - è¿å¯ŒèŽæ§èœåæå®å šäžåç¡® -- **è§£å³æ¹æ¡**ïŒç°åšè®¡ç®å®é USDTçäºéé¢ - ``` - çäº(USDT) = ä»äœä»·åŒ Ã ä»·æ Œåå% Ã æ æåæ° - 瀺äŸ: 1000 USDT à 5% à 20å = 1000 USDTå®é çå© - ``` -- **圱å**ïŒèçãçäºæ¯å倿®æ¯çç°åšåºäºåç¡®çUSDTéé¢è®¡ç® - -**2. æä»è¿œèžª - çŒºå€±å ³é®æ°æ®** -- **é®é¢**ïŒåŒä»è®°åœåªååšäºä»·æ Œåæ¶éŽïŒçŒºå°æ°éåæ æ -- **è§£å³æ¹æ¡**ïŒç°åšååšå®æŽäº€ææ°æ®ïŒ - - `quantity`: æä»æ°éïŒåžæ°ïŒ - - `leverage`: æ æåæ°ïŒåŠ20åïŒ - - è¿äºæ¯å确计ç®çäºçå¿ èŠæ°æ® - -**3. æä»é®åŒé»èŸ - å€ç©ºå²çª** -- **é®é¢**ïŒäœ¿çš`symbol`äœäžºæä»é®åŒïŒå¯ŒèŽåæ¶ææå€ç©ºä»æ¶æ°æ®å²çª - - 瀺äŸïŒBTCUSDTå€å€ŽåBTCUSDT空倎äŒäºçžèŠç -- **è§£å³æ¹æ¡**ïŒæ¹äžº`symbol_side`æ ŒåŒïŒåŠ`BTCUSDT_long`ã`BTCUSDT_short`ïŒ - - ç°åšå¯ä»¥æ£ç¡®åºåå€ç©ºæä» - -**4. 倿®æ¯çè®¡ç® - 代ç äŒå** -- **é®é¢**ïŒäœ¿çšèªå®ä¹ççé¡¿è¿ä»£æ³è®¡ç®å¹³æ¹æ ¹ -- **è§£å³æ¹æ¡**ïŒæ¿æ¢äžºæ ååº`math.Sqrt` - - æŽå¯é ãæç»Žæ€äžé«æ - -**䞺ä»ä¹è¿æ¬¡æŽæ°åŸéèŠïŒ** -- â åå²äº€æç»è®¡ç°åšæŸç€º**çå®çUSDTçäº**èäžæ¯æ æä¹ççŸåæ¯ -- â äžåæ æåæ°ç亀æå¯¹æ¯ç°åšåç¡®äº -- â AIèªæåŠä¹ æºå¶æ¥æ¶å°æ£ç¡®çåå²åéŠ -- â çäºæ¯å倿®æ¯ç计ç®ç°åšææä¹äº -- â 倿ä»è¿œèžªïŒåæ¶ææå€ç©ºïŒç°åšæ£åžžå·¥äœ - -**建议**ïŒåŠææšå𿀿޿°åè¿è¡è¿ç³»ç»ïŒæšçåå²ç»è®¡æ°æ®æ¯äžåç¡®çãæŽæ°å°v2.0.2åïŒæ°ç亀æå°è¢«æ£ç¡®è®¡ç®ã - -### v2.0.1 (2025-10-29) - -**Bugä¿®å€:** -- â ä¿®å€ComparisonChartæ°æ®å€çé»èŸ - ä»cycle_numberåç»æ¹äžºtimestampåç» -- â è§£å³å端éå¯å¯ŒèŽcycle_numberé眮æ¶åŸè¡šå»ç»çé®é¢ -- â æ¹è¿åŸè¡šæ°æ®æŸç€º - ç°åšææ¶éŽé¡ºåºæŸç€ºææå岿°æ®ç¹ -- â å¢åŒºè°è¯æ¥å¿ïŒäŸ¿äºé®é¢ææ¥ - -### v2.0.0 (2025-10-28) - -**éå€§æŽæ°:** -- â AIèªæåŠä¹ æºå¶ïŒåå²åéŠã衚ç°åæïŒ -- â å€Traderç«èµæš¡åŒïŒQwen vs DeepSeekïŒ -- â Binance飿 ŒUIïŒå®æŽæš¡ä»¿åžå®çé¢ïŒ -- â æ§èœå¯¹æ¯åŸè¡šïŒæ¶çç宿¶å¯¹æ¯ïŒ -- â é£é©æ§å¶äŒåïŒååžç§ä»äœäžéè°æŽïŒ - -**Bugä¿®å€:** -- ä¿®å€åå§äœé¢ç¡¬çŒç é®é¢ -- ä¿®å€å€traderæ°æ®åæ¥é®é¢ -- äŒååŸè¡šæ°æ®å¯¹éœïŒäœ¿çšcycle_numberïŒ - -### v1.0.0 (2025-10-27) -- åå§çæ¬ååž -- åºç¡AI亀æåèœ -- å³çæ¥å¿ç³»ç» -- ç®åWebçé¢ +**è¿æäº®ç¹ïŒ** +- ð 宿Žç³»ç»éæ°è®Ÿè®¡ïŒåºäºWebçé çœ®å¹³å° +- ðïž æ°æ®åºé©±åšæ¶æïŒSQLiteïŒ +- ðš æ éçŒèŸJSON - å šéšéè¿Webçé¢é 眮 +- ð§ AIæš¡åäžäº€ææä»»æç»å +- ð å¢åŒºçAPIå±ïŒæäŸå šé¢çç«¯ç¹ --- diff --git a/docs/roadmap/README.md b/docs/roadmap/README.md new file mode 100644 index 00000000..9f203ff1 --- /dev/null +++ b/docs/roadmap/README.md @@ -0,0 +1,292 @@ +# ðºïž NOFX Roadmap + +**Language:** [English](README.md) | [äžæ](README.zh-CN.md) + +Strategic plan for NOFX development and universal market expansion. + +--- + +## ð Overview + +NOFX is on a mission to become the **Universal AI Trading Operating System** for all financial markets. Our proven infrastructure on crypto markets is being extended to stocks, futures, options, forex, and beyond. + +**Vision:** Same architecture. Same agent framework. All markets. + +--- + +## ð¯ Short-Term Roadmap + +### Phase 1: Core Infrastructure Enhancement + +#### 1.1 Security Enhancements +**Goal:** Protect sensitive data and reduce security vulnerabilities + +- **Credential Management** + - [ ] Implement AES-256 encryption for API keys in database + - [ ] Add encryption for private keys (Hyperliquid, Aster) + - [ ] Use hardware security module (HSM) support for production + - [ ] Implement key rotation mechanism + - [ ] Add audit logging for all credential access + +- **Application Security** + - [ ] Input validation and sanitization (prevent SQL injection, XSS) + - [ ] Rate limiting for API endpoints + - [ ] CORS policy configuration + - [ ] JWT token expiration and refresh mechanism + - [ ] Implement RBAC (Role-Based Access Control) for multi-user support + - [ ] Add IP whitelisting for API access + - [ ] Security headers (CSP, HSTS, X-Frame-Options) + +- **Operational Security** + - [ ] Secure password hashing (bcrypt with salt) + - [ ] 2FA enhancement (backup codes, multiple TOTP devices) + - [ ] Session management (auto-logout, concurrent session limits) + - [ ] Secrets management (environment variables, vault integration) + - [ ] Regular dependency vulnerability scanning + +#### 1.2 Enhanced AI Capabilities +**Goal:** Richer prompts, flexible configuration, support for more AI models + +- **Prompt System Overhaul** + - [ ] Template engine for dynamic prompt generation + - [ ] Multi-language prompt support (chain-of-thought, few-shot, zero-shot) + - [ ] Market condition-based prompt switching (bull, bear, sideways) + - [ ] Historical performance feedback integration in prompts + - [ ] Prompt versioning and A/B testing framework + - [ ] User-customizable prompt templates via web interface + +- **AI Model Integration** + - [ ] OpenAI GPT-4/GPT-4 Turbo support + - [ ] Anthropic Claude 3 (Opus, Sonnet, Haiku) integration + - [ ] Google Gemini Pro support + - [ ] Local LLM support (Llama, Mistral via Ollama) + - [ ] Multi-model ensemble (voting, weighted average) + - [ ] Model performance tracking and auto-selection + - [ ] Fallback mechanism when primary model fails + +- **AI Decision Engine** + - [ ] Confidence scoring for each decision + - [ ] Explanation generation (why this trade?) + - [ ] Risk assessment integration in AI reasoning + - [ ] Market regime detection (trend, mean-reversion, high volatility) + - [ ] Cross-validation with technical indicators + +#### 1.3 Exchange Integration Expansion +**Goal:** Support more CEX and popular perp-DEX, both spot and futures + +- **Centralized Exchanges (CEX)** + - [ ] **OKX** - Futures + Spot trading + - [ ] **Bybit** - Futures + Spot trading + - [ ] **Bitget** - Futures + Spot trading + - [ ] **Gate.io** - Futures + Spot trading + - [ ] **KuCoin** - Futures + Spot trading + - [ ] Unified CEX interface for easy addition of new exchanges + +- **Decentralized Perpetual Exchanges (Perp-DEX)** + - [x] **Hyperliquid** (Ethereum L1) - High-performance orderbook DEX (â Supported) + - [x] **Aster** (Multi-chain) - Binance-compatible API DEX (â Supported) + - [ ] **Lighter** (Arbitrum) - Gasless orderbook DEX with off-chain matching + - [ ] **EdgeX** (Multi-chain) - Professional derivatives DEX + - [ ] Unified DEX interface for consistent integration + - [ ] Enhanced Hyperliquid integration (testnet support, advanced order types) + - [ ] Enhanced Aster integration (cross-chain support, wallet management) + +- **Spot + Futures Support** + - [ ] Dual-mode trading (spot arbitrage, futures hedging) + - [ ] Cross-exchange arbitrage detection + - [ ] Unified position tracking across spot and futures + - [ ] Auto-conversion between spot and perpetual strategies + +- **Exchange Infrastructure** + - [ ] **Trading Data Analysis API Integration** (In-house developed) + - [ ] AI500 integration - In-house AI-powered coin selection model + - [ ] OI (Open Interest) Analysis - Real-time open interest tracking and anomaly detection + - [ ] NetFlow Analysis - On-chain fund flow analysis for market sentiment + - [ ] Market sentiment aggregator - Combine multiple data sources for enhanced AI decision making + - [ ] Custom indicator API - Support for proprietary technical indicators + - [ ] Automatic precision handling (quantity, price decimals) + - [ ] Order type abstraction (market, limit, stop-loss, take-profit) + - [ ] Unified error handling and retry logic + - [ ] WebSocket support for real-time data + - [ ] Rate limit management per exchange + +#### 1.4 Project Structure Refactoring +**Goal:** Clear hierarchy, high cohesion, low coupling, easy to extend and maintain + +- **Architecture Redesign** + - [ ] Implement layered architecture (Presentation â Business Logic â Data Access) + - [ ] Apply SOLID principles (especially Liskov Substitution Principle for exchange adapters) + - [ ] Extract common interfaces for all exchange implementations + - [ ] Separate concerns: trading logic, data fetching, decision making, execution + - [ ] Implement dependency injection for better testability + +- **Code Organization** + - [ ] Refactor monolithic modules into smaller, focused packages + - [ ] Create abstract base classes for traders, exchanges, AI models + - [ ] Implement factory pattern for exchange/AI model creation + - [ ] Standardize error handling and logging across all modules + - [ ] Remove circular dependencies and improve import structure + +- **Configuration Management** + - [ ] Centralize all configuration in structured config files + - [ ] Implement hot-reload for non-critical configuration changes + - [ ] Validate configurations at startup with clear error messages + - [ ] Support environment-specific configs (dev/staging/production) + +#### 1.5 User Experience Improvements +**Goal:** Enhanced web interface, better monitoring, and alerting system + +- **Web Interface Enhancements** + - [ ] Mobile-responsive design (tablet and phone support) + - [ ] Dark/Light theme toggle with user preference saving + - [ ] Advanced charting with TradingView widget integration + - [ ] Real-time WebSocket updates (replace polling for positions/orders) + - [ ] Drag-and-drop dashboard customization + - [ ] Multi-language support (EN, CN, RU, UK) + +- **Configuration Interface** + - [ ] Visual strategy builder (no-code flow diagram) + - [ ] Live configuration preview before saving + - [ ] Configuration templates for common strategies + - [ ] Bulk trader management (start/stop multiple traders) + - [ ] Exchange credential testing (verify before saving) + - [ ] AI model testing interface (test prompts before deployment) + +- **Monitoring & Analytics** + - [ ] Real-time performance dashboard with key metrics + - [ ] Equity curve visualization (per trader, per exchange, overall) + - [ ] Drawdown analysis and risk metrics + - [ ] Trade history with filtering and search + - [ ] P&L breakdown by symbol, time period, strategy + - [ ] Comparison view (multiple traders side-by-side) + - [ ] Export functionality (CSV, JSON, PDF reports) + +- **Alert & Notification System** + - [ ] Multi-channel alerts (Email, Telegram, Discord, Webhook) + - [ ] Configurable alert rules (profit threshold, loss limit, error detection) + - [ ] Alert priority levels (critical, warning, info) + - [ ] Alert history and acknowledgment tracking + - [ ] Daily/Weekly performance summary emails + - [ ] System health monitoring (API connectivity, database status) + +### Phase 2: Testing & Stability + +#### 2.1 Quality Assurance +- [ ] Comprehensive unit test coverage (>80%) +- [ ] Integration tests for all exchange adapters +- [ ] Load testing (100+ concurrent traders) +- [ ] Security audit (API key encryption, SQL injection prevention) + +#### 2.2 Documentation +- [ ] Complete API reference documentation +- [ ] Video tutorials for beginners +- [ ] Strategy development guide +- [ ] Troubleshooting playbook + +#### 2.3 Community Features +- [ ] Public strategy marketplace (share/sell strategies) +- [ ] Leaderboard with verified performance +- [ ] Community forum integration +- [ ] Bug bounty program + +--- + +## ð Long-Term Roadmap + +### Phase 3: Universal Market Expansion + +**Goal:** Extend the proven crypto trading infrastructure to all major financial markets. + +#### 3.1 Stock Markets +- [ ] US Equities (Interactive Brokers, Alpaca Markets) +- [ ] Asian Markets (A-shares, Hong Kong, Japan) +- [ ] Fundamental analysis integration (earnings, P/E, dividends) +- [ ] AI-powered stock screening + +#### 3.2 Futures Markets +- [ ] Commodity Futures (Energy, Metals, Agriculture) +- [ ] Index Futures (S&P 500, NASDAQ, Dow Jones, VIX) +- [ ] Rollover management and spread trading + +#### 3.3 Options Trading +- [ ] Options chain data and Greeks calculation +- [ ] Equity, Index, and Crypto options +- [ ] Options strategy builder + +#### 3.4 Forex Markets +- [ ] Major currency pairs and exotic pairs +- [ ] Interest rate analysis and carry trade support + +--- + +### Phase 4: Advanced AI & Automation + +**Goal:** Implement cutting-edge AI technologies for autonomous trading. + +- [ ] Multi-Agent orchestration (specialized agents with dynamic coordination) +- [ ] Reinforcement Learning (DQN, PPO, transfer learning) +- [ ] Alternative data integration (social sentiment, news, on-chain analytics) + +--- + +### Phase 5: Enterprise & Scaling + +**Goal:** Scale infrastructure for institutional use and high-volume trading. + +- [ ] Database migration (PostgreSQL/MySQL, Redis, TimescaleDB) +- [ ] Microservices architecture with Kubernetes deployment +- [ ] Multi-user RBAC and white-label solutions +- [ ] Advanced analytics and compliance reporting + +--- + +## ð Key Metrics & Milestones + +### Short-Term Targets +- [ ] **100+** supported trading pairs across all exchanges +- [ ] **10,000+** active trader instances +- [ ] **5+** new exchange integrations +- [ ] **80%+** test coverage +- [ ] **99.9%** uptime + +### Long-Term Targets +- [ ] **All major asset classes** supported (crypto, stocks, futures, options, forex) +- [ ] **50,000+** active users +- [ ] **Enterprise tier** launched +- [ ] **Institutional partnerships** established + +--- + +## ð€ Community Involvement + +We welcome community contributions to accelerate our roadmap: + +- **Vote on Features**: Join our [Telegram community](https://t.me/nofx_dev_community) to vote on priority features +- **Contribute Code**: Check our [Contributing Guide](../../CONTRIBUTING.md) +- **Bug Bounties**: Report issues and earn rewards +- **Strategy Sharing**: Share your successful strategies + +--- + +## ð Roadmap Updates + +This roadmap is reviewed and updated quarterly based on: +- Community feedback +- Market demands +- Technical feasibility +- Resource availability + +**Last Updated:** 2025-11-01 + +--- + +## ð Related Documentation + +- [Architecture Documentation](../architecture/README.md) - Technical architecture details +- [Getting Started](../getting-started/README.md) - Setup and deployment +- [Contributing Guide](../../CONTRIBUTING.md) - How to contribute +- [Changelog](../../CHANGELOG.md) - Version history + +--- + +[â Back to Documentation Home](../README.md) diff --git a/docs/roadmap/README.zh-CN.md b/docs/roadmap/README.zh-CN.md new file mode 100644 index 00000000..a34921dd --- /dev/null +++ b/docs/roadmap/README.zh-CN.md @@ -0,0 +1,292 @@ +# ðºïž NOFX è·¯çº¿åŸ + +**è¯èš:** [English](README.md) | [äžæ](README.zh-CN.md) + +NOFX åå±åéçšåžåºæ©å±çæç¥è§åã + +--- + +## ð æŠè¿° + +NOFX çäœ¿åœæ¯æäžºææéèåžåºç**éçš AI 亀ææäœç³»ç»**ãæä»¬åšå å¯èާåžåžåºäžç»è¿éªè¯çåºç¡è®Ÿæœæ£åšæ©å±å°è¡ç¥šãæèŽ§ãææã倿±çé¢åã + +**æ¿æ¯ïŒ** çžåæ¶æãçžåæºèœäœæ¡æ¶ãææåžåºã + +--- + +## ð¯ çæè·¯çº¿åŸ + +### é¶æ®µ1: æ žå¿åºç¡è®Ÿæœå¢åŒº + +#### 1.1 å®å šæ§å¢åŒº +**ç®æ ïŒ** ä¿æ€æææ°æ®ïŒåå°å®å šæŒæŽ + +- **åè¯ç®¡ç** + - [ ] äžºæ°æ®åºäžçAPIå¯é¥å®ç°AES-256å å¯ + - [ ] 䞺ç§é¥ïŒHyperliquidãAsterïŒæ·»å å å¯ + - [ ] 䞺ç产ç¯å¢æ¯æç¡¬ä»¶å®å šæš¡åïŒHSMïŒ + - [ ] å®ç°å¯é¥èœ®æ¢æºå¶ + - [ ] 䞺ææåè¯è®¿é®æ·»å 审计æ¥å¿ + +- **åºçšå®å š** + - [ ] èŸå ¥éªè¯åæž çïŒé²æ¢SQLæ³šå ¥ãXSSæ»å»ïŒ + - [ ] API端ç¹çéçéå¶ + - [ ] CORSçç¥é 眮 + - [ ] JWT什çè¿æåå·æ°æºå¶ + - [ ] å®ç°RBACïŒåºäºè§è²çè®¿é®æ§å¶ïŒæ¯æå€çšæ· + - [ ] æ·»å API访é®çIPçœåå + - [ ] å®å šå€ŽéšïŒCSPãHSTSãX-Frame-OptionsïŒ + +- **è¿è¥å®å š** + - [ ] å®å šå¯ç ååžïŒbcryptå çïŒ + - [ ] 2FAå¢åŒºïŒå€ä»œç ãå€äžªTOTP讟å€ïŒ + - [ ] äŒè¯ç®¡çïŒèªåšç»åºãå¹¶åäŒè¯éå¶ïŒ + - [ ] å¯é¥ç®¡çïŒç¯å¢åéãvaultéæïŒ + - [ ] 宿äŸèµé¡¹æŒæŽæ«æ + +#### 1.2 å¢åŒºAIèœå +**ç®æ ïŒ** æŽäž°å¯çpromptsãçµæŽ»é çœ®ãæ¯ææŽå€AIæš¡å + +- **Promptç³»ç»å šé¢æ¹é ** + - [ ] åšæpromptçæçæš¡æ¿åŒæ + - [ ] å€è¯èšpromptæ¯æïŒæç»ŽéŸãfew-shotãzero-shotïŒ + - [ ] åºäºåžåºç¶åµçprompt忢ïŒçåžãçåžãéè¡ïŒ + - [ ] åšpromptsäžéæåå²ç»©æåéŠ + - [ ] Promptçæ¬æ§å¶åA/Bæµè¯æ¡æ¶ + - [ ] éè¿Webçé¢èªå®ä¹promptæš¡æ¿ + +- **AIæš¡åéæ** + - [ ] OpenAI GPT-4/GPT-4 Turboæ¯æ + - [ ] Anthropic Claude 3ïŒOpusãSonnetãHaikuïŒéæ + - [ ] Google Gemini Proæ¯æ + - [ ] æ¬å°LLMæ¯æïŒéè¿OllamaçLlamaãMistralïŒ + - [ ] 倿š¡åéæïŒæç¥šãå æå¹³åïŒ + - [ ] æš¡åæ§èœè·èžªåèªåšéæ© + - [ ] 䞻暡å倱莥æ¶çé级æºå¶ + +- **AIå³çåŒæ** + - [ ] æ¯äžªå³çç眮信床è¯å + - [ ] è§£éçæïŒäžºä»ä¹åè¿ç¬äº€æïŒïŒ + - [ ] AIæšçäžçé£é©è¯äŒ°éæ + - [ ] åžåºç¶ææ£æµïŒè¶å¿ãååŒååœã髿³¢åšïŒ + - [ ] äžææ¯ææ ç亀åéªè¯ + +#### 1.3 亀ææéææ©å± +**ç®æ ïŒ** æ¯ææŽå€CEXåæµè¡çperp-DEXïŒç°èާåå纊 + +- **äžå¿å亀ææïŒCEXïŒ** + - [ ] **OKX** - å纊 + ç°èŽ§äº€æ + - [ ] **Bybit** - å纊 + ç°èŽ§äº€æ + - [ ] **Bitget** - å纊 + ç°èŽ§äº€æ + - [ ] **Gate.io** - å纊 + ç°èŽ§äº€æ + - [ ] **KuCoin** - å纊 + ç°èŽ§äº€æ + - [ ] ç»äžçCEXæ¥å£ïŒäŸ¿äºæ·»å æ°äº€ææ + +- **å»äžå¿åæ°žç»äº€ææïŒPerp-DEXïŒ** + - [x] **Hyperliquid**ïŒEthereum L1ïŒ- 髿§èœè®¢åç°¿DEXïŒâ å·²æ¯æïŒ + - [x] **Aster**ïŒå€éŸïŒ- Binanceå Œå®¹APIçDEXïŒâ å·²æ¯æïŒ + - [ ] **Lighter**ïŒArbitrumïŒ- æ Gas订åç°¿DEXïŒéŸäžæ®å + - [ ] **EdgeX**ïŒå€éŸïŒ- äžäžè¡çåDEX + - [ ] ç»äžçDEXæ¥å£ïŒä¿è¯éæäžèŽæ§ + - [ ] å¢åŒºHyperliquidéæïŒæµè¯çœæ¯æãé«çº§è®¢åç±»åïŒ + - [ ] å¢åŒºAsteréæïŒè·šéŸæ¯æãé±å 管çïŒ + +- **ç°èާ + åçºŠæ¯æ** + - [ ] åæš¡åŒäº€æïŒç°èާå¥å©ãå纊对å²ïŒ + - [ ] 跚亀ææå¥å©æ£æµ + - [ ] ç°èާåå纊çç»äžæä»è·èžª + - [ ] ç°èާ忰žç»çç¥ä¹éŽçèªåšèœ¬æ¢ + +- **亀ææåºç¡è®Ÿæœ** + - [ ] **äº€ææ°æ®åæAPIéæ**ïŒèªç ïŒ + - [ ] AI500éæ - èªç AIéåžæš¡å + - [ ] OIïŒæä»éïŒåæ - 宿¶æä»éè·èžªååŒåžžæ£æµ + - [ ] NetFlowåæ - éŸäžèµéæµååæïŒçšäºåžåºæ ç»ªå€æ + - [ ] åžåºæ 绪èååš - æŽåå€äžªæ°æ®æºïŒå¢åŒºAIå³çèœå + - [ ] èªå®ä¹ææ API - æ¯æäžæææ¯ææ + - [ ] èªåšç²ŸåºŠå€çïŒæ°éãä»·æ Œå°æ°äœïŒ + - [ ] 订åç±»åæœè±¡ïŒåžä»·ãéä»·ãæ¢æãæ¢çïŒ + - [ ] ç»äžçé误å€çåéè¯é»èŸ + - [ ] 宿¶æ°æ®çWebSocketæ¯æ + - [ ] æ¯äžªäº€ææçéçéå¶ç®¡ç + +#### 1.4 项ç®ç»æéæ +**ç®æ ïŒ** æž æ°å±æ¬¡ãé«å èäœèŠåãæäºæ©å±åç»Žæ€ + +- **æ¶æéæ°è®Ÿè®¡** + - [ ] å®ç°å屿¶æïŒè¡šç°å± â äžå¡é»èŸå± â æ°æ®è®¿é®å±ïŒ + - [ ] åºçšSOLIDååïŒç¹å«æ¯éæ°æ¿æ¢ååçšäºäº€ææéé åšïŒ + - [ ] 䞺ææäº€ææå®ç°æåéçšæ¥å£ + - [ ] åçŠ»å ³æ³šç¹ïŒäº€æé»èŸãæ°æ®è·åãå³çå¶å®ãæ§è¡ + - [ ] å®ç°äŸèµæ³šå ¥ä»¥æé«å¯æµè¯æ§ + +- **代ç ç»ç»** + - [ ] å°åäœæš¡åéæäžºæŽå°ãæŽäžæ³šçå + - [ ] 䞺tradersãexchangesãAIæš¡åå建æœè±¡åºç±» + - [ ] å®ç°å·¥åæš¡åŒçšäºäº€ææ/AIæš¡åçå建 + - [ ] æ ååæææš¡åçé误å€ç忥å¿è®°åœ + - [ ] æ¶é€åŸªç¯äŸèµå¹¶æ¹è¿å¯Œå ¥ç»æ + +- **é 眮管ç** + - [ ] å°ææé 眮éäžå°ç»æåé 眮æä»¶äž + - [ ] å®ç°éå ³é®é 眮ççé蜜 + - [ ] å¯åšæ¶éªè¯é 眮并æäŸæž æ°çéè¯¯æ¶æ¯ + - [ ] æ¯æç¯å¢ç¹å®é 眮ïŒdev/staging/productionïŒ + +#### 1.5 çšæ·äœéªæ¹è¿ +**ç®æ ïŒ** å¢åŒºWebçé¢ãæŽå¥œççæ§ååèŠç³»ç» + +- **Webçé¢å¢åŒº** + - [ ] ç§»åšç«¯ååºåŒè®Ÿè®¡ïŒå¹³æ¿åææºæ¯æïŒ + - [ ] æ·±è²/æµ è²äž»é¢åæ¢å¹¶ä¿åçšæ·å奜 + - [ ] TradingViewå°éšä»¶éæçé«çº§åŸè¡š + - [ ] 宿¶WebSocketæŽæ°ïŒæ¿ä»£æä»/订åçèœ®è¯¢ïŒ + - [ ] ææœåŒä»ªè¡šæ¿èªå®ä¹ + - [ ] å€è¯è𿝿ïŒENãCNãRUãUKïŒ + +- **é 眮çé¢** + - [ ] å¯è§åçç¥æå»ºåšïŒæ ä»£ç æµçšåŸïŒ + - [ ] ä¿ååç宿¶é 眮é¢è§ + - [ ] åžžçšçç¥çé çœ®æš¡æ¿ + - [ ] æ¹étrader管çïŒå¯åš/忢å€äžªtradersïŒ + - [ ] 亀ææåè¯æµè¯ïŒä¿ååéªè¯ïŒ + - [ ] AIæš¡åæµè¯çé¢ïŒéšçœ²åæµè¯promptsïŒ + +- **çæ§äžåæ** + - [ ] 宿¶æ§èœä»ªè¡šæ¿åå ³é®ææ + - [ ] æçæ²çº¿å¯è§åïŒæ¯äžªtraderãæ¯äžªäº€ææãæ»äœïŒ + - [ ] 忀åæåé£é©ææ + - [ ] åžŠè¿æ»€åæçŽ¢ç亀æåå² + - [ ] æåžç§ãæ¶éŽæ®µãçç¥ççäºåè§£ + - [ ] æ¯èŸè§åŸïŒå€äžªtraderså¹¶æïŒ + - [ ] 富åºåèœïŒCSVãJSONãPDFæ¥åïŒ + +- **åèŠäžéç¥ç³»ç»** + - [ ] 倿ž éåèŠïŒEmailãTelegramãDiscordãWebhookïŒ + - [ ] å¯é 眮çåèŠè§åïŒå©æ¶ŠéåŒãäºæéå¶ãéè¯¯æ£æµïŒ + - [ ] åèŠäŒå 级ïŒäž¥éãèŠåãä¿¡æ¯ïŒ + - [ ] åèŠåå²å确讀è·èžª + - [ ] æ¯æ¥/æ¯åšæ§èœæèŠé®ä»¶ + - [ ] ç³»ç»å¥åº·çæ§ïŒAPIè¿æ¥ãæ°æ®åºç¶æïŒ + +### é¶æ®µ2: æµè¯äžçš³å®æ§ + +#### 2.1 莚éä¿è¯ +- [ ] å šé¢çåå æµè¯èŠççïŒ>80%ïŒ +- [ ] ææäº€ææéé åšçéææµè¯ +- [ ] èŽèœœæµè¯ïŒ100+å¹¶å亀æè ïŒ +- [ ] å®å šå®¡è®¡ïŒAPIå¯é¥å å¯ãSQLæ³šå ¥é²æ€ïŒ + +#### 2.2 ææ¡£ +- [ ] 宿ŽçAPIåèææ¡£ +- [ ] æ°æè§é¢æçš +- [ ] çç¥åŒåæå +- [ ] æ éææ¥æå + +#### 2.3 瀟åºåèœ +- [ ] å ¬åŒçç¥åžåºïŒå享/åºå®çç¥ïŒ +- [ ] ç»è¿éªè¯ç绩ææè¡æŠ +- [ ] 瀟åºè®ºåéæ +- [ ] æŒæŽèµé计å + +--- + +## ð é¿æè·¯çº¿åŸ + +### é¶æ®µ3: éçšåžåºæ©å± + +**ç®æ ïŒ** å°ç»è¿éªè¯çå å¯èާåžäº€æåºç¡è®Ÿæœæ©å±å°ææäž»èŠéèåžåºã + +#### 3.1 è¡ç¥šåžåº +- [ ] çŸè¡ïŒInteractive BrokersãAlpaca MarketsïŒ +- [ ] äºæŽ²åžåºïŒAè¡ãéŠæž¯ãæ¥æ¬ïŒ +- [ ] åºæ¬é¢åæéæïŒèŽ¢æ¥ãåžççãè¡æ¯ïŒ +- [ ] AI驱åšçè¡ç¥šçé + +#### 3.2 æèާåžåº +- [ ] ååæèާïŒèœæºãéå±ãå产åïŒ +- [ ] ææ°æèŽ§ïŒæ æ®500ã纳æ¯èŸŸå ãéçŒæ¯ãVIXïŒ +- [ ] å±æç®¡çå价差亀æ + +#### 3.3 ææäº€æ +- [ ] ææéŸæ°æ®åGreeksè®¡ç® +- [ ] è¡ç¥šãææ°åå 坿æ +- [ ] ææçç¥æå»ºåš + +#### 3.4 倿±åžåº +- [ ] äž»èŠèާåžå¯¹åçšæèŽ§åžå¯¹ +- [ ] å©çåæå奿¯äº€ææ¯æ + +--- + +### é¶æ®µ4: é«çº§AIäžèªåšå + +**ç®æ ïŒ** å®ç°å沿AIææ¯çšäºèªäž»äº€æã + +- [ ] 倿ºèœäœçŒæïŒäžäžåæºèœäœäžåšæåè°ïŒ +- [ ] 区ååŠä¹ ïŒDQNãPPOãè¿ç§»åŠä¹ ïŒ +- [ ] æ¿ä»£æ°æ®éæïŒç€Ÿäº€æ ç»ªãæ°é»ãéŸäžåæïŒ + +--- + +### é¶æ®µ5: äŒäžçº§äžæ©å± + +**ç®æ ïŒ** æ©å±åºç¡è®Ÿæœä»¥æ¯ææºæäœ¿çšåé«é¢äº€æã + +- [ ] æ°æ®åºè¿ç§»ïŒPostgreSQL/MySQLãRedisãTimescaleDBïŒ +- [ ] 埮æå¡æ¶æäžKuberneteséšçœ² +- [ ] å€çšæ·RBACåçœæ è§£å³æ¹æ¡ +- [ ] é«çº§åæååè§æ¥å + +--- + +## ð å ³é®ææ äžéçšç¢ + +### çæç®æ +- [ ] ææäº€æææ¯æ**100+**亀æå¯¹ +- [ ] **10,000+**掻è·äº€æè å®äŸ +- [ ] **5+**æ°äº€ææéæ +- [ ] **80%+**æµè¯èŠçç +- [ ] **99.9%**æ£åžžè¿è¡æ¶éŽ + +### é¿æç®æ +- [ ] æ¯æ**ææäž»èŠèµäº§ç±»å«**ïŒå å¯ãè¡ç¥šãæèŽ§ãææã倿±ïŒ +- [ ] **50,000+**掻è·çšæ· +- [ ] **äŒäžçº§**çæ¬ååž +- [ ] 建ç«**æºæåäœäŒäŒŽå ³ç³»** + +--- + +## ð€ 瀟åºåäž + +æä»¬æ¬¢è¿ç€ŸåºèŽ¡ç®æ¥å éæä»¬ç路线åŸïŒ + +- **åèœæç¥š**: å å ¥æä»¬ç[Telegram瀟åº](https://t.me/nofx_dev_community)æç¥šäŒå åèœ +- **莡ç®ä»£ç **: æ¥çæä»¬ç[èŽ¡ç®æå](../../CONTRIBUTING.md) +- **æŒæŽèµé**: æ¥åé®é¢å¹¶è·åŸå¥å± +- **çç¥å享**: åäº«äœ çæåçç¥ + +--- + +## ð è·¯çº¿åŸæŽæ° + +æ¬è·¯çº¿åŸæ ¹æ®ä»¥äžå çŽ æ¯å£åºŠå®¡æ¥åæŽæ°ïŒ +- 瀟åºåéŠ +- åžåºéæ± +- ææ¯å¯è¡æ§ +- èµæºå¯çšæ§ + +**æåæŽæ°:** 2025-11-01 + +--- + +## ð çžå ³ææ¡£ + +- [æ¶æææ¡£](../architecture/README.zh-CN.md) - ææ¯æ¶æè¯Šæ +- [å¿«éåŒå§](../getting-started/README.zh-CN.md) - 讟眮åéšçœ² +- [èŽ¡ç®æå](../../CONTRIBUTING.md) - åŠäœèŽ¡ç® +- [æŽæ°æ¥å¿](../../CHANGELOG.zh-CN.md) - çæ¬åå² + +--- + +[â è¿åææ¡£äž»é¡µ](../README.md) diff --git a/web/package-lock.json b/web/package-lock.json index 32e3c01b..a6afa248 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -8,13 +8,17 @@ "name": "nofx-web", "version": "1.0.0", "dependencies": { + "@radix-ui/react-slot": "^1.2.3", + "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "date-fns": "^4.1.0", + "framer-motion": "^12.23.24", "lucide-react": "^0.552.0", "react": "^18.3.1", "react-dom": "^18.3.1", "recharts": "^2.15.2", "swr": "^2.2.5", + "tailwind-merge": "^3.3.1", "zustand": "^5.0.2" }, "devDependencies": { @@ -834,6 +838,39 @@ "node": ">=14" } }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@rolldown/pluginutils": { "version": "1.0.0-beta.27", "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", @@ -1504,6 +1541,18 @@ "node": ">= 6" } }, + "node_modules/class-variance-authority": { + "version": "0.7.1", + "resolved": "https://registry.npmmirror.com/class-variance-authority/-/class-variance-authority-0.7.1.tgz", + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "license": "Apache-2.0", + "dependencies": { + "clsx": "^2.1.1" + }, + "funding": { + "url": "https://polar.sh/cva" + } + }, "node_modules/clsx": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", @@ -1905,6 +1954,33 @@ "url": "https://github.com/sponsors/rawify" } }, + "node_modules/framer-motion": { + "version": "12.23.24", + "resolved": "https://registry.npmmirror.com/framer-motion/-/framer-motion-12.23.24.tgz", + "integrity": "sha512-HMi5HRoRCTou+3fb3h9oTLyJGBxHfW+HnNE25tAXOvVx/IvwMHK0cx7IR4a2ZU6sh3IX1Z+4ts32PcYBOqka8w==", + "license": "MIT", + "dependencies": { + "motion-dom": "^12.23.23", + "motion-utils": "^12.23.6", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -2212,6 +2288,21 @@ "node": ">=16 || 14 >=14.17" } }, + "node_modules/motion-dom": { + "version": "12.23.23", + "resolved": "https://registry.npmmirror.com/motion-dom/-/motion-dom-12.23.23.tgz", + "integrity": "sha512-n5yolOs0TQQBRUFImrRfs/+6X4p3Q4n1dUEqt/H58Vx7OW6RF+foWEgmTVDhIWJIMXOuNNL0apKH2S16en9eiA==", + "license": "MIT", + "dependencies": { + "motion-utils": "^12.23.6" + } + }, + "node_modules/motion-utils": { + "version": "12.23.6", + "resolved": "https://registry.npmmirror.com/motion-utils/-/motion-utils-12.23.6.tgz", + "integrity": "sha512-eAWoPgr4eFEOFfg2WjIsMoqJTW6Z8MTUCgn/GZ3VRpClWBdnbjryiA3ZSNLyxCTmCQx4RmYX6jX1iWHbenUPNQ==", + "license": "MIT" + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -2970,6 +3061,16 @@ "react": "^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, + "node_modules/tailwind-merge": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/tailwind-merge/-/tailwind-merge-3.3.1.tgz", + "integrity": "sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, "node_modules/tailwindcss": { "version": "3.4.18", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.18.tgz", @@ -3096,6 +3197,12 @@ "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", "dev": true }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, "node_modules/typescript": { "version": "5.9.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", diff --git a/web/package.json b/web/package.json index dfe57495..ed1c0732 100644 --- a/web/package.json +++ b/web/package.json @@ -8,13 +8,17 @@ "preview": "vite preview" }, "dependencies": { + "@radix-ui/react-slot": "^1.2.3", + "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "date-fns": "^4.1.0", + "framer-motion": "^12.23.24", "lucide-react": "^0.552.0", "react": "^18.3.1", "react-dom": "^18.3.1", "recharts": "^2.15.2", "swr": "^2.2.5", + "tailwind-merge": "^3.3.1", "zustand": "^5.0.2" }, "devDependencies": { diff --git a/web/public/images/main.png b/web/public/images/main.png new file mode 100644 index 00000000..3188575c Binary files /dev/null and b/web/public/images/main.png differ diff --git a/web/src/App.tsx b/web/src/App.tsx index a4b627f2..6f785908 100644 --- a/web/src/App.tsx +++ b/web/src/App.tsx @@ -6,11 +6,13 @@ import { AITradersPage } from './components/AITradersPage'; import { LoginPage } from './components/LoginPage'; import { RegisterPage } from './components/RegisterPage'; import { CompetitionPage } from './components/CompetitionPage'; +import { LandingPage } from './pages/LandingPage'; import AILearning from './components/AILearning'; import { LanguageProvider, useLanguage } from './contexts/LanguageContext'; import { AuthProvider, useAuth } from './contexts/AuthContext'; import { t, type Language } from './i18n/translations'; import { useSystemConfig } from './hooks/useSystemConfig'; +import { Zap } from 'lucide-react'; import type { SystemStatus, AccountInfo, @@ -169,22 +171,23 @@ function App() { return (
{t('loading', language)}
{description}
+ + {/* Features list */} +
+ {displayText}
+ â
+
+ )
+}
diff --git a/web/src/components/landing/AboutSection.tsx b/web/src/components/landing/AboutSection.tsx
new file mode 100644
index 00000000..d087a66f
--- /dev/null
+++ b/web/src/components/landing/AboutSection.tsx
@@ -0,0 +1,123 @@
+import { motion } from 'framer-motion'
+import { Shield, Target } from 'lucide-react'
+import AnimatedSection from './AnimatedSection'
+import Typewriter from '../Typewriter'
+
+export default function AboutSection() {
+ return (
+ + NOFX äžæ¯åŠäžäžªäº€ææºåšäººïŒèæ¯ AI 亀æç 'Linux' ââ + äžäžªéæãå¯ä¿¡ä»»çåŒæº OSïŒæäŸç»äžç 'å³ç-é£é©-æ§è¡' + å±ïŒæ¯æææèµäº§ç±»å«ã +
++ ä»å å¯åžåºèµ·æ¥ïŒ24/7ã髿³¢åšæ§å®çŸæµè¯åºïŒïŒæªæ¥æ©å±å°è¡ç¥šãæèާã倿±ãæ žå¿ïŒåŒæŸæ¶æãAI + èŸŸå°æäž»ä¹ïŒå€ä»£çèªç«äºãçç¥è¿åïŒãCodeFi é£èœ®ïŒåŒåè PR + 莡ç®è·ç§¯åå¥å±ïŒã +
++ "{quote}" +
++ åŒæºãéæã瀟åºé©±åšç AI 亀ææäœç³»ç» +
++ {description} +
++ å䞪ç®åæ¥éª€ïŒåŒå¯ AI èªåšäº€æä¹æ +
++ dev 忝äžçš³å®ïŒå¿çšæ æ³æ¿åæå€±çèµéãNOFX éæç®¡ïŒæ 宿¹çç¥ã亀ææé£é©ïŒæèµéè°šæ ã +
++ è¯·éæ©ç»åœææ³šå以访é®å®æŽç AI 亀æå¹³å° +
+