Exemple #1
0
        public void TestTrade_Tick()
        {
            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());
            }
            Console.WriteLine(account);
            Assert.AreEqual(100880, account.Money);
        }
Exemple #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);
        }
        private static void PrintOnBar(IDataForward_Code klineDataForward)
        {
            Console.WriteLine("tick:" + klineDataForward.GetTickData());
            Console.WriteLine("1minute:" + klineDataForward.GetKLineData(KLinePeriod.KLinePeriod_1Minute));
            Console.WriteLine("5minute:" + klineDataForward.GetKLineData(KLinePeriod.KLinePeriod_5Minute));
            Console.WriteLine("15minute:" + klineDataForward.GetKLineData(KLinePeriod.KLinePeriod_15Minute));
            Console.WriteLine("1day:" + klineDataForward.GetKLineData(KLinePeriod.KLinePeriod_1Day));
            ITimeLineData timeLineData = klineDataForward.GetTimeLineData();

            Console.WriteLine("timeline:" + timeLineData);
        }
Exemple #4
0
        private double GetNextTime(IDataForward_Code forward_Code)
        {
            ITickData tickData = forward_Code.GetTickData();

            if (tickData == null)
            {
                return(TIME_END);
            }
            int nextBarPos = tickData.BarPos;

            return(-1);
        }
        public void TestCompareWithReader()
        {
            string code    = "RB0000";
            int    start   = 20170601;
            int    endDate = 20170605;

            IDataForward_Code klineDataForward = GetKLineDataForward(code, start, endDate);

            klineDataForward.Forward();

            AddContent_Tick(start, klineDataForward.GetTickData().ToString());
            klineDataForward.OnBar  += KlineDataForward_OnBar_CompareWithReader;
            klineDataForward.OnTick += KlineDataForward_OnTick_CompareWithReader;
            while (klineDataForward.Forward())
            {
            }

            AssertKLineDataInDic(code, start, endDate);
            AssertTickDataInDic(code);
        }
        private static void Print(IDataForward_Code klineDataForward)
        {
            //Console.WriteLine("DayEnd:" + klineDataForward.IsDayEnd
            //      + "|1MinuteEnd:" + klineDataForward.IsPeriodEnd(KLinePeriod.KLinePeriod_1Minute)
            //      + "|5MinuteEnd:" + klineDataForward.IsPeriodEnd(KLinePeriod.KLinePeriod_5Minute)
            //      + "|15MinuteEnd:" + klineDataForward.IsPeriodEnd(KLinePeriod.KLinePeriod_15Minute)
            //      + "|DayEnd:" + klineDataForward.IsPeriodEnd(KLinePeriod.KLinePeriod_1Day));

            KLineData_RealTime klineData_1 = (KLineData_RealTime)klineDataForward.GetKLineData(KLinePeriod.KLinePeriod_1Minute);

            Console.WriteLine("tick:" + klineDataForward.GetTickData());
            Console.WriteLine("1minute:" + klineData_1);
            Console.WriteLine("1minute_" + klineData_1.GetCurrentBar_Original());
            KLineData_RealTime klineData_1Day = (KLineData_RealTime)klineDataForward.GetKLineData(KLinePeriod.KLinePeriod_1Day);

            Console.WriteLine("1day:" + klineData_1Day);
            ITimeLineData timeLineData = klineDataForward.GetTimeLineData();

            Console.WriteLine("timeline:" + timeLineData);

            Assert.AreEqual(klineData_1.End, timeLineData.Price);
            Assert.AreEqual(klineData_1.Mount, timeLineData.Mount);
            Assert.AreEqual(klineData_1.Hold, timeLineData.Hold);
        }