UNPKG

jspurefix

Version:
80 lines 2.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const repo_1 = require("../../../types/FIX4.4/repo"); const enum_1 = require("../../../types/FIXML50SP2/enum"); class TradeFactory { constructor() { this.nextTradeId = 100000; this.nextExecId = 600000; this.securities = [ 'Gold', 'Silver', 'Platinum', 'Magnesium', 'Steel' ]; } static tradeCaptureReportRequestAck(tcr, status) { return { TradeRequestID: tcr.TradeRequestID, TradeRequestType: tcr.TradeRequestType, TradeRequestStatus: status, TradeRequestResult: repo_1.TradeRequestResult.Successful }; } static tradeCaptureReportRequest(requestId, tradeDate) { return { TradeRequestID: 'all-trades', TradeRequestType: repo_1.TradeRequestType.AllTrades, SubscriptionRequestType: repo_1.SubscriptionRequestType.SnapshotAndUpdates, TrdCapDtGrp: [ { TradeDate: tradeDate } ] }; } static getRandomInt(min, max) { min = Math.ceil(min); max = Math.floor(max); return Math.floor(Math.random() * (max - min)) + min; } batchOfTradeCaptureReport(toMake) { if (!toMake) { toMake = TradeFactory.getRandomInt(4, 8); } const arr = []; for (let i = 0; i < toMake; ++i) { const tc = this.singleTradeCaptureReport(); arr.push(tc); } return arr; } singleTradeCaptureReport() { const tradeReportId = this.nextTradeId++; const qty = TradeFactory.getRandomInt(100, 200); const price = Math.round(Math.random() * 100 * 100) / 100; const instrument = TradeFactory.getRandomInt(0, this.securities.length - 1); const securities = this.securities; const execId = this.nextExecId++; return { TradeReportID: tradeReportId.toString(), TradeReportTransType: enum_1.TradeReportTransType.New, TradeReportType: repo_1.TradeReportType.Submit, TrdType: repo_1.TrdType.RegularTrade, TransactTime: new Date(), ExecID: execId.toString(), PreviouslyReported: false, OrdStatus: repo_1.OrdStatus.Filled, Instrument: { SecurityID: `${securities[instrument]}.INC`, Symbol: `${securities[instrument]}` }, TradeDate: new Date(), LastQty: qty, LastPx: price }; } } exports.TradeFactory = TradeFactory; //# sourceMappingURL=trade-factory.js.map