From a586522d950570a8eed87386424060a0a4618fab Mon Sep 17 00:00:00 2001 From: TZGyn Date: Sun, 15 Jun 2025 19:55:39 +0800 Subject: [PATCH] make sure the trailing distance always round up, even if lower than 5 --- src/lib/numbers.ts | 4 ++++ src/routes/webhook/tradingview/tradingstop/+server.ts | 7 ++++--- 2 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 src/lib/numbers.ts diff --git a/src/lib/numbers.ts b/src/lib/numbers.ts new file mode 100644 index 0000000..83af15b --- /dev/null +++ b/src/lib/numbers.ts @@ -0,0 +1,4 @@ +function roundUp(num: number, precision: number) { + precision = Math.pow(10, precision) + return Math.ceil(num * precision) / precision +} diff --git a/src/routes/webhook/tradingview/tradingstop/+server.ts b/src/routes/webhook/tradingview/tradingstop/+server.ts index 4afe6e6..1376f98 100644 --- a/src/routes/webhook/tradingview/tradingstop/+server.ts +++ b/src/routes/webhook/tradingview/tradingstop/+server.ts @@ -160,10 +160,11 @@ export const POST = async ({ locals, request }) => { (1 - Number(form.data.activePricePercent) / 100) ).toFixed(decimalLength) - const trailingDistance = ( + const trailingDistance = roundUp( Number(form.data.entryPrice) * - (Number(form.data.trailingDistancePercent) / 100) - ).toFixed(decimalLength) + (Number(form.data.trailingDistancePercent) / 100), + decimalLength, + ).toString() const tradingStops = await Promise.all([ await client.setTradingStop({