feat: Add phantom trade detection and database tracking
- Detect position size mismatches (>50% variance) after opening - Save phantom trades to database with expectedSizeUSD, actualSizeUSD, phantomReason - Return error from execute endpoint to prevent Position Manager tracking - Add comprehensive documentation of phantom trade issue and solution - Enable data collection for pattern analysis and future optimization Fixes oracle price lag issue during volatile markets where transactions confirm but positions don't actually open at expected size.
This commit is contained in:
@@ -52,6 +52,12 @@ export interface CreateTradeParams {
|
||||
volumeAtEntry?: number
|
||||
pricePositionAtEntry?: number
|
||||
signalQualityScore?: number
|
||||
// Phantom trade fields
|
||||
status?: string
|
||||
isPhantom?: boolean
|
||||
expectedSizeUSD?: number
|
||||
actualSizeUSD?: number
|
||||
phantomReason?: string
|
||||
}
|
||||
|
||||
export interface UpdateTradeStateParams {
|
||||
@@ -124,7 +130,7 @@ export async function createTrade(params: CreateTradeParams) {
|
||||
signalSource: params.signalSource,
|
||||
signalStrength: params.signalStrength,
|
||||
timeframe: params.timeframe,
|
||||
status: 'open',
|
||||
status: params.status || 'open',
|
||||
isTestTrade: params.isTestTrade || false,
|
||||
// Market context
|
||||
expectedEntryPrice: params.expectedEntryPrice,
|
||||
@@ -136,6 +142,11 @@ export async function createTrade(params: CreateTradeParams) {
|
||||
volumeAtEntry: params.volumeAtEntry,
|
||||
pricePositionAtEntry: params.pricePositionAtEntry,
|
||||
signalQualityScore: params.signalQualityScore,
|
||||
// Phantom trade fields
|
||||
isPhantom: params.isPhantom || false,
|
||||
expectedSizeUSD: params.expectedSizeUSD,
|
||||
actualSizeUSD: params.actualSizeUSD,
|
||||
phantomReason: params.phantomReason,
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user