Ejemplo n.º 1
0
 public StopLossOrder(OrderID id, DateTime createTime, OrderState state, ClientExtensions clientExtensions, OrderType type, double guaranteedExecutionPremium, TradeID tradeID, ClientID clientTradeID, PriceValue price, double distance, TimeInForce timeInForce, DateTime gtdTime, OrderTriggerCondition triggerCondition, bool guaranteed, TransactionID fillingTransactionID, DateTime filledTime, TradeID tradeOpenedID, TradeID tradeReducedID, List <TradeID> tradeClosedIDs, TransactionID cancellingTransactionID, DateTime cancelledTime, OrderID replacesOrderID, OrderID replacedByOrderID)
 {
     this.Id                         = id;
     this.CreateTime                 = createTime;
     this.State                      = state;
     this.ClientExtensions           = clientExtensions;
     this.Type                       = type;
     this.GuaranteedExecutionPremium = guaranteedExecutionPremium;
     this.TradeID                    = tradeID;
     this.ClientTradeID              = clientTradeID;
     this.Price                      = price;
     this.Distance                   = distance;
     this.TimeInForce                = timeInForce;
     this.GtdTime                    = gtdTime;
     this.TriggerCondition           = triggerCondition;
     this.Guaranteed                 = guaranteed;
     this.FillingTransactionID       = fillingTransactionID;
     this.FilledTime                 = filledTime;
     this.TradeOpenedID              = tradeOpenedID;
     this.TradeReducedID             = tradeReducedID;
     this.TradeClosedIDs             = tradeClosedIDs;
     this.CancellingTransactionID    = cancellingTransactionID;
     this.CancelledTime              = cancelledTime;
     this.ReplacesOrderID            = replacesOrderID;
     this.ReplacedByOrderID          = replacedByOrderID;
 }
Ejemplo n.º 2
0
 public StopOrderTransaction(TransactionID id, DateTime time, int userID, AccountID accountID, TransactionID batchID, RequestID requestID, TransactionType type, InstrumentName instrument, double units, PriceValue price, PriceValue priceBound, TimeInForce timeInForce, DateTime gTDTime, OrderPositionFill positionFill, OrderTriggerCondition triggerCondition, StopOrderReason reason, ClientExtensions clientExtensions, TakeProfitDetails takeProfitOnFill, StopLossDetails stopLossOnFill, TrailingStopLossDetails trailingStopLossOnFill, ClientExtensions tradeClientExtensions, OrderID replacesOrderID, TransactionID cancellingTransactionID)
 {
     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.Price                   = price;
     this.PriceBound              = priceBound;
     this.TimeInForce             = timeInForce;
     this.GTDTime                 = gTDTime;
     this.PositionFill            = positionFill;
     this.TriggerCondition        = triggerCondition;
     this.Reason                  = reason;
     this.ClientExtensions        = clientExtensions;
     this.TakeProfitOnFill        = takeProfitOnFill;
     this.StopLossOnFill          = stopLossOnFill;
     this.TrailingStopLossOnFill  = trailingStopLossOnFill;
     this.TradeClientExtensions   = tradeClientExtensions;
     this.ReplacesOrderID         = replacesOrderID;
     this.CancellingTransactionID = cancellingTransactionID;
 }
Ejemplo n.º 3
0
 public StopOrder()
 {
     this.Id                      = new OrderID();
     this.CreateTime              = new DateTime();
     this.State                   = new OrderState();
     this.ClientExtensions        = new ClientExtensions();
     this.Type                    = new OrderType(EOrderType.STOP);
     this.Instrument              = new InstrumentName();
     this.Price                   = new PriceValue();
     this.PriceBound              = new PriceValue();
     this.TimeInForce             = new TimeInForce(ETimeInForce.GTC);
     this.GtdTime                 = new DateTime();
     this.PositionFill            = new OrderPositionFill(EOrderPositionFill.DEFAULT);
     this.TriggerCondition        = new OrderTriggerCondition(EOrderTriggerCondition.DEFAULT);
     this.TakeProfitOnFill        = new TakeProfitDetails();
     this.StopLossOnFill          = new StopLossDetails();
     this.TrailingStopLossOnFill  = new TrailingStopLossDetails();
     this.TradeClientExtensions   = new ClientExtensions();
     this.FillingTransactionID    = new TransactionID();
     this.FilledTime              = new DateTime();
     this.TradeOpenedID           = new TradeID();
     this.TradeReducedID          = new TradeID();
     this.TradeClosedIDs          = new List <TradeID>();
     this.CancellingTransactionID = new TransactionID();
     this.CancelledTime           = new DateTime();
     this.ReplacesOrderID         = new OrderID();
     this.ReplacedByOrderID       = new OrderID();
 }
