public void Invoke_OnInsertOrder(RecordTransItem item)
        {
            OrderArgs args = new OrderArgs();

            args.order = item;
            OnInsertOrder?.Invoke(this, args);
        }
        public void Invoke_OnRemoveWaitingOrder(RecordTransItem item)
        {
            OrderArgs args = new OrderArgs();

            args.order = item;
            OnRemoveWaitingOrder?.Invoke(this, args);
        }
        public void Invoke_OnRemovePosition(RecordTransItem item)
        {
            OrderArgs args = new OrderArgs();

            args.order = item;
            OnRemovePosition?.Invoke(this, args);
        }
        /// <summary>
        /// 已经成交了的订单
        /// </summary>
        /// <param name="item"></param>
        public void _TradedOrder(RecordTransItem item)
        {
            List <RecordTransItem> removeItems = new List <RecordTransItem>();

            foreach (var it in PositionRecords)
            {
                if (it.direction != item.direction)
                {
                    removeItems.Add(it);
                    break;
                }
            }

            if (removeItems.Count() > 0)
            {
                foreach (var it in removeItems)
                {
                    Invoke_OnRemovePosition(it);
                    PositionRecords.Remove(it);
                }
            }
            else
            {
                Invoke_OnInsertPosition(item);
                PositionRecords.Add(item);
            }


            Invoke_OnInsertOrder(item);

            HistoryRecords.Add(item);
        }
Exemple #5
0
        private void Sell_On_Sell1()
        {
            float           price   = mLatestQuote.ask_price1;
            RecordTransItem newItem = new RecordTransItem();

            newItem.direction = TransDirection.Sell;
            newItem.price     = price;
            newItem.volumn    = 1;
            newItem.datetime  = mLatestQuote.datetime;
            RecordTransService.Instance.InsertOrder(newItem);
        }
Exemple #6
0
        private void Buy_On_Buy1()
        {
            float           price   = mLatestQuote.bid_price1;
            RecordTransItem newItem = new RecordTransItem();

            newItem.direction = TransDirection.Buy;
            newItem.price     = price;
            newItem.volumn    = 1;
            newItem.datetime  = mLatestQuote.datetime;
            RecordTransService.Instance.InsertOrder(newItem);
        }
Exemple #7
0
        private void SetQuote(Quote qt)
        {
            if (RecordType != RecordListType.Position)
            {
                return;
            }

            foreach (var item in recordTransItemBindingSource)
            {
                RecordTransItem itemOrder = item as RecordTransItem;

                if (itemOrder.direction == TransDirection.Buy)
                {
                    itemOrder.profit = qt.last_price - itemOrder.price;
                }
                else
                {
                    itemOrder.profit = itemOrder.price - qt.last_price;
                }
            }

            dgvMain.Invalidate();
        }
 /// <summary>
 /// 插入队列等候成交
 /// </summary>
 /// <param name="item"></param>
 public void InsertOrder(RecordTransItem item)
 {
     Invoke_OnInsertWaitingOrder(item);
     WaitingRecords.Enqueue(item);
 }