@yuants/vendor-okx 0.29.11 → 0.29.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/experimental/getPositions.js +1 -0
- package/dist/experimental/getPositions.js.map +1 -1
- package/lib/experimental/getPositions.d.ts.map +1 -1
- package/lib/experimental/getPositions.js +1 -0
- package/lib/experimental/getPositions.js.map +1 -1
- package/package.json +3 -3
- package/temp/package-deps.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPositions.js","sourceRoot":"","sources":["../../src/experimental/getPositions.ts"],"names":[],"mappings":"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","sourcesContent":["import { IPosition, makeSpotPosition } from '@yuants/data-account';\nimport { encodePath } from '@yuants/utils';\nimport { getSpotPrice } from '../accountInfos/trading';\nimport {\n getAccountBalance,\n getAccountPositions,\n getAssetBalances,\n getFinanceSavingsBalance,\n getFlexibleLoanInfo,\n ICredential,\n} from '../api/private-api';\nimport { productCache } from './product';\n\nexport const getPositions = async (credential: ICredential): Promise<IPosition[]> => {\n const positions: IPosition[] = [];\n\n const [positionsApi, balanceApi, assetBalancesApi, offersApi, flexibleLoanInfoApi] = await Promise.all([\n // Trading Accounts\n getAccountPositions(credential, {}),\n getAccountBalance(credential, {}),\n // Funding Accounts\n getAssetBalances(credential, {}),\n // Earning Accounts\n getFinanceSavingsBalance(credential, {}),\n // Loan Accounts\n getFlexibleLoanInfo(credential),\n ]);\n\n // 现货头寸\n for (const detail of balanceApi.data?.[0]?.details || []) {\n const volume = +(detail.cashBal ?? 0);\n const free_volume = Math.min(\n volume, // free should no more than balance if there is much profits\n +(detail.availEq ?? 0),\n );\n\n const product_id = encodePath('OKX', 'SPOT', `${detail.ccy}-USDT`);\n positions.push(\n makeSpotPosition({\n position_id: product_id,\n datasource_id: 'OKX',\n product_id: product_id,\n volume: volume,\n free_volume: free_volume,\n closable_price: getSpotPrice(detail.ccy),\n }),\n );\n }\n for (const x of positionsApi.data || []) {\n const direction =\n x.posSide === 'long' ? 'LONG' : x.posSide === 'short' ? 'SHORT' : +x.pos > 0 ? 'LONG' : 'SHORT';\n const volume = Math.abs(+x.pos);\n const product_id = encodePath('OKX', x.instType, x.instId);\n const closable_price = +x.last;\n const theProduct = await productCache.query(product_id);\n const valuation = (theProduct?.value_scale ?? 1) * volume * closable_price || 0;\n\n positions.push({\n position_id: x.posId,\n datasource_id: 'OKX',\n product_id,\n direction,\n volume: volume,\n free_volume: +x.availPos,\n closable_price,\n position_price: +x.avgPx,\n floating_profit: +x.upl,\n valuation,\n });\n }\n\n for (const x of assetBalancesApi.data || []) {\n positions.push(\n makeSpotPosition({\n datasource_id: 'OKX',\n position_id: encodePath('OKX', 'FUNDING-ASSET', `${x.ccy}`),\n product_id: encodePath('OKX', 'FUNDING-ASSET', `${x.ccy}`),\n volume: +x.bal,\n free_volume: +x.bal,\n closable_price: getSpotPrice(x.ccy),\n }),\n );\n }\n\n for (const offer of offersApi.data || []) {\n positions.push(\n makeSpotPosition({\n position_id: encodePath('OKX', 'EARNING-ASSET', `${offer.ccy}`),\n datasource_id: 'OKX',\n product_id: encodePath('OKX', 'EARNING-ASSET', `${offer.ccy}`),\n volume: +offer.amt,\n free_volume: +offer.amt,\n closable_price: getSpotPrice(offer.ccy),\n }),\n );\n }\n\n for (const loan of flexibleLoanInfoApi.data?.[0]?.loanData || []) {\n positions.push({\n datasource_id: 'OKX',\n position_id: encodePath('OKX', 'LOAN', `${loan.ccy}`),\n product_id: encodePath('OKX', 'LOAN', `${loan.ccy}`),\n volume: +loan.amt,\n free_volume: +loan.amt,\n direction: 'SHORT',\n position_price: 0,\n closable_price: getSpotPrice(loan.ccy),\n floating_profit: -getSpotPrice(loan.ccy) * +loan.amt,\n valuation: getSpotPrice(loan.ccy) * +loan.amt,\n });\n }\n\n for (const collateral of flexibleLoanInfoApi.data?.[0]?.collateralData || []) {\n positions.push(\n makeSpotPosition({\n position_id: encodePath('OKX', 'COLLATERAL', `${collateral.ccy}`),\n datasource_id: 'OKX',\n product_id: encodePath('OKX', 'COLLATERAL', `${collateral.ccy}`),\n volume: +collateral.amt,\n free_volume: +collateral.amt,\n closable_price: getSpotPrice(collateral.ccy),\n }),\n );\n }\n\n return positions;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"getPositions.js","sourceRoot":"","sources":["../../src/experimental/getPositions.ts"],"names":[],"mappings":"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","sourcesContent":["import { IPosition, makeSpotPosition } from '@yuants/data-account';\nimport { encodePath } from '@yuants/utils';\nimport { getSpotPrice } from '../accountInfos/trading';\nimport {\n getAccountBalance,\n getAccountPositions,\n getAssetBalances,\n getFinanceSavingsBalance,\n getFlexibleLoanInfo,\n ICredential,\n} from '../api/private-api';\nimport { productCache } from './product';\n\nexport const getPositions = async (credential: ICredential): Promise<IPosition[]> => {\n const positions: IPosition[] = [];\n\n const [positionsApi, balanceApi, assetBalancesApi, offersApi, flexibleLoanInfoApi] = await Promise.all([\n // Trading Accounts\n getAccountPositions(credential, {}),\n getAccountBalance(credential, {}),\n // Funding Accounts\n getAssetBalances(credential, {}),\n // Earning Accounts\n getFinanceSavingsBalance(credential, {}),\n // Loan Accounts\n getFlexibleLoanInfo(credential),\n ]);\n\n // 现货头寸\n for (const detail of balanceApi.data?.[0]?.details || []) {\n const volume = +(detail.cashBal ?? 0);\n const free_volume = Math.min(\n volume, // free should no more than balance if there is much profits\n +(detail.availEq ?? 0),\n );\n\n const product_id = encodePath('OKX', 'SPOT', `${detail.ccy}-USDT`);\n positions.push(\n makeSpotPosition({\n position_id: product_id,\n datasource_id: 'OKX',\n product_id: product_id,\n volume: volume,\n free_volume: free_volume,\n closable_price: getSpotPrice(detail.ccy),\n }),\n );\n }\n for (const x of positionsApi.data || []) {\n const direction =\n x.posSide === 'long' ? 'LONG' : x.posSide === 'short' ? 'SHORT' : +x.pos > 0 ? 'LONG' : 'SHORT';\n const volume = Math.abs(+x.pos);\n const product_id = encodePath('OKX', x.instType, x.instId);\n const closable_price = +x.last;\n const theProduct = await productCache.query(product_id);\n const valuation = (theProduct?.value_scale ?? 1) * volume * closable_price || 0;\n\n positions.push({\n position_id: x.posId,\n datasource_id: 'OKX',\n product_id,\n direction,\n volume: volume,\n free_volume: +x.availPos,\n closable_price,\n position_price: +x.avgPx,\n floating_profit: +x.upl,\n liquidation_price: x.liqPx,\n valuation,\n });\n }\n\n for (const x of assetBalancesApi.data || []) {\n positions.push(\n makeSpotPosition({\n datasource_id: 'OKX',\n position_id: encodePath('OKX', 'FUNDING-ASSET', `${x.ccy}`),\n product_id: encodePath('OKX', 'FUNDING-ASSET', `${x.ccy}`),\n volume: +x.bal,\n free_volume: +x.bal,\n closable_price: getSpotPrice(x.ccy),\n }),\n );\n }\n\n for (const offer of offersApi.data || []) {\n positions.push(\n makeSpotPosition({\n position_id: encodePath('OKX', 'EARNING-ASSET', `${offer.ccy}`),\n datasource_id: 'OKX',\n product_id: encodePath('OKX', 'EARNING-ASSET', `${offer.ccy}`),\n volume: +offer.amt,\n free_volume: +offer.amt,\n closable_price: getSpotPrice(offer.ccy),\n }),\n );\n }\n\n for (const loan of flexibleLoanInfoApi.data?.[0]?.loanData || []) {\n positions.push({\n datasource_id: 'OKX',\n position_id: encodePath('OKX', 'LOAN', `${loan.ccy}`),\n product_id: encodePath('OKX', 'LOAN', `${loan.ccy}`),\n volume: +loan.amt,\n free_volume: +loan.amt,\n direction: 'SHORT',\n position_price: 0,\n closable_price: getSpotPrice(loan.ccy),\n floating_profit: -getSpotPrice(loan.ccy) * +loan.amt,\n valuation: getSpotPrice(loan.ccy) * +loan.amt,\n });\n }\n\n for (const collateral of flexibleLoanInfoApi.data?.[0]?.collateralData || []) {\n positions.push(\n makeSpotPosition({\n position_id: encodePath('OKX', 'COLLATERAL', `${collateral.ccy}`),\n datasource_id: 'OKX',\n product_id: encodePath('OKX', 'COLLATERAL', `${collateral.ccy}`),\n volume: +collateral.amt,\n free_volume: +collateral.amt,\n closable_price: getSpotPrice(collateral.ccy),\n }),\n );\n }\n\n return positions;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPositions.d.ts","sourceRoot":"","sources":["../../src/experimental/getPositions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAoB,MAAM,sBAAsB,CAAC;AAGnE,OAAO,EAML,WAAW,EACZ,MAAM,oBAAoB,CAAC;AAG5B,eAAO,MAAM,YAAY,eAAsB,WAAW,KAAG,QAAQ,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"getPositions.d.ts","sourceRoot":"","sources":["../../src/experimental/getPositions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAoB,MAAM,sBAAsB,CAAC;AAGnE,OAAO,EAML,WAAW,EACZ,MAAM,oBAAoB,CAAC;AAG5B,eAAO,MAAM,YAAY,eAAsB,WAAW,KAAG,QAAQ,SAAS,EAAE,CAkH/E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPositions.js","sourceRoot":"","sources":["../../src/experimental/getPositions.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"getPositions.js","sourceRoot":"","sources":["../../src/experimental/getPositions.ts"],"names":[],"mappings":"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","sourcesContent":["import { IPosition, makeSpotPosition } from '@yuants/data-account';\nimport { encodePath } from '@yuants/utils';\nimport { getSpotPrice } from '../accountInfos/trading';\nimport {\n getAccountBalance,\n getAccountPositions,\n getAssetBalances,\n getFinanceSavingsBalance,\n getFlexibleLoanInfo,\n ICredential,\n} from '../api/private-api';\nimport { productCache } from './product';\n\nexport const getPositions = async (credential: ICredential): Promise<IPosition[]> => {\n const positions: IPosition[] = [];\n\n const [positionsApi, balanceApi, assetBalancesApi, offersApi, flexibleLoanInfoApi] = await Promise.all([\n // Trading Accounts\n getAccountPositions(credential, {}),\n getAccountBalance(credential, {}),\n // Funding Accounts\n getAssetBalances(credential, {}),\n // Earning Accounts\n getFinanceSavingsBalance(credential, {}),\n // Loan Accounts\n getFlexibleLoanInfo(credential),\n ]);\n\n // 现货头寸\n for (const detail of balanceApi.data?.[0]?.details || []) {\n const volume = +(detail.cashBal ?? 0);\n const free_volume = Math.min(\n volume, // free should no more than balance if there is much profits\n +(detail.availEq ?? 0),\n );\n\n const product_id = encodePath('OKX', 'SPOT', `${detail.ccy}-USDT`);\n positions.push(\n makeSpotPosition({\n position_id: product_id,\n datasource_id: 'OKX',\n product_id: product_id,\n volume: volume,\n free_volume: free_volume,\n closable_price: getSpotPrice(detail.ccy),\n }),\n );\n }\n for (const x of positionsApi.data || []) {\n const direction =\n x.posSide === 'long' ? 'LONG' : x.posSide === 'short' ? 'SHORT' : +x.pos > 0 ? 'LONG' : 'SHORT';\n const volume = Math.abs(+x.pos);\n const product_id = encodePath('OKX', x.instType, x.instId);\n const closable_price = +x.last;\n const theProduct = await productCache.query(product_id);\n const valuation = (theProduct?.value_scale ?? 1) * volume * closable_price || 0;\n\n positions.push({\n position_id: x.posId,\n datasource_id: 'OKX',\n product_id,\n direction,\n volume: volume,\n free_volume: +x.availPos,\n closable_price,\n position_price: +x.avgPx,\n floating_profit: +x.upl,\n liquidation_price: x.liqPx,\n valuation,\n });\n }\n\n for (const x of assetBalancesApi.data || []) {\n positions.push(\n makeSpotPosition({\n datasource_id: 'OKX',\n position_id: encodePath('OKX', 'FUNDING-ASSET', `${x.ccy}`),\n product_id: encodePath('OKX', 'FUNDING-ASSET', `${x.ccy}`),\n volume: +x.bal,\n free_volume: +x.bal,\n closable_price: getSpotPrice(x.ccy),\n }),\n );\n }\n\n for (const offer of offersApi.data || []) {\n positions.push(\n makeSpotPosition({\n position_id: encodePath('OKX', 'EARNING-ASSET', `${offer.ccy}`),\n datasource_id: 'OKX',\n product_id: encodePath('OKX', 'EARNING-ASSET', `${offer.ccy}`),\n volume: +offer.amt,\n free_volume: +offer.amt,\n closable_price: getSpotPrice(offer.ccy),\n }),\n );\n }\n\n for (const loan of flexibleLoanInfoApi.data?.[0]?.loanData || []) {\n positions.push({\n datasource_id: 'OKX',\n position_id: encodePath('OKX', 'LOAN', `${loan.ccy}`),\n product_id: encodePath('OKX', 'LOAN', `${loan.ccy}`),\n volume: +loan.amt,\n free_volume: +loan.amt,\n direction: 'SHORT',\n position_price: 0,\n closable_price: getSpotPrice(loan.ccy),\n floating_profit: -getSpotPrice(loan.ccy) * +loan.amt,\n valuation: getSpotPrice(loan.ccy) * +loan.amt,\n });\n }\n\n for (const collateral of flexibleLoanInfoApi.data?.[0]?.collateralData || []) {\n positions.push(\n makeSpotPosition({\n position_id: encodePath('OKX', 'COLLATERAL', `${collateral.ccy}`),\n datasource_id: 'OKX',\n product_id: encodePath('OKX', 'COLLATERAL', `${collateral.ccy}`),\n volume: +collateral.amt,\n free_volume: +collateral.amt,\n closable_price: getSpotPrice(collateral.ccy),\n }),\n );\n }\n\n return positions;\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yuants/vendor-okx",
|
|
3
|
-
"version": "0.29.
|
|
3
|
+
"version": "0.29.13",
|
|
4
4
|
"main": "lib/index.js",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@yuants/protocol": "0.53.2",
|
|
12
12
|
"@yuants/transfer": "0.2.39",
|
|
13
|
-
"@yuants/data-account": "0.
|
|
13
|
+
"@yuants/data-account": "0.10.0",
|
|
14
14
|
"@yuants/data-order": "0.6.6",
|
|
15
15
|
"@yuants/utils": "0.14.0",
|
|
16
16
|
"@yuants/cache": "0.3.3",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"@yuants/data-interest-rate": "0.1.48",
|
|
23
23
|
"@yuants/data-quote": "0.2.43",
|
|
24
24
|
"@yuants/data-trade": "0.1.21",
|
|
25
|
-
"@yuants/exchange": "0.
|
|
25
|
+
"@yuants/exchange": "0.5.0",
|
|
26
26
|
"rxjs": "~7.5.6",
|
|
27
27
|
"ws": "~8.8.1"
|
|
28
28
|
},
|
package/temp/package-deps.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
|
-
"apps/vendor-okx/CHANGELOG.json": "
|
|
3
|
-
"apps/vendor-okx/CHANGELOG.md": "
|
|
2
|
+
"apps/vendor-okx/CHANGELOG.json": "1ae27431e387522a25eab53a429638d687d8f7b0",
|
|
3
|
+
"apps/vendor-okx/CHANGELOG.md": "0c2a6fc07494444f745e9c1f86f91ad4ec373299",
|
|
4
4
|
"apps/vendor-okx/README.md": "68caeb8e383d77ece973cd70f4b167b86abb54c3",
|
|
5
5
|
"apps/vendor-okx/api-extractor.json": "62f4fd324425b9a235f0c117975967aab09ced0c",
|
|
6
6
|
"apps/vendor-okx/config/jest.config.json": "4bb17bde3ee911163a3edb36a6eb71491d80b1bd",
|
|
7
7
|
"apps/vendor-okx/config/rig.json": "f6c7b5537dc77a3170ba9f008bae3b6c3ee11956",
|
|
8
8
|
"apps/vendor-okx/config/typescript.json": "854907e8a821f2050f6533368db160c649c25348",
|
|
9
9
|
"apps/vendor-okx/etc/vendor-okx.api.md": "92c54ccd547d2ad81ca6088158ca193e85c208df",
|
|
10
|
-
"apps/vendor-okx/package.json": "
|
|
10
|
+
"apps/vendor-okx/package.json": "bc00a9ab9bdf5a6f0e4be82f8afbcae6d08b35ad",
|
|
11
11
|
"apps/vendor-okx/src/account-actions-with-credential.ts": "1a2de787b588e98ceef60b3ffb951f298504bf12",
|
|
12
12
|
"apps/vendor-okx/src/account.ts": "672014c974457b438cf026f763d6eecfe585c82b",
|
|
13
13
|
"apps/vendor-okx/src/accountInfos/earning.ts": "62aaeb3b62fa9197d07ee14155625530cdb9b1cd",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"apps/vendor-okx/src/api/public-api.ts": "05b9cddafd09b5c9f65ce4eaeab42832e7d60449",
|
|
24
24
|
"apps/vendor-okx/src/experimental/exchange.ts": "df5c9dc9e4d4210be7367f1c23dc63dc4d82cb6f",
|
|
25
25
|
"apps/vendor-okx/src/experimental/getOrders.ts": "f89b8334fa55163a78f91cf675cea8c7c869d4a7",
|
|
26
|
-
"apps/vendor-okx/src/experimental/getPositions.ts": "
|
|
26
|
+
"apps/vendor-okx/src/experimental/getPositions.ts": "5fe0bd5ebc3db151be7ae897aaad256dea878122",
|
|
27
27
|
"apps/vendor-okx/src/experimental/product.ts": "808bb037c1559ead2260a6b1eb2552f246da45c6",
|
|
28
28
|
"apps/vendor-okx/src/index.ts": "4bad32deb2845ce1314dd849bbd2780619b296f3",
|
|
29
29
|
"apps/vendor-okx/src/order-actions-with-credential.ts": "f58b164c57a776db0fd0ad3a9f7197603ab2f66e",
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"apps/vendor-okx/.rush/temp/shrinkwrap-deps.json": "38417f6f35b760ade667d08782f1175046c7b64d",
|
|
51
51
|
"libraries/protocol/temp/package-deps.json": "0bd43721e96039b52d7b59c834dc6df45cf75e3f",
|
|
52
52
|
"libraries/transfer/temp/package-deps.json": "36c58299bd6c841c5ba7252d71881a881570d08c",
|
|
53
|
-
"libraries/data-account/temp/package-deps.json": "
|
|
53
|
+
"libraries/data-account/temp/package-deps.json": "3ee766acef866410612b60dfc1012082c9c24556",
|
|
54
54
|
"libraries/data-order/temp/package-deps.json": "2adac9fc0423f9b1b7ddaa8946ab7af374cc22e1",
|
|
55
55
|
"libraries/utils/temp/package-deps.json": "6d58e9b325e8d16de8a878c32010f626b12a01da",
|
|
56
56
|
"libraries/cache/temp/package-deps.json": "a4afa15e6462983f9d3735d31dc1ed8a683fb4dc",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"libraries/data-interest-rate/temp/package-deps.json": "cef1e1cb0116ad593c24635684e0cbf03488d67c",
|
|
63
63
|
"libraries/data-quote/temp/package-deps.json": "34d079eab44d2bf65e07b112ac2099c6e92a015e",
|
|
64
64
|
"libraries/data-trade/temp/package-deps.json": "aa7929cce3f5a00f2cfb250e7aa4c442e3858517",
|
|
65
|
-
"libraries/exchange/temp/package-deps.json": "
|
|
65
|
+
"libraries/exchange/temp/package-deps.json": "d40288d0530bc7e63246f234bdffa10a497776b1",
|
|
66
66
|
"libraries/extension/temp/package-deps.json": "9569c553c2f9a7d50b70d8f101fc2d3825aaccb9",
|
|
67
67
|
"tools/toolkit/temp/package-deps.json": "23e053490eb8feade23e4d45de4e54883e322711"
|
|
68
68
|
}
|