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 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 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 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 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 StrategyDrawer(IDataPackage_Code dataPackage, StrategyReferedPeriods referPeriods) { this.dataPackage = dataPackage; foreach (KLinePeriod period in referPeriods.UsedKLinePeriods) { IKLineData_Extend klineData = dataPackage.GetKLineData(period); dic_KLinePeriod_Start.Add(period, klineData.BarPos); dic_KLinePeriod_DataKey.Add(period, new KLineKey(dataPackage.Code, dataPackage.StartDate, dataPackage.EndDate, period)); } }
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 StrategyReferedPeriods GetReferedPeriods() { List <KLinePeriod> usedKLinePeriods = new List <KLinePeriod>(); usedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Minute); usedKLinePeriods.Add(KLinePeriod.KLinePeriod_5Minute); usedKLinePeriods.Add(KLinePeriod.KLinePeriod_15Minute); usedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Hour); usedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Day); StrategyReferedPeriods referedPeriods = new StrategyReferedPeriods(usedKLinePeriods, true, true); return(referedPeriods); }
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 Load(XmlElement xmlElem) { this.startDate = int.Parse(xmlElem.GetAttribute("start")); this.endDate = int.Parse(xmlElem.GetAttribute("end")); XmlElement elemPeriods = (XmlElement)xmlElem.GetElementsByTagName("referperiods")[0]; this.referedPeriods = new StrategyReferedPeriods(); this.referedPeriods.Load(elemPeriods); XmlElement elemForward = (XmlElement)xmlElem.GetElementsByTagName("forwardperiod")[0]; this.forwardPeriod = new ForwardPeriod(); this.forwardPeriod.Load(elemForward); }
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 override StrategyReferedPeriods GetReferedPeriods() { if (referedPeriods != null) { return(referedPeriods); } referedPeriods = new StrategyReferedPeriods(); if (ImportStrategies != null) { for (int i = 0; i < ImportStrategies.Count; i++) { MergeReferedPeriods(referedPeriods, ImportStrategies[i].GetReferedPeriods()); } } StrategyReferedPeriods periods = GetStrategyPeriods_(); MergeReferedPeriods(referedPeriods, periods); return(referedPeriods); }
private void SetStrategy(IStrategy strategy) { this.strategy = strategy; InitStrategy(this.strategy); StrategyReferedPeriods referedPeriods = strategy.GetReferedPeriods(); if (referedPeriods != null) { this.referedPeriods = referedPeriods; } IList <IStrategy> referedStrategies = this.strategy.GetReferedStrategies(); if (referedStrategies != null) { for (int i = 0; i < referedStrategies.Count; i++) { InitStrategy(referedStrategies[i]); } } }
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 MergeReferedPeriods(StrategyReferedPeriods periods, StrategyReferedPeriods mergePeriods) { if (referedPeriods == null) { return; } if (referedPeriods.UseTimeLineData) { periods.UseTimeLineData = true; } if (referedPeriods.UseTickData) { periods.UseTickData = true; } for (int i = 0; i < referedPeriods.UsedKLinePeriods.Count; i++) { KLinePeriod klinePeriod = referedPeriods.UsedKLinePeriods[i]; if (!periods.UsedKLinePeriods.Contains(klinePeriod)) { periods.UsedKLinePeriods.Add(klinePeriod); } } }
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 StrategyOnStartArgument(IDataForward_Code dataForward, StrategyReferedPeriods referedPeriods, StrategyForwardPeriod forwardPeriod) { this.dataForward = dataForward; this.referedPeriods = referedPeriods; this.forwardPeriod = forwardPeriod; }
public StrategyResult_CodePeriod(ICodePeriod codePeriod, StrategyForwardPeriod forwardPeriod, StrategyReferedPeriods referedPeriods) { this.codePeriod = codePeriod; this.forwardPeriod = forwardPeriod; this.referedPeriods = referedPeriods; }
public StrategyArguments_DataPackage(IDataPackage_Code dataPackage, StrategyReferedPeriods referedPeriods, StrategyForwardPeriod forwardPeriod) { this.dataPackage = dataPackage; 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_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, StrategyTraderSetting traderSetting) : this(dataPackage, referedPeriods, forwardPeriod) { this.TraderSetting = traderSetting; }