public Order OpenOrder(string strategyName, decimal currentPrice, decimal stopLoss, decimal takeProfit, string rateName, DateTime openTime, string strategyInfo) { bool isReal = !string.IsNullOrEmpty(_activeStrategyName) && strategyName == _activeStrategyName && _enableRealOrders && _activeRates.Contains(rateName); Order order = new Order(_orderSumm, currentPrice, isReal, stopLoss, takeProfit, rateName, strategyName, openTime, strategyInfo); if (order.IsReal) { _enableRealOrders = order.IsReal = StartFx.OpenOrder(rateName, order.Direction, _orderSumm); } _openedOrders.Add(order); if (OpenOrderEvent != null) { OpenOrderEvent(order); } return(order); }
public void CloseOrder(Order order, RateRecord rec) { if (order.RateName != rec.Name) { return; } order.ClosePrice = rec.Value; order.CloseTime = rec.UpdateTime; if (order.IsReal) { order.IsReal = _enableRealOrders = StartFx.CloseOrder(order.RateName); } UpdateStrategyResult(order); if (CloseOrderEvent != null) { CloseOrderEvent(order); } _openedOrders.Remove(order); }