diff --git a/src/routes/webhook/tradingview/+server.ts b/src/routes/webhook/tradingview/+server.ts index dc0babe..832ef83 100644 --- a/src/routes/webhook/tradingview/+server.ts +++ b/src/routes/webhook/tradingview/+server.ts @@ -20,7 +20,7 @@ export const POST = async ({ locals, request }) => { symbol: z.string(), side: z.enum(['Buy', 'Sell']), qty: z.string(), - leverage: z.string().default('1'), + leverage: z.string().optional(), takeProfit: z.string().optional(), stopLoss: z.string().optional(), }) @@ -59,6 +59,15 @@ export const POST = async ({ locals, request }) => { let stopLoss let side + let isLeverage + if (form.data.type === 'Close Position') { + isLeverage = false + } else if (form.data.leverage) { + isLeverage = true + } else { + isLeverage = false + } + const client = new RestClientV5({ key: key, secret: secret, @@ -67,7 +76,7 @@ export const POST = async ({ locals, request }) => { if (form.data.type === 'Flat') { qty = ( - Number(form.data.qty) * Number(form.data.leverage) + Number(form.data.qty) * Number(form.data.leverage || '1') ).toFixed(getDecimalPoint(symbol.slice(0, -4))) takeProfit = form.data.takeProfit stopLoss = form.data.stopLoss @@ -94,7 +103,7 @@ export const POST = async ({ locals, request }) => { qty = ( (Number(wallet.result.list[0].totalAvailableBalance) * ((Number(form.data.qtyPercent) / 100) * - Number(form.data.leverage))) / + Number(form.data.leverage || '1'))) / Number(form.data.entryPrice) ).toFixed(getDecimalPoint(symbol.slice(0, -4))) takeProfit = ( @@ -137,6 +146,7 @@ export const POST = async ({ locals, request }) => { qty, takeProfit, stopLoss, + isLeverage: isLeverage ? 1 : 0, }) return new Response() } catch (error) {