Example #1
0
        /// <summary>
        /// Create a copy of <see cref="OrderCancelMessage"/>.
        /// </summary>
        /// <returns>Copy.</returns>
        public override Message Clone()
        {
            var clone = new OrderCancelMessage();

            CopyTo(clone);
            return(clone);
        }
Example #2
0
        /// <summary>
        /// Copy the message into the <paramref name="destination" />.
        /// </summary>
        /// <param name="destination">The object, to which copied information.</param>
        protected void CopyTo(OrderCancelMessage destination)
        {
            base.CopyTo(destination);

            destination.OrderId       = OrderId;
            destination.OrderStringId = OrderStringId;
            destination.Volume        = Volume;
            destination.Side          = Side;
        }
Example #3
0
 /// <summary>
 /// Преобразовать <see cref="OrderCancelMessage"/> в <see cref="ExecutionMessage"/>.
 /// </summary>
 /// <param name="message"><see cref="OrderCancelMessage"/></param>
 /// <returns><see cref="ExecutionMessage"/></returns>
 public static ExecutionMessage ToExecutionMessage(this OrderCancelMessage message)
 {
     return(new ExecutionMessage
     {
         SecurityId = message.SecurityId,
         OriginalTransactionId = message.TransactionId,
         //OriginalTransactionId = message.OriginalTransactionId,
         OrderId = message.OrderId,
         OrderType = message.OrderType,
         PortfolioName = message.PortfolioName,
         ExecutionType = ExecutionTypes.Order,
         UserOrderId = message.UserOrderId,
     });
 }
		private void ProcessOrderCancel(OrderCancelMessage cancelMsg)
		{
			if (cancelMsg.OrderId == null)
				throw new InvalidOperationException(LocalizedStrings.Str2252Params.Put(cancelMsg.OrderTransactionId));

			var isOk = _httpClient.CancelOrder(cancelMsg.OrderId.Value);

			SendOutMessage(new ExecutionMessage
			{
				ServerTime = CurrentTime.Convert(TimeZoneInfo.Utc),
				ExecutionType = ExecutionTypes.Order,
				OriginalTransactionId = cancelMsg.TransactionId,
				OrderState = isOk ? OrderStates.Done : OrderStates.Failed,
				Error = isOk ? null : new InvalidOperationException(LocalizedStrings.Str3300),
			});
		}
		private void ProcessOrderCancel(OrderCancelMessage cancelMsg)
		{
			if (cancelMsg.OrderId == null)
				throw new InvalidOperationException(LocalizedStrings.Str2252Params.Put(cancelMsg.OrderTransactionId));

			var reply = _client.CancelOrder(cancelMsg.OrderId.Value);

			SendOutMessage(new ExecutionMessage
			{
				OriginalTransactionId = cancelMsg.TransactionId,
				OrderId = cancelMsg.OrderId,
				OrderState = OrderStates.Done,
				ExecutionType = ExecutionTypes.Order
			});

			ProcessFunds(reply.Command.Funds);
		}
        /// <summary>
        /// Создать копию объекта <see cref="OrderCancelMessage"/>.
        /// </summary>
        /// <returns>Копия.</returns>
        public override Message Clone()
        {
            var clone = new OrderCancelMessage
            {
                OrderId            = OrderId,
                OrderStringId      = OrderStringId,
                TransactionId      = TransactionId,
                OrderTransactionId = OrderTransactionId,
                Volume             = Volume,
                OrderType          = OrderType,
                PortfolioName      = PortfolioName,
                SecurityId         = SecurityId,
            };

            CopyTo(clone);

            return(clone);
        }
		private void ProcessCancelMessage(OrderCancelMessage message)
		{
			if (message.OrderId == null)
				throw new InvalidOperationException(LocalizedStrings.Str2252Params.Put(message.OrderTransactionId));

			var response = _restClient.CloseOrder(GetAccountId(message.PortfolioName), message.OrderId.Value);
			
			SendOutMessage(new ExecutionMessage
			{
				ExecutionType = ExecutionTypes.Order,
				OriginalTransactionId = message.TransactionId,
				OrderId = message.OrderId,
				OrderState = OrderStates.Done,
				Balance = response.Units,
				ServerTime = response.Time.FromOanda(),
				PortfolioName = message.PortfolioName,
			});
		}
		/// <summary>
		/// Создать копию объекта <see cref="OrderCancelMessage"/>.
		/// </summary>
		/// <returns>Копия.</returns>
		public override Message Clone()
		{
			var clone = new OrderCancelMessage
			{
				OrderId = OrderId,
				OrderStringId = OrderStringId,
				TransactionId = TransactionId,
				OrderTransactionId = OrderTransactionId,
				Volume = Volume,
				OrderType = OrderType,
				PortfolioName = PortfolioName,
				SecurityId = SecurityId,
			};

			CopyTo(clone);

			return clone;
		}
		private void ProcessOrderCancelMessage(OrderCancelMessage cancelMsg)
		{
			var orderMaint = new STIOrderMaint();
			orderMaint.CancelOrder(cancelMsg.PortfolioName, 0, cancelMsg.TransactionId.To<string>(), null);
		}
		private void ProcessOrderCancelMessage(OrderCancelMessage cancelMsg)
		{
			_session.CancelOrder(new CancelOrderRequest(cancelMsg.TransactionId.To<string>(), (long)cancelMsg.SecurityId.Native, cancelMsg.OrderTransactionId.To<string>()), id => { }, CreateErrorHandler("CancelOrder"));
		}
		private void ProcessCancelMessage(OrderCancelMessage cancelMsg)
		{
			_wrapper.CancelOrder(cancelMsg.PortfolioName, (string)cancelMsg.SecurityId.Native, cancelMsg.OrderStringId);
		}
		private void ProcessCancelMessage(OrderCancelMessage cancelMsg)
		{
			var id = _orders.TryGetKey(cancelMsg.OrderTransactionId);

			if (id == 0)
				throw new InvalidOperationException(LocalizedStrings.Str3551Params.Put(cancelMsg.OrderTransactionId));

			BaseCommandMessage command;

			switch (_ordersTypes[cancelMsg.OrderTransactionId])
			{
				case OrderTypes.Limit:
				case OrderTypes.Market:
					command = new CancelOrderMessage { TransactionId = id };
					break;
				case OrderTypes.Conditional:
					command = new CancelStopOrderMessage { TransactionId = id };
					break;
				case OrderTypes.Repo:
				case OrderTypes.ExtRepo:
				case OrderTypes.Rps:
					command = new CancelNegDealMessage { TransactionId = id };
					break;
				case OrderTypes.Execute:
					command = new CancelReportMessage { TransactionId = id };
					break;
				default:
					throw new ArgumentOutOfRangeException();
			}

			SendCommand(command);
		}
		private void ProcessOrderCancel(OrderCancelMessage message)
		{
			_client.CancelOrder(_orderTransactions[message.OrderTransactionId]);
		}
		private void ProcessCancelMessage(OrderCancelMessage cancelMsg)
		{
			_client.Session.cancelOrder(
						_accounts[cancelMsg.PortfolioName],
						cancelMsg.OrderStringId,
						Constants.ORDER_ENTRY_TYPE_AUTO,
						string.Empty, cancelMsg.UserOrderId, cancelMsg.TransactionId);
		}