Ejemplo n.º 4
0
 public LimitOrderRequest(
     TimeInForce timeInForce,
     DateTime?gtdTime,
     OrderTriggerCondition triggerCondition,
     ClientExtensions?clientExtensions,
     string instrument,
     OrderPositionFill positionFill,
     TakeProfitDetails?takeProfitOnFill,
     StopLossDetails?stopLossOnFill,
     GuaranteedStopLossDetails?guaranteedStopLossOnFill,
     TrailingStopLossDetails?trailingStopLossOnFill,
     ClientExtensions?tradeClientExtensions,
     decimal units,
     decimal price)
     : base(
         OrderType.LIMIT,
         timeInForce,
         gtdTime,
         triggerCondition,
         clientExtensions,
         instrument,
         positionFill,
         takeProfitOnFill,
         stopLossOnFill,
         guaranteedStopLossOnFill,
         trailingStopLossOnFill,
         tradeClientExtensions)
 {
     Units = units;
     Price = price;
 }
Ejemplo n.º 5
0
 public MarketIfTouchedOrderRequest(
     TimeInForce timeInForce,
     DateTime?gtdTime,
     OrderTriggerCondition triggerCondition,
     ClientExtensions?clientExtensions,
     string instrument,
     OrderPositionFill positionFill,
     TakeProfitDetails?takeProfitOnFill,
     StopLossDetails?stopLossOnFill,
     GuaranteedStopLossDetails?guaranteedStopLossOnFill,
     TrailingStopLossDetails?trailingStopLossOnFill,
     ClientExtensions?tradeClientExtensions,
     decimal price,
     decimal?priceBound)
     : base(
         OrderType.MARKET_IF_TOUCHED,
         timeInForce,
         gtdTime,
         triggerCondition,
         clientExtensions,
         instrument,
         positionFill,
         takeProfitOnFill,
         stopLossOnFill,
         guaranteedStopLossOnFill,
         trailingStopLossOnFill,
         tradeClientExtensions)
 {
     ValidateTimeInForce(timeInForce, _allowed);
     Price      = price;
     PriceBound = priceBound;
 }
        public GuaranteedStopLossOrderRequest(
            TimeInForce timeInForce,
            DateTime?gtdTime,
            OrderTriggerCondition triggerCondition,
            ClientExtensions?clientExtensions,
            string tradeID,
            string?clientTradeID,
            decimal?price,
            decimal?distance)
            : base(
                OrderType.GUARANTEED_STOP_LOSS,
                timeInForce,
                gtdTime,
                triggerCondition,
                clientExtensions,
                tradeID,
                clientTradeID)
        {
            if (price is null && distance is null)
            {
                throw new ArgumentException($"Either '{nameof(price)}' or '{nameof(distance)}' must be specified.");
            }

            if (price is not null && distance is not null)
            {
                throw new ArgumentException($"'{nameof(price)}' and '{nameof(distance)}' cannot both be specified.");
            }

            ValidateTimeInForce(timeInForce, _allowed);
            Price    = price;
            Distance = distance;
        }
Ejemplo n.º 7
0
 public TrailingStopLossOrder(
     string id,
     DateTime createTime,
     OrderState state,
     ClientExtensions?clientExtensions,
     OrderType type,
     string instrument,
     TimeInForce timeInForce,
     DateTime?gtdTime,
     OrderPositionFill positionFill,
     OrderTriggerCondition triggerCondition,
     TakeProfitDetails?takeProfitOnFill,
     StopLossDetails?stopLossOnFill,
     GuaranteedStopLossDetails?guaranteedStopLossOnFill,
     TrailingStopLossDetails?trailingStopLossOnFill,
     ClientExtensions?tradeClientExtensions,
     string?fillingTransactionID,
     DateTime?filledTime,
     string?tradeOpenedID,
     string?tradeReducedID,
     ImmutableList <string>?tradeClosedIDs,
     string?cancellingTransactionID,
     DateTime?cancelledTime,
     string?replacesOrderID,
     string?replacedByOrderID,
     string tradeID,
     string?clientTradeID,
     decimal distance,
     decimal?trailingStopValue)
     : base(
         id,
         createTime,
         state,
         clientExtensions,
         type,
         instrument,
         timeInForce,
         gtdTime,
         positionFill,
         triggerCondition,
         takeProfitOnFill,
         stopLossOnFill,
         guaranteedStopLossOnFill,
         trailingStopLossOnFill,
         tradeClientExtensions,
         fillingTransactionID,
         filledTime,
         tradeOpenedID,
         tradeReducedID,
         tradeClosedIDs,
         cancellingTransactionID,
         cancelledTime,
         replacesOrderID,
         replacedByOrderID)
 {
     TradeID           = tradeID;
     ClientTradeID     = clientTradeID;
     Distance          = distance;
     TrailingStopValue = trailingStopValue;
 }
