public Task SendTradeCaptureRequest(DateTime startDateTime, DateTime endDateTime, Action <string> progressHandler)
        {
            return(Task.Run(() =>
            {
                TradeCaptureReportRequest request = new TradeCaptureReportRequest();
                string requestId = DateTime.UtcNow.ToString("yyMMddHHmmssfff");
                request.TradeRequestID = new TradeRequestID(requestId);
                request.TradeRequestType = new TradeRequestType(TradeRequestType.MATCHED_TRADES_MATCHING_CRITERIA_PROVIDED_ON_REQUEST);
                request.NoDates = new NoDates(2);

                var noDatesGroup = new TradeCaptureReportRequest.NoDatesGroup();
                noDatesGroup.TransactTime = new TransactTime(startDateTime);
                request.AddGroup(noDatesGroup);

                noDatesGroup = new TradeCaptureReportRequest.NoDatesGroup();
                noDatesGroup.TransactTime = new TransactTime(endDateTime);
                request.AddGroup(noDatesGroup);

                Session.SendToTarget(request, _currentSessionId);
            }));
        }
Esempio n. 2
0
        /// <inheritdoc />
        public async Task GetTradeHistoryAsync(ulong account, string symbol = null, DateTime?from = null, DateTime?to = null, string requestId = "")
        {
            var request = new TradeCaptureReportRequest
            {
                MsgType        = MsgTypes.TradeCaptureReportRequest,
                Account        = account,
                TradeRequestID = requestId.Proto(),
                Symbol         = symbol.Proto(),
            };

            if (from.HasValue)
            {
                request.TransactTime.Add(from.Value.ToUnixNano());
            }
            if (to.HasValue)
            {
                if (!from.HasValue)
                {
                    throw new ArgumentNullException(nameof(from), "Option From is required");
                }
                request.TransactTime.Add(to.Value.ToUnixNano());
            }
            await SendCommandAsync(request).ConfigureAwait(false);
        }
Esempio n. 3
0
 public virtual void onMessage(TradeCaptureReportRequest message, QuickFix.SessionID session)
 {
     throw new QuickFix.UnsupportedMessageType();
 }