コード例 #1
0
        //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;
        }
コード例 #2
0
        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);
        }