EmulatedPortfolio
Implementação de portfólio emulado que rastreia posições e dinheiro em memória.
Implementa: IPortfolio
Construtores
public EmulatedPortfolio(string name)
emulatedPortfolio = EmulatedPortfolio(name)
Inicializa uma nova instância.
- name
- Nome da pasta.
Propriedades
public decimal AvailableMoney { get; }
value = emulatedPortfolio.AvailableMoney
Dinheiro disponível (atual - bloqueado).
public decimal BeginMoney { get; }
value = emulatedPortfolio.BeginMoney
Montante inicial do dinheiro.
public decimal BlockedMoney { get; }
value = emulatedPortfolio.BlockedMoney
Bloqueou dinheiro para ordens pendentes.
public decimal Commission { get; }
value = emulatedPortfolio.Commission
- Uma comissão total.
public decimal CurrentMoney { get; }
value = emulatedPortfolio.CurrentMoney
Dinheiro atual (começar + PnL).
public bool EnableStopOut { get; set; }
value = emulatedPortfolio.EnableStopOut
emulatedPortfolio.EnableStopOut = value
Activar a liquidação automática da posição ao parar.
public decimal MarginCallLevel { get; set; }
value = emulatedPortfolio.MarginCallLevel
emulatedPortfolio.MarginCallLevel = value
Limite de nível de chamada de margem. Quando o nível de margem cai para este valor, é disparado um aviso.
public decimal RealizedPnL { get; }
value = emulatedPortfolio.RealizedPnL
O valor da perda de lucro realizada.
public decimal StopOutLevel { get; set; }
value = emulatedPortfolio.StopOutLevel
emulatedPortfolio.StopOutLevel = value
Limite de nível de parada. Quando o nível de margem cai para este valor, as posições são liquidadas.
public decimal TotalPnL { get; }
value = emulatedPortfolio.TotalPnL
Total PnL (realizado - comissão).
Métodos
public decimal CalculateUnrealizedPnL(Func<SecurityId, decimal?> getCurrentPrice)
result = emulatedPortfolio.CalculateUnrealizedPnL(getCurrentPrice)
Calcular não-realizado PnL@ em todas as posições.
- getCurrentPrice
- Função para obter o preço de mercado atual para um instrumento financeiro. Retorna nulo se o preço não estiver disponível.
Retorna: Total não realizado PnL.
internal void Clear()
emulatedPortfolio.Clear()
Limpar todo o estado (utilizado por Reiniciar).
public IEnumerable<PositionInfo> GetAllPositions()
result = emulatedPortfolio.GetAllPositions()
Obter todos os objectos de informação de posição.
public PositionInfo GetPosition(SecurityId securityId)
result = emulatedPortfolio.GetPosition(securityId)
Obter posição para instrumento financeiro.
- securityId
- ID do instrumento financeiro.
Retorna: Informação da posição ou nula.
public IEnumerable<ValueTuple<SecurityId, decimal, decimal>> GetPositions()
result = emulatedPortfolio.GetPositions()
Todas as posições.
Retorna: Eleminação de posições.
public void ProcessOrderCancellation(SecurityId securityId, Sides side, decimal volume, decimal price)
emulatedPortfolio.ProcessOrderCancellation(securityId, side, volume, price)
Cancelamento de ordem de processo (fundos desbloqueados).
- securityId
- ID do instrumento financeiro.
- side
- Ordem.
- volume
- Volume cancelado.
- price
- Preço utilizado para cálculo da margem.
public void ProcessOrderRegistration(SecurityId securityId, Sides side, decimal volume, decimal price)
emulatedPortfolio.ProcessOrderRegistration(securityId, side, volume, price)
Registro de ordem de processo (bloquear fundos).
- securityId
- ID do instrumento financeiro.
- side
- Ordem.
- volume
- Volume de encomenda.
- price
- Preço de encomenda para cálculo da margem.
public TradeProcessingResult ProcessTrade(SecurityId securityId, Sides side, decimal price, decimal volume, decimal? commission)
result = emulatedPortfolio.ProcessTrade(securityId, side, price, volume, commission)
Processar uma execução comercial.
- securityId
- ID do instrumento financeiro.
- side
- Trocar lado.
- price
- Preço de troca.
- volume
- Volume de comércio.
- commission
- Montante da Comissão.
Retorna: Resultado do processamento comercial.
public void SetMoney(decimal money)
emulatedPortfolio.SetMoney(money)
Definir o dinheiro inicial.
- money
- Dinheiro.
public void SetPosition(SecurityId securityId, decimal volume, decimal avgPrice)
emulatedPortfolio.SetPosition(securityId, volume, avgPrice)
Defina a posição inicial.
- securityId
- ID do instrumento financeiro.
- volume
- Volume de posição.
- avgPrice
- Preço médio de entrada.