@blackcube/xgate-sdk 0.58.0 → 0.58.1
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/index.cjs +17 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +6 -3
- package/dist/index.d.ts +6 -3
- package/dist/index.js +17 -7
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.cts
CHANGED
|
@@ -1704,10 +1704,13 @@ declare class TradingService {
|
|
|
1704
1704
|
* take-profit peut remplir en plusieurs fois. Seul l'historique porte le prix réellement obtenu, et
|
|
1705
1705
|
* c'est lui qui doit servir au calcul du résultat — sinon le PnL affiché est une fiction.
|
|
1706
1706
|
*
|
|
1707
|
-
* On
|
|
1708
|
-
*
|
|
1707
|
+
* On lit les **exécutions** (`trades`), jamais les ordres : le prix d'un ordre est sa LIMITE — chez
|
|
1708
|
+
* hyperliquid, un market est un IOC borné à mark ± glissement, et son « prix » est cette borne, pas le
|
|
1709
|
+
* prix obtenu (BNB, 2026-10-01 : sortie lue à 844,44 pour des fills à 767,69). Le prix de sortie est la
|
|
1710
|
+
* moyenne des exécutions de sortie après `openedAt` — et avant `until` quand il est donné — pondérée par
|
|
1711
|
+
* leur taille : TP partiels et clôture compris, c'est le prix auquel la position est réellement sortie.
|
|
1709
1712
|
*/
|
|
1710
|
-
exitPrice(access: ITradingAccess, symbolXex: string, direction: Direction, openedAt: Date): Promise<string | null>;
|
|
1713
|
+
exitPrice(access: ITradingAccess, symbolXex: string, direction: Direction, openedAt: Date, until?: Date): Promise<string | null>;
|
|
1711
1714
|
/**
|
|
1712
1715
|
* L'HISTORIQUE DES ORDRES du compte — ce qui a été soumis, rempli, annulé ou expiré.
|
|
1713
1716
|
*
|
package/dist/index.d.ts
CHANGED
|
@@ -1704,10 +1704,13 @@ declare class TradingService {
|
|
|
1704
1704
|
* take-profit peut remplir en plusieurs fois. Seul l'historique porte le prix réellement obtenu, et
|
|
1705
1705
|
* c'est lui qui doit servir au calcul du résultat — sinon le PnL affiché est une fiction.
|
|
1706
1706
|
*
|
|
1707
|
-
* On
|
|
1708
|
-
*
|
|
1707
|
+
* On lit les **exécutions** (`trades`), jamais les ordres : le prix d'un ordre est sa LIMITE — chez
|
|
1708
|
+
* hyperliquid, un market est un IOC borné à mark ± glissement, et son « prix » est cette borne, pas le
|
|
1709
|
+
* prix obtenu (BNB, 2026-10-01 : sortie lue à 844,44 pour des fills à 767,69). Le prix de sortie est la
|
|
1710
|
+
* moyenne des exécutions de sortie après `openedAt` — et avant `until` quand il est donné — pondérée par
|
|
1711
|
+
* leur taille : TP partiels et clôture compris, c'est le prix auquel la position est réellement sortie.
|
|
1709
1712
|
*/
|
|
1710
|
-
exitPrice(access: ITradingAccess, symbolXex: string, direction: Direction, openedAt: Date): Promise<string | null>;
|
|
1713
|
+
exitPrice(access: ITradingAccess, symbolXex: string, direction: Direction, openedAt: Date, until?: Date): Promise<string | null>;
|
|
1711
1714
|
/**
|
|
1712
1715
|
* L'HISTORIQUE DES ORDRES du compte — ce qui a été soumis, rempli, annulé ou expiré.
|
|
1713
1716
|
*
|
package/dist/index.js
CHANGED
|
@@ -1701,15 +1701,25 @@ var TradingService = class {
|
|
|
1701
1701
|
* take-profit peut remplir en plusieurs fois. Seul l'historique porte le prix réellement obtenu, et
|
|
1702
1702
|
* c'est lui qui doit servir au calcul du résultat — sinon le PnL affiché est une fiction.
|
|
1703
1703
|
*
|
|
1704
|
-
* On
|
|
1705
|
-
*
|
|
1704
|
+
* On lit les **exécutions** (`trades`), jamais les ordres : le prix d'un ordre est sa LIMITE — chez
|
|
1705
|
+
* hyperliquid, un market est un IOC borné à mark ± glissement, et son « prix » est cette borne, pas le
|
|
1706
|
+
* prix obtenu (BNB, 2026-10-01 : sortie lue à 844,44 pour des fills à 767,69). Le prix de sortie est la
|
|
1707
|
+
* moyenne des exécutions de sortie après `openedAt` — et avant `until` quand il est donné — pondérée par
|
|
1708
|
+
* leur taille : TP partiels et clôture compris, c'est le prix auquel la position est réellement sortie.
|
|
1706
1709
|
*/
|
|
1707
|
-
async exitPrice(access, symbolXex, direction, openedAt) {
|
|
1710
|
+
async exitPrice(access, symbolXex, direction, openedAt, until) {
|
|
1708
1711
|
const exit = direction === "long" ? "sell" : "buy";
|
|
1709
|
-
const
|
|
1710
|
-
const
|
|
1711
|
-
|
|
1712
|
-
|
|
1712
|
+
const fin = until === void 0 ? Number.POSITIVE_INFINITY : until.getTime();
|
|
1713
|
+
const fills = (await this.trades(access)).filter((fill) => fill.symbolXex === symbolXex && fill.side === exit).filter(
|
|
1714
|
+
(fill) => fill.filledAt.getTime() > openedAt.getTime() && fill.filledAt.getTime() <= fin
|
|
1715
|
+
).filter((fill) => Number(fill.price) > 0 && Number(fill.size) > 0);
|
|
1716
|
+
const taille = fills.reduce((total, fill) => total + Number(fill.size), 0);
|
|
1717
|
+
if (taille === 0) {
|
|
1718
|
+
return null;
|
|
1719
|
+
}
|
|
1720
|
+
const moyenne = fills.reduce((total, fill) => total + Number(fill.price) * Number(fill.size), 0) / taille;
|
|
1721
|
+
const decimales = Math.max(...fills.map((fill) => (fill.price.split(".")[1] ?? "").length));
|
|
1722
|
+
return String(Number(moyenne.toFixed(decimales)));
|
|
1713
1723
|
}
|
|
1714
1724
|
/**
|
|
1715
1725
|
* L'HISTORIQUE DES ORDRES du compte — ce qui a été soumis, rempli, annulé ou expiré.
|