/// <summary>
 /// Initializes a new instance of the <see cref="MarketOrderTransaction" /> class.
 /// </summary>
 /// <param name="id">The Transaction&#39;s Identifier..</param>
 /// <param name="time">A date and time value using either RFC3339 or UNIX time representation. The RFC 3339 representation is a string conforming to https://tools.ietf.org/rfc/rfc3339.txt. The Unix representation is a string representing the number of seconds since the Unix Epoch (January 1st, 1970 at UTC). The value is a fractional number, where the fractional part represents a fraction of a second (up to nine decimal places)..</param>
 /// <param name="userID">The ID of the user that initiated the creation of the Transaction..</param>
 /// <param name="accountID">The Account&#39;s identifier.</param>
 /// <param name="batchID">The ID of the \&quot;batch\&quot; that the Transaction belongs to. Transactions in the same batch are applied to the Account simultaneously..</param>
 /// <param name="requestID">The Request ID of the request which generated the transaction..</param>
 /// <param name="type">type.</param>
 /// <param name="instrument">instrument.</param>
 /// <param name="units">The quantity requested to be filled by the Market Order. A posititive number of units results in a long Order, and a negative number of units results in a short Order..</param>
 /// <param name="timeInForce">timeInForce.</param>
 /// <param name="priceBound">The worst price that the client is willing to have the Market Order filled at..</param>
 /// <param name="positionFill">positionFill.</param>
 /// <param name="tradeClose">tradeClose.</param>
 /// <param name="longPositionCloseout">longPositionCloseout.</param>
 /// <param name="shortPositionCloseout">shortPositionCloseout.</param>
 /// <param name="marginCloseout">marginCloseout.</param>
 /// <param name="delayedTradeClose">delayedTradeClose.</param>
 /// <param name="reason">reason.</param>
 /// <param name="clientExtensions">clientExtensions.</param>
 /// <param name="takeProfitOnFill">takeProfitOnFill.</param>
 /// <param name="stopLossOnFill">stopLossOnFill.</param>
 /// <param name="trailingStopLossOnFill">trailingStopLossOnFill.</param>
 /// <param name="tradeClientExtensions">tradeClientExtensions.</param>
 public MarketOrderTransaction(int id = default(int), string time = default(string), int userID = default(int), string accountID = default(string), int batchID = default(int), string requestID = default(string), TransactionType?type = default(TransactionType?), InstrumentName?instrument = default(InstrumentName?), double units = default(double), MarketOrderTradeClose timeInForce = default(MarketOrderTradeClose), double priceBound = default(double), MarketOrderPositionFill?positionFill = default(MarketOrderPositionFill?), MarketOrderTradeClose tradeClose = default(MarketOrderTradeClose), MarketOrderPositionCloseout longPositionCloseout = default(MarketOrderPositionCloseout), MarketOrderPositionCloseout shortPositionCloseout = default(MarketOrderPositionCloseout), MarketOrderMarginCloseout marginCloseout = default(MarketOrderMarginCloseout), MarketOrderDelayedTradeClose delayedTradeClose = default(MarketOrderDelayedTradeClose), MarketOrderReason?reason = default(MarketOrderReason?), ClientExtensions clientExtensions = default(ClientExtensions), TakeProfitDetails takeProfitOnFill = default(TakeProfitDetails), StopLossDetails stopLossOnFill = default(StopLossDetails), TrailingStopLossDetails trailingStopLossOnFill = default(TrailingStopLossDetails), ClientExtensions tradeClientExtensions = default(ClientExtensions))
 {
     this.Id                     = id;
     this.Time                   = time;
     this.UserID                 = userID;
     this.AccountID              = accountID;
     this.BatchID                = batchID;
     this.RequestID              = requestID;
     this.Type                   = type;
     this.Instrument             = instrument;
     this.Units                  = units;
     this.TimeInForce            = timeInForce;
     this.PriceBound             = priceBound;
     this.PositionFill           = positionFill;
     this.TradeClose             = tradeClose;
     this.LongPositionCloseout   = longPositionCloseout;
     this.ShortPositionCloseout  = shortPositionCloseout;
     this.MarginCloseout         = marginCloseout;
     this.DelayedTradeClose      = delayedTradeClose;
     this.Reason                 = reason;
     this.ClientExtensions       = clientExtensions;
     this.TakeProfitOnFill       = takeProfitOnFill;
     this.StopLossOnFill         = stopLossOnFill;
     this.TrailingStopLossOnFill = trailingStopLossOnFill;
     this.TradeClientExtensions  = tradeClientExtensions;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="MarketOrder" /> class.
 /// </summary>
 /// <param name="instrument">instrument.</param>
 /// <param name="units">The quantity requested to be filled by the Market Order. A posititive number of units results in a long Order, and a negative number of units results in a short Order..</param>
 /// <param name="timeInForce">timeInForce.</param>
 /// <param name="priceBound">The worst price that the client is willing to have the Market Order filled at..</param>
 /// <param name="positionFill">positionFill.</param>
 /// <param name="tradeClose">tradeClose.</param>
 /// <param name="longPositionCloseout">longPositionCloseout.</param>
 /// <param name="shortPositionCloseout">shortPositionCloseout.</param>
 /// <param name="marginCloseout">marginCloseout.</param>
 /// <param name="delayedTradeClose">delayedTradeClose.</param>
 /// <param name="reason">reason.</param>
 /// <param name="clientExtensions">clientExtensions.</param>
 /// <param name="takeProfitOnFill">takeProfitOnFill.</param>
 /// <param name="stopLossOnFill">stopLossOnFill.</param>
 /// <param name="trailingStopLossOnFill">trailingStopLossOnFill.</param>
 /// <param name="tradeClientExtensions">tradeClientExtensions.</param>
 public MarketOrder(InstrumentName?instrument = default(InstrumentName?), double units = default(double), MarketOrderTradeClose timeInForce = default(MarketOrderTradeClose), double priceBound = default(double), MarketOrderPositionFill?positionFill = default(MarketOrderPositionFill?), MarketOrderTradeClose tradeClose = default(MarketOrderTradeClose), MarketOrderPositionCloseout longPositionCloseout = default(MarketOrderPositionCloseout), MarketOrderPositionCloseout shortPositionCloseout = default(MarketOrderPositionCloseout), MarketOrderMarginCloseout marginCloseout = default(MarketOrderMarginCloseout), MarketOrderDelayedTradeClose delayedTradeClose = default(MarketOrderDelayedTradeClose), MarketOrderReason?reason = default(MarketOrderReason?), ClientExtensions clientExtensions = default(ClientExtensions), TakeProfitDetails takeProfitOnFill = default(TakeProfitDetails), StopLossDetails stopLossOnFill = default(StopLossDetails), TrailingStopLossDetails trailingStopLossOnFill = default(TrailingStopLossDetails), ClientExtensions tradeClientExtensions = default(ClientExtensions))
 {
     this.Instrument             = instrument;
     this.Units                  = units;
     this.TimeInForce            = timeInForce;
     this.PriceBound             = priceBound;
     this.PositionFill           = positionFill;
     this.TradeClose             = tradeClose;
     this.LongPositionCloseout   = longPositionCloseout;
     this.ShortPositionCloseout  = shortPositionCloseout;
     this.MarginCloseout         = marginCloseout;
     this.DelayedTradeClose      = delayedTradeClose;
     this.Reason                 = reason;
     this.ClientExtensions       = clientExtensions;
     this.TakeProfitOnFill       = takeProfitOnFill;
     this.StopLossOnFill         = stopLossOnFill;
     this.TrailingStopLossOnFill = trailingStopLossOnFill;
     this.TradeClientExtensions  = tradeClientExtensions;
 }