protected DynamicExit(Position position, string name, Converter <double, OrderDetails> createDetails, SpudManager manager) : base(manager) { this.position = position; Bomb.when(position.isClosed(), () => "cannot put exit on a closed position"); this.name = name; this.createDetails = createDetails; }
public virtual void orderFilledDO_NOT_CALL_EXCEPT_FROM_BRIDGE(Position position, Trade trade) { trade.updateOrder(findOrder(trade.order())); updatePositionsAndOrders(position, trade.order()); try { onFilled(position, trade); } catch (AbortBar) {} if (position.isClosed()) { cancelOrders(otherOrder => otherOrder.hasPosition() && otherOrder.position().Equals(position)); } }
void updatePositionsAndOrders(Position position, Order order) { var positionList = positions(position.symbol); var hasPosition = positionList.Contains(position); if (hasPosition && position.isClosed()) { positionList.Remove(position); } else if (!hasPosition) { positionList.Add(position); } orders_.get(order.symbol).Remove(order); }
public bool positionClosed() { return(position.isClosed()); }