private void ProcessCancelMessage(OrderCancelMessage cancelMsg) { _client.Session.cancelOrder( _accounts[cancelMsg.PortfolioName], cancelMsg.OrderStringId, Constants.ORDER_ENTRY_TYPE_AUTO, string.Empty, cancelMsg.UserOrderId, cancelMsg.TransactionId); }
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); }
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); }
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")); }
private void ProcessOrderCancel(OrderCancelMessage message) { _client.CancelOrder(_orderTransactions[message.OrderTransactionId]); }
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)); }
// 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); }
// 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 ProcessCancelMessage(OrderCancelMessage cancelMsg) { _wrapper.CancelOrder(cancelMsg.PortfolioName, (string)cancelMsg.SecurityId.Native, cancelMsg.OrderStringId); }