Exemple #1
0
        void CancelAllOpenOrders()
        {
            foreach (DataGridViewRow row in _orderGrid.Rows)
            {
                try
                {
                    var       view     = row.DataBoundItem as DataRowView;
                    var       orderRow = view.Row as OrderDataRow;
                    Fix.Order order    = orderRow.Order;

                    if (order.OrdStatus == Fix.OrdStatus.Canceled ||
                        order.OrdStatus == Fix.OrdStatus.Rejected ||
                        order.OrdStatus == Fix.OrdStatus.DoneForDay)
                    {
                        continue;
                    }

                    var message = new Fix.Message {
                        MsgType = Fix.Dictionary.Messages.OrderCancelRequest.MsgType
                    };

                    MessagesPanel.UpdateMessage(message, order);

                    message.Fields.Set(Fix.Dictionary.Fields.TransactTime, Fix.Field.TimeString(_session.MillisecondTimestamps));
                    message.Fields.Set(Fix.Dictionary.Fields.Side, order.Side.Value);
                    message.Fields.Set(Fix.Dictionary.Fields.Symbol, order.Symbol);
                    message.Fields.Set(Fix.Dictionary.Fields.OrigClOrdID, order.ClOrdID);
                    message.Fields.Set(Fix.Dictionary.Fields.ClOrdID, Session.FormatClOrdId(Session.NextClOrdId++));
                    //
                    // This field was removed from later versions.
                    //
                    Fix.Field beginString = message.Fields.Find(Fix.Dictionary.Fields.BeginString);

                    if (beginString != null && beginString.Value == Fix.Dictionary.Versions.FIX_4_0.BeginString)
                    {
                        message.Fields.Set(Fix.Dictionary.FIX_4_0.Fields.CxlType, "F");
                    }

                    Session.Send(message);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(this,
                                    ex.Message,
                                    Application.ProductName,
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Information);
                }
            }
        }
