Ejemplo n.º 1
0
 private void ProcessCancelMessage(OrderCancelMessage cancelMsg)
 {
     _client.Session.cancelOrder(
         _accounts[cancelMsg.PortfolioName],
         cancelMsg.OrderStringId,
         Constants.ORDER_ENTRY_TYPE_AUTO,
         string.Empty, cancelMsg.UserOrderId, cancelMsg.TransactionId);
 }
Ejemplo n.º 2
0
        public static Transaction CreateCancelTransaction(this OrderCancelMessage message, IDictionary <string, RefPair <SecurityTypes, string> > securityClassInfo)
        {
            if (message == null)
            {
                throw new ArgumentNullException(nameof(message));
            }

            if (message.OrderId == null)
            {
                throw new InvalidOperationException(LocalizedStrings.Str2252Params.Put(message.OrderTransactionId));
            }

            var transaction = new Transaction(TransactionTypes.Cancel, message);

            transaction.SetSecurity(message, securityClassInfo);

            string action;

            switch (message.OrderType)
            {
            case OrderTypes.Limit:
            case OrderTypes.Market:
                action = TransactionActions.KillOrder;
                transaction.SetOrderId(message.OrderId.Value);
                break;

            case OrderTypes.Conditional:
                action = TransactionActions.KillStopOrder;
                transaction.SetStopOrderId(message.OrderId.Value);
                break;

            case OrderTypes.Repo:
            case OrderTypes.ExtRepo:
            case OrderTypes.Rps:
                action = TransactionActions.KillNegDeal;
                transaction.SetOrderId(message.OrderId.Value);
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(message), message.Type, LocalizedStrings.Str1600);
            }

            transaction.SetAction(action);

            if (!message.BrokerCode.IsEmpty())
            {
                transaction.SetFirmId(message.BrokerCode);
            }

            return(transaction);
        }
        private void ProcessOrderCancel(OrderCancelMessage cancelMsg)
        {
            var reply = Session.CancelOrder(cancelMsg.OrderId);

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

            ProcessFunds(reply.Command.Funds);
        }
        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 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.Transaction,
                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);
        }
Ejemplo n.º 7
0
        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,
            });
        }
        private void ProcessOrderCancel(OrderCancelMessage cancelMsg)
        {
            if (cancelMsg.OrderId == null)
            {
                throw new InvalidOperationException(LocalizedStrings.Str2252Params.Put(cancelMsg.OriginalTransactionId));
            }

            _httpClient.CancelOrder(cancelMsg.OrderId.Value);

            //SendOutMessage(new ExecutionMessage
            //{
            //	ServerTime = CurrentTime.ConvertToUtc(),
            //	ExecutionType = ExecutionTypes.Transaction,
            //	OriginalTransactionId = cancelMsg.TransactionId,
            //	OrderState = OrderStates.Done,
            //	HasOrderInfo = true,
            //});

            ProcessOrderStatus(null);
            ProcessPortfolioLookup(null);
        }
Ejemplo n.º 9
0
        public static Transaction CreateCancelTransaction(this IMessageSessionHolder sessionHolder, OrderCancelMessage message)
        {
            if (sessionHolder == null)
            {
                throw new ArgumentNullException("sessionHolder");
            }

            if (message == null)
            {
                throw new ArgumentNullException("message");
            }

            var transaction = new Transaction(TransactionTypes.Cancel, message);

            transaction.SetSecurity(sessionHolder, message);

            string action;
            Func <long, Transaction> idSetterFunc = transaction.SetOrderId;

            switch (message.OrderType)
            {
            case OrderTypes.Limit:
            case OrderTypes.Market:
                action = TransactionActions.KillOrder;
                break;

            case OrderTypes.Conditional:
                action       = TransactionActions.KillStopOrder;
                idSetterFunc = transaction.SetStopOrderId;
                break;

            case OrderTypes.Repo:
            case OrderTypes.ExtRepo:
            case OrderTypes.Rps:
                action = TransactionActions.KillNegDeal;
                break;

            default:
                throw new ArgumentOutOfRangeException("message", message.Type, LocalizedStrings.Str1600);
            }

            idSetterFunc(message.OrderId).SetAction(action);

            return(transaction);
        }
 private void ProcessOrderCancelMessage(OrderCancelMessage cancelMsg)
 {
     _session.CancelOrder(new CancelOrderRequest(cancelMsg.TransactionId.To <string>(), (long)cancelMsg.SecurityId.Native, cancelMsg.OrderTransactionId.To <string>()), id => { }, CreateErrorHandler("CancelOrder"));
 }
Ejemplo n.º 11
0
 private void ProcessOrderCancel(OrderCancelMessage message)
 {
     _client.CancelOrder(_orderTransactions[message.OrderTransactionId]);
 }
Ejemplo n.º 12
0
 private void ProcessOrderCancel(OrderCancelMessage message)
 {
     SessionHolder.Session.CancelOrder(_orderTransactions[message.OrderTransactionId]);
 }
        private bool ProcessOrderCancel(OrderCancelMessage message)
        {
            message = _storageProcessor.ProcessOrderCancel(message);

            return(message == null || base.OnSendInMessage(message));
        }
Ejemplo n.º 14
0
        // create and send message
        private void SendCommand(IReadOnlyDictionary <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;
            }

            if (message != null)
            {
                _transAdapter.SendInMessage(message);
            }
        }
        private void ProcessOrderCancelMessage(OrderCancelMessage cancelMsg)
        {
            var orderMaint = new STIOrderMaint();

            orderMaint.CancelOrder(cancelMsg.PortfolioName, 0, cancelMsg.TransactionId.To <string>(), null);
        }
Ejemplo n.º 16
0
        // create and send message
        private void SendCommand(IReadOnlyDictionary<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;
            }

            if (message != null)
                _transAdapter.SendInMessage(message);
        }
Ejemplo n.º 17
0
 private void ProcessCancelMessage(OrderCancelMessage cancelMsg)
 {
     _wrapper.CancelOrder(cancelMsg.PortfolioName, (string)cancelMsg.SecurityId.Native, cancelMsg.OrderStringId);
 }