Ejemplo n.º 8
0
 public MarketIfTouchedOrder(
     string id,
     DateTime createTime,
     OrderState state,
     ClientExtensions?clientExtensions,
     OrderType type,
     string instrument,
     TimeInForce timeInForce,
     DateTime?gtdTime,
     OrderPositionFill positionFill,
     OrderTriggerCondition triggerCondition,
     TakeProfitDetails?takeProfitOnFill,
     StopLossDetails?stopLossOnFill,
     GuaranteedStopLossDetails?guaranteedStopLossOnFill,
     TrailingStopLossDetails?trailingStopLossOnFill,
     ClientExtensions?tradeClientExtensions,
     string?fillingTransactionID,
     DateTime?filledTime,
     string?tradeOpenedID,
     string?tradeReducedID,
     ImmutableList <string>?tradeClosedIDs,
     string?cancellingTransactionID,
     DateTime?cancelledTime,
     string?replacesOrderID,
     string?replacedByOrderID,
     decimal units,
     decimal price,
     decimal priceBound,
     decimal initialMarketPrice)
     : base(
         id,
         createTime,
         state,
         clientExtensions,
         type,
         instrument,
         timeInForce,
         gtdTime,
         positionFill,
         triggerCondition,
         takeProfitOnFill,
         stopLossOnFill,
         guaranteedStopLossOnFill,
         trailingStopLossOnFill,
         tradeClientExtensions,
         fillingTransactionID,
         filledTime,
         tradeOpenedID,
         tradeReducedID,
         tradeClosedIDs,
         cancellingTransactionID,
         cancelledTime,
         replacesOrderID,
         replacedByOrderID)
 {
     Units              = units;
     Price              = price;
     PriceBound         = priceBound;
     InitialMarketPrice = initialMarketPrice;
 }
Ejemplo n.º 9
0
 public StopOrder(OrderID id, DateTime createTime, OrderState state, ClientExtensions clientExtensions, OrderType type, InstrumentName instrument, double units, PriceValue price, PriceValue priceBound, TimeInForce timeInForce, DateTime gtdTime, OrderPositionFill positionFill, OrderTriggerCondition triggerCondition, TakeProfitDetails takeProfitOnFill, StopLossDetails stopLossOnFill, TrailingStopLossDetails trailingStopLossOnFill, ClientExtensions tradeClientExtensions, TransactionID fillingTransactionID, DateTime filledTime, TradeID tradeOpenedID, TradeID tradeReducedID, List <TradeID> tradeClosedIDs, TransactionID cancellingTransactionID, DateTime cancelledTime, OrderID replacesOrderID, OrderID replacedByOrderID)
 {
     this.Id                      = id;
     this.CreateTime              = createTime;
     this.State                   = state;
     this.ClientExtensions        = clientExtensions;
     this.Type                    = type;
     this.Instrument              = instrument;
     this.Units                   = units;
     this.Price                   = price;
     this.PriceBound              = priceBound;
     this.TimeInForce             = timeInForce;
     this.GtdTime                 = gtdTime;
     this.PositionFill            = positionFill;
     this.TriggerCondition        = triggerCondition;
     this.TakeProfitOnFill        = takeProfitOnFill;
     this.StopLossOnFill          = stopLossOnFill;
     this.TrailingStopLossOnFill  = trailingStopLossOnFill;
     this.TradeClientExtensions   = tradeClientExtensions;
     this.FillingTransactionID    = fillingTransactionID;
     this.FilledTime              = filledTime;
     this.TradeOpenedID           = tradeOpenedID;
     this.TradeReducedID          = tradeReducedID;
     this.TradeClosedIDs          = tradeClosedIDs;
     this.CancellingTransactionID = cancellingTransactionID;
     this.CancelledTime           = cancelledTime;
     this.ReplacesOrderID         = replacesOrderID;
     this.ReplacedByOrderID       = replacedByOrderID;
 }
