Exemplo n.º 1
0
        private void HandleSellOrderNotifications(OrderStatus orderStatus, string orderId)
        {
            //Remove From list
            var oldOrderData = _pendingSellDic[orderId];

            _pendingSellDic.Remove(orderId);
            if (orderStatus == OrderStatus.Filled)
            {
                return;
            }
            //Stop resend order after 3 failed tryings.
            if (oldOrderData.OrderSentCount >= 3)
            {
                return;
            }

            var optionContract = oldOrderData.Contract as OptionContract;

            if (optionContract == null)
            {
                return;
            }

            var optionData =
                UNLManager.OptionsManager.GetOptionData(optionContract.OptionKey);

            var orderData = OrderManager.SellOption(optionData, oldOrderData.Quantity);

            orderData.OrderSentCount           = oldOrderData.OrderSentCount + 1;
            _pendingSellDic[orderData.OrderId] = orderData;
        }
Exemplo n.º 2
0
 private void OrderManager_OrderTradingNegotioationWasTerminated(OrderStatus orderStatus, string orderId)
 {
     if (_pendingSellDic.ContainsKey(orderId))
     {
         HandleSellOrderNotifications(orderStatus, orderId);
         return;
     }
     if (_pendingCloseDic.ContainsKey(orderId))
     {
         HandleCloseOrderNotifications(orderStatus, orderId);
     }
 }
Exemplo n.º 3
0
 protected virtual void OnOrderTradingNegotioationWasTerminated(OrderStatus orderStatus, string orderId)
 {
     OrderTradingNegotioationWasTerminated?.Invoke(orderStatus, orderId);
 }
Exemplo n.º 4
0
 /// <summary>
 /// The method used by the OptionNegotiator when the order task accomplished.
 /// </summary>
 public void SendOrderTaskAccomplished(string orderId, OrderStatus orderStatus)
 {
     OptionNegotiatorDic.Remove(orderId);
     OnOrderTradingNegotioationWasTerminated(orderStatus, orderId);
 }