MarketEmulator
Market emulator v2 with modular architecture. Wraps MatchingEngineAdapter and adds emulation-specific logic (random volumes, tick/L1→orderbook conversion, candle matching, commissions, price limits).
Inherits: BaseLogReceiver
Implements: IMarketEmulator, IMessageTransport, ILogSource, IDisposable
Constructors
public MarketEmulator(ISecurityProvider securityProvider, IPortfolioProvider portfolioProvider, IExchangeInfoProvider exchangeInfoProvider, IdGenerator transactionIdGenerator)
marketEmulator = MarketEmulator(securityProvider, portfolioProvider, exchangeInfoProvider, transactionIdGenerator)
Initializes a new instance.
Properties
public override DateTime CurrentTime { get; }
value = marketEmulator.CurrentTime
Current UTC time.
public IExchangeInfoProvider ExchangeInfoProvider { get; }
value = marketEmulator.ExchangeInfoProvider
Exchanges and trading boards provider.
public IncrementalIdGenerator OrderIdGenerator { get; set; }
value = marketEmulator.OrderIdGenerator
marketEmulator.OrderIdGenerator = value
Order ID generator.
public IPortfolioManager PortfolioManager { get; set; }
value = marketEmulator.PortfolioManager
marketEmulator.PortfolioManager = value
Portfolio manager for handling portfolio state.
public IPortfolioProvider PortfolioProvider { get; }
value = marketEmulator.PortfolioProvider
The portfolio to be used to register orders. If value is not given, the portfolio with default name Simulator will be created.
public IEnumerable<MessageTypeInfo> PossibleSupportedMessages { get; }
value = marketEmulator.PossibleSupportedMessages
Possible supported message types.
public long ProcessedMessageCount { get; private set; }
value = marketEmulator.ProcessedMessageCount
marketEmulator.ProcessedMessageCount = value
Processed message count.
public IRandomProvider RandomProvider { get; set; }
value = marketEmulator.RandomProvider
marketEmulator.RandomProvider = value
public ISecurityProvider SecurityProvider { get; }
value = marketEmulator.SecurityProvider
The provider of information about instruments.
public MarketEmulatorSettings Settings { get; }
value = marketEmulator.Settings
Emulator settings.
public IncrementalIdGenerator TradeIdGenerator { get; set; }
value = marketEmulator.TradeIdGenerator
marketEmulator.TradeIdGenerator = value
Trade ID generator.
public IdGenerator TransactionIdGenerator { get; }
value = marketEmulator.TransactionIdGenerator
Transaction id generator.
public bool VerifyMode { get; set; }
value = marketEmulator.VerifyMode
marketEmulator.VerifyMode = value
Extended verification mode.
Methods
private static MatchResult MatchOrderByCandle(EmulatorOrder order, CandleMessage candle)
result = MarketEmulator.MatchOrderByCandle(order, candle)
Match order against candle data directly.
public ValueTask SendOutMessageAsync(Message message, CancellationToken cancellationToken)
result = marketEmulator.SendOutMessageAsync(message, cancellationToken)
Send out message.
Events
public event Func<Message, CancellationToken, ValueTask> NewOutMessageAsync
marketEmulator.NewOutMessageAsync += handler
New message event.