Ejemplo n.º 10
0
        protected OrderRequest(
            OrderType type,
            TimeInForce timeInForce,
            DateTime?gtdTime,
            OrderTriggerCondition triggerCondition,
            ClientExtensions?clientExtensions)
        {
            if (timeInForce == TimeInForce.GTD)
            {
                if (!gtdTime.HasValue)
                {
                    var message = $"'{nameof(gtdTime)}' must have a value when {nameof(timeInForce)} is '{nameof(TimeInForce.GTD)}'";
                    throw new ArgumentException(message, nameof(gtdTime));
                }
            }
            else
            {
                if (gtdTime.HasValue)
                {
                    var message = $"'{nameof(gtdTime)}' must NOT have a value when {nameof(timeInForce)} is not '{nameof(TimeInForce.GTD)}'";
                    throw new ArgumentException(message, nameof(gtdTime));
                }
            }

            Type             = type;
            TimeInForce      = timeInForce;
            GtdTime          = gtdTime;
            TriggerCondition = triggerCondition;
            ClientExtensions = clientExtensions;
        }
 /// <summary>
 /// A TakeProfitOrderRequest specifies the parameters that may be set when creating a Take Profit Order. Only one of the price and distance fields may be specified.
 /// </summary>
 /// <param name="tradeID">The ID of the Trade to close when the price threshold is breached.</param>
 /// <param name="price">The price threshold specified for the TakeProfit Order. The associated Trade will be closed by a market price that is equal to or better than this threshold.</param>
 public TakeProfitOrderRequest(TradeID tradeID, PriceValue price)
 {
     this.Type             = EOrderType.TAKE_PROFIT;
     this.TradeID          = tradeID;
     this.Price            = price;
     this.TimeInForce      = ETimeInForce.GTC;
     this.GtdTime          = DateTime.UtcNow;
     this.TriggerCondition = EOrderTriggerCondition.DEFAULT;
 }
Ejemplo n.º 12
0
 /// <summary>
 /// A StopLossOrderRequest specifies the parameters that may be set when creating a Stop Loss Order. Only one of the price and distance fields may be specified.
 /// </summary>
 /// <param name="tradeID">The ID of the Trade to close when the price threshold is breached.</param>
 /// <param name="price">The price threshold specified for the Stop Loss Order. If the guaranteed flag is false, the associated Trade will be closed by a market price that is equal to or worse than this threshold. If the flag is true the associated Trade will be closed at this price.</param>
 public StopLossOrderRequest(TradeID tradeID, PriceValue price)
 {
     this.Type             = EOrderType.STOP_LOSS;
     this.TradeID          = tradeID;
     this.Price            = price;
     this.TimeInForce      = ETimeInForce.GTC;
     this.GtdTime          = DateTime.UtcNow;
     this.TriggerCondition = EOrderTriggerCondition.DEFAULT;
 }
Ejemplo n.º 13
0
 /// <summary>
 /// A TrailingStopLossOrderRequest specifies the parameters that may be set when creating a Trailing Stop Loss Order.
 /// </summary>
 /// <param name="tradeID">The ID of the Trade to close when the price threshold is breached.</param>
 /// <param name="distance">The price distance (in price units) specified for the TrailingStopLoss Order.</param>
 public TrailingStopLossOrderRequest(TradeID tradeID, double distance)
 {
     this.Type             = EOrderType.TRAILING_STOP_LOSS;
     this.TradeID          = tradeID;
     this.Distance         = distance;
     this.TimeInForce      = ETimeInForce.GTC;
     this.GtdTime          = DateTime.UtcNow;
     this.TriggerCondition = EOrderTriggerCondition.DEFAULT;
 }
 /// <summary>
 /// A MarketIfTouchedOrderRequest specifies the parameters that may be set when creating a Market-if-Touched Order.
 /// </summary>
 /// <param name="instrument">The MarketIfTouched Order’s Instrument.</param>
 /// <param name="units">The quantity requested to be filled by the MarketIfTouched 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="price">The price threshold specified for the MarketIfTouched Order. The MarketIfTouched Order will only be filled by a market price that crosses this price from the direction of the market price at the time when the Order was created (the initialMarketPrice). Depending on the value of the Order’s price and initialMarketPrice, the MarketIfTouchedOrder will behave like a Limit or a Stop Order.</param>
 public MarketIfTouchedOrderRequest(InstrumentName instrument, double units, PriceValue price)
 {
     this.Type             = EOrderType.MARKET_IF_TOUCHED;
     this.Instrument       = instrument;
     this.Units            = units;
     this.Price            = price;
     this.TimeInForce      = ETimeInForce.GTC;
     this.GtdTime          = DateTime.UtcNow;
     this.PositionFill     = EOrderPositionFill.DEFAULT;
     this.TriggerCondition = EOrderTriggerCondition.DEFAULT;
 }
