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); }
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(); }
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 TestStrategyResult_CodePeriod_MainContract() { 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); arguments.IsSaveResult = true; IStrategyExecutor_Single executor = StrategyCenter.Default.GetStrategyExecutorFactory().CreateExecutor_History(arguments); //IStrategy strategy = StrategyGetter.GetStrategy(typeof(MockStrategy_Simple)); MockStrategy_Results strategy = new MockStrategy_Results(); strategy.Name = "策略结果保存"; executor.Strategy = strategy; executor.Run(); }
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); }
public void TestExecuteStrategy() { string code = "RB1710"; int start = 20170601; int endDate = 20170603; IDataPackage_Code dataPackage = CommonData.GetDataPackage(code, start, endDate); StrategyReferedPeriods referedPeriods = new StrategyReferedPeriods(); referedPeriods.UseTickData = false; referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Minute); StrategyForwardPeriod forwardPeriod = new StrategyForwardPeriod(false, KLinePeriod.KLinePeriod_1Minute); StrategyArguments_DataPackage arguments = new StrategyArguments_DataPackage(dataPackage, referedPeriods, forwardPeriod); IStrategyExecutor_Single runner = StrategyCenter.Default.GetStrategyExecutorFactory().CreateExecutor_History(arguments); DateTime prevtime = DateTime.Now; runner.Strategy = new MockStrategy(null); runner.OnFinished += Runner_OnFinished; runner.Execute(); while (!isFinished) { } DateTime time = DateTime.Now; TimeSpan span = time.Subtract(prevtime); Console.WriteLine(span.Minutes * 60 + span.Seconds); }
public void TestRunStrategy_Tick() { //data.reader.IDataReader dataReader = CommonData.GetDataReader(); string code = "RB1710"; int start = 20170601; int endDate = 20170603; IDataPackage_Code dataPackage = CommonData.GetDataPackage(code, start, endDate); StrategyReferedPeriods referedPeriods = new StrategyReferedPeriods(); referedPeriods.UseTickData = true; referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Minute); referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_5Minute); StrategyForwardPeriod forwardPeriod = new StrategyForwardPeriod(true, KLinePeriod.KLinePeriod_1Minute); StrategyArguments_DataPackage arguments = new StrategyArguments_DataPackage(dataPackage, referedPeriods, forwardPeriod); IStrategyExecutor_Single runner = StrategyCenter.Default.GetStrategyExecutorFactory().CreateExecutor_History(arguments); DateTime prevtime = DateTime.Now; runner.Strategy = new MockStrategy(referedPeriods); runner.Run(); DateTime time = DateTime.Now; TimeSpan span = time.Subtract(prevtime); Console.WriteLine(span.Minutes * 60 * 1000 + span.Seconds * 1000 + span.Milliseconds); }
public StrategyResult_CodePeriod(ICodePeriod codePeriod, StrategyForwardPeriod forwardPeriod, StrategyReferedPeriods referedPeriods, IStrategyDrawer strategyDrawer, IStrategyTrader strategyTrader) { this.codePeriod = codePeriod; this.forwardPeriod = forwardPeriod; this.referedPeriods = referedPeriods; this.strategyDrawer = strategyDrawer; this.strategyTrader = strategyTrader; }
public static IStrategyExecutor_Single CreateExecutor_CodePeriod(string code, int start, int end) { IStrategyExecutorFactory executorFactory = StrategyCenter.Default.GetStrategyExecutorFactory(); StrategyReferedPeriods referedPeriods = GetReferedPeriods(); StrategyForwardPeriod forwardPeriod = new StrategyForwardPeriod(true, KLinePeriod.KLinePeriod_1Minute); StrategyArguments_CodePeriod strategyCodePeriod = new StrategyArguments_CodePeriod(code, start, end, referedPeriods, forwardPeriod); IStrategyExecutor_Single executor = executorFactory.CreateExecutor_History(strategyCodePeriod); return(executor); }
private static StrategyArguments_CodePeriodList GetStrategyPackage(List <string> codes, int start, int end) { 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); ICodePeriodFactory codePeriodFactory = DataCenter.Default.CodePeriodFactory; ICodePeriodList codePeriodPackage = codePeriodFactory.CreateCodePeriodList(codes, start, end, CodeChooseMethod.Maincontract); StrategyArguments_CodePeriodList strategyCodePeriodPackage = new StrategyArguments_CodePeriodList(codePeriodPackage, referedPeriods, forwardPeriod); return(strategyCodePeriodPackage); }
public void TestStrategyResult_DataPackage() { //ICodePeriodFactory factory = DataCenter.Default.CodePeriodFactory; //ICodePeriod codePeriod = factory.CreateCodePeriod("rb1801", 20170501, 20170801); StrategyReferedPeriods referedPeriods = new StrategyReferedPeriods(); referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_15Minute); referedPeriods.UseTickData = true; StrategyForwardPeriod forwardPeriod = new StrategyForwardPeriod(true, KLinePeriod.KLinePeriod_15Minute); //StrategyArguments_CodePeriod strategyCodePeriod = new StrategyArguments_CodePeriod(codePeriod, referedPeriods, forwardPeriod); IDataPackage_Code dataPackage = DataCenter.Default.DataPackageFactory.CreateDataPackage_Code("rb1801", 20170501, 20170801); StrategyArguments_DataPackage strategyArguments = new StrategyArguments_DataPackage(dataPackage, referedPeriods, forwardPeriod); //自动保存结果 strategyArguments.IsSaveResult = true; IStrategyExecutor_Single executor = StrategyCenter.Default.GetStrategyExecutorFactory().CreateExecutor_History(strategyArguments); MockStrategy_Results strategy = new MockStrategy_Results(); strategy.Name = "策略结果保存"; executor.Strategy = strategy; executor.Run(); //IStrategyTrader trader = executor.StrategyHelper.Trader; int day = int.Parse(DateTime.Now.ToString("yyyyMMdd")); IStrategyResult result = executor.StrategyResult; string resultName = executor.StrategyResult.Name; IStrategyResultStore store = StrategyCenter.Default.StrategyResultStore; IList <int> savedDays = store.GetAllSavedDays(); for (int i = 0; i < savedDays.Count; i++) { Console.Write(savedDays[i] + ","); } Console.WriteLine(); IStrategyResult result2 = store.LoadStrategyResult(day, resultName); Console.WriteLine(result2); Assert.AreEqual(result.ToString(), result2.ToString()); Assert.AreEqual(1, result2.StrategyResult_Codes.Count); Assert.AreEqual(1, result2.StrategyQueryResultManager.GetQueryResults().Count); Console.WriteLine(result2.StrategyResult_Codes[0]); Assert.AreEqual(result.StrategyResult_Codes[0].ToString(), result2.StrategyResult_Codes[0].ToString()); }
private void LoadMain(XmlElement xmlElem) { XmlElement elemCodePeriod = (XmlElement)xmlElem.GetElementsByTagName("codeperiod")[0]; codePeriod = new CodePeriod(); codePeriod.Load(elemCodePeriod); XmlElement elemForwardPeriod = (XmlElement)xmlElem.GetElementsByTagName("forwardperiod")[0]; forwardPeriod = new StrategyForwardPeriod(); forwardPeriod.Load(elemForwardPeriod); XmlElement elemReferedPeriods = (XmlElement)xmlElem.GetElementsByTagName("referedperiods")[0]; referedPeriods = new StrategyReferedPeriods(); referedPeriods.Load(elemReferedPeriods); }
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(); }
public StrategyResult_CodePeriod(ICodePeriod codePeriod, StrategyForwardPeriod forwardPeriod, StrategyReferedPeriods referedPeriods) { this.codePeriod = codePeriod; this.forwardPeriod = forwardPeriod; this.referedPeriods = referedPeriods; }
public StrategyArguments_CodePeriodList(ICodePeriodList codePeriodPackage, StrategyReferedPeriods referedPeriods, StrategyForwardPeriod forwardPeriod) { this.codePeriodPackage = codePeriodPackage; this.ReferedPeriods = referedPeriods; this.ForwardPeriod = forwardPeriod; }
public StrategyArguments_DataPackage(IDataPackage_Code dataPackage, StrategyReferedPeriods referedPeriods, StrategyForwardPeriod forwardPeriod) { this.dataPackage = dataPackage; this.ReferedPeriods = referedPeriods; this.ForwardPeriod = forwardPeriod; }
public StrategyOnStartArgument(IDataForward_Code dataForward, StrategyReferedPeriods referedPeriods, StrategyForwardPeriod forwardPeriod) { this.dataForward = dataForward; this.referedPeriods = referedPeriods; this.forwardPeriod = forwardPeriod; }
public StrategyArguments_CodePeriod(ICodePeriod codePeriod, StrategyReferedPeriods referedPeriods, StrategyForwardPeriod forwardPeriod, StrategyTraderSetting traderSetting) : this(codePeriod, referedPeriods, forwardPeriod) { this.TraderSetting = traderSetting; }
public StrategyArguments_CodePeriod(ICodePeriod codePeriod, StrategyReferedPeriods referedPeriods, StrategyForwardPeriod forwardPeriod) { this.codePeriod = codePeriod; this.ReferedPeriods = referedPeriods; this.ForwardPeriod = forwardPeriod; }
public StrategyArguments_CodePeriod(string code, int startDate, int endDate, StrategyReferedPeriods referedPeriods, StrategyForwardPeriod forwardPeriod) : this(new CodePeriod(code, startDate, endDate), referedPeriods, forwardPeriod) { }
public StrategyArguments_DataPackage(IDataPackage_Code dataPackage, StrategyReferedPeriods referedPeriods, StrategyForwardPeriod forwardPeriod, IStrategyHelper strategyHelper) : this(dataPackage, referedPeriods, forwardPeriod) { this.StrategyHelper = strategyHelper; }
public StrategyArguments_DataPackage(IDataPackage_Code dataPackage, StrategyReferedPeriods referedPeriods, StrategyForwardPeriod forwardPeriod, StrategyTraderSetting traderSetting) : this(dataPackage, referedPeriods, forwardPeriod) { this.TraderSetting = traderSetting; }