Beispiel #1
0
        int GetPositionT2(Quik _quik, Tool instrument, string clientCode)
        {
            // возвращает чистую позицию по инструменту
            // для срочного рынка передаем номер счета, для спот-рынка код-клиента
            int qty = 0;

            if (instrument.ClassCode == "SPBFUT")
            {
                // фьючерсы
                try
                {
                    FuturesClientHolding q1 = _quik.Trading.GetFuturesHolding(instrument.FirmID, instrument.AccountID, instrument.SecurityCode, 0).Result;
                    if (q1 != null)
                    {
                        qty = Convert.ToInt32(q1.totalNet);
                    }
                }
                catch (Exception e) { Console.WriteLine("GetPositionT2: SPBFUT, ошибка - " + e.Message); }
            }
            else
            {
                // акции
                try
                {
                    DepoLimitEx q1 = _quik.Trading.GetDepoEx(instrument.FirmID, clientCode, instrument.SecurityCode, instrument.AccountID, 2).Result;
                    if (q1 != null)
                    {
                        qty = Convert.ToInt32(q1.CurrentBalance);
                    }
                }
                catch (Exception e) { Console.WriteLine("GetPositionT2: ошибка - " + e.Message); }
            }
            return(qty);
        }
Beispiel #2
0
 void OnFuturesClientHoldingDo(FuturesClientHolding futPos)
 {
     if (futPos.secCode == tool.SecurityCode)
     {
         futuresPosition = futPos;
     }
 }
Beispiel #3
0
        private void EventsOnOnFuturesClientHolding(FuturesClientHolding futPos)
        {
            lock (changeFutPosLocker)
            {
                if (_portfolios != null && _portfolios.Count != 0)
                {
                    Portfolio needPortfolio = _portfolios.Find(p => p.Number == futPos.trdAccId);

                    if (needPortfolio == null)
                    {
                        return;
                    }

                    PositionOnBoard newPos = new PositionOnBoard();

                    newPos.PortfolioName    = futPos.trdAccId;
                    newPos.SecurityNameCode = futPos.secCode;
                    newPos.ValueBegin       = Convert.ToDecimal(futPos.startNet);
                    newPos.ValueCurrent     = Convert.ToDecimal(futPos.totalNet);
                    newPos.ValueBlocked     = 0;

                    needPortfolio.SetNewPosition(newPos);

                    if (PortfolioEvent != null)
                    {
                        PortfolioEvent(_portfolios);
                    }
                }
            }
        }
Beispiel #4
0
 internal void OnFuturesClientHoldingCall(FuturesClientHolding futPos)
 {
     OnFuturesClientHolding?.Invoke(futPos);
 }
Beispiel #5
0
 public void OnFuturesClientHolding(FuturesClientHolding futPos)
 {
     FuturesClientHolding?.Invoke(_quik, futPos);
 }
Beispiel #6
0
 private void Events_OnFuturesClientHolding(FuturesClientHolding futPos) // Позиции по клиентским счетам (фьючерсы)
 {
     Log("Изменилась таблица Позиций по клиентским счетам (фьючерсы): " + futPos.ToString());
     //throw new NotImplementedException();
 }