Ejemplo n.º 15
0
 public MarketIfTouchedOrderRejectTransaction(
     string id,
     DateTime time,
     int?userID,
     string accountID,
     string?batchID,
     string?requestID,
     TransactionType type,
     ClientExtensions?clientExtensions,
     string?replacesOrderID,
     string?cancellingTransactionID,
     TimeInForce timeInForce,
     DateTime?gtdTime,
     string instrument,
     decimal units,
     OrderPositionFill positionFill,
     TakeProfitDetails?takeProfitOnFill,
     StopLossDetails?stopLossOnFill,
     TrailingStopLossDetails?trailingStopLossOnFill,
     GuaranteedStopLossDetails?guaranteedStopLossOnFill,
     ClientExtensions?tradeClientExtensions,
     decimal price,
     decimal?priceBound,
     OrderTriggerCondition triggerCondition,
     MarketIfTouchedOrderReason reason,
     TransactionRejectReason rejectReason)
     : base(
         id,
         time,
         userID,
         accountID,
         batchID,
         requestID,
         type,
         clientExtensions,
         replacesOrderID,
         cancellingTransactionID,
         timeInForce,
         gtdTime,
         instrument,
         units,
         positionFill,
         takeProfitOnFill,
         stopLossOnFill,
         trailingStopLossOnFill,
         guaranteedStopLossOnFill,
         tradeClientExtensions,
         price,
         priceBound,
         triggerCondition,
         reason)
 {
     RejectReason = rejectReason;
 }
Ejemplo n.º 16
0
 /// <summary>
 /// A StopOrderRequest specifies the parameters that may be set when creating a Stop Order.
 /// </summary>
 /// <param name="instrument">The Stop Order’s Instrument.</param>
 /// <param name="units">The quantity requested to be filled by the Stop 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="price">The price threshold specified for the Stop Order. The Stop Order will only be filled by a market price that is equal to or worse than this price.</param>
 public StopOrderRequest(InstrumentName instrument, double units, PriceValue price)
 {
     this.Type             = EOrderType.STOP;
     this.Instrument       = instrument;
     this.Units            = units;
     this.Price            = price;
     this.TimeInForce      = ETimeInForce.GTC;
     this.GtdTime          = DateTime.UtcNow;
     this.PositionFill     = EOrderPositionFill.DEFAULT;
     this.TriggerCondition = EOrderTriggerCondition.DEFAULT;
 }
