@yuants/vendor-okx 0.29.11 → 0.29.12
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 +1 -1
- package/temp/package-deps.json +4 -4
|
@@ -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
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": "2c1be394fd415553470426085d26582a38d774ea",
|
|
3
|
+
"apps/vendor-okx/CHANGELOG.md": "649c75138642fdfa8711d6b355f9983f0b8312b9",
|
|
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": "4ae8f4a5a64c8c0e8df6b4a72df43bac6ed81706",
|
|
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",
|