Exemple #2
0
        public OrdersPanel(MessagesPanel messageDefaults, ToolStripButton defaultsButton)
        {
            _messageDefaults = messageDefaults;
            _defaultsButton  = defaultsButton;

            #region ToolStrip
            _clientToolStrip = new ToolStrip
            {
                GripStyle = ToolStripGripStyle.Hidden,
                BackColor = LookAndFeel.Color.ToolStrip,
                Renderer  = new ToolStripRenderer()
            };

            _cancelButton = new ToolStripSplitButton
            {
                Text        = "Cancel",
                ToolTipText = "Cancel the selected order"
            };
            _cancelButton.Click += CancelButtonClick;

            _cancelAllButton = new ToolStripMenuItem
            {
                Text        = "Cancel All",
                ToolTipText = "Cancel all open orders immediately"
            };
            _cancelAllButton.Click += CancelAllButtonClick;
            _cancelButton.DropDownItems.Add(_cancelAllButton);

            _amendButton = new ToolStripButton
            {
                Text        = "Amend",
                ToolTipText = "Amend the selected order"
            };
            _amendButton.Click += AmendButtonClick;

            _statusButton = new ToolStripButton
            {
                Text        = "Status",
                ToolTipText = "Request a status update for the selected order"
            };
            _statusButton.Click += StatusButtonClick;

            _listExecuteButton = new ToolStripButton
            {
                Text        = "ListExecute",
                ToolTipText = "Execute the Order List associated with the selected order"
            };
            _listExecuteButton.Click += ListExecuteButtonClick;

            _listStatusButton = new ToolStripButton
            {
                Text        = "ListStatus",
                ToolTipText =
                    "Request the status of the Order List associated with the selected order"
            };
            _listStatusButton.Click += ListStatusButtonClick;

            _listCancelButton = new ToolStripButton
            {
                Text        = "ListCancel",
                ToolTipText = "Cancel the Order List associated with the selected order"
            };
            _listCancelButton.Click += ListCancelButtonClick;

            _clientToolStrip.Items.AddRange(new ToolStripItem[]
            {
                _cancelButton,
                _amendButton,
                _statusButton,
                new ToolStripSeparator(),
                _listExecuteButton,
                _listStatusButton,
                _listCancelButton
            });

            _serverToolStrip = new ToolStrip
            {
                GripStyle = ToolStripGripStyle.Hidden,
                BackColor = LookAndFeel.Color.ToolStrip,
                Renderer  = new ToolStripRenderer()
            };

            _ackButton = new ToolStripDropDownButton
            {
                Text        = "Ack",
                ToolTipText = "Acknowledge the selected order"
            };
            _ackButton.Click += AckButtonClick;

            _ackAllButton = new ToolStripMenuItem
            {
                Text        = "Acknowledge All",
                ToolTipText = "Acknowledge all pending orders immediately"
            };
            _ackAllButton.Click += AcknowledgeAllButtonClick;
            _ackButton.DropDownItems.Add(_ackAllButton);

            _rejectButton = new ToolStripDropDownButton
            {
                Text        = "Reject",
                ToolTipText = "Reject the selected order"
            };
            _rejectButton.Click += RejectButtonClick;

            _rejectAllButton = new ToolStripMenuItem
            {
                Text        = "Reject All",
                ToolTipText = "Reject all pending orders immediately"
            };
            _rejectAllButton.Click += RejectAllButtonClick;
            _rejectButton.DropDownItems.Add(_rejectAllButton);

            _acceptorCancelButton = new ToolStripSplitButton
            {
                Text        = "Cancel",
                ToolTipText = "Cancel the selected order"
            };
            _acceptorCancelButton.Click += CancelButtonClick;

            _acceptorCancelAllButton = new ToolStripMenuItem
            {
                Text        = "Cancel All",
                ToolTipText = "Cancel all open orders immediately"
            };
            _acceptorCancelAllButton.Click += CancelAllButtonClick;
            _acceptorCancelButton.DropDownItems.Add(_acceptorCancelAllButton);

            _reportButton = new ToolStripButton
            {
                Text        = "Report",
                ToolTipText = "Send an execution teport for the selected order"
            };
            _reportButton.Click += ReportButtonClick;

            _serverToolStrip.Items.AddRange(new ToolStripItem[]
            {
                _ackButton,
                _rejectButton,
                _acceptorCancelButton,
                _reportButton
            });

            #endregion

            #region MenuStrip
            _clientMenuStrip = new ToolStripMenuItem("Action");

            _cancelMenuItem        = new ToolStripMenuItem("Cancel", _cancelButton.Image);
            _cancelMenuItem.Click += CancelButtonClick;
            _clientMenuStrip.DropDownItems.Add(_cancelMenuItem);

            _amendMenuItem        = new ToolStripMenuItem("Amend", _amendButton.Image);
            _amendMenuItem.Click += AmendButtonClick;
            _clientMenuStrip.DropDownItems.Add(_amendMenuItem);

            _statusMenuItem        = new ToolStripMenuItem("Status", _statusButton.Image);
            _statusMenuItem.Click += StatusButtonClick;
            _clientMenuStrip.DropDownItems.Add(_statusMenuItem);

            _clientMenuStrip.DropDownItems.Add(new ToolStripSeparator());

            _listExecuteMenuItem        = new ToolStripMenuItem("ListExecute", _listExecuteButton.Image);
            _listExecuteMenuItem.Click += ListExecuteButtonClick;
            _clientMenuStrip.DropDownItems.Add(_listExecuteMenuItem);

            _listStatusMenuItem        = new ToolStripMenuItem("ListStatus", _listStatusButton.Image);
            _listStatusMenuItem.Click += ListStatusButtonClick;
            _clientMenuStrip.DropDownItems.Add(_listStatusMenuItem);

            _listCancelMenuItem        = new ToolStripMenuItem("ListCancel", _listCancelButton.Image);
            _listCancelMenuItem.Click += ListCancelButtonClick;
            _clientMenuStrip.DropDownItems.Add(_listCancelMenuItem);

            _serverMenuStrip = new ToolStripMenuItem("Action");

            _ackMenuItem        = new ToolStripMenuItem("Acknowledge", _ackButton.Image);
            _ackMenuItem.Click += AckButtonClick;
            _serverMenuStrip.DropDownItems.Add(_ackMenuItem);

            _rejectMenuItem        = new ToolStripMenuItem("Reject", _rejectButton.Image);
            _rejectMenuItem.Click += RejectButtonClick;
            _serverMenuStrip.DropDownItems.Add(_rejectMenuItem);

            _reportMenuItem        = new ToolStripMenuItem("Report", _reportButton.Image);
            _reportMenuItem.Click += ReportButtonClick;
            _serverMenuStrip.DropDownItems.Add(_reportMenuItem);
            #endregion

            _orderTable = new OrderDataTable("Orders");
            _orderView  = new DataView(_orderTable);

            _orderGrid = new OrderDataGridView
            {
                Dock       = DockStyle.Fill,
                DataSource = _orderView
            };
            _orderGrid.SelectionChanged += (sender, ev) => UpdateUiState();

            _orderSearchTextBox = new SearchTextBox
            {
                Dock = DockStyle.Top
            };
            _orderSearchTextBox.TextChanged += (sender, ev) => ApplyFilters();

            ContentPanel.Controls.Add(_orderGrid);
            ContentPanel.Controls.Add(_orderSearchTextBox);

            UpdateUiState();
            ApplyFilters();

            IntPtr h = Handle;
        }