Ejemplo n.º 17
0
 protected Order(
     string id,
     DateTime createTime,
     OrderState state,
     ClientExtensions?clientExtensions,
     OrderType type,
     string instrument,
     TimeInForce timeInForce,
     DateTime?gtdTime,
     OrderPositionFill positionFill,
     OrderTriggerCondition triggerCondition,
     TakeProfitDetails?takeProfitOnFill,
     StopLossDetails?stopLossOnFill,
     GuaranteedStopLossDetails?guaranteedStopLossOnFill,
     TrailingStopLossDetails?trailingStopLossOnFill,
     ClientExtensions?tradeClientExtensions,
     string?fillingTransactionID,
     DateTime?filledTime,
     string?tradeOpenedID,
     string?tradeReducedID,
     ImmutableList <string>?tradeClosedIDs,
     string?cancellingTransactionID,
     DateTime?cancelledTime,
     string?replacesOrderID,
     string?replacedByOrderID)
 {
     Id                       = id;
     CreateTime               = createTime;
     State                    = state;
     ClientExtensions         = clientExtensions;
     Type                     = type;
     Instrument               = instrument;
     TimeInForce              = timeInForce;
     GtdTime                  = gtdTime;
     PositionFill             = positionFill;
     TriggerCondition         = triggerCondition;
     TakeProfitOnFill         = takeProfitOnFill;
     StopLossOnFill           = stopLossOnFill;
     GuaranteedStopLossOnFill = guaranteedStopLossOnFill;
     TrailingStopLossOnFill   = trailingStopLossOnFill;
     TradeClientExtensions    = tradeClientExtensions;
     FillingTransactionID     = fillingTransactionID;
     FilledTime               = filledTime;
     TradeOpenedID            = tradeOpenedID;
     TradeReducedID           = tradeReducedID;
     TradeClosedIDs           = tradeClosedIDs;
     CancellingTransactionID  = cancellingTransactionID;
     CancelledTime            = cancelledTime;
     ReplacesOrderID          = replacesOrderID;
     ReplacedByOrderID        = replacedByOrderID;
 }
 public GuaranteedStopLossOrderRejectTransaction(
     string id,
     DateTime time,
     int?userID,
     string accountID,
     string?batchID,
     string?requestID,
     TransactionType type,
     ClientExtensions?clientExtensions,
     string?replacesOrderID,
     string?cancellingTransactionID,
     TimeInForce timeInForce,
     DateTime?gtdTime,
     string tradeID,
     string?clientTradeID,
     decimal price,
     decimal?distance,
     OrderTriggerCondition triggerCondition,
     decimal?guaranteedExecutionPremium,
     GuaranteedStopLossOrderReason reason,
     string?orderFillTransactionID,
     string?intendedReplacesOrderID,
     TransactionRejectReason rejectReason)
     : base(
         id,
         time,
         userID,
         accountID,
         batchID,
         requestID,
         type,
         clientExtensions,
         replacesOrderID,
         cancellingTransactionID,
         timeInForce,
         gtdTime,
         tradeID,
         clientTradeID,
         price,
         distance,
         triggerCondition,
         guaranteedExecutionPremium,
         reason,
         orderFillTransactionID)
 {
     IntendedReplacesOrderID = intendedReplacesOrderID;
     RejectReason            = rejectReason;
 }
 public TrailingStopLossOrderRejectTransaction()
 {
     this.TransactionID           = new TransactionID();
     this.Time                    = new DateTime();
     this.AccountID               = new AccountID();
     this.BatchID                 = new TransactionID();
     this.RequestID               = new RequestID();
     this.Type                    = new TransactionType(ETransactionType.TRAILING_STOP_LOSS_ORDER_REJECT);
     this.TradeID                 = new TradeID();
     this.ClientTradeID           = new ClientID();
     this.TimeInForce             = new TimeInForce(ETimeInForce.GTC);
     this.GTDTime                 = new DateTime();
     this.TriggerCondition        = new OrderTriggerCondition(EOrderTriggerCondition.DEFAULT);
     this.Reason                  = new TrailingStopLossOrderReason();
     this.ClientExtensions        = new ClientExtensions();
     this.OrderFillTransactionID  = new TransactionID();
     this.IntendedReplacesOrderID = new OrderID();
     this.RejectReason            = new TransactionRejectReason();
 }
Ejemplo n.º 20
0
 public TrailingStopLossOrderRequest(
     TimeInForce timeInForce,
     DateTime?gtdTime,
     OrderTriggerCondition triggerCondition,
     ClientExtensions?clientExtensions,
     string tradeID,
     string?clientTradeID,
     decimal distance)
     : base(
         OrderType.TRAILING_STOP_LOSS,
         timeInForce,
         gtdTime,
         triggerCondition,
         clientExtensions,
         tradeID,
         clientTradeID)
 {
     ValidateTimeInForce(timeInForce, _allowed);
     Distance = distance;
 }
Ejemplo n.º 21
0
 public TakeProfitOrderRequest(
     TimeInForce timeInForce,
     DateTime?gtdTime,
     OrderTriggerCondition triggerCondition,
     ClientExtensions?clientExtensions,
     string tradeID,
     string?clientTradeID,
     decimal price)
     : base(
         OrderType.TAKE_PROFIT,
         timeInForce,
         gtdTime,
         triggerCondition,
         clientExtensions,
         tradeID,
         clientTradeID)
 {
     ValidateTimeInForce(timeInForce, _allowed);
     Price = price;
 }
 public TakeProfitOrderRejectTransaction()
 {
     this.Id                      = new TransactionID();
     this.Time                    = new DateTime();
     this.AccountID               = new AccountID();
     this.BatchID                 = new TransactionID();
     this.RequestID               = new RequestID();
     this.Type                    = new TransactionType(ETransactionType.TAKE_PROFIT_ORDER_REJECT);
     this.TradeID                 = new TradeID();
     this.ClientTradeID           = new ClientID();
     this.Price                   = new PriceValue();
     this.TimeInForce             = new TimeInForce(ETimeInForce.GTC);
     this.GTDTime                 = new DateTime();
     this.TriggerCondition        = new OrderTriggerCondition(EOrderTriggerCondition.DEFAULT);
     this.Reason                  = new TakeProfitOrderReason();
     this.ClientExtensions        = new ClientExtensions();
     this.OrderFillTransactionID  = new TransactionID();
     this.IntendedReplacesOrderID = new OrderID();
     this.RejectReason            = new TransactionRejectReason();
 }
