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();
        }