/// <summary>
        /// Upon the application form loading, setup the TTGate and TTOrderSet objects.
        /// </summary>
        public frmServerMode()
        {
            // Required for Windows Form Designer support
            InitializeComponent();

            // Instantiate the TTGate.
            m_TTGate = new XTAPI.TTGateClass();

            // Enable Server Mode (X_TRADER does not need to be running).
            m_TTGate.EnableServerMode();

            // Instantiate the TTOrderSet object.
            m_TTOrderSet = new XTAPI.TTOrderSetClass();

            // Set normal level of detail in our order status events
            m_TTOrderSet.OrderStatusNotifyMode = XTAPI.enumOrderStatusNotifyMode.ORD_NOTIFY_NORMAL;

            // Subscribe to OrderSet events (for all available events, see the OrderUpdate sample)
            m_TTOrderSet.OnOrderSubmitted += new XTAPI._ITTOrderSetEvents_OnOrderSubmittedEventHandler(m_TTOrderSet_OnOrderSubmitted);
            m_TTOrderSet.OnOrderUpdated += new XTAPI._ITTOrderSetEvents_OnOrderUpdatedEventHandler(m_TTOrderSet_OnOrderUpdated);
            m_TTOrderSet.OnOrderDeleted += new XTAPI._ITTOrderSetEvents_OnOrderDeletedEventHandler(m_TTOrderSet_OnOrderDeleted);
            m_TTOrderSet.OnOrderFilled += new XTAPI._ITTOrderSetEvents_OnOrderFilledEventHandler(m_TTOrderSet_OnOrderFilled);

            txtOrderAuditTrail.Text = "Order State:   Acct, OrdStatus, OrdAction, Contract$, BuySell, OrderQty, Price, SiteOrderKey, OrderNo\r\n\r\n";
        }
        /// <summary>
        /// Initialize the TTOrderSet object and subscribe to the three fill events.
        /// </summary>
        public frmFillUpdate()
        {
            // Required for Windows Form Designer support
            InitializeComponent();

            // Update the Status Bar text.
            sbaStatus.Text = "Downloading Fill Information...  (This may take a moment)";

            // Instantiate the TTOrderSet object.
            m_TTOrderSet = new XTAPI.TTOrderSetClass();

            // Enable the fill updates.
            m_TTOrderSet.EnableOrderFillData = 1;

            // Subscribe to the fill events.
            m_TTOrderSet.OnOrderFillData += new XTAPI._ITTOrderSetEvents_OnOrderFillDataEventHandler(m_TTOrderSet_OnOrderFillData);
            m_TTOrderSet.OnOrderFillBlockEnd += new XTAPI._ITTOrderSetEvents_OnOrderFillBlockEndEventHandler(m_TTOrderSet_OnOrderFillBlockEnd);
            m_TTOrderSet.OnOrderFillBlockStart += new XTAPI._ITTOrderSetEvents_OnOrderFillBlockStartEventHandler(m_TTOrderSet_OnOrderFillBlockStart);

            // Open the TTOrderSet with sending orders disabled.
            m_TTOrderSet.Open(0);

            // Print the TTFillObj Get properties header to the text box.
            txtFillData.Text += "Contract,  Price,  Qty,  FillType,  OrderNo,  SiteOrderKey\r\n\r\n";
        }
Exemplo n.º 3
0
        public void init(XTAPI.TTInstrNotifyClass TTInstrNotify)
        {
            if (TTOrderSet != null && TTInstrObj != null && TTInstrNotify != null)
            {
                TTInstrNotify.DetachInstrument(TTInstrObj);
            }

            TTOrderSet = new XTAPI.TTOrderSetClass();

            TTOrderSet.Alias             = instrument.Product;
            TTOrderSet.EnableFillCaching = 1;
            TTOrderSet.EnableOrderSend   = 1;
            TTOrderSet.Set("NetLimits", false);
            TTOrderSet.EnableOrderSetUpdates = 1;
            TTOrderSet.EnableOrderFillData   = 1;
            TTOrderSet.EnableOrderAutoDelete = 1;
            TTOrderSet.ClearQuotePosition(0, 0, 0);

            TTInstrObj          = new XTAPI.TTInstrObjClass();
            TTInstrObj.Exchange = instrument.Exchange;
            TTInstrObj.Product  = instrument.Product;
            TTInstrObj.Contract = instrument.Contract;
            TTInstrObj.ProdType = instrument.ProductType;
            TTInstrObj.Alias    = instrument.Product;


            TTInstrNotify.AttachInstrument(TTInstrObj);


            XTAPI.TTOrderSelector orderSelector = TTInstrObj.CreateOrderSelector;


            //match orders per account
            XTAPI.TTOrderSelector acctSelector = new XTAPI.TTOrderSelectorClass();
            acctSelector.AddTest("Acct", instrument.Account);
            acctSelector.AllMatchesRequired = 1;

            orderSelector.AddSelector(acctSelector);
            orderSelector.AllMatchesRequired = 1;


            TTOrderSet.OrderSelector = orderSelector;

            TTOrderSet.Open(true);

            TTInstrObj.OrderSet = TTOrderSet;
            TTInstrObj.Open(1);



            if (log.IsInfoEnabled)
            {
                System.Text.StringBuilder msg = new System.Text.StringBuilder("trading started for ")
                                                .AppendFormat("{0} {1} {2} {3}"
                                                              , instrument.Account, instrument.Contract, instrument.Product, instrument.Exchange);
                log.Info(msg);
            }
        }