Ejemplo n.º 23
0
 public StopLossOrderTransaction()
 {
     this.Id                      = new TransactionID();
     this.Time                    = new DateTime();
     this.AccountID               = new AccountID();
     this.BatchID                 = new TransactionID();
     this.RequestID               = new RequestID();
     this.Type                    = new TransactionType(ETransactionType.STOP_LOSS_ORDER);
     this.TradeID                 = new TradeID();
     this.ClientTradeID           = new ClientID();
     this.Price                   = new PriceValue();
     this.TimeInForce             = new TimeInForce(ETimeInForce.GTC);
     this.GTDTime                 = new DateTime();
     this.TriggerCondition        = new OrderTriggerCondition(EOrderTriggerCondition.DEFAULT);
     this.Reason                  = new StopLossOrderReason();
     this.ClientExtensions        = new ClientExtensions();
     this.OrderFillTransactionID  = new TransactionID();
     this.ReplacesOrderID         = new OrderID();
     this.CancellingTransactionID = new TransactionID();
 }
Ejemplo n.º 24
0
 public StopLossOrderRejectTransaction()
 {
     this.Id                      = new TransactionID();
     this.Time                    = new DateTime();
     this.AccountID               = new AccountID();
     this.BatchID                 = new TransactionID();
     this.RequestID               = new RequestID();
     this.Type                    = new TransactionType(ETransactionType.STOP_LOSS_ORDER_REJECT);
     this.TradeID                 = new TradeID();
     this.ClientTradeID           = new ClientID();
     this.Price                   = new PriceValue();
     this.TimeInForce             = new TimeInForce(ETimeInForce.GTC);
     this.GTDTime                 = new DateTime();
     this.TriggerCondition        = new OrderTriggerCondition();
     this.Reason                  = new StopLossOrderReason();
     this.ClientExtensions        = new ClientExtensions();
     this.OrderFillTransactionID  = new TransactionID();
     this.IntendedRepalcesOrderID = new OrderID();
     this.RejectReason            = new TransactionRejectReason();
 }
 public TrailingStopLossOrderRejectTransaction(TransactionID transactionID, DateTime time, int userID, AccountID accountID, TransactionID batchID, RequestID requestID, TransactionType type, TradeID tradeID, ClientID clientTradeID, double distance, TimeInForce timeInForce, DateTime gTDTime, OrderTriggerCondition triggerCondition, TrailingStopLossOrderReason reason, ClientExtensions clientExtensions, TransactionID orderFillTransactionID, OrderID intendedReplacesOrderID, TransactionRejectReason rejectReason)
 {
     this.TransactionID           = transactionID;
     this.Time                    = time;
     this.UserID                  = userID;
     this.AccountID               = accountID;
     this.BatchID                 = batchID;
     this.RequestID               = requestID;
     this.Type                    = type;
     this.TradeID                 = tradeID;
     this.ClientTradeID           = clientTradeID;
     this.Distance                = distance;
     this.TimeInForce             = timeInForce;
     this.GTDTime                 = gTDTime;
     this.TriggerCondition        = triggerCondition;
     this.Reason                  = reason;
     this.ClientExtensions        = clientExtensions;
     this.OrderFillTransactionID  = orderFillTransactionID;
     this.IntendedReplacesOrderID = intendedReplacesOrderID;
     this.RejectReason            = rejectReason;
 }
Ejemplo n.º 26
0
 public TakeProfitOrderTransaction(TransactionID id, DateTime time, int userID, AccountID accountID, TransactionID batchID, RequestID requestID, TransactionType type, TradeID tradeID, ClientID clientTradeID, PriceValue price, TimeInForce timeInForce, DateTime gTDTime, OrderTriggerCondition triggerCondition, TakeProfitOrderReason reason, ClientExtensions clientExtensions, TransactionID orderFillTransactionID, OrderID replacesOrderID, TransactionID cancellingTransactionID)
 {
     this.Id                      = id;
     this.Time                    = time;
     this.UserID                  = userID;
     this.AccountID               = accountID;
     this.BatchID                 = batchID;
     this.RequestID               = requestID;
     this.Type                    = type;
     this.TradeID                 = tradeID;
     this.ClientTradeID           = clientTradeID;
     this.Price                   = price;
     this.TimeInForce             = timeInForce;
     this.GTDTime                 = gTDTime;
     this.TriggerCondition        = triggerCondition;
     this.Reason                  = reason;
     this.ClientExtensions        = clientExtensions;
     this.OrderFillTransactionID  = orderFillTransactionID;
     this.ReplacesOrderID         = replacesOrderID;
     this.CancellingTransactionID = cancellingTransactionID;
 }
