diff --git a/src/routes/dashboard/bybit/+page.svelte b/src/routes/dashboard/bybit/+page.svelte index 8b66d38..b216cb5 100644 --- a/src/routes/dashboard/bybit/+page.svelte +++ b/src/routes/dashboard/bybit/+page.svelte @@ -29,6 +29,7 @@ type: 'Flat', ...$formData, qty: $formData.qty.toString(), + leverage: $formData.leverage.toString(), takeProfit: $formData.takeProfit.toString(), stopLoss: $formData.stopLoss.toString(), }, @@ -54,6 +55,7 @@ ...$percentFormData, entryPrice: '{trigger_entry_value}', qtyPercent: $percentFormData.qtyPercent.toString(), + leverage: $percentFormData.leverage.toString(), takeProfitPercent: $percentFormData.takeProfitPercent.toString(), stopLossPercent: @@ -169,6 +171,19 @@ Quantity + + + {#snippet children({ props })} + Leverage + + {/snippet} + + Leverage + + {#snippet children({ props })} @@ -203,6 +218,7 @@ type: 'Flat', ...$formData, qty: $formData.qty.toString(), + leverage: $formData.leverage.toString(), takeProfit: $formData.takeProfit.toString(), stopLoss: $formData.stopLoss.toString(), }} /> @@ -286,6 +302,19 @@ max={100} step={0.1} /> + + + {#snippet children({ props })} + Leverage + + {/snippet} + + Leverage + + {#snippet children({ props })} @@ -333,6 +362,7 @@ ...$percentFormData, entryPrice: '{trigger_entry_value}', qtyPercent: $percentFormData.qtyPercent.toString(), + leverage: $percentFormData.leverage.toString(), takeProfitPercent: $percentFormData.takeProfitPercent.toString(), stopLossPercent: @@ -384,7 +414,6 @@ json={{ type: 'Close Position', ...$closePositionFormData, - entryPrice: '{trigger_entry_value}', }} /> diff --git a/src/routes/dashboard/bybit/schema.ts b/src/routes/dashboard/bybit/schema.ts index 995a180..f6563cc 100644 --- a/src/routes/dashboard/bybit/schema.ts +++ b/src/routes/dashboard/bybit/schema.ts @@ -10,6 +10,7 @@ export const formSchema = z.object({ symbol: z.string(), side: z.enum(['Buy', 'Sell']), qty: z.number(), + leverage: z.number().default(100), takeProfit: z.number(), stopLoss: z.number(), }) @@ -20,6 +21,7 @@ export const percentSchema = z.object({ symbol: z.string(), side: z.enum(['Buy', 'Sell']), qtyPercent: z.number(), + leverage: z.number().default(100), takeProfitPercent: z.number(), stopLossPercent: z.number(), }) diff --git a/src/routes/webhook/tradingview/+server.ts b/src/routes/webhook/tradingview/+server.ts index 46259fe..dc0babe 100644 --- a/src/routes/webhook/tradingview/+server.ts +++ b/src/routes/webhook/tradingview/+server.ts @@ -20,6 +20,7 @@ export const POST = async ({ locals, request }) => { symbol: z.string(), side: z.enum(['Buy', 'Sell']), qty: z.string(), + leverage: z.string().default('1'), takeProfit: z.string().optional(), stopLoss: z.string().optional(), }) @@ -31,6 +32,7 @@ export const POST = async ({ locals, request }) => { side: z.enum(['Buy', 'Sell']), entryPrice: z.string(), qtyPercent: z.string(), + leverage: z.string().default('1'), takeProfitPercent: z.string().optional(), stopLossPercent: z.string().optional(), }) @@ -64,7 +66,9 @@ export const POST = async ({ locals, request }) => { }) if (form.data.type === 'Flat') { - qty = form.data.qty + qty = ( + Number(form.data.qty) * Number(form.data.leverage) + ).toFixed(getDecimalPoint(symbol.slice(0, -4))) takeProfit = form.data.takeProfit stopLoss = form.data.stopLoss side = form.data.side @@ -89,7 +93,8 @@ export const POST = async ({ locals, request }) => { qty = ( (Number(wallet.result.list[0].totalAvailableBalance) * - (Number(form.data.qtyPercent) / 100)) / + ((Number(form.data.qtyPercent) / 100) * + Number(form.data.leverage))) / Number(form.data.entryPrice) ).toFixed(getDecimalPoint(symbol.slice(0, -4))) takeProfit = (