public void CompareAgainstExternalData()
        {
            var    logr    = new LogReturn(14);
            double epsilon = 1e-3;

            TestHelper.TestIndicator(logr, "spy_logr14.txt", "LOGR14", (ind, expected) => Assert.AreEqual(expected, (double)ind.Current.Value, epsilon));
        }
예제 #2
0
        public void LOGRComputesCorrectly()
        {
            var period = 4;
            var logr   = new LogReturn(period);
            var data   = new[] { 1, 10, 100, 1000, 10000, 1234, 56789 };
            var seen   = new List <int>();
            var time   = DateTime.Now;

            for (var i = 0; i < data.Length; i++)
            {
                var datum  = data[i];
                var value0 = 0.0;

                if (seen.Count >= 0 && seen.Count < period)
                {
                    value0 = data[0];
                }
                else if (seen.Count >= period)
                {
                    value0 = data[i - period];
                }

                var expected = (decimal)Math.Log(datum / value0);

                seen.Add(datum);
                logr.Update(time.AddSeconds(i), datum);
                Assert.AreEqual(expected, logr.Current.Value);
            }
        }
        public void LOGRComputesCorrectly()
        {
            int period = 4;
            var logr   = new LogReturn(period);
            var data   = new[] { 1m, 10m, 100m, 1000m, 10000m, 1234m, 56789m };

            var seen = new List <decimal>();

            for (int i = 0; i < data.Length; i++)
            {
                var datum  = data[i];
                var value0 = 0m;

                if (seen.Count >= 0 && seen.Count < period)
                {
                    value0 = data[0];
                }
                else if (seen.Count >= period)
                {
                    value0 = data[i - period];
                }

                var expected = (decimal)Math.Log((double)datum / (double)value0);

                seen.Add(datum);
                logr.Update(new IndicatorDataPoint(DateTime.Now.AddSeconds(i), datum));
                Assert.AreEqual(expected, logr.Current.Value);
            }
        }
예제 #4
0
        public void CompareAgainstExternalData()
        {
            var    logr    = new LogReturn(14);
            double epsilon = 1e-3;

            TestHelper.TestIndicator(logr, "spy_logr14.txt", "LOGR14",
                                     (ind, expected) => ((double)ind.Current.Price).Should().BeApproximately(expected, epsilon));
        }
예제 #5
0
        /// <summary>
        /// Creates a new LogReturn indicator.
        /// </summary>
        /// <param name="symbol">The symbol whose log return we seek</param>
        /// <param name="period">The period of the log return.</param>
        /// <param name="resolution">The resolution.</param>
        /// <returns>log return indicator for the requested symbol.</returns>
        public LogReturn LOGR(string symbol, int period, Resolution?resolution = null)
        {
            string name = CreateIndicatorName(symbol, "LOGR", resolution);
            var    logr = new LogReturn(name, period);

            RegisterIndicator(symbol, logr, resolution);
            return(logr);
        }
예제 #6
0
 public LogReturnSignal(LogReturn logr_Fast,
                        LogReturn logr_Slow,
                        LeastSquaresMovingAverage logrFast,
                        LeastSquaresMovingAverage logrSlow,
                        TickConsolidator ticks,
                        SecurityHolding securityHolding)
 {
     _logr_Fast       = logr_Fast;
     _logr_Slow       = logr_Slow;
     _logrFast        = logrFast;
     _logrSlow        = logrSlow;
     _ticks           = ticks;
     _securityHolding = securityHolding;
 }
예제 #7
0
        //RegisterIndicator(symbol, logr, null);

        //Initialize the data and resolution you require for your strategy:
        public override void Initialize()
        {
            //Start and End Date range for the backtest:
            SetStartDate(2009, 3, 1);
            SetEndDate(DateTime.Now);

            //Cash allocation
            SetCash(25000);

            //Add as many securities as you like. All the data will be passed into the event handler:
            AddSecurity(SecurityType.Equity, symbol, Resolution.Hour);

            logr_14 = LOGR(symbol, 14, Resolution.Hour);
            logr_30 = LOGR(symbol, 2, Resolution.Hour);

            logr14 = new LeastSquaresMovingAverage(14).Of(logr_14);
            logr30 = new LeastSquaresMovingAverage(30).Of(logr_30);
        }
예제 #8
0
        public void LOGRComputesCorrectly()
        {
            int period = 4;
            var logr = new LogReturn(period);
            var data = new[] { 1m, 10m, 100m, 1000m, 10000m, 1234m, 56789m };

            var seen = new List<decimal>();
            for (int i = 0; i < data.Length; i++)
            {
                var datum = data[i];
                var value0 = 0m;

                if (seen.Count >= 0 && seen.Count < period)
                    value0 = data[0];
                else if (seen.Count >= period)
                    value0 = data[i - period];

                var expected = (decimal)Math.Log((double)datum / (double)value0);

                seen.Add(datum);
                logr.Update(new IndicatorDataPoint(DateTime.Now.AddSeconds(i), datum));
                Assert.AreEqual(expected, logr.Current.Value);
            }
        }
        public void ResetsProperly()
        {
            var logr = new LogReturn(14);

            TestHelper.TestIndicatorReset(logr, "spy_logr14.txt");
        }
예제 #10
0
 public void CompareAgainstExternalData()
 {
     var logr = new LogReturn(14);
     double epsilon = 1e-3;
     TestHelper.TestIndicator(logr, "spy_logr14.txt", "LOGR14", (ind, expected) => Assert.AreEqual(expected, (double)ind.Current.Value, epsilon));
 }
예제 #11
0
        public void ResetsProperly()
        {
            var logr = new LogReturn(14);

            TestHelper.TestIndicatorReset(logr, "spy_logr14.txt");
        }