//public ResetTimeViewModel(string sourceDirectory, string symbolName, SwapCollection swapCollection) // : this(sourceDirectory, symbolName, ResetTimeAnalysis.SideAnalyser.Both, 100, swapCollection) //{ //} public ResetTimeViewModel(string sourceDirectory, string symbolName, ResetTimeAnalysis.SideAnalyser sa, int notReadOnlyTimePercent, SwapCollection swapCollection) { this.SourceDirectory = sourceDirectory; this.SymbolName = symbolName; this.Side = sa; this.NotReadOnlyTimePercent = notReadOnlyTimePercent; this.SwapCollection = swapCollection; }
static public double CalculateTimeOfOnePips(string sourceDirectory, string symbolName, ResetTimeAnalysis.SideAnalyser side) { InputData inData = new InputData(); inData.LoadFromDirectory(sourceDirectory, null); double swap = 0; if (ResetTimeAnalysis.SideAnalyser.Buy == side) { swap = inData.SwapBuy; } if (ResetTimeAnalysis.SideAnalyser.Sell == side) { swap = inData.SwapSell; } FuturePredictor fPredictor = new FuturePredictor(inData.Data); List <StratergyParameterRange> ranges = new BuyLimitAndWaitConfigReader().GetRanges(new List <string>()); StrategyParameter currParam = ranges[0].GetAllParameters().Last(); IEnumerable <int> buyArray, sellArray; ResetTimeAnalysis.CalculatePoints(currParam, inData, out buyArray, out sellArray); string profitSymbol = ForexSuite.SymbolsManager.GetProfitSymbol(symbolName); double coefToUSD = ForexSuite.QuotesManager.ConvertCurrency(profitSymbol, "USD", DateTime.Now.AddMonths(-7), ForexSuite.SymbolsManager.ValueFromPips(profitSymbol, 1)); ResetTimeAnalyzer rta = new ResetTimeAnalyzer(currParam["TP"], 1 / 60d, fPredictor.Bids, fPredictor.Asks, coefToUSD, swap); if (side == SideAnalyser.Buy) { rta.Process(buyArray, null); } else { rta.Process(null, sellArray); } if (rta.RealProfit == 0) { throw new ApplicationException("RealProfit=0"); } return(rta.AverageTime / rta.RealProfit); }