示例#1
0
        public void ValidateCalculateLinearFastDiscreteByEquityAndMargin2()
        {
            Portfolio portfolio = Portfolio.CalculateLinearFast(m_equity, m_margin, 10000000, 0.95, 3000000, 175, 1);

            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(portfolio.Profit, 66302.18930833213, 0.001));
            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(portfolio.When, 45.247374827270384, 0.001));

            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(portfolio.Coefficients[0], 0, 0.001));
            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(portfolio.Coefficients[1], 6.227138204537038, 0.001));
            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(portfolio.Coefficients[2], 42.8705934207335, 0.001));
        }
示例#2
0
        public void ValidateCalculateLinearFastDiscreteByEquityAndMargin()
        {
            Portfolio portfolio = Portfolio.CalculateLinearFast(m_equity, m_margin, 10000000, 0.95, 3000000, 175, 0.5);

            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(portfolio.Profit, 66499.84788772937, 0.001));
            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(portfolio.When, 45.11288512405088, 0.001));

            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(portfolio.Coefficients[0], 0.7282109294652774, 0.001));
            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(portfolio.Coefficients[1], 6.031212361462828, 0.001));
            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(portfolio.Coefficients[2], 43.14954986809901, 0.001));
        }
示例#3
0
        public void ValidateCalculateLinearFastDiscreteByEquity()
        {
            Portfolio portfolio = Portfolio.CalculateLinearFast(m_equity, 0.95, 1000000, 1);

            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(portfolio.Profit, 22100.7, 0.001));
            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(portfolio.When, 45.2474, 0.001));

            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(portfolio.Coefficients[0], 0, 0.001));
            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(portfolio.Coefficients[1], 2.07571, 0.001));
            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(portfolio.Coefficients[2], 14.2902, 0.001));
        }
示例#4
0
        public void ValidateCalculateLinearDiscreteByEquity()
        {
            Portfolio portfolio = Portfolio.CalculateLinear(m_equity, 0.95, 2000000, 1);

            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(portfolio.Profit, 44355.3, 0.001));
            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(portfolio.When, 45.0904, 0.001));

            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(portfolio.Coefficients[0], 1.00003, 0.001));
            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(portfolio.Coefficients[1], 3.82186, 0.001));
            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(portfolio.Coefficients[2], 28.9476, 0.001));
        }
示例#5
0
        public void ValidateCalculateLinearByEquity()
        {
            Portfolio portfolio = Portfolio.CalculateLinear(m_equity, 0.95, 2000000);

            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(portfolio.Profit, 44361.678434564674, 0.001));
            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(portfolio.When, 45.08395699716278, 0.001));

            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(portfolio.Coefficients[0], 0.8343726990339021, 0.001));
            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(portfolio.Coefficients[1], 3.8794446786429853, 0.001));
            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(portfolio.Coefficients[2], 28.907356443934027, 0.001));
        }
示例#6
0
        public void ValidateConfidenceInterval()
        {
            /*
             * Needs["HypothesisTesting`"];
             * MeanCI[{10, 11, 12}, ConfidenceLevel -> 0.8]
             * {9.911337892096364, 12.088662107903636}
             */
            double[] data     = new double[] { 10, 11, 12 };
            double   level    = 0.8;
            Interval interval = Statistics.CalculateConfidenceInterval(data, level);

            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(9.911337892096364, interval.Minimum));
            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(12.088662107903636, interval.Maximum));
        }
示例#7
0
        public void CompareOneAndMultiplyAnalyses()
        {
            UnilateralTickCollection <int> bids = new UnilateralTickCollection <int>(s_bids);
            UnilateralTickCollection <int> asks = new UnilateralTickCollection <int>(s_asks);

            ResetTimeAnalyzer first  = new ResetTimeAnalyzer(0.01, 1 / 60d, bids, asks, 1);
            ResetTimeAnalyzer second = new ResetTimeAnalyzer(0.01, 1 / 60d, bids, asks, 1);


            first.Process(s_buy, s_sell);
            second.Process(s_buy, s_sell);

            Assert.IsTrue(first.TakeProfit == second.TakeProfit);
            Assert.IsTrue(first.TimeFactor == second.TimeFactor);
            Assert.IsTrue(first.AverageTime == second.AverageTime);
            Assert.IsTrue(first.AverageLoss == second.AverageLoss);
            Assert.IsTrue(first.SigmaTime == second.SigmaTime);
            Assert.IsTrue(first.SigmaLoss == second.SigmaLoss);
            Assert.IsTrue(first.ResettingPercentage == second.ResettingPercentage);

            second.Process(s_buy, s_sell);
            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(first.TakeProfit, second.TakeProfit));
            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(first.TimeFactor, second.TimeFactor));
            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(first.AverageTime, second.AverageTime));
            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(first.AverageLoss, second.AverageLoss));
            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(first.SigmaTime, second.SigmaTime, 0.001));
            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(first.SigmaLoss, second.SigmaLoss, 0.001));
            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(first.ResettingPercentage, second.ResettingPercentage));

            second.Process(s_buy, s_sell);
            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(first.TakeProfit, second.TakeProfit));
            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(first.TimeFactor, second.TimeFactor));
            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(first.AverageTime, second.AverageTime));
            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(first.AverageLoss, second.AverageLoss));
            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(first.SigmaTime, second.SigmaTime, 0.001));
            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(first.SigmaLoss, second.SigmaLoss, 0.001));
            Assert.IsTrue(NumericalMethods.IsApproximatelyEqual(first.ResettingPercentage, second.ResettingPercentage));
        }