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, ...$percentFormData,
entryPrice: '{trigger_entry_value}', entryPrice: '{trigger_entry_value}',
qtyPercent: $percentFormData.qtyPercent.toString(), qtyPercent: $percentFormData.qtyPercent.toString(),
qtyDecimalPoint:
$percentFormData.qtyDecimalPoint.toString(),
leverage: $percentFormData.leverage.toString(), leverage: $percentFormData.leverage.toString(),
takeProfitPercent: takeProfitPercent:
$percentFormData.takeProfitPercent.toString(), $percentFormData.takeProfitPercent.toString(),
@ -301,6 +303,20 @@
max={100} max={100}
step={0.1} /> step={0.1} />
</Form.Field> </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.Field {form} name="leverage">
<Form.Control> <Form.Control>
{#snippet children({ props })} {#snippet children({ props })}
@ -361,6 +377,8 @@
...$percentFormData, ...$percentFormData,
entryPrice: '{trigger_entry_value}', entryPrice: '{trigger_entry_value}',
qtyPercent: $percentFormData.qtyPercent.toString(), qtyPercent: $percentFormData.qtyPercent.toString(),
qtyDecimalPoint:
$percentFormData.qtyDecimalPoint.toString(),
leverage: $percentFormData.leverage.toString(), leverage: $percentFormData.leverage.toString(),
takeProfitPercent: takeProfitPercent:
$percentFormData.takeProfitPercent.toString(), $percentFormData.takeProfitPercent.toString(),

@ -21,6 +21,7 @@ export const percentSchema = z.object({
symbol: z.string(), symbol: z.string(),
side: z.enum(['Buy', 'Sell']), side: z.enum(['Buy', 'Sell']),
qtyPercent: z.number(), qtyPercent: z.number(),
qtyDecimalPoint: z.number(),
leverage: z.number().default(100), leverage: z.number().default(100),
takeProfitPercent: z.number(), takeProfitPercent: z.number(),
stopLossPercent: z.number(), stopLossPercent: z.number(),

@ -31,6 +31,7 @@ export const POST = async ({ locals, request }) => {
side: z.enum(['Buy', 'Sell']), side: z.enum(['Buy', 'Sell']),
entryPrice: z.string(), entryPrice: z.string(),
qtyPercent: z.string(), qtyPercent: z.string(),
qtyDecimalPoint: z.string(),
leverage: z.string().default('1'), leverage: z.string().default('1'),
takeProfitPercent: z.string().optional(), takeProfitPercent: z.string().optional(),
stopLossPercent: z.string().optional(), stopLossPercent: z.string().optional(),
@ -77,7 +78,7 @@ export const POST = async ({ locals, request }) => {
if (form.data.type === 'Flat') { if (form.data.type === 'Flat') {
qty = ( qty = (
Number(form.data.qty) * Number(form.data.leverage || '1') Number(form.data.qty) * Number(form.data.leverage || '1')
).toFixed(getDecimalPoint(symbol.slice(0, -4))) ).toString()
takeProfit = form.data.takeProfit takeProfit = form.data.takeProfit
stopLoss = form.data.stopLoss stopLoss = form.data.stopLoss
side = form.data.side side = form.data.side
@ -110,7 +111,7 @@ export const POST = async ({ locals, request }) => {
((Number(form.data.qtyPercent) / 100) * ((Number(form.data.qtyPercent) / 100) *
Number(form.data.leverage || '1'))) / Number(form.data.leverage || '1'))) /
Number(form.data.entryPrice) Number(form.data.entryPrice)
).toFixed(getDecimalPoint(symbol.slice(0, -4))) ).toFixed(Number(form.data.qtyDecimalPoint))
takeProfit = ( takeProfit = (
Number(form.data.entryPrice) * Number(form.data.entryPrice) *
(1 + Number(form.data.takeProfitPercent) / 100) (1 + Number(form.data.takeProfitPercent) / 100)
@ -160,9 +161,3 @@ export const POST = async ({ locals, request }) => {
return new Response() return new Response()
} }
} }
const getDecimalPoint = (symbol: string) => {
if (symbol === 'BTC') return 3
if (symbol === 'ETH') return 2
return 1
}

Loading…
Cancel
Save