Example #1
0
        private Core()
        {
            m_SQL = new SQLTool(Utility.Load <string>("SQL", "IP"), Utility.Load <string>("SQL", "DB"), Utility.Load <string>("SQL", "ID"), Utility.Load <string>("SQL", "PASSWORD"));

            m_Price = new CapitalProcessor();
            m_Price.OnOverseaProduct += new OnOverseaProductDelegate(OverseaProduct);
            m_Price.OnPriceChange    += new OnPriceChangeDelegate(PriceChange);
            m_Price.OnError          += OnError;

            m_Order = new OrderProcessor.Capital.CapitalProcessor();
            m_Order.OnMatchReply          += new OrderProcessor.Capital.CapitalProcessor.OnReplyDelegate(OnMatchReply);
            m_Order.OnOverseaOpenInterest += new OrderProcessor.Capital.CapitalProcessor.OnOverseaOpenInterestDelegate(OnOverseaOpenInterest);
        }
Example #2
0
        public Tick(short pageno, string account, string exchange, string pid, string orderhead, string ym, string ym2, int tickCount, bool extend, bool isascending)
        {
            m_PageNo      = pageno;
            Account       = account;
            Exchange      = exchange;
            OrderHead     = orderhead;
            YM            = ym;
            YM2           = ym2;
            PID           = pid;
            TickCount     = tickCount;
            m_isAscending = isascending;
            m_Extend      = extend;
            InitCell();

            Core.Instance.Order.OnOrderReply  += new OrderProcessor.Capital.CapitalProcessor.OnReplyDelegate(OnOrderReply);
            Core.Instance.Order.OnMatchReply  += new OrderProcessor.Capital.CapitalProcessor.OnReplyDelegate(OnOrderReply);
            Core.Instance.Order.OnCancelReply += new OrderProcessor.Capital.CapitalProcessor.OnReplyDelegate(OnOrderReply);
            Core.Instance.OnPriceChange       += new CapitalProcessor.OnPriceChangeDelegate(OnPriceChange);

            OnPriceChange(pid, CapitalProcessor.TickName($"{Exchange},{OrderHead}"), Core.Instance.Price[PID]);
        }
Example #3
0
        private void ChangeProduct(Notification n)
        {
            m_Tick = (Tick)n.Sender;
            nudManualPrice.Value = 0M;
            if (m_Tick == null)
            {
                txtOrderHead.Text = string.Empty;
                txtOrderYM.Text   = string.Empty;
                txtExchange.Text  = string.Empty;
                txtAccount.Text   = string.Empty;

                lblLots.Text   = "0";
                btnBuy.Enabled = btnSell.Enabled = false;
            }
            else
            {
                txtOrderHead.Text = m_Tick.OrderHead;
                txtOrderYM.Text   = m_Tick.OrderPID?.Replace(m_Tick.OrderHead, string.Empty);
                txtExchange.Text  = m_Tick.Exchange;
                txtAccount.Text   = m_Tick.Account;

                cboAccount.Items.Clear();
                cboAccount.Items.AddRange(Core.Instance.Order.Accounts.Select(E => E.BrokerID + E.CustNo).ToArray());
                _SetAutoLots();
                btnBuy.Enabled = btnSell.Enabled = true;
                //m_WaitForUpdateTick = true;

                decimal inTick, deTick;
                string  tickname = CapitalProcessor.TickName($"{m_Tick.Exchange},{m_Tick.OrderHead}");
                decimal mp;
                decimal.TryParse(m_Tick.cMP.Value.ToString(), out mp);
                PriceProcessor.Processor.Tick(tickname, mp, out inTick, out deTick);
                string numStr = inTick.ToString();
                int    Dot    = numStr.IndexOf('.');

                nudManualPrice.DecimalPlaces = numStr.Length - (Dot < 0 ? 0 : Dot) - 1;
                nudManualPrice.Increment     = inTick;
                nudManualPrice.Value         = mp;
            }
        }