@newyorkcompute/kalshi-core 0.3.0 → 0.5.0
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/config.d.ts.map +1 -1
- package/dist/config.js +5 -1
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/mm/index.d.ts +11 -0
- package/dist/mm/index.d.ts.map +1 -0
- package/dist/mm/index.js +14 -0
- package/dist/mm/index.js.map +1 -0
- package/dist/mm/inventory.d.ts +70 -0
- package/dist/mm/inventory.d.ts.map +1 -0
- package/dist/mm/inventory.js +171 -0
- package/dist/mm/inventory.js.map +1 -0
- package/dist/mm/inventory.test.d.ts +2 -0
- package/dist/mm/inventory.test.d.ts.map +1 -0
- package/dist/mm/inventory.test.js +358 -0
- package/dist/mm/inventory.test.js.map +1 -0
- package/dist/mm/order-manager.d.ts +93 -0
- package/dist/mm/order-manager.d.ts.map +1 -0
- package/dist/mm/order-manager.js +262 -0
- package/dist/mm/order-manager.js.map +1 -0
- package/dist/mm/order-manager.test.d.ts +2 -0
- package/dist/mm/order-manager.test.d.ts.map +1 -0
- package/dist/mm/order-manager.test.js +333 -0
- package/dist/mm/order-manager.test.js.map +1 -0
- package/dist/mm/orderbook.d.ts +162 -0
- package/dist/mm/orderbook.d.ts.map +1 -0
- package/dist/mm/orderbook.js +271 -0
- package/dist/mm/orderbook.js.map +1 -0
- package/dist/mm/orderbook.test.d.ts +2 -0
- package/dist/mm/orderbook.test.d.ts.map +1 -0
- package/dist/mm/orderbook.test.js +264 -0
- package/dist/mm/orderbook.test.js.map +1 -0
- package/dist/mm/risk.d.ts +77 -0
- package/dist/mm/risk.d.ts.map +1 -0
- package/dist/mm/risk.js +179 -0
- package/dist/mm/risk.js.map +1 -0
- package/dist/mm/risk.test.d.ts +2 -0
- package/dist/mm/risk.test.d.ts.map +1 -0
- package/dist/mm/risk.test.js +297 -0
- package/dist/mm/risk.test.js.map +1 -0
- package/dist/mm/types.d.ts +128 -0
- package/dist/mm/types.d.ts.map +1 -0
- package/dist/mm/types.js +7 -0
- package/dist/mm/types.js.map +1 -0
- package/dist/websocket/auth.d.ts +9 -2
- package/dist/websocket/auth.d.ts.map +1 -1
- package/dist/websocket/auth.js +18 -13
- package/dist/websocket/auth.js.map +1 -1
- package/dist/websocket/auth.test.js +15 -6
- package/dist/websocket/auth.test.js.map +1 -1
- package/dist/websocket/client.d.ts.map +1 -1
- package/dist/websocket/client.js +6 -0
- package/dist/websocket/client.js.map +1 -1
- package/dist/websocket/types.d.ts +13 -1
- package/dist/websocket/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,aAAa,EACb,SAAS,EACT,YAAY,EACZ,SAAS,EACT,SAAS,EACV,MAAM,mBAAmB,CAAC;AAE3B;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,kDAAkD,CAAC;AAEjF;;GAEG;AACH,eAAO,MAAM,cAAc,4CAA4C,CAAC;AAExE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,IAAI,YAAY,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,aAAa,EACb,SAAS,EACT,YAAY,EACZ,SAAS,EACT,SAAS,EACV,MAAM,mBAAmB,CAAC;AAE3B;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,kDAAkD,CAAC;AAEjF;;GAEG;AACH,eAAO,MAAM,cAAc,4CAA4C,CAAC;AAExE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAmB9C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa,CAMnE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAG/D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAGrE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAG/D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAG/D"}
|
package/dist/config.js
CHANGED
|
@@ -31,7 +31,7 @@ export const DEMO_BASE_PATH = "https://demo-api.kalshi.co/trade-api/v2";
|
|
|
31
31
|
*/
|
|
32
32
|
export function getKalshiConfig() {
|
|
33
33
|
const apiKey = process.env.KALSHI_API_KEY;
|
|
34
|
-
|
|
34
|
+
let privateKey = process.env.KALSHI_PRIVATE_KEY;
|
|
35
35
|
const basePath = process.env.KALSHI_BASE_PATH || DEFAULT_BASE_PATH;
|
|
36
36
|
if (!apiKey) {
|
|
37
37
|
throw new Error("KALSHI_API_KEY environment variable is required");
|
|
@@ -39,6 +39,10 @@ export function getKalshiConfig() {
|
|
|
39
39
|
if (!privateKey) {
|
|
40
40
|
throw new Error("KALSHI_PRIVATE_KEY environment variable is required");
|
|
41
41
|
}
|
|
42
|
+
// Handle escaped newlines from .env files
|
|
43
|
+
if (privateKey.includes("\\n")) {
|
|
44
|
+
privateKey = privateKey.replace(/\\n/g, "\n");
|
|
45
|
+
}
|
|
42
46
|
return { apiKey, privateKey, basePath };
|
|
43
47
|
}
|
|
44
48
|
/**
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,aAAa,EACb,SAAS,EACT,YAAY,EACZ,SAAS,EACT,SAAS,GACV,MAAM,mBAAmB,CAAC;AAe3B;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,+CAA+C,CAAC;AAEjF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,yCAAyC,CAAC;AAExE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAC1C,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,aAAa,EACb,SAAS,EACT,YAAY,EACZ,SAAS,EACT,SAAS,GACV,MAAM,mBAAmB,CAAC;AAe3B;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,+CAA+C,CAAC;AAEjF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,yCAAyC,CAAC;AAExE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAC1C,IAAI,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,iBAAiB,CAAC;IAEnE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IAED,0CAA0C;IAC1C,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AAC1C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,MAAoB;IAClD,OAAO,IAAI,aAAa,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,aAAa,EAAE,MAAM,CAAC,UAAU;QAChC,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAAC,MAAoB;IAClD,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAoB;IACrD,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAAC,MAAoB;IAClD,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAAC,MAAoB;IAClD,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -11,4 +11,5 @@ export * from "./types.js";
|
|
|
11
11
|
export { withTimeout, TimeoutError } from "./with-timeout.js";
|
|
12
12
|
export { validateOrder, type OrderValidationInput, type OrderValidationResult, } from "./validate-order.js";
|
|
13
13
|
export { KalshiWsClient, generateWsAuthHeaders, generateSignedWsUrl, type KalshiWsConfig, type KalshiWsEventHandlers, type SubscriptionChannel, type ConnectionState, type ActiveSubscriptions, type OrderbookDeltaMessage, type TickerMessage, type TradeMessage, type FillMessage, type WsMessage, WS_ENDPOINTS, } from "./websocket/index.js";
|
|
14
|
+
export { OrderManager, InventoryTracker, RiskManager, LocalOrderbook, OrderbookManager, DEFAULT_RISK_LIMITS, type Side, type Action, type OrderStatus, type ManagedOrder, type Quote, type Position, type RiskLimits, type RiskCheckResult, type Fill, type PnLSummary, type CreateOrderInput, type PlaceOrderResult, type PriceLevel, type OrderbookSnapshot, type OrderbookDelta, type BBO, } from "./mm/index.js";
|
|
14
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,KAAK,YAAY,EACjB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,eAAe,GAChB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,WAAW,EACX,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,SAAS,GACV,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,SAAS,EACT,QAAQ,EACR,UAAU,EACV,aAAa,EACb,aAAa,EACb,SAAS,GACV,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,mBAAmB,CAAC;AAG3B,cAAc,YAAY,CAAC;AAG3B,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAG9D,OAAO,EACL,aAAa,EACb,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,GAC3B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,YAAY,GACb,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,KAAK,YAAY,EACjB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,eAAe,GAChB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,WAAW,EACX,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,SAAS,GACV,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,SAAS,EACT,QAAQ,EACR,UAAU,EACV,aAAa,EACb,aAAa,EACb,SAAS,GACV,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,mBAAmB,CAAC;AAG3B,cAAc,YAAY,CAAC;AAG3B,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAG9D,OAAO,EACL,aAAa,EACb,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,GAC3B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,YAAY,GACb,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,KAAK,IAAI,EACT,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,KAAK,EACV,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,IAAI,EACT,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,GAAG,GACT,MAAM,eAAe,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -19,4 +19,6 @@ export { withTimeout, TimeoutError } from "./with-timeout.js";
|
|
|
19
19
|
export { validateOrder, } from "./validate-order.js";
|
|
20
20
|
// WebSocket (real-time data)
|
|
21
21
|
export { KalshiWsClient, generateWsAuthHeaders, generateSignedWsUrl, WS_ENDPOINTS, } from "./websocket/index.js";
|
|
22
|
+
// Market Making primitives
|
|
23
|
+
export { OrderManager, InventoryTracker, RiskManager, LocalOrderbook, OrderbookManager, DEFAULT_RISK_LIMITS, } from "./mm/index.js";
|
|
22
24
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,gBAAgB;AAChB,OAAO,EAEL,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,eAAe,GAChB,MAAM,aAAa,CAAC;AAErB,uBAAuB;AACvB,OAAO,EACL,WAAW,EACX,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,SAAS,GACV,MAAM,aAAa,CAAC;AAErB,kBAAkB;AAClB,OAAO,EACL,SAAS,EACT,QAAQ,EACR,UAAU,EACV,aAAa,EACb,aAAa,EACb,SAAS,GACV,MAAM,YAAY,CAAC;AAEpB,gBAAgB;AAChB,OAAO,EACL,iBAAiB,EACjB,gBAAgB,GAIjB,MAAM,mBAAmB,CAAC;AAE3B,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,YAAY;AACZ,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE9D,aAAa;AACb,OAAO,EACL,aAAa,GAGd,MAAM,qBAAqB,CAAC;AAE7B,6BAA6B;AAC7B,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EAWnB,YAAY,GACb,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,gBAAgB;AAChB,OAAO,EAEL,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,eAAe,GAChB,MAAM,aAAa,CAAC;AAErB,uBAAuB;AACvB,OAAO,EACL,WAAW,EACX,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,SAAS,GACV,MAAM,aAAa,CAAC;AAErB,kBAAkB;AAClB,OAAO,EACL,SAAS,EACT,QAAQ,EACR,UAAU,EACV,aAAa,EACb,aAAa,EACb,SAAS,GACV,MAAM,YAAY,CAAC;AAEpB,gBAAgB;AAChB,OAAO,EACL,iBAAiB,EACjB,gBAAgB,GAIjB,MAAM,mBAAmB,CAAC;AAE3B,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,YAAY;AACZ,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE9D,aAAa;AACb,OAAO,EACL,aAAa,GAGd,MAAM,qBAAqB,CAAC;AAE7B,6BAA6B;AAC7B,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EAWnB,YAAY,GACb,MAAM,sBAAsB,CAAC;AAE9B,2BAA2B;AAC3B,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,mBAAmB,GAiBpB,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Market Maker Module
|
|
3
|
+
*
|
|
4
|
+
* Core primitives for building market making systems.
|
|
5
|
+
*/
|
|
6
|
+
export type { Side, Action, OrderStatus, ManagedOrder, Quote, Position, RiskLimits, RiskCheckResult, Fill, PnLSummary, } from "./types.js";
|
|
7
|
+
export { OrderManager, type CreateOrderInput, type PlaceOrderResult, } from "./order-manager.js";
|
|
8
|
+
export { InventoryTracker } from "./inventory.js";
|
|
9
|
+
export { RiskManager, DEFAULT_RISK_LIMITS } from "./risk.js";
|
|
10
|
+
export { LocalOrderbook, OrderbookManager, type PriceLevel, type OrderbookSnapshot, type OrderbookDelta, type BBO, } from "./orderbook.js";
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mm/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,IAAI,EACJ,MAAM,EACN,WAAW,EACX,YAAY,EACZ,KAAK,EACL,QAAQ,EACR,UAAU,EACV,eAAe,EACf,IAAI,EACJ,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,YAAY,EACZ,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGlD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAG7D,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,GAAG,GACT,MAAM,gBAAgB,CAAC"}
|
package/dist/mm/index.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Market Maker Module
|
|
3
|
+
*
|
|
4
|
+
* Core primitives for building market making systems.
|
|
5
|
+
*/
|
|
6
|
+
// Order Manager
|
|
7
|
+
export { OrderManager, } from "./order-manager.js";
|
|
8
|
+
// Inventory Tracker
|
|
9
|
+
export { InventoryTracker } from "./inventory.js";
|
|
10
|
+
// Risk Manager
|
|
11
|
+
export { RiskManager, DEFAULT_RISK_LIMITS } from "./risk.js";
|
|
12
|
+
// Local Orderbook
|
|
13
|
+
export { LocalOrderbook, OrderbookManager, } from "./orderbook.js";
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mm/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgBH,gBAAgB;AAChB,OAAO,EACL,YAAY,GAGb,MAAM,oBAAoB,CAAC;AAE5B,oBAAoB;AACpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAE7D,kBAAkB;AAClB,OAAO,EACL,cAAc,EACd,gBAAgB,GAKjB,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inventory Tracker
|
|
3
|
+
*
|
|
4
|
+
* Tracks positions and PnL for market making.
|
|
5
|
+
*/
|
|
6
|
+
import type { Position, Fill, PnLSummary } from "./types.js";
|
|
7
|
+
/**
|
|
8
|
+
* InventoryTracker maintains position state for all markets
|
|
9
|
+
*/
|
|
10
|
+
export declare class InventoryTracker {
|
|
11
|
+
private positions;
|
|
12
|
+
private realizedPnL;
|
|
13
|
+
private fillsToday;
|
|
14
|
+
private volumeToday;
|
|
15
|
+
/**
|
|
16
|
+
* Update position when a fill occurs
|
|
17
|
+
*/
|
|
18
|
+
onFill(fill: Fill): void;
|
|
19
|
+
/**
|
|
20
|
+
* Get position for a specific ticker
|
|
21
|
+
*/
|
|
22
|
+
getPosition(ticker: string): Position | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* Get all positions
|
|
25
|
+
*/
|
|
26
|
+
getAllPositions(): Position[];
|
|
27
|
+
/**
|
|
28
|
+
* Get total exposure across all positions
|
|
29
|
+
*/
|
|
30
|
+
getTotalExposure(): number;
|
|
31
|
+
/**
|
|
32
|
+
* Get net exposure for a specific ticker
|
|
33
|
+
*/
|
|
34
|
+
getNetExposure(ticker: string): number;
|
|
35
|
+
/**
|
|
36
|
+
* Get PnL summary
|
|
37
|
+
*/
|
|
38
|
+
getPnLSummary(currentPrices?: Map<string, number>): PnLSummary;
|
|
39
|
+
/**
|
|
40
|
+
* Reset daily stats (call at start of trading day)
|
|
41
|
+
*/
|
|
42
|
+
resetDaily(): void;
|
|
43
|
+
/**
|
|
44
|
+
* Clear all positions (use with caution!)
|
|
45
|
+
*/
|
|
46
|
+
clear(): void;
|
|
47
|
+
/**
|
|
48
|
+
* Initialize positions from existing portfolio
|
|
49
|
+
*/
|
|
50
|
+
initializeFromPortfolio(portfolioPositions: Array<{
|
|
51
|
+
ticker: string;
|
|
52
|
+
yesContracts: number;
|
|
53
|
+
noContracts: number;
|
|
54
|
+
costBasis: number;
|
|
55
|
+
}>): void;
|
|
56
|
+
/**
|
|
57
|
+
* Get or create position for a ticker
|
|
58
|
+
*/
|
|
59
|
+
private getOrCreatePosition;
|
|
60
|
+
/**
|
|
61
|
+
* Calculate contract change from a fill
|
|
62
|
+
* Positive = adding to position, Negative = reducing position
|
|
63
|
+
*/
|
|
64
|
+
private calculateContractChange;
|
|
65
|
+
/**
|
|
66
|
+
* Calculate cost basis change and realized PnL from a fill
|
|
67
|
+
*/
|
|
68
|
+
private calculateCostImpact;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=inventory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inventory.d.ts","sourceRoot":"","sources":["../../src/mm/inventory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7D;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,WAAW,CAAa;IAEhC;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IA0BxB;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAIjD;;OAEG;IACH,eAAe,IAAI,QAAQ,EAAE;IAI7B;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAQ1B;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAItC;;OAEG;IACH,aAAa,CAAC,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,UAAU;IA4B9D;;OAEG;IACH,UAAU,IAAI,IAAI;IAMlB;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,uBAAuB,CACrB,kBAAkB,EAAE,KAAK,CAAC;QACxB,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC,GACD,IAAI;IAaP;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAgB3B;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAK/B;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAwB5B"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inventory Tracker
|
|
3
|
+
*
|
|
4
|
+
* Tracks positions and PnL for market making.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* InventoryTracker maintains position state for all markets
|
|
8
|
+
*/
|
|
9
|
+
export class InventoryTracker {
|
|
10
|
+
positions = new Map();
|
|
11
|
+
realizedPnL = 0;
|
|
12
|
+
fillsToday = 0;
|
|
13
|
+
volumeToday = 0;
|
|
14
|
+
/**
|
|
15
|
+
* Update position when a fill occurs
|
|
16
|
+
*/
|
|
17
|
+
onFill(fill) {
|
|
18
|
+
const position = this.getOrCreatePosition(fill.ticker);
|
|
19
|
+
// Calculate position change
|
|
20
|
+
const contractChange = this.calculateContractChange(fill);
|
|
21
|
+
// Update contracts
|
|
22
|
+
if (fill.side === "yes") {
|
|
23
|
+
position.yesContracts += contractChange;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
position.noContracts += contractChange;
|
|
27
|
+
}
|
|
28
|
+
// Update net exposure
|
|
29
|
+
position.netExposure = position.yesContracts - position.noContracts;
|
|
30
|
+
// Update cost basis and realized PnL
|
|
31
|
+
const costImpact = this.calculateCostImpact(fill, position);
|
|
32
|
+
position.costBasis += costImpact.costBasisChange;
|
|
33
|
+
this.realizedPnL += costImpact.realizedPnL;
|
|
34
|
+
// Update daily stats
|
|
35
|
+
this.fillsToday++;
|
|
36
|
+
this.volumeToday += fill.count;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Get position for a specific ticker
|
|
40
|
+
*/
|
|
41
|
+
getPosition(ticker) {
|
|
42
|
+
return this.positions.get(ticker);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Get all positions
|
|
46
|
+
*/
|
|
47
|
+
getAllPositions() {
|
|
48
|
+
return Array.from(this.positions.values());
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Get total exposure across all positions
|
|
52
|
+
*/
|
|
53
|
+
getTotalExposure() {
|
|
54
|
+
let total = 0;
|
|
55
|
+
for (const position of this.positions.values()) {
|
|
56
|
+
total += Math.abs(position.netExposure);
|
|
57
|
+
}
|
|
58
|
+
return total;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Get net exposure for a specific ticker
|
|
62
|
+
*/
|
|
63
|
+
getNetExposure(ticker) {
|
|
64
|
+
return this.positions.get(ticker)?.netExposure ?? 0;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Get PnL summary
|
|
68
|
+
*/
|
|
69
|
+
getPnLSummary(currentPrices) {
|
|
70
|
+
let unrealized = 0;
|
|
71
|
+
// Calculate unrealized PnL if current prices provided
|
|
72
|
+
if (currentPrices) {
|
|
73
|
+
for (const position of this.positions.values()) {
|
|
74
|
+
const price = currentPrices.get(position.ticker);
|
|
75
|
+
if (price !== undefined && position.netExposure !== 0) {
|
|
76
|
+
// Unrealized = (current value) - (cost basis)
|
|
77
|
+
// For YES contracts: value = contracts * price
|
|
78
|
+
// For NO contracts: value = contracts * (100 - price)
|
|
79
|
+
const currentValue = position.yesContracts * price +
|
|
80
|
+
position.noContracts * (100 - price);
|
|
81
|
+
unrealized += currentValue - position.costBasis;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return {
|
|
86
|
+
realizedToday: this.realizedPnL,
|
|
87
|
+
unrealized,
|
|
88
|
+
total: this.realizedPnL + unrealized,
|
|
89
|
+
fillsToday: this.fillsToday,
|
|
90
|
+
volumeToday: this.volumeToday,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Reset daily stats (call at start of trading day)
|
|
95
|
+
*/
|
|
96
|
+
resetDaily() {
|
|
97
|
+
this.realizedPnL = 0;
|
|
98
|
+
this.fillsToday = 0;
|
|
99
|
+
this.volumeToday = 0;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Clear all positions (use with caution!)
|
|
103
|
+
*/
|
|
104
|
+
clear() {
|
|
105
|
+
this.positions.clear();
|
|
106
|
+
this.resetDaily();
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Initialize positions from existing portfolio
|
|
110
|
+
*/
|
|
111
|
+
initializeFromPortfolio(portfolioPositions) {
|
|
112
|
+
for (const p of portfolioPositions) {
|
|
113
|
+
this.positions.set(p.ticker, {
|
|
114
|
+
ticker: p.ticker,
|
|
115
|
+
yesContracts: p.yesContracts,
|
|
116
|
+
noContracts: p.noContracts,
|
|
117
|
+
netExposure: p.yesContracts - p.noContracts,
|
|
118
|
+
costBasis: p.costBasis,
|
|
119
|
+
unrealizedPnL: 0,
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Get or create position for a ticker
|
|
125
|
+
*/
|
|
126
|
+
getOrCreatePosition(ticker) {
|
|
127
|
+
let position = this.positions.get(ticker);
|
|
128
|
+
if (!position) {
|
|
129
|
+
position = {
|
|
130
|
+
ticker,
|
|
131
|
+
yesContracts: 0,
|
|
132
|
+
noContracts: 0,
|
|
133
|
+
netExposure: 0,
|
|
134
|
+
costBasis: 0,
|
|
135
|
+
unrealizedPnL: 0,
|
|
136
|
+
};
|
|
137
|
+
this.positions.set(ticker, position);
|
|
138
|
+
}
|
|
139
|
+
return position;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Calculate contract change from a fill
|
|
143
|
+
* Positive = adding to position, Negative = reducing position
|
|
144
|
+
*/
|
|
145
|
+
calculateContractChange(fill) {
|
|
146
|
+
// Buy = add contracts, Sell = remove contracts
|
|
147
|
+
return fill.action === "buy" ? fill.count : -fill.count;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Calculate cost basis change and realized PnL from a fill
|
|
151
|
+
*/
|
|
152
|
+
calculateCostImpact(fill, position) {
|
|
153
|
+
const fillCost = fill.count * fill.price;
|
|
154
|
+
if (fill.action === "buy") {
|
|
155
|
+
// Buying increases cost basis
|
|
156
|
+
return { costBasisChange: fillCost, realizedPnL: 0 };
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
// Selling realizes PnL
|
|
160
|
+
// Average cost = costBasis / total contracts
|
|
161
|
+
const contracts = fill.side === "yes" ? position.yesContracts : position.noContracts;
|
|
162
|
+
const avgCost = contracts > 0 ? position.costBasis / (contracts + fill.count) : 0;
|
|
163
|
+
const realizedPnL = fill.count * (fill.price - avgCost);
|
|
164
|
+
return {
|
|
165
|
+
costBasisChange: -fill.count * avgCost,
|
|
166
|
+
realizedPnL,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=inventory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inventory.js","sourceRoot":"","sources":["../../src/mm/inventory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inventory.test.d.ts","sourceRoot":"","sources":["../../src/mm/inventory.test.ts"],"names":[],"mappings":""}
|