EmulatedPortfolio
Эмулируемая реализация портфеля, которая отслеживает позиции и деньги в памяти.
Реализует: IPortfolio
Конструкторы
public EmulatedPortfolio(string name)
emulatedPortfolio = EmulatedPortfolio(name)
Инициализирует новый экземпляр.
- name
- Название портфолио.
Свойства
public decimal AvailableMoney { get; }
value = emulatedPortfolio.AvailableMoney
Доступные деньги (текущие - заблокированы).
public decimal BeginMoney { get; }
value = emulatedPortfolio.BeginMoney
Первоначальная сумма денег.
public decimal BlockedMoney { get; }
value = emulatedPortfolio.BlockedMoney
Заблокированы деньги для отложенных заказов.
public decimal CurrentMoney { get; }
value = emulatedPortfolio.CurrentMoney
Текущие деньги (начните с + PnL).
public bool EnableStopOut { get; set; }
value = emulatedPortfolio.EnableStopOut
emulatedPortfolio.EnableStopOut = value
Включите автоматическую ликвидацию положения на остановке.
public decimal MarginCallLevel { get; set; }
value = emulatedPortfolio.MarginCallLevel
emulatedPortfolio.MarginCallLevel = value
Когда уровень маржи падает до этого значения, срабатывает предупреждение.
public decimal RealizedPnL { get; }
value = emulatedPortfolio.RealizedPnL
Стоимость реализованной прибыли-убытка.
public decimal StopOutLevel { get; set; }
value = emulatedPortfolio.StopOutLevel
emulatedPortfolio.StopOutLevel = value
Порог уровня стоп-аута. Когда уровень маржи падает до этого значения, позиции ликвидируются.
public decimal TotalPnL { get; }
value = emulatedPortfolio.TotalPnL
Total PnL (реализовано - комиссия).
Методы
public decimal CalculateUnrealizedPnL(Func<SecurityId, decimal?> getCurrentPrice)
result = emulatedPortfolio.CalculateUnrealizedPnL(getCurrentPrice)
Рассчитайте нереализованную PnL по всем позициям.
- getCurrentPrice
- Функция получения текущей рыночной цены финансового инструмента. Возвращает ноль, если цена недоступна.
Возвращает: Всего нереализованных PnL.
internal void Clear()
emulatedPortfolio.Clear()
Очистить все состояние (используется при сбросе).
public IEnumerable<PositionInfo> GetAllPositions()
result = emulatedPortfolio.GetAllPositions()
Получить все объекты информации о позиции.
public PositionInfo GetPosition(SecurityId securityId)
result = emulatedPortfolio.GetPosition(securityId)
Получить позицию по финансовому инструменту.
- securityId
- идентификатор финансового инструмента.
Возвращает: Информация о позиции или ноль.
public IEnumerable<ValueTuple<SecurityId, decimal, decimal>> GetPositions()
result = emulatedPortfolio.GetPositions()
Получите все позиции.
Возвращает: Перечень должностей.
public void ProcessOrderCancellation(SecurityId securityId, Sides side, decimal volume, decimal price)
emulatedPortfolio.ProcessOrderCancellation(securityId, side, volume, price)
Обработать отмену заказа (разблокировать средства).
- securityId
- идентификатор финансового инструмента.
- side
- Сторона заказа.
- volume
- Отмененный том.
- price
- Цена, используемая для расчета маржи.
public void ProcessOrderRegistration(SecurityId securityId, Sides side, decimal volume, decimal price)
emulatedPortfolio.ProcessOrderRegistration(securityId, side, volume, price)
Оформить регистрацию заказа (блокировать средства).
- securityId
- идентификатор финансового инструмента.
- side
- Сторона заказа.
- volume
- Объем заказа.
- price
- Цена ордера для расчета маржи.
public TradeProcessingResult ProcessTrade(SecurityId securityId, Sides side, decimal price, decimal volume, decimal? commission)
result = emulatedPortfolio.ProcessTrade(securityId, side, price, volume, commission)
Обработка исполнения сделки.
- securityId
- идентификатор финансового инструмента.
- side
- Торговая сторона.
- price
- Торговая цена.
- volume
- Объем торговли.
- commission
- Сумма комиссии.
Возвращает: Результат обработки сделки.
public void SetMoney(decimal money)
emulatedPortfolio.SetMoney(money)
Установите первоначальные деньги.
- money
- Сумма денег.
public void SetPosition(SecurityId securityId, decimal volume, decimal avgPrice)
emulatedPortfolio.SetPosition(securityId, volume, avgPrice)
Установите исходное положение.
- securityId
- идентификатор финансового инструмента.
- volume
- Объем позиции.
- avgPrice
- Средняя цена входа.