hft-js 0.2.0 → 0.4.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/lib/provider.js CHANGED
@@ -1,108 +1,56 @@
1
- "use strict";
2
1
  /*
3
2
  * provider.ts
4
3
  *
5
- * Copyright (c) 2025 Xiongfei Shi
4
+ * Copyright (c) 2025-2026 Xiongfei Shi
6
5
  *
7
6
  * Author: Xiongfei Shi <xiongfei.shi(a)icloud.com>
8
7
  * License: Apache-2.0
9
8
  *
10
9
  * https://github.com/shixiongfei/hft.js
11
10
  */
12
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
- return new (P || (P = Promise))(function (resolve, reject) {
15
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
- step((generator = generator.apply(thisArg, _arguments || [])).next());
19
- });
20
- };
21
- var __generator = (this && this.__generator) || function (thisArg, body) {
22
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
23
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
- function verb(n) { return function (v) { return step([n, v]); }; }
25
- function step(op) {
26
- if (f) throw new TypeError("Generator is already executing.");
27
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
- if (y = 0, t) op = [op[0] & 2, t.value];
30
- switch (op[0]) {
31
- case 0: case 1: t = op; break;
32
- case 4: _.label++; return { value: op[1], done: false };
33
- case 5: _.label++; y = op[1]; op = [0]; continue;
34
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
- default:
36
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
- if (t[2]) _.ops.pop();
41
- _.trys.pop(); continue;
42
- }
43
- op = body.call(thisArg, _);
44
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
- }
47
- };
48
- var __importDefault = (this && this.__importDefault) || function (mod) {
49
- return (mod && mod.__esModule) ? mod : { "default": mod };
50
- };
51
- Object.defineProperty(exports, "__esModule", { value: true });
52
- exports.CTPProvider = void 0;
53
- var node_fs_1 = __importDefault(require("node:fs"));
54
- var napi_ctp_1 = __importDefault(require("napi-ctp"));
55
- var CTPProvider = /** @class */ (function () {
56
- function CTPProvider(flowPath, frontAddrs) {
11
+ import fs from "node:fs";
12
+ import ctp, {} from "napi-ctp";
13
+ export class CTPProvider {
14
+ flowPath;
15
+ frontAddrs;
16
+ constructor(flowPath, frontAddrs) {
57
17
  this.flowPath = flowPath;
58
18
  this.frontAddrs = frontAddrs;
59
19
  try {
60
- node_fs_1.default.accessSync(this.flowPath);
20
+ fs.accessSync(this.flowPath);
61
21
  }
62
- catch (_a) {
63
- node_fs_1.default.mkdirSync(this.flowPath, { recursive: true });
22
+ catch {
23
+ fs.mkdirSync(this.flowPath, { recursive: true });
64
24
  }
65
25
  }
66
- CTPProvider.prototype._sleep = function (ms) {
67
- return new Promise(function (resolve) {
26
+ _sleep(ms) {
27
+ return new Promise((resolve) => {
68
28
  setTimeout(resolve, ms);
69
29
  });
70
- };
71
- CTPProvider.prototype._withRetry = function (request_1) {
72
- return __awaiter(this, arguments, void 0, function (request, ms) {
73
- var retval;
74
- if (ms === void 0) { ms = 100; }
75
- return __generator(this, function (_a) {
76
- switch (_a.label) {
77
- case 0:
78
- retval = request();
79
- if (retval === 0) {
80
- return [2 /*return*/, napi_ctp_1.default.getLastRequestId()];
81
- }
82
- if (!(-2 === retval || -3 === retval)) return [3 /*break*/, 2];
83
- return [4 /*yield*/, this._sleep(ms)];
84
- case 1:
85
- _a.sent();
86
- return [3 /*break*/, 3];
87
- case 2: return [2 /*return*/, retval];
88
- case 3: return [3 /*break*/, 0];
89
- case 4: return [2 /*return*/];
90
- }
91
- });
92
- });
93
- };
94
- CTPProvider.prototype._isErrorResp = function (lifecycle, options, error) {
30
+ }
31
+ async _withRetry(request, ms = 100) {
32
+ for (;;) {
33
+ const retval = request();
34
+ if (retval === 0) {
35
+ return ctp.getLastRequestId();
36
+ }
37
+ if (-2 === retval || -3 === retval) {
38
+ await this._sleep(ms);
39
+ continue;
40
+ }
41
+ return retval;
42
+ }
43
+ }
44
+ _isErrorResp(errorReceiver, options, error) {
95
45
  if (!options.rspInfo) {
96
46
  return false;
97
47
  }
98
- lifecycle.onError(error, "".concat(options.rspInfo.ErrorID, ":").concat(options.rspInfo.ErrorMsg));
48
+ errorReceiver.onError(error, `${options.rspInfo.ErrorID}:${options.rspInfo.ErrorMsg}`);
99
49
  return true;
100
- };
101
- CTPProvider.prototype._parseTime = function (time) {
102
- var _a = time.split(":").map(function (x) { return parseInt(x); }), hour = _a[0], minute = _a[1], second = _a[2];
103
- return hour * 10000 + minute * 100 + second;
104
- };
105
- return CTPProvider;
106
- }());
107
- exports.CTPProvider = CTPProvider;
50
+ }
51
+ _parseTime(time) {
52
+ const [hh = 0, mm = 0, ss = 0] = time.split(":").map((x) => parseInt(x));
53
+ return hh * 10000 + mm * 100 + ss;
54
+ }
55
+ }
108
56
  //# sourceMappingURL=provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,oDAAyB;AACzB,sDAA2B;AAG3B;IAIE,qBAAY,QAAgB,EAAE,UAA6B;QACzD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,IAAI,CAAC;YACH,iBAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAAC,WAAM,CAAC;YACP,iBAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAEO,4BAAM,GAAd,UAAe,EAAU;QACvB,OAAO,IAAI,OAAO,CAAO,UAAC,OAAO;YAC/B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC;IAEe,gCAAU,GAA1B;4DAA2B,OAAiC,EAAE,EAAQ;;YAAR,mBAAA,EAAA,QAAQ;;;;wBAE5D,MAAM,GAAG,OAAO,EAAE,CAAC;wBAEzB,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;4BACjB,sBAAO,kBAAG,CAAC,gBAAgB,EAAE,EAAC;wBAChC,CAAC;6BAEG,CAAA,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC,KAAK,MAAM,CAAA,EAA9B,wBAA8B;wBAChC,qBAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAA;;wBAArB,SAAqB,CAAC;wBACtB,wBAAS;4BAGX,sBAAO,MAAM,EAAC;;;;;;KAEjB;IAES,kCAAY,GAAtB,UACE,SAA6B,EAC7B,OAA4B,EAC5B,KAAgB;QAEhB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,SAAS,CAAC,OAAO,CACf,KAAK,EACL,UAAG,OAAO,CAAC,OAAO,CAAC,OAAO,cAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAE,CACzD,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAES,gCAAU,GAApB,UAAqB,IAAY;QACzB,IAAA,KAAyB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,QAAQ,CAAC,CAAC,CAAC,EAAX,CAAW,CAAC,EAA/D,IAAI,QAAA,EAAE,MAAM,QAAA,EAAE,MAAM,QAA2C,CAAC;QACvE,OAAO,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC;IAC9C,CAAC;IACH,kBAAC;AAAD,CAAC,AA3DD,IA2DC;AA3DY,kCAAW"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,GAAG,EAAE,EAAwB,MAAM,UAAU,CAAC;AAGrD,MAAM,OAAO,WAAW;IACH,QAAQ,CAAS;IACjB,UAAU,CAAoB;IAEjD,YAAY,QAAgB,EAAE,UAA6B;QACzD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,IAAI,CAAC;YACH,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,EAAU;QACvB,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACnC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC;IAES,KAAK,CAAC,UAAU,CAAC,OAAiC,EAAE,EAAE,GAAG,GAAG;QACpE,SAAS,CAAC;YACR,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC;YAEzB,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjB,OAAO,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAChC,CAAC;YAED,IAAI,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;gBACnC,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACtB,SAAS;YACX,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAES,YAAY,CACpB,aAA6B,EAC7B,OAAwB,EACxB,KAAgB;QAEhB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,aAAa,CAAC,OAAO,CACnB,KAAK,EACL,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CACzD,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAES,UAAU,CAAC,IAAY;QAC/B,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,OAAO,EAAE,GAAG,KAAK,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;IACpC,CAAC;CACF"}
package/lib/tape.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { TapeData, TickData } from "./typedef.js";
1
+ import type { TapeData, TickData } from "./typedef.js";
2
2
  export declare const calcTapeData: (tick: TickData, preTick?: TickData) => TapeData;
package/lib/tape.js CHANGED
@@ -1,17 +1,14 @@
1
- "use strict";
2
1
  /*
3
2
  * tape.ts
4
3
  *
5
- * Copyright (c) 2025 Xiongfei Shi
4
+ * Copyright (c) 2025-2026 Xiongfei Shi
6
5
  *
7
6
  * Author: Xiongfei Shi <xiongfei.shi(a)icloud.com>
8
7
  * License: Apache-2.0
9
8
  *
10
9
  * https://github.com/shixiongfei/hft.js
11
10
  */
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.calcTapeData = void 0;
14
- var calcTapeType = function (volumeDelta, interestDelta) {
11
+ const calcTapeType = (volumeDelta, interestDelta) => {
15
12
  if (interestDelta > 0) {
16
13
  return volumeDelta === interestDelta ? "dual-open" : "open";
17
14
  }
@@ -23,27 +20,26 @@ var calcTapeType = function (volumeDelta, interestDelta) {
23
20
  }
24
21
  return "no-deal";
25
22
  };
26
- var calcTapeDirection = function (tick, preTick) {
27
- var _a, _b, _c, _d, _e, _f;
28
- var lastPrice = tick.lastPrice;
23
+ const calcTapeDirection = (tick, preTick) => {
24
+ const lastPrice = tick.lastPrice;
29
25
  if (preTick) {
30
- var preAskPrice1 = (_a = preTick.orderBook.asks.price[0]) !== null && _a !== void 0 ? _a : Number.MAX_VALUE;
26
+ const preAskPrice1 = preTick.orderBook.asks.price[0] ?? Number.MAX_VALUE;
31
27
  if (lastPrice >= preAskPrice1) {
32
28
  return "up";
33
29
  }
34
- var preBidPrice1 = (_b = preTick.orderBook.bids.price[0]) !== null && _b !== void 0 ? _b : Number.MIN_VALUE;
30
+ const preBidPrice1 = preTick.orderBook.bids.price[0] ?? Number.MIN_VALUE;
35
31
  if (lastPrice <= preBidPrice1) {
36
32
  return "down";
37
33
  }
38
- var askPrice1 = (_c = tick.orderBook.asks.price[0]) !== null && _c !== void 0 ? _c : Number.MAX_VALUE;
34
+ const askPrice1 = tick.orderBook.asks.price[0] ?? Number.MAX_VALUE;
39
35
  if (lastPrice >= askPrice1) {
40
36
  return "up";
41
37
  }
42
- var bidPrice1 = (_d = tick.orderBook.bids.price[0]) !== null && _d !== void 0 ? _d : Number.MIN_VALUE;
38
+ const bidPrice1 = tick.orderBook.bids.price[0] ?? Number.MIN_VALUE;
43
39
  if (lastPrice <= bidPrice1) {
44
40
  return "down";
45
41
  }
46
- var prePrice = preTick.lastPrice;
42
+ const prePrice = preTick.lastPrice;
47
43
  if (lastPrice > prePrice) {
48
44
  return "up";
49
45
  }
@@ -59,11 +55,11 @@ var calcTapeDirection = function (tick, preTick) {
59
55
  return "none";
60
56
  }
61
57
  else {
62
- var askPrice1 = (_e = tick.orderBook.asks.price[0]) !== null && _e !== void 0 ? _e : Number.MAX_VALUE;
58
+ const askPrice1 = tick.orderBook.asks.price[0] ?? Number.MAX_VALUE;
63
59
  if (lastPrice >= askPrice1) {
64
60
  return "up";
65
61
  }
66
- var bidPrice1 = (_f = tick.orderBook.bids.price[0]) !== null && _f !== void 0 ? _f : Number.MIN_VALUE;
62
+ const bidPrice1 = tick.orderBook.bids.price[0] ?? Number.MIN_VALUE;
67
63
  if (lastPrice <= bidPrice1) {
68
64
  return "down";
69
65
  }
@@ -76,7 +72,7 @@ var calcTapeDirection = function (tick, preTick) {
76
72
  return "none";
77
73
  }
78
74
  };
79
- var calcTapeStatus = function (tapeType, tapeDirection) {
75
+ const calcTapeStatus = (tapeType, tapeDirection) => {
80
76
  if (tapeType === "open" && tapeDirection === "up") {
81
77
  return "open-long";
82
78
  }
@@ -103,15 +99,15 @@ var calcTapeStatus = function (tapeType, tapeDirection) {
103
99
  }
104
100
  return "invalid";
105
101
  };
106
- var calcTapeData = function (tick, preTick) {
107
- var volumeDelta = preTick ? tick.volume - preTick.volume : tick.volume;
108
- var amountDelta = preTick ? tick.amount - preTick.amount : tick.amount;
109
- var interestDelta = preTick
102
+ export const calcTapeData = (tick, preTick) => {
103
+ const volumeDelta = preTick ? tick.volume - preTick.volume : tick.volume;
104
+ const amountDelta = preTick ? tick.amount - preTick.amount : tick.amount;
105
+ const interestDelta = preTick
110
106
  ? tick.openInterest - preTick.openInterest
111
107
  : tick.openInterest - tick.preOpenInterest;
112
- var tapeType = calcTapeType(volumeDelta, interestDelta);
113
- var tapeDirection = calcTapeDirection(tick, preTick);
114
- var tapeStatus = calcTapeStatus(tapeType, tapeDirection);
108
+ const tapeType = calcTapeType(volumeDelta, interestDelta);
109
+ const tapeDirection = calcTapeDirection(tick, preTick);
110
+ const tapeStatus = calcTapeStatus(tapeType, tapeDirection);
115
111
  return Object.freeze({
116
112
  type: tapeType,
117
113
  direction: tapeDirection,
@@ -121,5 +117,4 @@ var calcTapeData = function (tick, preTick) {
121
117
  amountDelta: amountDelta,
122
118
  });
123
119
  };
124
- exports.calcTapeData = calcTapeData;
125
120
  //# sourceMappingURL=tape.js.map
package/lib/tape.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tape.js","sourceRoot":"","sources":["../src/tape.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tape.js","sourceRoot":"","sources":["../src/tape.ts"],"names":[],"mappings":"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"}
package/lib/trader.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { CTPProvider } from "./provider.js";
2
- import { OffsetType, OrderData, OrderFlag, ProductType, SideType, TickData } from "./typedef.js";
3
- import { ICancelOrderResultReceiver, ICommissionRateReceiver, IInstrumentReceiver, IInstrumentsReceiver, ILifecycleListener, IMarginRateReceiver, IOrderReceiver, IOrdersReceiver, IPlaceOrderResultReceiver, IPositionDetailsReceiver, IPositionReceiver, IPositionsReceiver, ITraderProvider, ITradingAccountsReceiver } from "./interfaces.js";
2
+ import type { OffsetType, OrderData, OrderFlag, ProductType, SideType, TickData } from "./typedef.js";
3
+ import type { ICancelOrderResultReceiver, ICommissionRateReceiver, IErrorReceiver, IInstrumentReceiver, IInstrumentsReceiver, ILifecycleListener, IMarginRateReceiver, IOrderReceiver, IOrdersReceiver, IPlaceOrderResultReceiver, IPositionDetailsReceiver, IPositionReceiver, IPositionsReceiver, ITraderProvider, ITradingAccountsReceiver } from "./interfaces.js";
4
4
  export type CTPUserInfo = {
5
5
  BrokerID: string;
6
6
  UserID: string;
@@ -43,8 +43,8 @@ export declare class Trader extends CTPProvider implements ITraderProvider {
43
43
  private readonly accountsQueue;
44
44
  private readonly positionDetailsQueue;
45
45
  constructor(flowTdPath: string, frontTdAddrs: string | string[], userInfo: CTPUserInfo, options?: TraderOptions);
46
- open(lifecycle: ILifecycleListener): boolean;
47
- close(lifecycle: ILifecycleListener): void;
46
+ open(lifecycle: ILifecycleListener, errorReceiver: IErrorReceiver): boolean;
47
+ close(lifecycle: ILifecycleListener, _errorReceiver: IErrorReceiver): void;
48
48
  addOrderReceiver(receiver: IOrderReceiver): void;
49
49
  removeOrderReceiver(receiver: IOrderReceiver): void;
50
50
  getTradingDay(): number;
@@ -88,6 +88,7 @@ export declare class Trader extends CTPProvider implements ITraderProvider {
88
88
  private _calcOffsetType;
89
89
  private _toOffsetFlag;
90
90
  private _calcProductType;
91
+ private _calcOptionsType;
91
92
  private _ensurePositionInfo;
92
93
  private _ensureOrderStatistic;
93
94
  private _calcPosition;