/// <summary> /// Create a copy of <see cref="OrderCancelMessage"/>. /// </summary> /// <returns>Copy.</returns> public override Message Clone() { var clone = new OrderCancelMessage(); CopyTo(clone); return(clone); }
/// <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; }
/// <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); }
// 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); }