EmulatedPortfolio
Implementación de carteras que rastrea posiciones y dinero en memoria.
Implementa: IPortfolio
Constructores
public EmulatedPortfolio(string name)
emulatedPortfolio = EmulatedPortfolio(name)
Inicia una nueva instancia.
- name
- Nombre de cartera.
Propiedades
public decimal AvailableMoney { get; }
value = emulatedPortfolio.AvailableMoney
Dinero disponible (corriente - bloqueado).
public decimal BeginMoney { get; }
value = emulatedPortfolio.BeginMoney
Cantidad inicial de dinero.
public decimal BlockedMoney { get; }
value = emulatedPortfolio.BlockedMoney
Bloqueado dinero para órdenes pendientes.
public decimal CurrentMoney { get; }
value = emulatedPortfolio.CurrentMoney
Dinero actual (comienzo + PnL).
public bool EnableStopOut { get; set; }
value = emulatedPortfolio.EnableStopOut
emulatedPortfolio.EnableStopOut = value
Permite la liquidación automática de posición en el paro.
public decimal MarginCallLevel { get; set; }
value = emulatedPortfolio.MarginCallLevel
emulatedPortfolio.MarginCallLevel = value
Al nivel de nivel de llamadas marginales, cuando el nivel de margen cae a este valor, se activa una advertencia.
public decimal RealizedPnL { get; }
value = emulatedPortfolio.RealizedPnL
El valor de la pérdida de ganancias realizada.
public decimal StopOutLevel { get; set; }
value = emulatedPortfolio.StopOutLevel
emulatedPortfolio.StopOutLevel = value
umbral de nivel de parada. Cuando el nivel de margen cae a este valor, las posiciones se liquidan.
public decimal TotalPnL { get; }
value = emulatedPortfolio.TotalPnL
Total PnL@ (realizado - comisión).
Métodos
public decimal CalculateUnrealizedPnL(Func<SecurityId, decimal?> getCurrentPrice)
result = emulatedPortfolio.CalculateUnrealizedPnL(getCurrentPrice)
Calcular no realizado PnL en todas las posiciones.
- getCurrentPrice
- Función para obtener el precio actual del mercado para un instrumento financiero. Devuelve null si el precio no está disponible.
Devuelve: Total no realizado PnL.
internal void Clear()
emulatedPortfolio.Clear()
Despejar todo el estado (utilizado por Reset).
public IEnumerable<PositionInfo> GetAllPositions()
result = emulatedPortfolio.GetAllPositions()
Obtener todos los objetos de información de posición.
public PositionInfo GetPosition(SecurityId securityId)
result = emulatedPortfolio.GetPosition(securityId)
Posición para instrumentos financieros.
- securityId
- identificación de instrumentos financieros.
Devuelve: Posición info o nula.
public IEnumerable<ValueTuple<SecurityId, decimal, decimal>> GetPositions()
result = emulatedPortfolio.GetPositions()
Pongan todas las posiciones.
Devuelve: Enumeración de posiciones.
public void ProcessOrderCancellation(SecurityId securityId, Sides side, decimal volume, decimal price)
emulatedPortfolio.ProcessOrderCancellation(securityId, side, volume, price)
Cancelación de pedidos de procesos (fondos de desbloqueo).
- securityId
- identificación de instrumentos financieros.
- side
- Ordene el lado.
- volume
- Volumen cancelado.
- price
- Precio utilizado para cálculo del margen.
public void ProcessOrderRegistration(SecurityId securityId, Sides side, decimal volume, decimal price)
emulatedPortfolio.ProcessOrderRegistration(securityId, side, volume, price)
Registro de pedidos de procesos (bloquear fondos).
- securityId
- identificación de instrumentos financieros.
- side
- Ordene el lado.
- volume
- Volumen de pedido.
- price
- Precio del pedido para el cálculo del margen.
public TradeProcessingResult ProcessTrade(SecurityId securityId, Sides side, decimal price, decimal volume, decimal? commission)
result = emulatedPortfolio.ProcessTrade(securityId, side, price, volume, commission)
Procesar una ejecución comercial.
- securityId
- identificación de instrumentos financieros.
- side
- Trade side.
- price
- Precio comercial.
- volume
- Volumen comercial.
- commission
- Cantidad de la Comisión.
Devuelve: Resultado de procesamiento comercial.
public void SetMoney(decimal money)
emulatedPortfolio.SetMoney(money)
Establece el dinero inicial.
- money
- Dinero.
public void SetPosition(SecurityId securityId, decimal volume, decimal avgPrice)
emulatedPortfolio.SetPosition(securityId, volume, avgPrice)
Establecer la posición inicial.
- securityId
- identificación de instrumentos financieros.
- volume
- Volumen de posición.
- avgPrice
- Precio medio de entrada.