allow input of qty decimal point

master
TZGyn 9 months ago
parent 9d01008c50
commit 9cec67e9f2
Signed by: TZGyn
GPG Key ID: 122EAF77AE81FD4A

@ -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} />
</Form.Field>
<Form.Field form={percentForm} name="qtyDecimalPoint">
<Form.Control>
{#snippet children({ props })}
<Form.Label>Quantity Decimal Point</Form.Label>
<Input
type="number"
{...props}
step={1}
bind:value={$percentFormData.qtyDecimalPoint} />
{/snippet}
</Form.Control>
<Form.Description>Quantity</Form.Description>
<Form.FieldErrors />
</Form.Field>
<Form.Field {form} name="leverage">
<Form.Control>
{#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(),

@ -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(),

@ -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
}

Loading…
Cancel
Save