예제 #1
0
        public void Process(DualPosition dualPosition,OrderBook_BothSide_Size bothSideOrderBook)
        {
            // 防自成交
            if (bothSideOrderBook.Buy.Count > 0)
            {
                int level = bothSideOrderBook.Buy.grid.Keys[0];
                foreach (var a in dualPosition.Sell.grid)
                {
                    if (level >= a.Key)
                    {
                        dualPosition.Sell.Cancel(a.Value);
                    }
                }
            }

            // 上一步有计数,如果没有运行,进行下一步,看挂单数是否对上
            if (bothSideOrderBook.Buy.Count > 0)
            {
                foreach(var b in bothSideOrderBook.Buy.grid)
                {
                    int level = b.Key;
                    double size = b.Value;

                    HashSet<Order> set = dualPosition.Sell.grid[level];

                }
            }
        }
예제 #2
0
        /// <summary>
        /// 转换
        /// </summary>
        /// <param name="brokerAccount"></param>
        /// <param name="dualPosition"></param>
        public static void Transform(BrokerAccount brokerAccount,DualPosition dualPosition)
        {
            if (brokerAccount == null||dualPosition == null)
                return;

            int LongQtyToday = 0;
            int LongQtyYd = 0;
            int ShortQtyToday = 0;
            int ShortQtyYd = 0;

            Tarnsform(brokerAccount, dualPosition.Symbol,
                out LongQtyToday, out LongQtyYd,
                out ShortQtyToday,out ShortQtyYd);

            dualPosition.Long.QtyToday = LongQtyToday;
            dualPosition.Long.Qty = LongQtyToday + LongQtyYd;
            dualPosition.Short.QtyToday = ShortQtyToday;
            dualPosition.Short.Qty = ShortQtyToday + ShortQtyYd;
        }
예제 #3
0
        public static void Transform(BrokerAccount brokerAccount, DualPosition dualPosition)
        {
            if (brokerAccount == null || dualPosition == null)
            {
                return;
            }

            int LongQtyToday  = 0;
            int LongQtyYd     = 0;
            int ShortQtyToday = 0;
            int ShortQtyYd    = 0;

            Tarnsform(brokerAccount, dualPosition.Symbol,
                      out LongQtyToday, out LongQtyYd,
                      out ShortQtyToday, out ShortQtyYd);

            dualPosition.Long.QtyToday  = LongQtyToday;
            dualPosition.Long.Qty       = LongQtyToday + LongQtyYd;
            dualPosition.Short.QtyToday = ShortQtyToday;
            dualPosition.Short.Qty      = ShortQtyToday + ShortQtyYd;
        }
예제 #4
0
        public override void OnStrategyStart()
        {
            WorkingTime = WorkingTime_Commodity;
            dualPosition = new DualPosition();

            // 测试代码
            TargetPosition = 3;
            dualPosition.Long.Qty = 0;
            dualPosition.Short.Qty = 0;
        }
예제 #5
0
        public override void OnStrategyStart()
        {
            TimeHelper = new TimeHelper(EnumTradingTime.COMMODITY);
            PriceHelper = new PriceHelper(Instrument.TickSize);

            DualPosition = new DualPosition();
            DualPosition.Sell.PriceHelper = PriceHelper;
            DualPosition.Buy.PriceHelper = PriceHelper;

            // 测试代码
            //TargetPosition = 3;
            DualPosition.Long.Qty = 0;
            DualPosition.Short.Qty = 0;
        }
예제 #6
0
        public override void OnStrategyStart()
        {
            timeHelper = new TimeHelper(EnumTradingTime.COMMODITY);
            priceHelper = new PriceHelper(Instrument.TickSize);

            dualPosition = new DualPosition();

            // 测试代码
            TargetPosition = 3;
            dualPosition.Long.Qty = 0;
            dualPosition.Short.Qty = 0;
        }
예제 #7
0
        public override void OnStrategyStart()
        {
            TimeHelper = new TimeHelper(Instrument.Symbol);
            PriceHelper = new PriceHelper(Instrument.TickSize);
            TextParameter = new TextCommon() { OpenClose = EnumOpenClose.OPEN };
            CloseTodayHelper = new CloseTodayHelper(EnumExchangeID.SHFE);

            DualPosition = new DualPosition(Instrument.Symbol);
            DualPosition.Sell.PriceHelper = PriceHelper;
            DualPosition.Buy.PriceHelper = PriceHelper;
            DualPosition.CloseTodayHelper = CloseTodayHelper;

            TargetPosition = 0;
            DualPosition.Long.Qty = 0;
            DualPosition.Long.QtyToday = 0;
            DualPosition.Short.Qty = 0;
            DualPosition.Short.QtyToday = 0;
        }