Exemplo n.º 4
0
        public int Delete(string key, XTAPI.TTOrderSetClass ttorderSet)
        {
            XTAPI.TTOrderObj order = (XTAPI.TTOrderObj)ttorderSet.get_SiteKeyLookup(key);
            int res = order.DeleteOrder();

            if (log.IsDebugEnabled)
            {
                log.Debug(
                    new System.Text.StringBuilder("Deleted: ").AppendFormat("{0} from {1}", res, key)
                    );
            }

            return(res);
        }
        /// <summary>
        /// Upon the application form loading, the TTDropHandler, TTOrderSet, and TTInstrNotify 
        /// objects are initialized, and the required events are subscribed.
        /// </summary>
        public frmOrderUpdate()
        {
            InitializeComponent();

            // Instantiate the TTDropHandler class.
            m_TTDropHandler = new XTAPI.TTDropHandlerClass();

            // Register the active form for drag and drop.
            m_TTDropHandler.RegisterDropWindow((int) this.Handle);

            // Subscribe to the OnNotifyDrop event.
            m_TTDropHandler.OnNotifyDrop += new XTAPI._ITTDropHandlerEvents_OnNotifyDropEventHandler(this.m_TTDropHandler_OnNotifyDrop);

            // Instantiate the TTInstrNotify class.
            m_TTInstrNotify = new XTAPI.TTInstrNotifyClass();

            // Subscribe to the OnNotifyFound event.
            m_TTInstrNotify.OnNotifyFound += new XTAPI._ITTInstrNotifyEvents_OnNotifyFoundEventHandler(this.m_TTInstrNotify_OnNotifyFound);

            // Instantiate the TTOrderSet class.
            m_TTOrderSet = new XTAPI.TTOrderSetClass();

            // Enable reject events
            m_TTOrderSet.EnableOrderRejectData = 1;

            // Set normal level of detail in our order status events
            m_TTOrderSet.OrderStatusNotifyMode = XTAPI.enumOrderStatusNotifyMode.ORD_NOTIFY_NORMAL;

            // Subscribe to the order status update events
            m_TTOrderSet.OnOrderDeleted += new XTAPI._ITTOrderSetEvents_OnOrderDeletedEventHandler(m_TTOrderSet_OnOrderDeleted);
            m_TTOrderSet.OnOrderFilled += new XTAPI._ITTOrderSetEvents_OnOrderFilledEventHandler(m_TTOrderSet_OnOrderFilled);
            m_TTOrderSet.OnOrderHeld += new XTAPI._ITTOrderSetEvents_OnOrderHeldEventHandler(m_TTOrderSet_OnOrderHeld);
            m_TTOrderSet.OnOrderSubmitted += new XTAPI._ITTOrderSetEvents_OnOrderSubmittedEventHandler(m_TTOrderSet_OnOrderSubmitted);
            m_TTOrderSet.OnOrderUpdated += new XTAPI._ITTOrderSetEvents_OnOrderUpdatedEventHandler(m_TTOrderSet_OnOrderUpdated);
            m_TTOrderSet.OnOrderRejected += new XTAPI._ITTOrderSetEvents_OnOrderRejectedEventHandler(m_TTOrderSet_OnOrderRejected);

            // Set the Net Limits to false.
            m_TTOrderSet.Set("NetLimits", false);
        }
        /// <summary>
        /// This function is called when one or more instruments are dragged and dropped from 
        /// the Market Grid in X_TRADER.
        /// </summary>
        private void m_TTDropHandler_OnNotifyDrop()
        {
            // Update the Status Bar text.
            sbaStatus.Text = "Drag & Drop detected.  Initializing instrument...";

            try
            {
                // Obtain the number of instruments dropped.
                int instrCount = m_TTDropHandler.Count;

                // Only support a maximum of four instruments.
                if (instrCount > 4)
                {
                    instrCount = 4;
                }

                for (int i=0; i<instrCount; i++)
                {
                    // Test is TTInstrObj currently exist.
                    if (m_TTInstrObj[i] != null)
                    {
                        // Remove the Instrument and reset the Alias.
                        m_TTInstrNotify.DetachInstrument(m_TTInstrObj[i]);
                        m_TTInstrObj[i].Alias = "";
                        m_TTInstrObj[i] = null;
                    }

                    // Obtain the TTInstrObj from the TTDropHandler object.
                    // The TTDropHandler index begins at 1.
                    m_TTInstrObj[i] = (XTAPI.TTInstrObj)m_TTDropHandler[i + 1];

                    // Attach the TTInstrObj to the TTInstrNotify.
                    m_TTInstrNotify.AttachInstrument(m_TTInstrObj[i]);

                    // Set the TTInstrObj Alias to the index for identification.
                    m_TTInstrObj[i].Alias = i.ToString();

                    // Open the TTInstrObj with depth disabled.
                    m_TTInstrObj[i].Open(0);

                    // Instantiate the TTOrderSet object.
                    m_TTOrderSet = new XTAPI.TTOrderSetClass();

                    // Set the OrderSelector to the instrument so that P/L per contract
                    // will be displayed.  If omitted the overall P/L per user will be displayed.
                    m_TTOrderSet.OrderSelector = m_TTInstrObj[i].CreateOrderSelector;

                    m_TTOrderSet.EnableFillCaching = 1;
                    m_TTOrderSet.AvgOpenPriceMode = XTAPI.enumAvgOpenPriceMode.LIFO;

                    // Attach the TTOrderSet to the TTInstrObj.
                    m_TTInstrObj[i].OrderSet = m_TTOrderSet;
                    // Open the TTOrderSet.
                    m_TTInstrObj[i].OrderSet.Open(0);
                }

                // Clear drop handler list
                m_TTDropHandler.Reset();
            }
            catch (Exception ex)
            {
                // Display exception message.
                MessageBox.Show(ex.Message, "Exception");
            }
        }
        /// <summary>
        /// Upon the application form loading, the TTDropHandler, TTOrderSet, and 
        /// TTInstrNotify objects are initialized, and the required events are subscribed.
        /// </summary>
        public frmModifyOrder()
        {
            // Required for Windows Form Designer support
            InitializeComponent();

            // Instantiate the drag and drop handler class.
            m_TTDropHandler = new XTAPI.TTDropHandlerClass();

            // Register the active form for drag and drop.
            m_TTDropHandler.RegisterDropWindow((int) this.Handle);

            // Associate the drop and drag callback event.
            m_TTDropHandler.OnNotifyDrop += new XTAPI._ITTDropHandlerEvents_OnNotifyDropEventHandler(this.m_TTDropHandler_OnNotifyDrop);

            // Instantiate the instrument notification class.
            m_TTInstrNotify = new XTAPI.TTInstrNotifyClass();

            // Subscribe to the TTInstrNotify events.
            m_TTInstrNotify.OnNotifyFound += new XTAPI._ITTInstrNotifyEvents_OnNotifyFoundEventHandler(this.m_TTInstrNotify_OnNotifyFound);

            // Instantiate the TTOrderSet object.
            m_TTOrderSet = new XTAPI.TTOrderSetClass();
        }
        /// <summary>
        /// Upon the application form loading, the TTDropHandler and TTInstrNotify 
        /// objects are initialized, and the required events are subscribed.
        /// </summary>
        public frmOrderSelector()
        {
            // Required for Windows Form Designer support
            InitializeComponent();

            // Instantiate the drag and drop handler class.
            m_TTDropHandler = new XTAPI.TTDropHandlerClass();
            // Register the active form for drag and drop.
            m_TTDropHandler.RegisterDropWindow((int) this.Handle);
            // Associate the drop and drag callback event.
            m_TTDropHandler.OnNotifyDrop += new XTAPI._ITTDropHandlerEvents_OnNotifyDropEventHandler(this.m_TTDropHandler_OnNotifyDrop);

            // Instantiate the instrument notification class.
            m_TTInstrNotify = new XTAPI.TTInstrNotifyClass();
            // Subscribe to the TTInstrNotify events.
            m_TTInstrNotify.OnNotifyFound += new XTAPI._ITTInstrNotifyEvents_OnNotifyFoundEventHandler(this.m_TTInstrNotify_OnNotifyFound);

            // Instantiate a TTOrderSet object for submitting orders.
            m_TTOrderSetSendOrder = new XTAPI.TTOrderSetClass();
            m_TTOrderSetSendOrder.Set("NetLimits",false);
            m_TTOrderSetSendOrder.Open(1);

            // Instantiate the the TTOrderSelector object.
            m_TTOrderSelector = new XTAPI.TTOrderSelectorClass();

            // Instantiate a TTOrderSet object for receiving orders.
            m_TTOrderSetReceiveOrder = new XTAPI.TTOrderSetClass();
            m_TTOrderSetReceiveOrder.OnOrderSetUpdate += new XTAPI._ITTOrderSetEvents_OnOrderSetUpdateEventHandler(m_TTOrderSet_OnOrderSetUpdate);

            // Enable the TTOrderTracker and order updates.
            m_TTOrderSetReceiveOrder.EnableOrderUpdateData = 1;
            m_TTOrderSetReceiveOrder.EnableOrderSetUpdates = 1;
        }
