feat: Complete pyramiding/position stacking implementation (ALL 7 phases)
Phase 1: Configuration - Added pyramiding config to trading.ts interface and defaults - Added 6 ENV variables: ENABLE_PYRAMIDING, BASE_LEVERAGE, STACK_LEVERAGE, MAX_LEVERAGE_TOTAL, MAX_PYRAMID_LEVELS, STACKING_WINDOW_MINUTES Phase 2: Database Schema - Added 5 Trade fields: pyramidLevel, parentTradeId, stackedAt, totalLeverageAtEntry, isStackedPosition - Added index on parentTradeId for pyramid group queries Phase 3: Execute Endpoint - Added findExistingPyramidBase() - finds active base trade within window - Added canAddPyramidLevel() - validates pyramid conditions - Stores pyramid metadata on new trades Phase 4: Position Manager Core - Added pyramidGroups Map for trade ID grouping - Added addToPyramidGroup() - groups stacked trades by parent - Added closeAllPyramidLevels() - unified exit for all levels - Added getTotalPyramidLeverage() - calculates combined leverage - All exit triggers now close entire pyramid group Phase 5: Telegram Notifications - Added sendPyramidStackNotification() - notifies on stack entry - Added sendPyramidCloseNotification() - notifies on unified exit Phase 6: Testing (25 tests, ALL PASSING) - Pyramid Detection: 5 tests - Pyramid Group Tracking: 4 tests - Unified Exit: 4 tests - Leverage Calculation: 4 tests - Notification Context: 2 tests - Edge Cases: 6 tests Phase 7: Documentation - Updated .github/copilot-instructions.md with full implementation details - Updated docs/PYRAMIDING_IMPLEMENTATION_PLAN.md status to COMPLETE Parameters: 4h window, 7x base/stack leverage, 14x max total, 2 max levels Data-driven: 100% win rate for signals ≤72 bars apart in backtesting
This commit is contained in:
@@ -1,11 +1,41 @@
|
||||
# Pyramiding / Signal Stacking Implementation Plan
|
||||
|
||||
**Created:** January 9, 2026
|
||||
**Status:** 📋 PLANNED - Ready for Implementation
|
||||
**Completed:** January 9, 2026
|
||||
**Status:** ✅ FULLY IMPLEMENTED AND TESTED
|
||||
**Priority:** HIGH - User-requested feature based on backtested data
|
||||
|
||||
---
|
||||
|
||||
## ✅ Implementation Complete!
|
||||
|
||||
All 7 phases successfully implemented:
|
||||
- ✅ Phase 1: Configuration (config/trading.ts, .env)
|
||||
- ✅ Phase 2: Database Schema (prisma/schema.prisma)
|
||||
- ✅ Phase 3: Execute Endpoint (app/api/trading/execute/route.ts, lib/database/trades.ts)
|
||||
- ✅ Phase 4: Position Manager Core (lib/trading/position-manager.ts)
|
||||
- ✅ Phase 5: Telegram Notifications (lib/notifications/telegram.ts)
|
||||
- ✅ Phase 6: Testing (25 tests in 6 suites - ALL PASSING)
|
||||
- ✅ Phase 7: Documentation (.github/copilot-instructions.md updated)
|
||||
|
||||
**Test Coverage:** 25 pyramiding tests across 6 test suites, all passing
|
||||
**Total Position Manager Tests:** 164 tests, all passing
|
||||
|
||||
**Ready for Production Deployment:**
|
||||
```bash
|
||||
# 1. Run database migration
|
||||
npx prisma migrate dev --name add_pyramiding_fields
|
||||
|
||||
# 2. Rebuild Docker container
|
||||
docker compose build trading-bot
|
||||
docker compose up -d --force-recreate trading-bot
|
||||
|
||||
# 3. Verify deployment
|
||||
docker logs trading-bot-v4 | grep -i "pyramid"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 Background & Data-Driven Justification
|
||||
|
||||
### Analysis Results (Jan 9, 2026)
|
||||
|
||||
Reference in New Issue
Block a user