Short question. Do I understand it correctly that EmitExecutionReport is a part of the UserProvider and was introduced relatively recently? Below is a disassembly of UserProvider that I use.
Code:
#region Assembly OpenQuant.API, Version=1.0.4700.23555, Culture=neutral, PublicKeyToken=null
// C:\Program Files\SmartQuant Ltd\OpenQuant\Bin\OpenQuant.API.dll
#endregion
using System;
namespace OpenQuant.API.Plugins
{
public class UserProvider
{
protected byte id;
protected string name;
protected string description;
protected string url;
protected bool isConnected;
protected UserProvider();
protected virtual bool IsConnected { get; }
protected virtual void Cancel(Order order);
protected virtual void CancelHistoricalData(HistoricalDataRequest request);
protected virtual void Connect();
protected virtual void Disconnect();
protected void EmitAccepted(Order order);
protected void EmitCancelled(Order order);
protected void EmitCancelReject(Order order, OrderStatus status, string message);
protected void EmitConnected();
protected void EmitDisconnected();
protected void EmitError(string message);
protected void EmitError(int id, int code, string message);
protected void EmitFilled(Order order, double price, int quantity, CommissionType commissionType, double commission);
protected void EmitFilled(Order order, double price, int quantity);
protected void EmitHistoricalDataCancelled(HistoricalDataRequest request);
protected void EmitHistoricalDataCompleted(HistoricalDataRequest request);
protected void EmitHistoricalDataError(HistoricalDataRequest request, string message);
protected void EmitNewBar(Instrument instrument, BarType barType, long barSize, DateTime beginDateTime, DateTime endDateTime, double open, double high, double low, double close, long volume);
protected void EmitNewBarOpen(Instrument instrument, BarType barType, long barSize, DateTime beginDateTime, DateTime endDateTime, double open, double high, double low, double close, long volume);
protected void EmitNewBarSlice(long barSize);
protected void EmitNewHistoricalBar(HistoricalDataRequest request, DateTime datetime, double open, double high, double low, double close, long volume);
protected void EmitNewHistoricalQuote(HistoricalDataRequest request, DateTime datetime, double bid, int bidSize, double ask, int askSize);
protected void EmitNewHistoricalTrade(HistoricalDataRequest request, DateTime datetime, double price, int size);
protected void EmitNewOrderBookUpdate(Instrument instrument, DateTime time, BidAsk side, OrderBookAction action, double price, int size, int position);
protected void EmitNewQuote(Instrument instrument, DateTime time, double bid, int bidSize, double ask, int askSize);
protected void EmitNewQuote(Instrument instrument, DateTime time, byte providerId, double bid, int bidSize, double ask, int askSize);
protected void EmitNewTrade(Instrument instrument, DateTime time, byte providerId, double price, int size);
protected void EmitNewTrade(Instrument instrument, DateTime time, double price, int size);
protected void EmitPendingCancel(Order order);
protected void EmitPendingReplace(Order order);
protected void EmitRejected(Order order, string message);
protected void EmitReplaced(Order order);
protected void EmitReplaceReject(Order order, OrderStatus status, string message);
protected virtual BrokerInfo GetBrokerInfo();
[Obsolete("Use Replace(Order,double,double,double) method.", false)]
protected virtual void Replace(Order order);
protected virtual void Replace(Order order, double newQty, double newPrice, double newStopPrice);
protected virtual void RequestHistoricalData(HistoricalDataRequest request);
protected virtual void Send(Order order);
protected virtual void Shutdown();
protected virtual void Subscribe(Instrument instrument);
protected virtual void Unsubscribe(Instrument instrument);
}
}