Exemple #1
0
        private void On_SubscribeReceived(NetMQMessage message)
        {
            int count = message.FrameCount;

            if (count < 3)
            {
                return;
            }

            string accountNo = message.Pop().ConvertToString();
            var    msgHeader = message.Pop().ToByteArray();
            var    payload   = message.Pop();

            ReportHeader header = ReportHeader.Parser.ParseFrom(msgHeader);

            if (header.ApiId == ID_STOCK_PLACE_REPORT)
            {
                PlacedReport report = PlacedReport.Parser.ParseFrom(payload.ToByteArray());
                PlaceReportReceived?.Invoke(accountNo, header, report);
            }
            else if (header.ApiId == ID_STOCK_FILL_REPORT)
            {
                FillReport report = FillReport.Parser.ParseFrom(payload.ToByteArray());
                FillReportReceived?.Invoke(accountNo, header, report);
            }
            else if (header.ApiId == ID_STOCK_CANCEL_REPORT)
            {
                CancellationReport report = CancellationReport.Parser.ParseFrom(payload.ToByteArray());
                CancelReportReceived?.Invoke(accountNo, header, report);
            }
        }
Exemple #2
0
        private void On_PlaceReportReceived(string accountNo, ReportHeader header, PlacedReport report)
        {
            string log = string.Format("{0} 账号:{1} {2} 券:{3} 数量:{4,6} 价格:{5,8}. 单号:{6,10}, 原号:{7,10}. {8}",
                                       report.Status, report.AccountNo, report.OrderSide, report.Code, report.Quantity, report.Price,
                                       report.OrderExchangeId, report.OrderOriginalId, header.Message
                                       );

            BeginInvoke(new MethodInvoker(() => { WriteReport(log); }));
            WriteTiming(report.OrderOriginalId);
        }
Exemple #3
0
 private void On_Trade_Place(string accountNo, ReportHeader header, PlacedReport report)
 {
     BeginInvoke(new MethodInvoker(() =>
     {
         TradeMessage.Text =
             string.Format("{0} {1} {2} {3} {4} {5}",
                           report.Status,
                           report.OrderSide,
                           report.Code,
                           report.Quantity,
                           report.Price,
                           header.Message);
     }));
 }