diff --git a/src/routes/dashboard/(components)/app-sidebar.svelte b/src/routes/dashboard/(components)/app-sidebar.svelte
index f6ac77b..f11f99b 100644
--- a/src/routes/dashboard/(components)/app-sidebar.svelte
+++ b/src/routes/dashboard/(components)/app-sidebar.svelte
@@ -4,6 +4,7 @@
import { page } from '$app/state'
import {
CoinsIcon,
+ DownloadIcon,
HistoryIcon,
HomeIcon,
SquareTerminal,
@@ -23,6 +24,12 @@
icon: HomeIcon,
isActive: page.url.pathname === `/dashboard/crypto-data`,
},
+ {
+ title: 'Download',
+ url: `/dashboard/download`,
+ icon: DownloadIcon,
+ isActive: page.url.pathname === `/dashboard/download`,
+ },
{
title: 'Arbitrage',
url: `/dashboard/swap`,
diff --git a/src/routes/dashboard/download/+page.svelte b/src/routes/dashboard/download/+page.svelte
new file mode 100644
index 0000000..5670089
--- /dev/null
+++ b/src/routes/dashboard/download/+page.svelte
@@ -0,0 +1,7 @@
+
+
+
diff --git a/src/routes/webhook/tradingview/+server.ts b/src/routes/webhook/tradingview/+server.ts
index be5da3f..f1a2397 100644
--- a/src/routes/webhook/tradingview/+server.ts
+++ b/src/routes/webhook/tradingview/+server.ts
@@ -98,6 +98,7 @@ export const POST = async ({ locals, request }) => {
side = form.data.side
positionIdx = form.data.side === 'Buy' ? 1 : 2
} else if (form.data.type === 'Percent') {
+ side = form.data.side
const wallet = await client.getWalletBalance({
accountType: 'UNIFIED',
coin: 'USDT',
@@ -127,15 +128,25 @@ export const POST = async ({ locals, request }) => {
Number(form.data.leverage || '1'))) /
Number(form.data.entryPrice)
).toFixed(Number(form.data.qtyDecimalPoint))
- takeProfit = (
- Number(form.data.entryPrice) *
- (1 + Number(form.data.takeProfitPercent) / 100)
- ).toFixed(decimalLength)
- stopLoss = (
- Number(form.data.entryPrice) *
- (1 - Number(form.data.stopLossPercent) / 100)
- ).toFixed(decimalLength)
- side = form.data.side
+ if (side === 'Buy') {
+ takeProfit = (
+ Number(form.data.entryPrice) *
+ (1 + Number(form.data.takeProfitPercent) / 100)
+ ).toFixed(decimalLength)
+ stopLoss = (
+ Number(form.data.entryPrice) *
+ (1 - Number(form.data.stopLossPercent) / 100)
+ ).toFixed(decimalLength)
+ } else {
+ takeProfit = (
+ Number(form.data.entryPrice) *
+ (1 - Number(form.data.takeProfitPercent) / 100)
+ ).toFixed(decimalLength)
+ stopLoss = (
+ Number(form.data.entryPrice) *
+ (1 + Number(form.data.stopLossPercent) / 100)
+ ).toFixed(decimalLength)
+ }
positionIdx = form.data.side === 'Buy' ? 1 : 2
} else {
const position = await client.getPositionInfo({
@@ -189,8 +200,8 @@ export const POST = async ({ locals, request }) => {
side,
orderType: 'Market',
qty,
- takeProfit: side === 'Buy' ? takeProfit : stopLoss,
- stopLoss: side === 'Buy' ? stopLoss : takeProfit,
+ takeProfit: takeProfit,
+ stopLoss: stopLoss,
isLeverage: isLeverage ? 1 : 0,
positionIdx: hedge !== undefined ? positionIdx : undefined,
})