Exemplo n.º 9
0
        private void initFills()
        {
            log("Init Fills config");

            // Instantiate the TTOrderSet object.
            m_TTOrderSet = new XTAPI.TTOrderSetClass();

            // Enable the fill updates.
            m_TTOrderSet.EnableOrderFillData = 1;

            // Subscribe to the fill events.
            m_TTOrderSet.OnOrderFillData += new XTAPI._ITTOrderSetEvents_OnOrderFillDataEventHandler(m_TTOrderSet_OnOrderFillData);
            m_TTOrderSet.OnOrderFillBlockEnd += new XTAPI._ITTOrderSetEvents_OnOrderFillBlockEndEventHandler(m_TTOrderSet_OnOrderFillBlockEnd);
            m_TTOrderSet.OnOrderFillBlockStart += new XTAPI._ITTOrderSetEvents_OnOrderFillBlockStartEventHandler(m_TTOrderSet_OnOrderFillBlockStart);

            m_TTOrderSet.Open(0);
        }
Exemplo n.º 10
0
        public void init( XTAPI.TTInstrNotifyClass TTInstrNotify)
        {
            if (TTOrderSet != null && TTInstrObj != null && TTInstrNotify != null )
            {
                TTInstrNotify.DetachInstrument(TTInstrObj);
            }

            TTOrderSet = new XTAPI.TTOrderSetClass();

            TTOrderSet.Alias = instrument.Product;
            TTOrderSet.EnableFillCaching = 1;
            TTOrderSet.EnableOrderSend = 1;
            TTOrderSet.Set("NetLimits", false);
            TTOrderSet.EnableOrderSetUpdates = 1;
            TTOrderSet.EnableOrderFillData = 1;
            TTOrderSet.EnableOrderAutoDelete = 1;
            TTOrderSet.ClearQuotePosition(0,0,0);

            TTInstrObj = new XTAPI.TTInstrObjClass();
            TTInstrObj.Exchange = instrument.Exchange;
            TTInstrObj.Product = instrument.Product;
            TTInstrObj.Contract = instrument.Contract;
            TTInstrObj.ProdType = instrument.ProductType;
            TTInstrObj.Alias = instrument.Product;

            TTInstrNotify.AttachInstrument(TTInstrObj);

            XTAPI.TTOrderSelector orderSelector = TTInstrObj.CreateOrderSelector;

            //match orders per account
            XTAPI.TTOrderSelector acctSelector = new XTAPI.TTOrderSelectorClass();
            acctSelector.AddTest("Acct", instrument.Account);
            acctSelector.AllMatchesRequired = 1;

            orderSelector.AddSelector(acctSelector);
            orderSelector.AllMatchesRequired = 1;

            TTOrderSet.OrderSelector = orderSelector;

            TTOrderSet.Open(true);

            TTInstrObj.OrderSet = TTOrderSet;
            TTInstrObj.Open(1);

            if (log.IsInfoEnabled)
            {
                System.Text.StringBuilder msg = new System.Text.StringBuilder("trading started for ")
                                                .AppendFormat("{0} {1} {2} {3}"
                                                , instrument.Account, instrument.Contract,instrument.Product,instrument.Exchange);
                log.Info(msg);
            }
        }