public void PlaceOrder(Order order)
 {
     this.trades.Add(new Trade
     {
         AccountId = order.AcountId,
         Instrument = order.Instrument,
         Id = this.trades.Count + 1,
         Price = order.Price, //Slippage model
         Side = order.Side,
         StopLoss = order.StopLoss,
         TakeProfit = order.TakeProfit,
         Time = order.Timestamp,
         TrailingStop = order.TrailingStop,
         Units = order.Units
     });
 }
 public override void PlaceOrder(Order order)
 {
     var price = order.Side == OrderSideBuy ? this.CurrentRate.Ask : this.CurrentRate.Bid;
     var trailingSize = order.TrailingStop * 0.0001m;
     var trailingAmount = order.Side == OrderSideBuy ? price - trailingSize : price + trailingSize;
     this.currentTrade = new Trade
     {
         Side = order.Side,
         TrailingAmount = trailingAmount,
         Price = price,
         TrailingStop = order.TrailingStop,
         StopLoss = order.StopLoss,
         Time = order.Timestamp,
         Units = order.Units
     };
     Console.WriteLine("Order placed ...");
 }
Example #3
0
        private void PlaceOrder(string side, Rate rate)
        {
            var stopLossDistance = this.CalculateStopLossDistanceInPips(side, rate.QuoteCurrency, rate);
            var positionSizeInUnits = this.CalculatePositionSize(stopLossDistance, side, rate);
            //TODO: Decide if to user lower-upper bounds or just market order and assume the slippage

            var newOrder = new Order
            {
                Instrument = this.Instrument,
                Units = positionSizeInUnits,
                Side = side,
                OrderType = OrderTypeMarket,
                TrailingStop = stopLossDistance,
                AcountId = this.AccountId,
                Timestamp = rate.Time
            };
            this.tradingAdapter.PlaceOrder(newOrder);

            Trace.TraceInformation("Order placed :{0}", JsonConvert.SerializeObject(newOrder));
        }
 public virtual void PlaceOrder(Order order)
 {
     var result = this.proxy.PostOrderAsync(order.AcountId,
         new Dictionary<string, string>
         {
             { "instrument", order.Instrument },
             { "units", order.Units.ToString(CultureInfo.InvariantCulture) },
             { "side", order.Side },
             { "type", order.OrderType },
             { "stopLoss", order.StopLoss.ToString(CultureInfo.InvariantCulture) },
             { "trailingStop", $"{order.TrailingStop:0.0}" }
         }).Result;
 }