Esempio n. 1
0
        public void TestTrade()
        {
            string code      = "RB1710";
            int    startDate = 20170601;
            int    endDate   = 20170603;

            StrategyReferedPeriods referedPeriods = new StrategyReferedPeriods();

            referedPeriods.UseTickData = false;
            referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Minute);
            referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_5Minute);
            StrategyForwardPeriod forwardPeriod = new StrategyForwardPeriod(false, KLinePeriod.KLinePeriod_1Minute);

            StrategyArguments_CodePeriod strategyCodePeriod = new StrategyArguments_CodePeriod(code, startDate, endDate, referedPeriods, forwardPeriod);
            IStrategyExecutor_Single     executor           = StrategyCenter.Default.GetStrategyExecutorFactory().CreateExecutor_History(strategyCodePeriod);

            StrategyAbstract strategy = (StrategyAbstract)StrategyGetter.GetStrategy(typeof(MockStrategy_Trade));

            executor.Strategy = strategy;
            executor.Run();

            StrategyTrader_History trader     = ((StrategyTrader_History)strategy.StrategyHelper.Trader);
            IList <TradeInfo>      tradeInfos = trader.Account.CurrentTradeInfo;

            AssertUtils.PrintLineList((IList)tradeInfos);
            AssertUtils.AssertEqual_List("StrategyTrade", GetType(), tradeInfos);
            Assert.AreEqual(96250, trader.Account.Asset);
            //Assert.AreEqual(98870, trader.Account.Asset);
            //IList<OrderInfo> orderInfos = strategy.StrategyOperator.Trader.CurrentOrderInfo;
            //for (int i = 0; i < tradeInfos.Count; i++)
            //{
            //    Console.WriteLine(tradeInfos[i]);
            //}
            //Console.WriteLine(strategy.StrategyOperator.Trader.OwnerTrader.Account.Asset);
        }
Esempio n. 2
0
        public void TestStrategyExecutorEvent_CodePeriod1()
        {
            string      code       = "RB";
            int         startDate  = 20170101;
            int         endDate    = 20180101;
            ICodePeriod codePeriod = DataCenter.Default.CodePeriodFactory.CreateCodePeriod_MainContract(code, startDate, endDate);

            StrategyReferedPeriods referedPeriods = new StrategyReferedPeriods();

            referedPeriods.UseTickData = false;
            referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Minute);
            referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_5Minute);
            StrategyForwardPeriod forwardPeriod = new StrategyForwardPeriod(false, KLinePeriod.KLinePeriod_1Minute);

            //StrategyArguments_DataPackage strategyCodePeriod = new StrategyArguments_DataPackage(dataPackage, referedPeriods, forwardPeriod);
            StrategyArguments_CodePeriod strategyCodePeriod = new StrategyArguments_CodePeriod(codePeriod, referedPeriods, forwardPeriod);
            IStrategyExecutor_Single     executor           = StrategyCenter.Default.GetStrategyExecutorFactory().CreateExecutor_History(strategyCodePeriod);

            executor.OnBarFinished += Executor_OnBarFinished;
            executor.OnDayFinished += Executor_OnDayFinished;
            executor.OnFinished    += Executor_OnFinished;

            IStrategy strategy = StrategyGetter.GetStrategy(typeof(MockStrategy_Empty));

            executor.Strategy = strategy;
            executor.Run();
        }
Esempio n. 3
0
        public void TestRunStrategy_Minute()
        {
            string            code        = "RB1710";
            int               startDate   = 20170301;
            int               endDate     = 20170603;
            IDataPackage_Code dataPackage = CommonData.GetDataPackage(code, startDate, endDate);

            StrategyReferedPeriods referedPeriods = new StrategyReferedPeriods();

            referedPeriods.UseTickData = false;
            referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Minute);
            referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_5Minute);
            StrategyForwardPeriod forwardPeriod = new StrategyForwardPeriod(false, KLinePeriod.KLinePeriod_1Minute);

            StrategyArguments_DataPackage strategyDataPackage = new StrategyArguments_DataPackage(dataPackage, referedPeriods, forwardPeriod);
            //strategyDataPackage.IsSaveResult = true;
            IStrategyExecutor_Single executor = StrategyCenter.Default.GetStrategyExecutorFactory().CreateExecutor_History(strategyDataPackage);

            IStrategy strategy = StrategyGetter.GetStrategy(typeof(MockStrategy_Simple));

            executor.Strategy = strategy;
            executor.Run();

            Console.WriteLine(executor.StrategyResult);
        }
