diff --git a/src/routes/dashboard/bybit/+page.svelte b/src/routes/dashboard/bybit/+page.svelte
index c4a1f64..17b6da4 100644
--- a/src/routes/dashboard/bybit/+page.svelte
+++ b/src/routes/dashboard/bybit/+page.svelte
@@ -55,6 +55,8 @@
...$percentFormData,
entryPrice: '{trigger_entry_value}',
qtyPercent: $percentFormData.qtyPercent.toString(),
+ qtyDecimalPoint:
+ $percentFormData.qtyDecimalPoint.toString(),
leverage: $percentFormData.leverage.toString(),
takeProfitPercent:
$percentFormData.takeProfitPercent.toString(),
@@ -301,6 +303,20 @@
max={100}
step={0.1} />
+
+
+ {#snippet children({ props })}
+ Quantity Decimal Point
+
+ {/snippet}
+
+ Quantity
+
+
{#snippet children({ props })}
@@ -361,6 +377,8 @@
...$percentFormData,
entryPrice: '{trigger_entry_value}',
qtyPercent: $percentFormData.qtyPercent.toString(),
+ qtyDecimalPoint:
+ $percentFormData.qtyDecimalPoint.toString(),
leverage: $percentFormData.leverage.toString(),
takeProfitPercent:
$percentFormData.takeProfitPercent.toString(),
diff --git a/src/routes/dashboard/bybit/schema.ts b/src/routes/dashboard/bybit/schema.ts
index f6563cc..073185a 100644
--- a/src/routes/dashboard/bybit/schema.ts
+++ b/src/routes/dashboard/bybit/schema.ts
@@ -21,6 +21,7 @@ export const percentSchema = z.object({
symbol: z.string(),
side: z.enum(['Buy', 'Sell']),
qtyPercent: z.number(),
+ qtyDecimalPoint: 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 9829393..aa6ebb9 100644
--- a/src/routes/webhook/tradingview/+server.ts
+++ b/src/routes/webhook/tradingview/+server.ts
@@ -31,6 +31,7 @@ export const POST = async ({ locals, request }) => {
side: z.enum(['Buy', 'Sell']),
entryPrice: z.string(),
qtyPercent: z.string(),
+ qtyDecimalPoint: z.string(),
leverage: z.string().default('1'),
takeProfitPercent: z.string().optional(),
stopLossPercent: z.string().optional(),
@@ -77,7 +78,7 @@ export const POST = async ({ locals, request }) => {
if (form.data.type === 'Flat') {
qty = (
Number(form.data.qty) * Number(form.data.leverage || '1')
- ).toFixed(getDecimalPoint(symbol.slice(0, -4)))
+ ).toString()
takeProfit = form.data.takeProfit
stopLoss = form.data.stopLoss
side = form.data.side
@@ -110,7 +111,7 @@ export const POST = async ({ locals, request }) => {
((Number(form.data.qtyPercent) / 100) *
Number(form.data.leverage || '1'))) /
Number(form.data.entryPrice)
- ).toFixed(getDecimalPoint(symbol.slice(0, -4)))
+ ).toFixed(Number(form.data.qtyDecimalPoint))
takeProfit = (
Number(form.data.entryPrice) *
(1 + Number(form.data.takeProfitPercent) / 100)
@@ -160,9 +161,3 @@ export const POST = async ({ locals, request }) => {
return new Response()
}
}
-
-const getDecimalPoint = (symbol: string) => {
- if (symbol === 'BTC') return 3
- if (symbol === 'ETH') return 2
- return 1
-}