Пример #1
0
            protected override bool?OnProcess(FixSession session, string msgType, IFixReader reader)
            {
                switch (msgType)
                {
                case QuikFixMessages.NewStopOrderSingle:
                {
                    var condition = new QuikOrderCondition();

                    var dto = TimeHelper.Moscow.BaseUtcOffset;

                    var regMsg = reader.ReadOrderRegisterMessage(dto,
                                                                 tag => reader.ReadOrderCondition(tag, dto, condition));

                    if (regMsg == null)
                    {
                        return(null);
                    }

                    regMsg.TransactionId = CreateTransactionId(session, regMsg.TransactionId.To <string>());
                    regMsg.Condition     = condition;

                    RaiseNewOutMessage(regMsg);
                    return(true);
                }
                }

                return(base.OnProcess(session, msgType, reader));
            }
        /// <summary>
        /// Метод вызывается при обработке полученного сообщения.
        /// </summary>
        /// <param name="msgType">Тип FIX сообщения.</param>
        /// <param name="reader">Читатель данных, записанных в формате FIX протокола.</param>
        /// <returns>Успешно ли обработаны данные.</returns>
        protected override bool?ProcessTransactionMessage(string msgType, IFixReader reader)
        {
            switch (msgType)
            {
            case QuikFixMessages.StopOrderExecutionReport:
            {
                var condition = new QuikOrderCondition();

                var executions = reader.ReadExecutionMessage(this,
                                                             tag => reader.ReadOrderCondition(tag, UtcOffset, condition));

                if (executions == null)
                {
                    return(null);
                }

                var exec = executions.First();
                exec.Condition = condition;

                SendOutMessage(exec);

                return(true);
            }
            }

            return(base.ProcessTransactionMessage(msgType, reader));
        }
Пример #3
0
 protected override bool ReadOrderCondition(IFixReader reader, FixTags tag, Func <OrderCondition> getCondition)
 {
     return(reader.ReadOrderCondition(tag, TimeHelper.Moscow, TransactionSession.DateTimeFormat, () => (QuikOrderCondition)getCondition()));
 }
Пример #4
0
 /// <summary>
 /// Прочитать условие заявки <see cref="OrderCondition"/>.
 /// </summary>
 /// <param name="reader">Читатель данных.</param>
 /// <param name="tag">Тэг.</param>
 /// <param name="getCondition">Функция, возвращающая условие заявки.</param>
 /// <returns>Успешно ли обработаны данные.</returns>
 protected override bool ReadOrderCondition(IFixReader reader, FixTags tag, Func <OrderCondition> getCondition)
 {
     return(reader.ReadOrderCondition(tag, TimeZone, TimeStampFormat, () => (QuikOrderCondition)getCondition()));
 }
Пример #5
0
			protected override bool ReadOrderCondition(IFixReader reader, FixTags tag, Func<OrderCondition> getCondition)
			{
				return reader.ReadOrderCondition(tag, TimeHelper.Moscow, TransactionSession.DateTimeFormat, () => (QuikOrderCondition)getCondition());
			}
Пример #6
0
			protected override bool ReadOrderCondition(IFixReader reader, FixTags tag, Func<OrderCondition> getCondition)
			{
				return reader.ReadOrderCondition(tag, TimeHelper.Moscow.BaseUtcOffset, () => (QuikOrderCondition)getCondition());
			}
		/// <summary>
		/// Прочитать условие регистрации заявки <see cref="OrderRegisterMessage.Condition"/>.
		/// </summary>
		/// <param name="reader">Читатель данных.</param>
		/// <param name="tag">Тэг.</param>
		/// <param name="getCondition">Функция, возвращающая условие заявки.</param>
		/// <returns>Успешно ли обработаны данные.</returns>
		protected override bool ReadOrderCondition(IFixReader reader, FixTags tag, Func<OrderCondition> getCondition)
		{
			return reader.ReadOrderCondition(tag, UtcOffset, DateTimeFormat, () => (QuikOrderCondition)getCondition());
		}
Пример #8
0
 /// <summary>
 /// Прочитать условие регистрации заявки <see cref="OrderRegisterMessage.Condition"/>.
 /// </summary>
 /// <param name="reader">Читатель данных.</param>
 /// <param name="tag">Тэг.</param>
 /// <param name="getCondition">Функция, возвращающая условие заявки.</param>
 /// <returns>Успешно ли обработаны данные.</returns>
 protected override bool ReadOrderCondition(IFixReader reader, FixTags tag, Func <OrderCondition> getCondition)
 {
     return(reader.ReadOrderCondition(tag, UtcOffset, DateTimeFormat, () => (QuikOrderCondition)getCondition()));
 }
Пример #9
0
		/// <summary>
		/// Прочитать условие регистрации заявки <see cref="OrderRegisterMessage.Condition"/>.
		/// </summary>
		/// <param name="reader">Читатель данных.</param>
		/// <param name="tag">Тэг.</param>
		/// <param name="getCondition">Функция, возвращающая условие заявки.</param>
		/// <returns>Успешно ли обработаны данные.</returns>
		protected override bool ReadOrderCondition(IFixReader reader, FixTags tag, Func<OrderCondition> getCondition)
		{
			return reader.ReadOrderCondition(tag, TimeZone, TimeStampFormat, () => (QuikOrderCondition)getCondition());
		}