public void ModifyOrder(int order_ticket, double stop_loss, double take_profit)
 {
     if (!OpenOrders.ContainsKey(order_ticket))
     {
         throw new Exception("No such order ticket");
     }
     OpenOrders[order_ticket] = new TradingOrder(OpenOrders[order_ticket], stop_loss, take_profit);
 }
        private static TradingOrder CloseOrder(TradingOrder trade_order, DateTimeUTC current_date_time, double current_bid, double current_ask)
        {
            switch (trade_order.OrderType)
            {
            case TradingOrderType.Long:
                return(trade_order.Close(current_date_time, current_bid));

            case TradingOrderType.Short:
                return(trade_order.Close(current_date_time, current_ask));

            default:
                throw new NotImplementedException();
            }
        }
        public void CloseOrder(int order_ticket)
        {
            TradingOrder trade_order = OpenOrders[order_ticket];

            switch (trade_order.OrderType)
            {
            case TradingOrderType.Long:
                trade_order = trade_order.Close(CurrentDateTime, CurrentBid);
                break;

            case TradingOrderType.Short:
                trade_order = trade_order.Close(CurrentDateTime, CurrentAsk);
                break;

            default: throw new Exception("Unknown order type");
            }

            this.ClosedOrders.Add(trade_order);
            this.OpenOrders.Remove(order_ticket);
            this.Cash += trade_order.Profit;
        }
Example #4
0
 //limit modify contructor
 public TradingOrder(TradingOrder other, double stop_loss, double take_profit)
     : this(other.OrderType, other.OrderTicket, other.OpenDateTime, other.OpenPrice, other.Volume, other.CommissionForOrder, true, stop_loss, take_profit, new DateTimeUTC(), 0)
 {
     this.IsOpen = true;
 }