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); }
public void GetDepoLimitsTest() { Quik quik = new Quik(); // Получаем информацию по всем лимитам со всех доступных счетов. List <DepoLimitEx> depoLimits = quik.Trading.GetDepoLimits().Result; Console.WriteLine($"Все лимиты со всех доступных счетов {depoLimits.Count}"); if (depoLimits.Count > 0) { PrintDepoLimits(depoLimits); } // Получаем информацию по лимитам инструмента "Сбербанк" depoLimits = quik.Trading.GetDepoLimits("SBER").Result; Console.WriteLine($"Лимиты инструмента сбербанк {depoLimits.Count}"); if (depoLimits.Count > 0) { PrintDepoLimits(depoLimits); } // Если информация по бумаге есть в таблице, это не значит что открыта позиция. Нужно проверять еще CurrentBalance DepoLimitEx depoLimit = depoLimits.SingleOrDefault(_ => _.LimitKind == LimitKind.T2 && _.CurrentBalance > 0); if (depoLimit != null) { Console.WriteLine("Открыта позиция по сбербанку."); } }
void OnDepoLimitDo(DepoLimitEx depLimit) { AppendText2TextBox(textBoxLogsWindow, "Вызвано событие OnDepoLimit (изменение бумажного лимита)..." + Environment.NewLine); AppendText2TextBox(textBoxLogsWindow, "Заблокировано на покупку количества лотов - " + depLimit.LockedBuy + Environment.NewLine); //textBoxLogsWindow.AppendText("Вызвано событие OnDepoLimit (изменение бумажного лимита)..." + Environment.NewLine); //textBoxLogsWindow.AppendText("Заблокировано на покупку количества лотов - " + depLimit.LockedBuy + Environment.NewLine); }
public async Task GetDepoLimitsTest() { // Получаем информацию по всем лимитам со всех доступных счетов. var depoLimits = await Quik.Functions.TableRows.GetDepoLimitsAsync(); Console.WriteLine($"Все лимиты со всех доступных счетов {depoLimits.Count}"); if (depoLimits.Count > 0) { PrintDepoLimits(depoLimits); } // Получаем информацию по лимитам инструмента "Сбербанк" depoLimits = await Quik.Functions.TableRows.GetDepoLimitsAsync("SBER"); Console.WriteLine($"Лимиты инструмента сбербанк {depoLimits.Count}"); if (depoLimits.Count > 0) { PrintDepoLimits(depoLimits); } // Если информация по бумаге есть в таблице, это не значит что открыта позиция. Нужно проверять еще CurrentBalance DepoLimitEx depoLimit = depoLimits.SingleOrDefault(_ => _.LimitKind == LimitKind.T2 && _.CurrentBalance > 0); if (depoLimit != null) { Console.WriteLine("Открыта позиция по сбербанку."); } }
private void Events_OnDepoLimit(DepoLimitEx dLimit) { if (dLimit.LimitKindInt == 0) { Log("Изменилась позиция по бумагам: " + dLimit.SecCode + " " + dLimit.CurrentBalance); } if (dLimit.SecCode == secCode && dLimit.LimitKindInt == 0) // T0 { _dep.CurrentBalance = dLimit.CurrentBalance; _dep.AweragePositionPrice = dLimit.AweragePositionPrice; } //this.Dispatcher.Invoke(() => //{ // DepoGrid.Items.Refresh(); //}); }
/// <summary> /// Конструктор класса /// </summary> public Portfolio(Tool _tool, DepoLimitEx _depo) { if (_tool != null && _depo != null) { name = _tool.Name; securityCode = _tool.SecurityCode; classCode = _tool.ClassCode; toolQty = _depo.CurrentBalance; AweragePositionPrice = _depo.AweragePositionPrice; currentCoupon = _tool.CouponPercent; sellACY = 0; currACY = 0; bid = 0; lastPrice = _tool.LastPrice; } }
public void GetDepoLimitsTest() { Quik quik = new Quik(); //Получаем информацию по всем лимитам со всех доступных счетов. List <DepoLimitEx> depoLimits = quik.Trading.GetDepoLimits().Result; Console.WriteLine(depoLimits.Count); //Получаем информацию по лимитам инструмента "Сбербанк" depoLimits = quik.Trading.GetDepoLimits("SBER").Result; Console.WriteLine(depoLimits.Count); DepoLimitEx depoLimit = depoLimits.SingleOrDefault(_ => _.LimitKind == LimitKind.T2); if (depoLimit != null) { Console.WriteLine("Открыта позиция по сбербанку."); } }
public void OnDepoLimit(DepoLimitEx dLimit) { DepoLimit?.Invoke(_quik, dLimit); }