UNPKG

free-fx

Version:

77 lines (71 loc) 2.57 kB
import { EncryptMethod, Field, Fields, FIXParser, HandlInst, LicenseManager, Message, Messages, OrderTypes, Side, TimeInForce, } from '../src/FIXParser'; const fixParser = new FIXParser(); const SENDER = 'CLIENT'; const TARGET = 'SERVER'; // NOTE: This feature requires a FIXParser Enterprise license void LicenseManager.setLicenseKey('<your license here>'); fixParser.connect({ host: 'localhost', port: 9878, protocol: 'tcp', sender: SENDER, target: TARGET, fixVersion: 'FIX.4.4', logging: true, onOpen: () => { console.log('Open'); sendLogon(); setInterval(() => { sendOrder(); }, 500); }, onMessage: (message: Message) => console.log('received message', message.description, message.messageString), onClose: () => console.log('Disconnected'), }); const sendLogon = () => { const logon = fixParser.createMessage( new Field(Fields.MsgType, Messages.Logon), new Field(Fields.MsgSeqNum, fixParser.getNextTargetMsgSeqNum()), new Field(Fields.SenderCompID, SENDER), new Field(Fields.SendingTime, fixParser.getTimestamp()), new Field(Fields.TargetCompID, TARGET), new Field(Fields.ResetSeqNumFlag, 'Y'), new Field(Fields.EncryptMethod, EncryptMethod.None), new Field(Fields.HeartBtInt, 10), ); const messages = fixParser.parse(logon.encode()); console.log('sending message', messages[0].description, messages[0].messageString); fixParser.send(logon); }; const sendOrder = () => { const order = fixParser.createMessage( new Field(Fields.MsgType, Messages.NewOrderSingle), new Field(Fields.MsgSeqNum, fixParser.getNextTargetMsgSeqNum()), new Field(Fields.SenderCompID, SENDER), new Field(Fields.SendingTime, fixParser.getTimestamp()), new Field(Fields.TargetCompID, TARGET), new Field(Fields.ClOrdID, '11223344'), new Field(Fields.HandlInst, HandlInst.AutomatedExecutionNoIntervention), new Field(Fields.OrderQty, '123'), new Field(Fields.TransactTime, fixParser.getTimestamp()), new Field(Fields.OrdType, OrderTypes.Market), new Field(Fields.Side, Side.Buy), new Field(Fields.Symbol, '700.HK'), new Field(Fields.TimeInForce, TimeInForce.Day), ); const messages = fixParser.parse(order.encode()); console.log('sending message', messages[0].description, messages[0].messageString.replace(/\x01/g, '|')); fixParser.send(order); };