Beispiel #1
0
        public void TestTrade_Minute()
        {
            string            code               = "RB1710";
            int               startDate          = 20170601;
            int               endDate            = 20170605;
            IDataForward_Code historyDataForward = ForwardDataGetter.GetHistoryDataForward_Code(code, startDate, endDate, false);
            IAccount          account            = DataCenter.Default.AccountManager.CreateAccount(100000, historyDataForward);

            account.OnReturnOrder += Account_OnReturnOrder;
            account.OnReturnTrade += Account_OnReturnTrade;
            account.Open(code, 3099, market.OrderSide.Buy, 10);
            account.Open(code, 3095, market.OrderSide.Buy, 10);
            int index = 0;

            while (index < 200)
            {
                historyDataForward.Forward();
                index++;
                if (isOpen && historyDataForward.Price >= 3102)
                {
                    account.Close(code, 3102, market.OrderSide.Sell, 10);
                    account.Close(code, 3105, market.OrderSide.Sell, 10);
                }
                //Console.WriteLine(historyDataForward.GetTickData());
            }
            Console.WriteLine(account);
            Assert.AreEqual(101180, account.Money);
        }
Beispiel #2
0
        public void TestAccountSave()
        {
            string            code               = "RB1710";
            int               startDate          = 20170601;
            int               endDate            = 20170605;
            IDataForward_Code historyDataForward = ForwardDataGetter.GetHistoryDataForward_Code(code, startDate, endDate, true);

            historyDataForward.Forward();
            IAccount account = DataCenter.Default.AccountManager.CreateAccount(100000, historyDataForward);

            account.AccountSetting.TradeType = AccountTradeType.MARKETPRICE;
            account.OnReturnOrder           += Account_OnReturnOrder;
            account.OnReturnTrade           += Account_OnReturnTrade;
            account.Open(code, 3099, market.OrderSide.Buy, 10);
            account.Open(code, 3095, market.OrderSide.Buy, 10);
            int index = 0;

            while (index < 2000)
            {
                historyDataForward.Forward();
                index++;
                if (isOpen && historyDataForward.GetTickData().SellPrice >= 3102)
                {
                    account.Close(code, 3102, market.OrderSide.Sell, 10);
                    account.Close(code, 3105, market.OrderSide.Sell, 10);
                }
                //Console.WriteLine(historyDataForward.GetTickData());
            }

            account.Open(code, 3105, market.OrderSide.Buy, 10);
            account.Open(code, 3025, market.OrderSide.Buy, 10);

            for (int i = 0; i < 100; i++)
            {
                historyDataForward.Forward();
            }

            XmlElement root = GetXmlRoot();

            account.Save(root);

            Account account2 = (Account)DataCenter.Default.AccountManager.CreateAccount(root);

            //Console.WriteLine(account);
            //Console.WriteLine(account2);
            Assert.AreEqual(XmlUtils.ToString(account), XmlUtils.ToString(account2));

            IDataForward_Code historyDataForward2 = ForwardDataGetter.GetHistoryDataForward_Code(code, startDate, endDate, true);

            historyDataForward2.NavigateTo(account2.Time);
            account2.BindRealTimeReader(historyDataForward2);
            //IDataForward_Code historyDataForward2 = account2.DataForward_Code;
            for (int i = 0; i < 100; i++)
            {
                historyDataForward2.Forward();
            }
            Console.WriteLine(account2);
        }
Beispiel #3
0
        //[TestMethod]
        public void TestNavigate_ChangeTime()
        {
            int start   = 20170601;
            int endDate = 20170603;

            KLinePeriod[] periods = new KLinePeriod[] { KLinePeriod.KLinePeriod_1Minute, KLinePeriod.KLinePeriod_5Minute,
                                                        KLinePeriod.KLinePeriod_15Minute, KLinePeriod.KLinePeriod_1Day };

            this.klineData_1Minute  = new KLineDataExtend_RealTime(DataCenter.Default.DataReader.KLineDataReader.GetData_Extend(code, start, endDate, 0, 0, KLinePeriod.KLinePeriod_1Minute));
            this.klineData_5Minute  = new KLineDataExtend_RealTime(DataCenter.Default.DataReader.KLineDataReader.GetData_Extend(code, start, endDate, 0, 0, KLinePeriod.KLinePeriod_5Minute));
            this.klineData_15Minute = new KLineDataExtend_RealTime(DataCenter.Default.DataReader.KLineDataReader.GetData_Extend(code, start, endDate, 0, 0, KLinePeriod.KLinePeriod_15Minute));
            this.klineData_1Day     = new KLineDataExtend_RealTime(DataCenter.Default.DataReader.KLineDataReader.GetData_Extend(code, start, endDate, 0, 0, KLinePeriod.KLinePeriod_1Day));

            IDataForward_Code dataForward = ForwardDataGetter.GetHistoryDataForward_Code(code, start, endDate, true, true, periods);

            //dataForward.Forward();
            dataForward.OnTick += DataForward_OnTick;

            while (dataForward.Forward())
            {
            }
        }
Beispiel #4
0
        public void TestAccountSendOrder()
        {
            string            code      = "rb1710";
            int               startDate = 20170601;
            int               endDate   = 20170601;
            IDataForward_Code historyDataForward_Code = ForwardDataGetter.GetHistoryDataForward_Code(code, startDate, endDate, true);
            //IAccount account = AccountFactory.CreateAccount("test", 100000, historyDataForward_Code);
            //try
            //{
            //    while (historyDataForward_Code.Forward())
            //    {
            //        if (!isBuy)
            //        {
            //            if (historyDataForward_Code.GetTickData().Price > 3115)
            //            {
            //                OrderInfo order = new OrderInfo(code, historyDataForward_Code.GetTickData().Time, OpenCloseType.Open, 3115, 10, OrderSide.Buy);
            //                account.SendOrder(order);
            //                isBuy = true;
            //            }
            //        }
            //        else
            //        {
            //            if (historyDataForward_Code.GetTickData().Price > 3120)
            //            {
            //                OrderInfo order = new OrderInfo(code, historyDataForward_Code.GetTickData().Time, OpenCloseType.Close, 3120, 10, OrderSide.Buy);
            //                account.SendOrder(order);
            //                isBuy = false;
            //            }
            //        }
            //    }
            //}
            //catch (Exception e)
            //{
            //    Console.WriteLine(e.Message);
            //}

            //Console.WriteLine(account);
        }
Beispiel #5
0
        public void TestTrade_TickDelay2()
        {
            string            code               = "RB1710";
            int               startDate          = 20170601;
            int               endDate            = 20170605;
            IDataForward_Code historyDataForward = ForwardDataGetter.GetHistoryDataForward_Code(code, startDate, endDate, true);

            historyDataForward.OnTick += HistoryDataForward_OnTick;
            account = DataCenter.Default.AccountManager.CreateAccount(100000, historyDataForward);
            account.AccountSetting.TradeType  = AccountTradeType.DELAYTICK;
            account.AccountSetting.AutoFilter = true;
            account.AccountSetting.DelayTick  = 4;
            int index = 0;

            while (index < 100)
            {
                historyDataForward.Forward();
                index++;
            }
            Console.WriteLine(account);
            Assert.AreEqual(53395, account.Money);
            Assert.AreEqual(1, account.CurrentOrderInfo.Count);
        }