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; }
//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; }