Example #1
0
    protected void OnOrderStatus(int orderId, IBOrderStatusReport status)
    {
      if (OrderStatus != null)
        OrderStatus(this, new TWSOrderStatusEventArgs(this) {
          Status = status,
        });

      if (OrderChanged != null) {
        OrderRecord or;
        if (_orderRecords.TryGetValue(orderId, out or)) {
          OrderChanged(this, new TWSOrderChangedEventArgs(this, or) {
            ChangeType = IBOrderChangeType.OrderStatus,
            Status = status,
          });
        }
      }
    }
Example #2
0
    private void ProcessOrderStatus()
    {
      var version = _enc.DecodeInt();
      var orderId = _enc.DecodeInt();
      var status = _enc.DecodeEnum<IBOrderStatus>();
      var filled = _enc.DecodeInt();
      var remaining = _enc.DecodeInt();
      var avgFillPrice = _enc.DecodeDouble();

      var permId = (version >= 2) ? _enc.DecodeInt() : 0;
      var parentId = (version >= 3) ? _enc.DecodeInt() : 0;
      var lastFillPrice = (version >= 4) ? _enc.DecodeDouble() : 0;
      var clientId = (version >= 5) ? _enc.DecodeInt() : 0;
      var whyHeld = (version >= 6) ? _enc.DecodeString() : null;

      var newStatus = new IBOrderStatusReport {
        OrderId = orderId,
        Status = status,
        Filled = filled,
        Remaining = remaining,
        AvgFillPrice = avgFillPrice,
        PermId = permId,
        ParentId = parentId,
        LastFillPrice = lastFillPrice,
        ClientId = clientId,
        WhyHeld = whyHeld
      };

      OnOrderStatus(orderId, newStatus);
    }