Ejemplo n.º 27
0
 public TakeProfitOrderTransaction(
     string id,
     DateTime time,
     int?userID,
     string accountID,
     string?batchID,
     string?requestID,
     TransactionType type,
     ClientExtensions?clientExtensions,
     string?replacesOrderID,
     string?cancellingTransactionID,
     TimeInForce timeInForce,
     DateTime?gtdTime,
     string tradeID,
     string?clientTradeID,
     decimal price,
     OrderTriggerCondition triggerCondition,
     TakeProfitOrderReason reason,
     string?orderFillTransactionID)
     : base(
         id,
         time,
         userID,
         accountID,
         batchID,
         requestID,
         type,
         clientExtensions,
         replacesOrderID,
         cancellingTransactionID,
         timeInForce,
         gtdTime,
         tradeID,
         clientTradeID)
 {
     Price                  = price;
     TriggerCondition       = triggerCondition;
     Reason                 = reason;
     OrderFillTransactionID = orderFillTransactionID;
 }
Ejemplo n.º 28
0
        protected OpenTradeOrderRequest(
            OrderType type,
            TimeInForce timeInForce,
            DateTime?gtdTime,
            OrderTriggerCondition triggerCondition,
            ClientExtensions?clientExtensions,
            string instrument,
            OrderPositionFill positionFill,
            TakeProfitDetails?takeProfitOnFill,
            StopLossDetails?stopLossOnFill,
            GuaranteedStopLossDetails?guaranteedStopLossOnFill,
            TrailingStopLossDetails?trailingStopLossOnFill,
            ClientExtensions?tradeClientExtensions)
            : base(
                type,
                timeInForce,
                gtdTime,
                triggerCondition,
                clientExtensions)
        {
            if (string.IsNullOrWhiteSpace(instrument))
            {
                throw new ArgumentException($"'{nameof(instrument)}' cannot be empty.", nameof(instrument));
            }

            if (stopLossOnFill is not null && guaranteedStopLossOnFill is not null)
            {
                throw new ArgumentException($"Cannot have both '{nameof(stopLossOnFill)}' and '{nameof(guaranteedStopLossOnFill)}'.");
            }

            Instrument               = instrument;
            PositionFill             = positionFill;
            TakeProfitOnFill         = takeProfitOnFill;
            StopLossOnFill           = stopLossOnFill;
            GuaranteedStopLossOnFill = guaranteedStopLossOnFill;
            TrailingStopLossOnFill   = trailingStopLossOnFill;
            TradeClientExtensions    = tradeClientExtensions;
        }
Ejemplo n.º 29
0
 public LimitOrderRejectTransaction()
 {
     this.Id                      = new TransactionID();
     this.Time                    = new DateTime();
     this.AccountID               = new AccountID();
     this.BatchID                 = new TransactionID();
     this.RequestID               = new RequestID();
     this.Type                    = new TransactionType(ETransactionType.LIMIT_ORDER_REJECT);
     this.Instrument              = new InstrumentName();
     this.Price                   = new PriceValue();
     this.TimeInForce             = new TimeInForce();
     this.GTDTime                 = new DateTime();
     this.PositionFill            = new OrderPositionFill();
     this.TriggerCondition        = new OrderTriggerCondition(EOrderTriggerCondition.DEFAULT);
     this.Reason                  = new LimitOrderReason();
     this.ClientExtensions        = new ClientExtensions();
     this.TakeProfitOnFill        = new TakeProfitDetails();
     this.StopLossOnFill          = new StopLossDetails();
     this.TrailingStopLossOnFill  = new TrailingStopLossDetails();
     this.TradeClientExtensions   = new ClientExtensions();
     this.IntendedReplacesOrderID = new OrderID();
     this.RejectReason            = new TransactionRejectReason();
 }
Ejemplo n.º 30
0
        protected CloseTradeOrderRequest(
            OrderType type,
            TimeInForce timeInForce,
            DateTime?gtdTime,
            OrderTriggerCondition triggerCondition,
            ClientExtensions?clientExtensions,
            string tradeID,
            string?clientTradeID)
            : base(
                type,
                timeInForce,
                gtdTime,
                triggerCondition,
                clientExtensions)
        {
            if (string.IsNullOrWhiteSpace(tradeID))
            {
                throw new ArgumentException($"'{nameof(tradeID)}' cannot be empty.", nameof(tradeID));
            }

            TradeID       = tradeID;
            ClientTradeID = clientTradeID;
        }