Fix: Save MAE/MFE values when trades exit

Bug: MAE/MFE was tracked in memory during trades but not saved to database on exit
Cause: updateTradeExit() wasn't receiving or saving MAE/MFE parameters

Changes:
- Added MAE/MFE fields to UpdateTradeExitParams interface
- Modified updateTradeExit() to save maxFavorableExcursion, maxAdverseExcursion, maxFavorablePrice, maxAdversePrice
- Updated both updateTradeExit() calls in Position Manager to pass MAE/MFE values
- Enhanced exit logging to show final MAE/MFE percentages

Impact: Future trades will now properly save MAE/MFE data for analytics
Note: Past 2 trades (from before this fix) don't have MAE/MFE saved
This commit is contained in:
mindesbunister
2025-10-30 07:37:10 +01:00
parent 6e87fc8749
commit 25d31ff75a
2 changed files with 22 additions and 2 deletions

View File

@@ -77,6 +77,11 @@ export interface UpdateTradeExitParams {
holdTimeSeconds: number
maxDrawdown?: number
maxGain?: number
// MAE/MFE final values
maxFavorableExcursion?: number
maxAdverseExcursion?: number
maxFavorablePrice?: number
maxAdversePrice?: number
}
export async function createTrade(params: CreateTradeParams) {
@@ -165,6 +170,11 @@ export async function updateTradeExit(params: UpdateTradeExitParams) {
holdTimeSeconds: params.holdTimeSeconds,
maxDrawdown: params.maxDrawdown,
maxGain: params.maxGain,
// Save final MAE/MFE values
maxFavorableExcursion: params.maxFavorableExcursion,
maxAdverseExcursion: params.maxAdverseExcursion,
maxFavorablePrice: params.maxFavorablePrice,
maxAdversePrice: params.maxAdversePrice,
status: 'closed',
},
})