public MockStrategy_Ma() { strategyPeriods = new StrategyReferedPeriods(); strategyPeriods.UseTickData = false; strategyPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Minute); strategyPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_5Minute); }
private void CompChart_OnChartRefresh(object sender, ChartComponentRefreshArguments arg) { if (this.strategyData == null || this.strategyData.Strategy == null) { return; } IStrategy strategy = this.strategyData.Strategy; //if (!arg.DataRefreshed) // return; StrategyReferedPeriods referedPeriods = strategy.GetReferedPeriods(); //当K线图上数据变化,需要修改策略画的图形 //如果画的是K线,且K线周期发生了变化,那么适应全周期的策略需要重新计算 if (!arg.PrevCompData.KlinePeriod.Equals(arg.CurrentCompData.KlinePeriod) && referedPeriods == null) { //重置当前策略 this.strategyData.RefreshStrategy(); strategy = strategyData.Strategy; strategy.Parameters.SetParameterValue(strategy.Parameters.GetParameterValues()); Run(); } else { Refresh(); } }
public IStrategyExecutor CreateExecutor(IDataPackage_Code dataPackage, IStrategy strategy, KLinePeriod period) { StrategyReferedPeriods referedPeriods = new StrategyReferedPeriods(); referedPeriods.UsedKLinePeriods.Add(period); StrategyForwardPeriod forwardPeriod = new StrategyForwardPeriod(false, period); return(StrategyCenter.Default.GetStrategyExecutorFactory_History().CreateExecutorByDataPackage(dataPackage, referedPeriods, forwardPeriod, compChart1.StrategyHelper)); }
//private List<> public Strategy_CnFutures() { refered = new StrategyReferedPeriods(); refered.UseTimeLineData = false; refered.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Minute); //refered.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_15Minute); //refered.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Day); refered.UseTickData = false; }
public override StrategyReferedPeriods GetReferedPeriods() { StrategyReferedPeriods referPeriods = new StrategyReferedPeriods(); referPeriods.UseTickData = false; referPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Minute); referPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_15Minute); return(referPeriods); }
public Strategy_Demo_MinuteImport() { referedPeriods = new StrategyReferedPeriods(); referedPeriods.isReferTimeLineData = false; referedPeriods.UseTickData = false; referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_5Minute); referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_15Minute); this.ImportStrategies.Add(strategy_Ma_5Minute_5); }
private void Controller_OnDataChanged(object sender, CompDataChangeArgument arg) { //if (strategy == null) // return; StrategyReferedPeriods referedPeriods = strategy.GetReferedPeriods(); //当K线图上数据变化,需要修改策略画的图形 //如果画的是K线,且K线周期发生了变化,那么适应全周期的策略需要重新计算 if (!arg.PrevCompData.KlinePeriod.Equals(arg.CurrentCompData.KlinePeriod) && referedPeriods == null) { Run(); } else { Refresh(); } }
/// <summary> /// 运行策略,并且将策略运行结果绑定到该 /// </summary> public void Run() { if (this.strategyData == null || this.strategyData.Strategy == null) { return; } IStrategy strategy = this.strategyData.Strategy; StrategyReferedPeriods referedPeriods = strategy.GetReferedPeriods(); if (referedPeriods == null) { referedPeriods = new StrategyReferedPeriods(); KLinePeriod currentPeriod = this.compChart.Controller.ChartComponentData.KlinePeriod; referedPeriods.UsedKLinePeriods.Add(currentPeriod); if (strategy is StrategyAbstract) { ((StrategyAbstract)strategy).MainKLinePeriod = currentPeriod; } } KLinePeriod mainPeriod = referedPeriods.MainPeriod; StrategyForwardPeriod forwardPeriod = new StrategyForwardPeriod(referedPeriods.UseTickData, mainPeriod); IStrategyExecutorFactory executorFactory = StrategyCenter.Default.GetStrategyExecutorFactory(); IDataPackage_Code dataPackage = this.compChart.Controller.CurrentNavigater.DataPackage; Dictionary <KLinePeriod, int> dic_KLinePeriod_StartPos = new Dictionary <KLinePeriod, int>(); for (int i = 0; i < referedPeriods.UsedKLinePeriods.Count; i++) { KLinePeriod period = referedPeriods.UsedKLinePeriods[i]; dic_KLinePeriod_StartPos.Add(period, dataPackage.GetKLineData(period).BarPos); } drawOperator = new ChartComponentStrategyDrawer(this.compChart.Drawer, dic_KLinePeriod_StartPos, 0, 0); StrategyArguments_DataPackage strategyDataPackage = new StrategyArguments_DataPackage(dataPackage, referedPeriods, forwardPeriod);; StrategyHelper strategyOperator = new StrategyHelper(); strategyOperator.Drawer = drawOperator; strategyExecutor = executorFactory.CreateExecutor_History(strategyDataPackage); strategyExecutor.Strategy = strategy; //strategyExecutor.Run(); //strategyExecutor.ExecuteFinished += StrategyExecutor_ExecuteFinished; strategyExecutor.Execute(); }
private static RealTimeReader_Strategy GetRealTimeReader(string code, int start, int endDate, bool useTickData) { StrategyReferedPeriods referedPeriods = new StrategyReferedPeriods(); referedPeriods.isReferTimeLineData = false; referedPeriods.UseTickData = useTickData; referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Minute); RealTimeReader_StrategyArguments args = new RealTimeReader_StrategyArguments(); args.Code = code; args.StartDate = start; args.EndDate = endDate; args.ReferedPeriods = referedPeriods; args.IsTickForward = useTickData; args.ForwardKLinePeriod = KLinePeriod.KLinePeriod_1Minute; RealTimeReader_Strategy realTimeReader = new RealTimeReader_Strategy(CommonData.GetDataReader(), args); return(realTimeReader); }
/// <summary> /// 运行策略,并且将策略运行结果绑定到该 /// </summary> public void Run() { Strategy_MultiMa strategy = new Strategy_MultiMa(); strategy.MainKLinePeriod = this.compChart.Controller.CompData.KlinePeriod; this.strategy = strategy; if (this.strategy == null) { return; } StrategyReferedPeriods referedPeriods = this.strategy.GetReferedPeriods(); if (referedPeriods == null) { referedPeriods = new StrategyReferedPeriods(); KLinePeriod currentPeriod = this.compChart.Controller.CompData.KlinePeriod; referedPeriods.UsedKLinePeriods.Add(currentPeriod); } KLinePeriod mainPeriod = referedPeriods.MainPeriod; StrategyForwardPeriod forwardPeriod = new StrategyForwardPeriod(referedPeriods.UseTickData, mainPeriod); IStrategyExecutorFactory_History executorFactory = StrategyCenter.Default.GetStrategyExecutorFactory_History(); IDataPackage_Code dataPackage = this.compChart.Controller.CurrentNavigater.DataPackage; Dictionary <KLinePeriod, int> dic_KLinePeriod_StartPos = new Dictionary <KLinePeriod, int>(); for (int i = 0; i < referedPeriods.UsedKLinePeriods.Count; i++) { KLinePeriod period = referedPeriods.UsedKLinePeriods[i]; dic_KLinePeriod_StartPos.Add(period, dataPackage.GetKLineData(period).BarPos); } drawOperator = new StrategyDrawOperator(this.compChart.Drawer, dic_KLinePeriod_StartPos, 0, 0); IStrategyOperator strategyOperator = new StrategyOperator(drawOperator); IStrategyExecutor executor = executorFactory.CreateExecutorByDataPackage(dataPackage, referedPeriods, forwardPeriod, strategyOperator); executor.SetStrategy(strategy); executor.Run(); }
private void RunStrategy(IStrategy strategy) { IDataPackage_Code dataPackage = this.compChart1.CompChartData.DataPackage; StrategyReferedPeriods referedPeriods = new StrategyReferedPeriods(); //compChart1.KlinePeriod KLinePeriod period = compChart1.GetKLinePeriod(); referedPeriods.UsedKLinePeriods.Add(period); //referedPeriods.UsedKLinePeriods.Add(this.n) StrategyForwardPeriod forwardPeriod = new StrategyForwardPeriod(false, period); IStrategyExecutor strategyRunner = StrategyCenter.Default.GetStrategyExecutorFactory_History().CreateExecutorByDataPackage(dataPackage, referedPeriods, forwardPeriod, compChart1.StrategyHelper); //compChart1.StrategyHelper.DrawHelper.ClearShapes(); //compChart1.CurrentPriceRectDrawer.cl //compChart1.CurrentPriceRectDrawer.ClearPriceShapes(); if (strategy is StrategyAbstract) { ((StrategyAbstract)strategy).MainKLinePeriod = period; } strategyRunner.SetStrategy(strategy); strategyRunner.Run(); compChart1.Refresh(); }
//[TestMethod] public void TestMethod1() { //IDataReader dataReader = CommonData.GetDataReader(); //IDataPackage dataPackage = CommonData.g string code = "RB1710"; int start = 20170601; int endDate = 20170603; IDataPackage_Code dataPackage = CommonData.GetDataPackage(code, start, endDate); //StrategyRunnerArguments args = new StrategyRunnerArguments(); //args.Code = code; //args.StartDate = start; //args.EndDate = endDate; //args.IsTickForward = true; //args.ForwardKLinePeriod = KLinePeriod.KLinePeriod_1Minute; StrategyReferedPeriods referedPeriods = new StrategyReferedPeriods(); referedPeriods.UseTickData = true; referedPeriods.UsedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Minute); data.forward.ForwardPeriod forwardPeriod = new data.forward.ForwardPeriod(true, KLinePeriod.KLinePeriod_1Minute); //StrategyExecutor_History runner = new StrategyExecutor_History(dataReader, args); StrategyExecutor_History runner = new StrategyExecutor_History(dataPackage, referedPeriods, forwardPeriod); }
public MockStrategy(StrategyReferedPeriods referedPeriods) { this.referedPeriods = referedPeriods; }