MarketEmulator

StockSharp.Algo.Testing.Emulation

市场模拟器 v2 有模块化架构. 包接 MatchingEngineAdapter 并添加了模拟特定逻辑(随机量,勾选/L1 订单转换,蜡烛匹配,佣金,价格限制).

继承自: BaseLogReceiver

实现: IMarketEmulator, IMessageTransport, ILogSource, IDisposable

构造函数

MarketEmulator
public MarketEmulator(ISecurityProvider securityProvider, IPortfolioProvider portfolioProvider, IExchangeInfoProvider exchangeInfoProvider, IdGenerator transactionIdGenerator)
marketEmulator = MarketEmulator(securityProvider, portfolioProvider, exchangeInfoProvider, transactionIdGenerator)

初始化一个新实例。

属性

CurrentTime
public override DateTime CurrentTime { get; }
value = marketEmulator.CurrentTime

目前为协调世界时时间.

ExchangeInfoProvider
public IExchangeInfoProvider ExchangeInfoProvider { get; }
value = marketEmulator.ExchangeInfoProvider

交易所和交易委员会供应商。

OrderIdGenerator
public IncrementalIdGenerator OrderIdGenerator { get; set; }
value = marketEmulator.OrderIdGenerator
marketEmulator.OrderIdGenerator = value

点出身份证的发电机

PortfolioManager
public EmulatedPortfolioManager PortfolioManager { get; }
value = marketEmulator.PortfolioManager

处理组合状态的组合管理器 。

PortfolioProvider
public IPortfolioProvider PortfolioProvider { get; }
value = marketEmulator.PortfolioProvider

用于注册命令的组合。 如果未给出值, 将创建默认名称模拟器的组合 。

PossibleSupportedMessages
public IEnumerable<MessageTypeInfo> PossibleSupportedMessages { get; }
value = marketEmulator.PossibleSupportedMessages

可能支持的信息类型 。

ProcessedMessageCount
public long ProcessedMessageCount { get; private set; }
value = marketEmulator.ProcessedMessageCount
marketEmulator.ProcessedMessageCount = value

已处理信件计数 。

RandomProvider
public IEmulationRandomizer RandomProvider { get; set; }
value = marketEmulator.RandomProvider
marketEmulator.RandomProvider = value

Where anything in the strategy that draws at random takes its draws from.

SecurityProvider
public ISecurityProvider SecurityProvider { get; }
value = marketEmulator.SecurityProvider

提供各种文书的信息。

Settings
public MarketEmulatorSettings Settings { get; }
value = marketEmulator.Settings

模拟器设置.

TradeIdGenerator
public IncrementalIdGenerator TradeIdGenerator { get; set; }
value = marketEmulator.TradeIdGenerator
marketEmulator.TradeIdGenerator = value

交易身份证生成器。

TransactionIdGenerator
public IdGenerator TransactionIdGenerator { get; }
value = marketEmulator.TransactionIdGenerator

交易ID生成器。

VerifyMode
public bool VerifyMode { get; set; }
value = marketEmulator.VerifyMode
marketEmulator.VerifyMode = value

扩展验证模式 。

方法

ApplyCommissionsAsync
private ValueTask ApplyCommissionsAsync(List<Message> messages, CancellationToken cancellationToken)
result = marketEmulator.ApplyCommissionsAsync(messages, cancellationToken)

Price every trade in this batch. Called once, where the batch leaves the emulator.

CheckLimitOrders
private void CheckLimitOrders(SecurityId securityId, decimal? tradePrice, DateTime time, List<Message> results)
marketEmulator.CheckLimitOrders(securityId, tradePrice, time, results)

Re-evaluate resting limit orders against the current order book and execute the ones the market has moved through. Unlike stop orders, limit orders are otherwise matched only at registration time, so a tick/quote trading through a resting limit would leave it sitting in the book and later fill at a price the market has left behind.

GetSecurityState
public SecurityState GetSecurityState(SecurityId securityId)
result = marketEmulator.GetSecurityState(securityId)

State the emulation keeps for one security: its book, its orders and its definition.

securityId
Security to read.

返回值: The state.

ReleaseStoredCandles
private void ReleaseStoredCandles(DateTime time, List<Message> results)
marketEmulator.ReleaseStoredCandles(time, results)

Hand over every bar still held whose close falls no later than , each at its own close and in order.

ReplayCandle
private void ReplayCandle(SecurityId securityId, SecurityEmulator emulator, CandleMessage candle, DateTime time, List<Message> results)
marketEmulator.ReplayCandle(securityId, emulator, candle, time, results)

Replay a closed candle as the prices it recorded, in the order it recorded them.

SendOutMessageAsync
public ValueTask SendOutMessageAsync(Message message, CancellationToken cancellationToken)
result = marketEmulator.SendOutMessageAsync(message, cancellationToken)

发出消息。

事件

NewOutMessageAsync
public event Func<Message, CancellationToken, ValueTask> NewOutMessageAsync
marketEmulator.NewOutMessageAsync += handler

新消息事件 。