/// <summary> /// create message for new order /// создать сообщение для нового ордера /// </summary> public string NewOrderSingleMsg(string clOrdId, string securityId, string side, string orderQty, string ordType, string price) { var newMessage = new FixMessage(++_msgSeqNum, "D", true, _settings); var newOrder = new List <Field> { new Field((int)Tags.ClOrdID, clOrdId), new Field((int)Tags.SecurityID, securityId), new Field((int)Tags.SecurityIDSource, "8"), new Field((int)Tags.Side, side), new Field((int)Tags.ExecInst, "H"), new Field((int)Tags.TransactTime, DateTime.UtcNow.ToString("yyyyMMdd-HH:mm:ss")), new Field((int)Tags.OrderQty, orderQty), new Field((int)Tags.OrdType, ordType) }; if (ordType == "2")// if limit order / если лимитный { newOrder.Add(new Field((int)Tags.Price, price)); newOrder.Add(new Field((int)Tags.TimeInForce, "1")); } newMessage.AddBody(newOrder); var res = newMessage.ToString(); return(res); }
/// <summary> /// create message for test request /// создать сообщение для тестового запроса /// </summary> /// <param name="reqId"></param> /// <param name="isTrading"></param> /// <returns></returns> public string TestRequestMsg(string reqId, bool isTrading) { var newMessage = new FixMessage(++_msgSeqNum, "1", isTrading, _settings); var logOnFields = new List <Field> { new Field((int)Tags.TestReqID, reqId) }; newMessage.AddBody(logOnFields); var res = newMessage.ToString(); return(res); }
/// <summary> /// create a message for request status /// создать сообщение для запроса статуса ордера /// </summary> /// <param name="clOrdId">order number specified by the user when creating/номер ордера заданный пользователем при создании</param> /// <param name="side">order side/направление ордера</param> /// <param name="securityId">instrument id/id инструмента</param> public string OrderStatusRequestMsg(string clOrdId, string securityId, string side) { var newMessage = new FixMessage(++_msgSeqNum, "H", true, _settings); var newOrder = new List <Field> { new Field((int)Tags.ClOrdID, clOrdId), new Field((int)Tags.SecurityID, securityId), new Field((int)Tags.SecurityIDSource, "8"), new Field((int)Tags.Side, side) }; newMessage.AddBody(newOrder); var res = newMessage.ToString(); return(res); }
/// <summary> /// message for entering /// сообщение для входа /// </summary> /// <param name="isTrading">true - if the entrance to the trading session, false for market data / true - если вход в торговую сессию, false для market data</param> /// <param name="heartbeatInterval"></param> /// <returns>сообщение в формате fix</returns> public string LogOnMsg(bool isTrading, int heartbeatInterval) { var newMessage = new FixMessage(++_msgSeqNum, "A", isTrading, _settings); var logOnFields = new List <Field> { new Field((int)Tags.EncryptMethod, "0"), new Field((int)Tags.HeartBtInt, heartbeatInterval.ToString()), new Field((int)Tags.ResetSeqNumFlag, "Y"), new Field((int)Tags.Username, _settings.Username), new Field((int)Tags.Password, _settings.Password) }; newMessage.AddBody(logOnFields); var res = newMessage.ToString(); return(res); }
/// <summary> /// create message for cancelling order /// создать сообщение для отмены ордера /// </summary> public string OrderCancelRequestMsg(string origClOrdId, string clOrdId, string securityId) { var newMessage = new FixMessage(++_msgSeqNum, "F", true, _settings); var newOrder = new List <Field> { new Field((int)Tags.OrigClOrdID, clOrdId), new Field((int)Tags.ClOrdID, origClOrdId), new Field((int)Tags.SecurityID, securityId), new Field((int)Tags.SecurityIDSource, "8"), new Field((int)Tags.TransactTime, DateTime.UtcNow.ToString("yyyyMMdd-HH:mm:ss")) }; newMessage.AddBody(newOrder); var res = newMessage.ToString(); return(res); }
public string TradeCaptureReportRequestMsg(string tradeRequestId, string tradeRequestType, string subscriptionRequestType, DateTime starTime, DateTime endTime) { var newMessage = new FixMessage(++_msgSeqNum, "AD", true, _settings); var newOrder = new List <Field> { new Field((int)Tags.TradeRequestID, tradeRequestId), new Field((int)Tags.TradeRequestType, tradeRequestType), new Field((int)Tags.SubscriptionRequestType, subscriptionRequestType), new Field((int)Tags.NoDates, "2"), new Field((int)Tags.TransactTime, starTime.ToString("yyyyMMdd-HH:mm:ss")), new Field((int)Tags.TransactTime, endTime.ToString("yyyyMMdd-HH:mm:ss")) }; newMessage.AddBody(newOrder); var res = newMessage.ToString(); return(res); }