コード例 #1
0
        public static OrderCondition Create(OrderConditionType type)
        {
            var result = type switch
            {
                OrderConditionType.Execution => new ExecutionCondition() as OrderCondition,
                OrderConditionType.Margin => new MarginCondition(),
                OrderConditionType.PercentChange => new PercentChangeCondition(),
                OrderConditionType.Price => new PriceCondition(),
                OrderConditionType.Time => new TimeCondition(),
                OrderConditionType.Volume => new VolumeCondition(),
                _ => throw new Exception("Invalid order condition")
            };

            result.Type = type;
            return(result);
        }
コード例 #2
0
 public void UpdateCondition(OrderConditionType type)
 {
     if (type == OrderConditionType.LIMIT)
     {
         TIF          = OrderTIFType.GFD;
         VolCondition = OrderVolType.ANYVOLUME;
     }
     else if (type == OrderConditionType.FAK)
     {
         TIF          = OrderTIFType.IOC;
         VolCondition = OrderVolType.ANYVOLUME;
     }
     else if (type == OrderConditionType.FOK)
     {
         TIF          = OrderTIFType.IOC;
         VolCondition = OrderVolType.ALLVOLUME;
     }
 }
コード例 #3
0
        public void readConditions()
        {
            if (serverVersion >= MinServerVer.PEGGED_TO_BENCHMARK)
            {
                int nConditions = eDecoder.ReadInt();

                if (nConditions > 0)
                {
                    for (int i = 0; i < nConditions; i++)
                    {
                        OrderConditionType orderConditionType = (OrderConditionType)eDecoder.ReadInt();
                        OrderCondition     condition          = OrderCondition.Create(orderConditionType);

                        condition.Deserialize(eDecoder);
                        order.Conditions.Add(condition);
                    }

                    order.ConditionsIgnoreRth   = eDecoder.ReadBoolFromInt();
                    order.ConditionsCancelOrder = eDecoder.ReadBoolFromInt();
                }
            }
        }
コード例 #4
0
        public static OrderCondition Create(OrderConditionType type)
        {
            OrderCondition rval = null;

            switch (type)
            {
            case OrderConditionType.Execution:
                rval = new ExecutionCondition();
                break;

            case OrderConditionType.Margin:
                rval = new MarginCondition();
                break;

            case OrderConditionType.PercentCange:
                rval = new PercentChangeCondition();
                break;

            case OrderConditionType.Price:
                rval = new PriceCondition();
                break;

            case OrderConditionType.Time:
                rval = new TimeCondition();
                break;

            case OrderConditionType.Volume:
                rval = new VolumeCondition();
                break;
            }

            if (rval != null)
            {
                rval.Type = type;
            }

            return(rval);
        }
コード例 #5
0
ファイル: OrderCondition.cs プロジェクト: dshe/InterReact
    public static OrderCondition Create(OrderConditionType type)
    {
        OrderCondition?rval = null;

        switch (type)
        {
        case OrderConditionType.Execution:
            rval = new ExecutionCondition();
            break;

        case OrderConditionType.Margin:
            rval = new MarginCondition();
            break;

        case OrderConditionType.PercentChange:
            rval = new PercentChangeCondition();
            break;

        case OrderConditionType.Price:
            rval = new PriceCondition();
            break;

        case OrderConditionType.Time:
            rval = new TimeCondition();
            break;

        case OrderConditionType.Volume:
            rval = new VolumeCondition();
            break;
        }

        if (rval != null)
        {
            rval.Type = type;
        }

        return(rval ?? throw new InvalidOperationException("Invalid OrderConditionType."));
    }
コード例 #6
0
ファイル: OrderCondition.cs プロジェクト: qusma/ib-csharp
        public static OrderCondition Create(OrderConditionType type)
        {
            OrderCondition rval = null;

            switch (type)
            {
                case OrderConditionType.Execution:
                    rval = new ExecutionCondition();
                    break;

                case OrderConditionType.Margin:
                    rval = new MarginCondition();
                    break;

                case OrderConditionType.PercentCange:
                    rval = new PercentChangeCondition();
                    break;

                case OrderConditionType.Price:
                    rval = new PriceCondition();
                    break;

                case OrderConditionType.Time:
                    rval = new TimeCondition();
                    break;

                case OrderConditionType.Volume:
                    rval = new VolumeCondition();
                    break;
            }

            if (rval != null)
                rval.Type = type;

            return rval;
        }