Example #15
0
        // create and send message
        private void SendCommand(Dictionary<string, object> actions)
        {

            Message message = null;

            switch (actions["ACTION"].ToString())
            {
                case "NEW_ORDER":
                    {
                        message = new OrderRegisterMessage()
                        {
                            SecurityId = _securities.FirstOrDefault(s => s.Code == actions["SECCODE"].ToString() &&
                                                                         s.Class == actions["CLASSCODE"].ToString()).ToSecurityId(),
                            ClientCode = actions["CLIENTCODE"].ToString(),
                            PortfolioName = actions["ACCOUNT"].ToString(),
                            OrderType = (OrderTypes)actions["TYPE"],
                            Price = (decimal)actions["PRICE"],
                            Side = (Sides)actions["OPERATION"],
                            Volume = (decimal)actions["QUANTITY"],
                            TransactionId = _transAdapter.TransactionIdGenerator.GetNextId(),
                            Comment = actions["COMMENT"].ToString()
                        };
                    }
                    break;
                case "KILL_ORDER":
                    {
                        message = new OrderCancelMessage()
                        {
                            OrderId = (long)actions["ORDER_KEY"],
                            OriginalTransactionId = (long)actions["ORIGINAL_TRANS_ID"],
                            TransactionId = _transAdapter.TransactionIdGenerator.GetNextId(),
                        };
                    }
                    break;
                case "KILL_ALL_ORDERS":
                    {
                        message = new OrderGroupCancelMessage()
                        {
                            TransactionId = _transAdapter.TransactionIdGenerator.GetNextId()
                        };
                    }
                    break;
                case "MOVE_ORDERS":
                    {
                        //TODO
                    }
                    break;
                case "REGISTER_SECURITY":
                    {
                        //TODO
                    }
                    break;
                case "UNREGISTER_SECURITY":
                    {
                        //TODO
                    }
                    break;
                case "REGISTER_TRADES":
                    {
                        //TODO
                    }
                    break;
                case "UNREGISTER_TRADES":
                    {
                        //TODO
                    }
                    break;
                case "REGISTER_MARKETDEPTH":
                    {
                        //TODO
                    }
                    break;
                case "UNREGISTER_MARKETDEPTH":
                    {
                        //TODO
                    }
                    break;

                default:
                    break;
            }

            if (message != null)
                _transAdapter.SendInMessage(message);
        }