コード例 #1
0
        private void CheckBids()
        {
            if (BottomPrice > CurrentPrice)
            {
                AppJournal.Write("Order", "Bottom price more than current");

                proc         = false;
                StartCmdName = "Запуск";
                MessageBox.Show("Минимальная цена больше стартовой");
            }
            else
            {
                if (SelectedMode.type == "Конкурирующий")
                {
                    if (BottomPrice < CurrentPrice && (CurrentPrice < LastPrice || LastPrice == 0))
                    {
                        if (LastBroker == null || !LastBroker.ToLower().Contains(SelectedFirmBroker.name.ToLower()))
                        {
                            SendOrder(1);
                        }
                    }
                }
                else if (SelectedMode.type == "Разовый")
                {
                    if (LastPrice < BottomPrice)
                    {
                        MessageBox.Show("Заявляемая цена меньше минимальной");
                    }
                    else
                    {
                        SendOrder(2);
                    }
                }
            }
        }
コード例 #2
0
        private Boolean proc; // Флаг запуска

        private void TimerTask()
        {
            while (proc)
            {
                // Проверка минимальной цены
                if (BottomPrice > CurrentPrice)
                {
                    AppJournal.Write("Order", "Bottom price more than current");

                    proc         = false;
                    StartCmdName = "Запуск";
                    MessageBox.Show("Минимальная цена больше стартовой");
                }
                else
                {
                    // Поточный режим
                    if (SelectedMode.type == "Поточный")
                    {
                        if (BottomPrice < CurrentPrice)
                        {
                            SendOrder(1);
                            Thread.Sleep(PauseTime);
                        }
                        // Конкурирующий режим
                    }
                    else if (SelectedMode.type == "Конкурирующий")
                    {
                        if (BottomPrice < CurrentPrice && (CurrentPrice < LastPrice || LastPrice == 0))
                        {
                            if (LastBroker == null || !LastBroker.ToLower().Contains(SelectedFirmBroker.name.ToLower()))
                            {
                                SendOrder(1);
                            }
                        }
                    }
                    else if (SelectedMode.type == "Разовый")
                    {
                        if (LastPrice < BottomPrice)
                        {
                            MessageBox.Show("Заявляемая цена меньше минимальной");
                        }
                        else
                        {
                            SendOrder(2);
                        }
                    }
                }
            }
        }
コード例 #3
0
        // Определение текущей цены
        void TableQuotesAddRow(int IDConnect, int IDRecord, object Fields)
        {
            IList collection = (IList)Fields;

            if (collection[0].ToString() == SelectedIssue.name)
            {
                decimal rez;
                decimal.TryParse(collection[1].ToString(), NumberStyles.Any, new CultureInfo("en-US"), out rez);
                CurrentPrice = rez;
                LastBroker   = collection[3].ToString();

                FirmName = collection[3].ToString();

                if (LastBroker.ToLower().Contains(SelectedFirmBroker.name.ToLower()))
                {
                    if (IsPrimary)
                    {
                        IsPrimary = false;
                    }
                    else
                    {
                        IsPrimary = true;
                    }
                }
                else
                {
                    if (IsPrimary && proc)
                    {
                        CheckBids();
                    }
                }

                LogWriter(2, "", string.Format("Firm: {0}, lot: {1}, price: {2}, serverTime: {3}, curTime: {4}", collection[3].ToString(), collection[0].ToString(), collection[1].ToString(), collection[2].ToString(), DateTime.Now.ToString("hh:mm:ss:fff")), collection[0].ToString());
            }

            if (CurrentPrice == 0)
            {
                CurrentPrice = SelectedIssue.nominal - Step;
            }
        }