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 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 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 StrategyExecutor_CodePeriod_MainContract(IStrategyCenter strategyCenter, StrategyArguments_CodePeriod strategyArguments) : base(strategyCenter, strategyArguments) { this.strategyArguments = strategyArguments; this.PrepareStrategyHelper(); IList <ICodePeriod> codePeriods = this.strategyArguments.CodePeriod.Contracts; this.dataPackages = new List <IDataPackage_Code>(); for (int i = 0; i < codePeriods.Count; i++) { ICodePeriod codePeriod = codePeriods[i]; this.dataPackages.Add(strategyCenter.BelongDataCenter.DataPackageFactory.CreateDataPackage_Code(codePeriod.Code, codePeriod.StartDate, codePeriod.EndDate)); } this.BuildExecutorInfo(); for (int i = 0; i < dataPackages.Count; i++) { IDataPackage_Code dataPackage = dataPackages[i]; StrategyHelper executorStrategyHelper = new StrategyHelper(); executorStrategyHelper.QueryResultManager = this.strategyHelper.QueryResultManager; executorStrategyHelper.Drawer = null;//TODO executorStrategyHelper.Trader = this.strategyHelper.Trader; StrategyArguments_DataPackage strategyArgument = new StrategyArguments_DataPackage(dataPackage, strategyArguments.ReferedPeriods, strategyArguments.ForwardPeriod, executorStrategyHelper); StrategyExecutor_DataPackage executor = new StrategyExecutor_DataPackage(strategyCenter, strategyArgument, this.strategyExecutorInfo); executor.OnBarFinished += Executor_OnBarFinished; executor.OnDayFinished += Executor_OnDayFinished; this.executors.Add(executor); } }
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); }
public IList <IStrategyExecutor_Single> CreateExecutors_History(StrategyArguments_CodePeriodList strategyCodePeriodPackage) { List <IStrategyExecutor_Single> executors = new List <IStrategyExecutor_Single>(); List <ICodePeriod> codePeriods = strategyCodePeriodPackage.CodePeriodPackage.CodePeriods; for (int i = 0; i < codePeriods.Count; i++) { StrategyArguments_CodePeriod argument = new StrategyArguments_CodePeriod(codePeriods[i], strategyCodePeriodPackage.ReferedPeriods, strategyCodePeriodPackage.ForwardPeriod); executors.Add(CreateExecutor_History(argument)); } return(executors); }
public StrategyExecutor_Multi(IStrategyCenter strategyCenter, StrategyArguments_CodePeriodList arguments) { this.strategyCenter = strategyCenter; this.arguments = arguments; IList <ICodePeriod> codePeriods = this.arguments.CodePeriodPackage.CodePeriods; for (int i = 0; i < codePeriods.Count; i++) { ICodePeriod codePeriod = codePeriods[i]; StrategyArguments_CodePeriod strategyCodePeriod = new StrategyArguments_CodePeriod(codePeriod, arguments.ReferedPeriods, arguments.ForwardPeriod); IStrategyExecutor_Single executor = strategyCenter.GetStrategyExecutorFactory().CreateExecutor_History(strategyCodePeriod); this.executors.Add(executor); } }
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 InitByCodePeriod(IStrategyCenter strategyCenter, StrategyArguments_CodePeriod strategyArguments) { ICodePeriod codePeriod = strategyArguments.CodePeriod; if (codePeriod.IsFromContracts) { this.strategyExecutor = new StrategyExecutor_CodePeriod_MainContract(strategyCenter, strategyArguments); } else { IDataPackage_Code dataPackage = strategyCenter.BelongDataCenter.DataPackageFactory.CreateDataPackage_Code(codePeriod.Code, codePeriod.StartDate, codePeriod.EndDate); StrategyArguments_DataPackage strategyDataPackage = new StrategyArguments_DataPackage(dataPackage, strategyArguments.ReferedPeriods, strategyArguments.ForwardPeriod); this.strategyExecutor = strategyCenter.GetStrategyExecutorFactory().CreateExecutor_History(strategyDataPackage); } this.strategyExecutor.OnStart += StrategyExecutor_OnStart;; this.strategyExecutor.OnBarFinished += StrategyExecutor_OnBarFinished; this.strategyExecutor.OnDayFinished += StrategyExecutor_OnDayFinished; this.strategyExecutor.OnCanceled += StrategyExecutor_OnCanceled; this.strategyExecutor.OnFinished += StrategyExecutor_OnFinished; }
public IStrategyExecutor_Single CreateExecutor_History(StrategyArguments_CodePeriod strategyCodePeriod) { return(new StrategyExecutor_CodePeriod(strategyCenter, strategyCodePeriod)); }
public StrategyExecutor_CodePeriod(IStrategyCenter strategyCenter, StrategyArguments_CodePeriod strategyArguments) { InitByCodePeriod(strategyCenter, strategyArguments); }