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 = (