Use percentage aware sizing in execute endpoint
This commit is contained in:
@@ -106,10 +106,19 @@ export async function POST(request: NextRequest): Promise<NextResponse<ExecuteTr
|
|||||||
|
|
||||||
// Get trading configuration
|
// Get trading configuration
|
||||||
const config = getMergedConfig()
|
const config = getMergedConfig()
|
||||||
|
|
||||||
|
// Initialize Drift service and check account health before sizing
|
||||||
|
const driftService = await initializeDriftService()
|
||||||
|
const health = await driftService.getAccountHealth()
|
||||||
|
console.log(`🩺 Account health: Free collateral $${health.freeCollateral.toFixed(2)}`)
|
||||||
|
|
||||||
// Get symbol-specific position sizing
|
// Get symbol-specific position sizing (supports percentage-based sizing)
|
||||||
const { getPositionSizeForSymbol } = await import('@/config/trading')
|
const { getActualPositionSizeForSymbol } = await import('@/config/trading')
|
||||||
const { size: positionSize, leverage, enabled } = getPositionSizeForSymbol(driftSymbol, config)
|
const { size: positionSize, leverage, enabled, usePercentage } = await getActualPositionSizeForSymbol(
|
||||||
|
driftSymbol,
|
||||||
|
config,
|
||||||
|
health.freeCollateral
|
||||||
|
)
|
||||||
|
|
||||||
// Check if trading is enabled for this symbol
|
// Check if trading is enabled for this symbol
|
||||||
if (!enabled) {
|
if (!enabled) {
|
||||||
@@ -126,16 +135,9 @@ export async function POST(request: NextRequest): Promise<NextResponse<ExecuteTr
|
|||||||
|
|
||||||
console.log(`📐 Symbol-specific sizing for ${driftSymbol}:`)
|
console.log(`📐 Symbol-specific sizing for ${driftSymbol}:`)
|
||||||
console.log(` Enabled: ${enabled}`)
|
console.log(` Enabled: ${enabled}`)
|
||||||
console.log(` Position size: $${positionSize}`)
|
console.log(` Position size: $${positionSize.toFixed(2)} (${usePercentage ? 'percentage' : 'fixed'})`)
|
||||||
console.log(` Leverage: ${leverage}x`)
|
console.log(` Leverage: ${leverage}x`)
|
||||||
|
|
||||||
// Initialize Drift service if not already initialized
|
|
||||||
const driftService = await initializeDriftService()
|
|
||||||
|
|
||||||
// Check account health before trading
|
|
||||||
const health = await driftService.getAccountHealth()
|
|
||||||
console.log('💊 Account health:', health)
|
|
||||||
|
|
||||||
if (health.freeCollateral <= 0) {
|
if (health.freeCollateral <= 0) {
|
||||||
return NextResponse.json(
|
return NextResponse.json(
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user