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:
25
.env
25
.env
@@ -168,6 +168,31 @@ MAX_DAILY_DRAWDOWN=-1000
|
||||
# Maximum number of trades allowed per hour (prevents overtrading)
|
||||
MAX_TRADES_PER_HOUR=20
|
||||
|
||||
# ================================
|
||||
# PYRAMIDING / POSITION STACKING
|
||||
# ================================
|
||||
# Stack positions when confirmation signals arrive within time window
|
||||
# Data-driven: Signals ≤72 bars (6h) apart have 100% win rate
|
||||
|
||||
# Enable pyramiding feature
|
||||
ENABLE_PYRAMIDING=true
|
||||
|
||||
# Leverage for first/base entry (e.g., 7x)
|
||||
BASE_LEVERAGE=7
|
||||
|
||||
# Leverage for additional stack entries (e.g., 7x)
|
||||
STACK_LEVERAGE=7
|
||||
|
||||
# Maximum combined leverage across all pyramid levels (e.g., 14x)
|
||||
MAX_LEVERAGE_TOTAL=14
|
||||
|
||||
# Maximum pyramid levels (e.g., 2 = base + 1 stack)
|
||||
MAX_PYRAMID_LEVELS=2
|
||||
|
||||
# Time window for stacking in minutes (e.g., 240 = 4 hours)
|
||||
# Conservative setting vs 6h (360min) optimal from backtest
|
||||
STACKING_WINDOW_MINUTES=240
|
||||
|
||||
# Minimum time between trades in minutes (cooldown period)
|
||||
# Example: 10 = 10 minutes between trades
|
||||
MIN_TIME_BETWEEN_TRADES=1
|
||||
|
||||
Reference in New Issue
Block a user