Esempio n. 4
0
        public void TestStrategyExecute_Multi()
        {
            finishedCount = 0;
            string[]        codes             = new string[] { "rb", "ma", "m", "a", "j", "jd" };
            int             startDate         = 20170101;
            int             endDate           = 20180101;
            ICodePeriodList codePeriodPackage =
                StrategyCenter.Default.BelongDataCenter.CodePeriodFactory.CreateCodePeriodList(codes, startDate, endDate, CodeChooseMethod.Maincontract);

            StrategyReferedPeriods referedPeriods = new StrategyReferedPeriods();

            referedPeriods.UseTickData = false;
            referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Minute);
            referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_5Minute);
            StrategyForwardPeriod forwardPeriod = new StrategyForwardPeriod(false, KLinePeriod.KLinePeriod_1Minute);

            StrategyArguments_CodePeriodList arguments = new StrategyArguments_CodePeriodList(codePeriodPackage, referedPeriods, forwardPeriod);
            IStrategyExecutor_Multi          executor  = StrategyCenter.Default.GetStrategyExecutorFactory().CreateExecutor_Multi_History(arguments);
            IStrategy strategy = StrategyGetter.GetStrategy(typeof(MockStrategy_Event));

            executor.Strategy = strategy;
            executor.OnStrategyDayFinished += Executor_OnStrategyDayFinished;
            executor.OnStrategyFinished    += Executor_OnStrategyFinished;
            executor.Execute();

            StrategyCenter.Default.GetStrategyExecutorPool().ThreadCount      = 2;
            StrategyCenter.Default.GetStrategyExecutorPool().MaxExecutorCount = 3;
            StrategyCenter.Default.GetStrategyExecutorPool().Execute();
            while (finishedCount < 6)
            {
            }
        }
        public void TestExecutor_DataPackageLink()
        {
            string      code       = "RB";
            int         startDate  = 20170101;
            int         endDate    = 20180101;
            ICodePeriod codePeriod = DataCenter.Default.CodePeriodFactory.CreateCodePeriod_MainContract(code, startDate, endDate);

            StrategyReferedPeriods referedPeriods = new StrategyReferedPeriods();

            referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_15Minute);
            referedPeriods.UseTickData = true;
            StrategyForwardPeriod forwardPeriod = new StrategyForwardPeriod(true, KLinePeriod.KLinePeriod_15Minute);

            StrategyArguments_CodePeriod arguments = new StrategyArguments_CodePeriod(codePeriod, referedPeriods, forwardPeriod);
            IStrategyExecutor_Single     executor  = StrategyCenter.Default.GetStrategyExecutorFactory().CreateExecutor_History(arguments);

            IStrategy strategy = StrategyGetter.GetStrategy(typeof(MockStrategy_Simple));

            executor.Strategy = strategy;
            executor.Run();
        }
        public void TestReferOtherStrategy()
        {
            string code      = "RB1710";
            int    startDate = 20170601;
            int    endDate   = 20170603;

            StrategyReferedPeriods referedPeriods = new StrategyReferedPeriods();

            referedPeriods.UseTickData = false;
            referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Minute);
            referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_5Minute);
            StrategyForwardPeriod forwardPeriod = new StrategyForwardPeriod(false, KLinePeriod.KLinePeriod_1Minute);

            StrategyArguments_CodePeriod strategyCodePeriod = new StrategyArguments_CodePeriod(code, startDate, endDate, referedPeriods, forwardPeriod);
            IStrategyExecutor_Single     executor           = StrategyCenter.Default.GetStrategyExecutorFactory().CreateExecutor_History(strategyCodePeriod);

            IStrategy strategy = StrategyGetter.GetStrategy(typeof(MockStrategy_ReferOtherStrategy));

            executor.Strategy = strategy;
            executor.Run();
        }
        private void ExecuteStrategy_Event(string code, int startDate, int endDate)
        {
            IDataPackage_Code dataPackage = CommonData.GetDataPackage(code, startDate, endDate);

            StrategyReferedPeriods referedPeriods = new StrategyReferedPeriods();

            referedPeriods.UseTickData = false;
            referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Minute);
            referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_5Minute);
            StrategyForwardPeriod forwardPeriod = new StrategyForwardPeriod(false, KLinePeriod.KLinePeriod_1Minute);

            StrategyArguments_DataPackage strategyCodePeriod = new StrategyArguments_DataPackage(dataPackage, referedPeriods, forwardPeriod);
            IStrategyExecutor_Single      executor           = StrategyCenter.Default.GetStrategyExecutorFactory().CreateExecutor_History(strategyCodePeriod);

            executor.OnBarFinished += Executor_OnBarFinished;
            executor.OnDayFinished += Executor_OnDayFinished;
            executor.OnFinished    += Executor_OnFinished;

            IStrategy strategy = StrategyGetter.GetStrategy(typeof(MockStrategy_Empty));

            executor.Strategy = strategy;
            executor.Run();
        }