public void AnalyseStrategy(DateTime?fromNullable, DateTime?toNullable) { Dictionary <int, ResetTimeAnalyzer> dictResp = new Dictionary <int, ResetTimeAnalyzer>(); double swap = 0; if (ResetTimeAnalysis.SideAnalyser.Buy == Side && SwapCollection != null) { swap = SwapCollection.GetBuySwap(SymbolName); } if (ResetTimeAnalysis.SideAnalyser.Sell == Side && SwapCollection != null) { swap = SwapCollection.GetSellSwap(SymbolName); } InputData inDataAll = new InputData(); inDataAll.LoadFromDirectory(this.SourceDirectory, null); DateTime from = fromNullable.HasValue ? fromNullable.Value : inDataAll.Data.First().DateTime; DateTime to = toNullable.HasValue ? toNullable.Value : inDataAll.Data.Last().DateTime; inDataAll = inDataAll.Select(from, to); while (from < to) { InputData inData = inDataAll.Select(from, to); if (inData.Data.Count == 0) { continue; } int countDiff = inDataAll.Data.Count - inData.Data.Count; FuturePredictor fPredictor = new FuturePredictor(inData.Data); List <StratergyParameterRange> ranges = new BuyLimitAndWaitConfigReader().GetRanges(new List <string>()); Dictionary <int, ResetTimeAnalyzer> dictRespTest = new Dictionary <int, ResetTimeAnalyzer>(); foreach (StrategyParameter currParam in ranges[0].GetAllParameters()) { if (!dictResp.ContainsKey(currParam["TP"])) { dictResp.Add(currParam["TP"], new ResetTimeAnalyzer(currParam["TP"], 1 / 60d, fPredictor.Bids, fPredictor.Asks, 1, swap)); } IEnumerable <int> buyArray, sellArray; ResetTimeAnalysis.CalculatePoints(currParam, inData, fPredictor, countDiff, out buyArray, out sellArray); dictResp[currParam["TP"]].Process(buyArray, sellArray); } from = from.AddDays(14); } ResetTimeScript rts = new ResetTimeScript(dictResp.Values.ToList(), "", GetScriptDirectory(this.SymbolName, "", fromNullable, toNullable));; rts.Save(); }