Beispiel #1
0
 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;
 }
Beispiel #2
0
 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));
     }
 }
Beispiel #3
0
        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);
        }
Beispiel #4
0
 public bool positionClosed()
 {
     return(position.isClosed());
 }