Exemple #1
0
        public void ComputesCorrectly()
        {
            var fast   = new SimpleMovingAverage(3);
            var slow   = new SimpleMovingAverage(5);
            var signal = new SimpleMovingAverage(3);
            var macd   = new MovingAverageConvergenceDivergence("macd", 3, 5, 3, MovingAverageType.Simple);

            foreach (var data in TestHelper.GetDataStream(7))
            {
                fast.Update(data);
                slow.Update(data);
                macd.Update(data);
                Assert.AreEqual(fast - slow, macd);
                if (fast.IsReady && slow.IsReady)
                {
                    signal.Update(new IndicatorDataPoint(data.Time, macd));
                    Assert.AreEqual(signal.Current.Value, macd.Current.Value);
                }
            }
        }
Exemple #2
0
        protected override void Init()
        {
            InitLogFile();
            #region GetIndicatorsAndFrames// Get Indicators' references...
            // Event occurs once at the start of the strategy
            //XXPrint("Starting TS on account: {0}, comment: {1}, buystop : {2} sellstop : {3}",
            //	this.Account.Number, "CommentText", listOfBuyStop.Count, listOfSellStop.Count);
            Print("Starting TS on account: {0}, comment: {1}", this.Account.Number, CommentText);


            _ma1 = GetIndicator <MovingAverage>(Instrument.Id, Timeframe, 85, 0, MethodMA1, ApplyMA1To);
            _ma2 = GetIndicator <MovingAverage>(Instrument.Id, Timeframe, 75, 0, MethodMA1, ApplyMA1To);
            _ma3 = GetIndicator <MovingAverage>(Instrument.Id, Timeframe, 5, 0, MethodMA2, ApplyMA2To);

            _macd = GetIndicator <MovingAverageConvergenceDivergence> (Instrument.Id, Timeframe);
            _macd.FastEmaPeriod = 15;
            _macd.AppliedPrice  = ApplyMA2To;
            _macd.SlowEmaPeriod = 26;
            _macd.SmaPeriod     = 1;
            #endregion //GetIndicatorsAndFrames
        }
        public override void WarmsUpProperly()
        {
            int fastPeriod   = 3,
                slowPeriod   = 4,
                signalPeriod = 2;
            var macd         = new MovingAverageConvergenceDivergence(fastPeriod: fastPeriod, slowPeriod: slowPeriod, signalPeriod: signalPeriod);

            Assert.IsFalse(macd.Signal.IsReady);
            Assert.IsFalse(macd.Histogram.IsReady);
            Assert.IsFalse(macd.IsReady);

            for (var i = 0; i < fastPeriod; i++)
            {
                Assert.IsFalse(macd.Fast.IsReady);
                macd.Update(new IndicatorDataPoint(DateTime.Today.AddSeconds(i), i));
            }
            Assert.IsTrue(macd.Fast.IsReady);


            for (var i = fastPeriod; i < slowPeriod; i++)
            {
                Assert.IsFalse(macd.Slow.IsReady);
                macd.Update(new IndicatorDataPoint(DateTime.Today.AddSeconds(i), i));
            }
            Assert.IsTrue(macd.Slow.IsReady);


            for (var i = slowPeriod; i < macd.WarmUpPeriod; i++)
            {
                Assert.IsFalse(macd.Signal.IsReady);
                Assert.IsFalse(macd.Histogram.IsReady);
                Assert.IsFalse(macd.IsReady);
                macd.Update(new IndicatorDataPoint(DateTime.Today.AddSeconds(i), i));
            }
            Assert.IsTrue(macd.Signal.IsReady);
            Assert.IsTrue(macd.Histogram.IsReady);
            Assert.IsTrue(macd.IsReady);
        }
Exemple #4
0
        /// <summary>
        /// Called at the start of your algorithm to setup your requirements:
        /// </summary>
        public override void Initialize()
        {
            SetCash(100000);
            symbols.Add("SPY");
            SetStartDate(1998, 1, 1);
            SetEndDate(2014, 6, 1);

            //Present Social Media Stocks:
            // symbols.Add("FB");symbols.Add("LNKD");symbols.Add("GRPN");symbols.Add("TWTR");
            // SetStartDate(2011, 1, 1);
            // SetEndDate(2014, 12, 1);

            //2008 Financials:
            // symbols.Add("C");symbols.Add("AIG");symbols.Add("BAC");symbols.Add("HBOS");
            // SetStartDate(2003, 1, 1);
            // SetEndDate(2011, 1, 1);

            //2000 Dot.com:
            // symbols.Add("IPET");symbols.Add("WBVN");symbols.Add("GCTY");
            // SetStartDate(1998, 1, 1);
            // SetEndDate(2000, 1, 1);

            //CAPE data
            AddData <CAPE>("CAPE");

            foreach (string stock in symbols)
            {
                AddSecurity(SecurityType.Equity, stock, Resolution.Minute);

                macd = MACD(stock, 12, 26, 9, MovingAverageType.Exponential, Resolution.Daily);
                macdDic.Add(stock, macd);
                rsi = RSI(stock, 14, MovingAverageType.Exponential, Resolution.Daily);
                rsiDic.Add(stock, rsi);

                Securities[stock].SetLeverage(10);
            }
        }
 public MovingAverageConvergenceDivergenceOscillatorTrend(Equity equity, int emaPeriodCount1, int emaPeriodCount2, int demPeriodCount)
     : base(equity, emaPeriodCount1, emaPeriodCount2, demPeriodCount)
 {
     _macdIndicator = new MovingAverageConvergenceDivergence(equity, emaPeriodCount1, emaPeriodCount2, demPeriodCount);
 }
        private void PreprocessIndicators()
        {
            var data = IndicatorService.GetData(code, targetDate, new string[] { "Tarih", "Kapanis" }, numberOfData + 1);

            double[] sma = null;
            double[] wma = null;
            double[] ema = null;
            MovingAverageConvergenceDivergence macd = null;

            double[]    rsi         = null;
            double[]    williamsR   = null;
            Stochastics stochastics = null;

            if (isSMA)
            {
                sma = MovingAverage.Simple(code, targetDate, 14, numberOfData);
            }
            if (isWMA)
            {
                wma = MovingAverage.Weighted(code, targetDate, 14, numberOfData);
            }
            if (isEMA)
            {
                ema = MovingAverage.Exponential(code, targetDate, 14, numberOfData);
            }
            if (isMACD)
            {
                macd = new MovingAverageConvergenceDivergence(code, targetDate, 12, 26, 9, numberOfData);
            }
            if (isRSI)
            {
                rsi = RelativeStrengthIndex.Rsi(code, targetDate, 14, numberOfData);
            }
            if (isWilliamsR)
            {
                williamsR = WilliamsR.Wsr(code, targetDate, 14, numberOfData);
            }
            if (isStochastics)
            {
                stochastics = new Stochastics(code, targetDate, 14, 3, 3, numberOfData);
            }

            double[] closesOut      = IndicatorDataPreprocessor.GetClosesOut(numberOfData, data);
            double[] smaOut         = null;
            double[] wmaOut         = null;
            double[] emaOut         = null;
            double[] macdOut        = null;
            double[] rsiOut         = null;
            double[] williamsROut   = null;
            double[] stochasticsOut = null;

            if (isSMA)
            {
                smaOut = IndicatorDataPreprocessor.GetSMAOut(sma);
            }
            if (isWMA)
            {
                wmaOut = IndicatorDataPreprocessor.GetWMAOut(wma);
            }
            if (isEMA)
            {
                emaOut = IndicatorDataPreprocessor.GetEMAOut(ema);
            }
            if (isMACD)
            {
                macdOut = IndicatorDataPreprocessor.GetMACDOut(macd);
            }
            if (isRSI)
            {
                rsiOut = IndicatorDataPreprocessor.GetRSIOut(rsi, false);
            }
            if (isWilliamsR)
            {
                williamsROut = IndicatorDataPreprocessor.GetWilliamsROut(williamsR, false);
            }
            if (isStochastics)
            {
                stochasticsOut = IndicatorDataPreprocessor.GetStochasticsOut(stochastics, false);
            }

            minRowCount = closesOut.Length;
            if (isSMA)
            {
                minRowCount = minRowCount < smaOut.Length ? minRowCount : smaOut.Length;
            }
            if (isWMA)
            {
                minRowCount = minRowCount < wmaOut.Length ? minRowCount : wmaOut.Length;
            }
            if (isEMA)
            {
                minRowCount = minRowCount < emaOut.Length ? minRowCount : emaOut.Length;
            }
            if (isMACD)
            {
                minRowCount = minRowCount < macdOut.Length ? minRowCount : macdOut.Length;
            }
            if (isRSI)
            {
                minRowCount = minRowCount < rsiOut.Length ? minRowCount : rsiOut.Length;
            }
            if (isWilliamsR)
            {
                minRowCount = minRowCount < williamsROut.Length ? minRowCount : williamsROut.Length;
            }
            if (isStochastics)
            {
                minRowCount = minRowCount < stochasticsOut.Length ? minRowCount : stochasticsOut.Length;
            }

            FeatureVector featureVector = new FeatureVector();

            if (isSMA)
            {
                featureVector.AddColumn("SMA", smaOut.Select(p => (object)p.ToString(CultureInfo.InvariantCulture)).Take(minRowCount).ToArray());
            }
            if (isWMA)
            {
                featureVector.AddColumn("WMA", wmaOut.Select(p => (object)p.ToString(CultureInfo.InvariantCulture)).Take(minRowCount).ToArray());
            }
            if (isEMA)
            {
                featureVector.AddColumn("EMA", emaOut.Select(p => (object)p.ToString(CultureInfo.InvariantCulture)).Take(minRowCount).ToArray());
            }
            if (isMACD)
            {
                featureVector.AddColumn("MACD", macdOut.Select(p => (object)p.ToString(CultureInfo.InvariantCulture)).Take(minRowCount).ToArray());
            }
            if (isRSI)
            {
                featureVector.AddColumn("RSI", rsiOut.Select(p => (object)p.ToString(CultureInfo.InvariantCulture)).Take(minRowCount).ToArray());
            }
            if (isWilliamsR)
            {
                featureVector.AddColumn("WilliamsR", williamsROut.Select(p => (object)p.ToString(CultureInfo.InvariantCulture)).Take(minRowCount).ToArray());
            }
            if (isStochastics)
            {
                featureVector.AddColumn("Stochastics", stochasticsOut.Select(p => (object)p.ToString(CultureInfo.InvariantCulture)).Take(minRowCount).ToArray());
            }
            featureVector.AddColumn("label", closesOut.Select(p => (object)string.Format("{0:0.0}", p).ToString(CultureInfo.InvariantCulture)).Take(minRowCount).ToArray());

            int count = featureVector.Values[0].Length;

            training = new FeatureVector();
            test     = new FeatureVector();

            for (int i = 0; i < featureVector.ColumnName.Count; i++)
            {
                training.AddColumn(featureVector.ColumnName[i], featureVector.Values[i].Take((int)(count * trainingPercentage / 100.0)).ToArray());
                test.AddColumn(featureVector.ColumnName[i], featureVector.Values[i].Skip((int)(count * trainingPercentage / 100.0)).Take(count).ToArray()); // Take(count) means take the rest of all elements, number of the rest of the elements is smaller than count.
            }
        }
Exemple #7
0
 protected override void Init()
 {
     // Event occurs once at the start of the strategy
     Print("Starting TS on account: {0}, comment: {1}", this.Account.Number, CommentText);
     _macd = GetIndicator <MovingAverageConvergenceDivergence>(Instrument.Id, Timeframe, 15, 30, 4, PriceMode.Close);
 }
Exemple #8
0
        private void macdParameterNext_Click(object sender, EventArgs e)
        {
            macdResultTitle.Text = Code + " için Moving Average Convergence Divergence sonucu";
            FirstPeriod          = (int)firstPeriod.Value;
            SecondPeriod         = (int)secondPeriod.Value;
            TriggerPeriod        = (int)triggerPeriod.Value;

            closeEma1Ema2Chart.Series.Clear();
            macdLineChart.Series.Clear();
            triggerLineChart.Series.Clear();

            var closeSeries = new Series
            {
                Name      = "Kapanış",
                Color     = System.Drawing.Color.Black,
                ChartType = SeriesChartType.Line
            };

            var emaFirstSeries = new Series
            {
                Name      = "EMA Kısa Period",
                Color     = System.Drawing.Color.Red,
                ChartType = SeriesChartType.Line
            };

            var emaSecondSeries = new Series
            {
                Name      = "EMA Uzun Period",
                Color     = System.Drawing.Color.Green,
                ChartType = SeriesChartType.Line
            };

            var macdLineSeries = new Series
            {
                Name      = "MACD",
                Color     = System.Drawing.Color.Blue,
                ChartType = SeriesChartType.Line
            };

            var triggerLineSeries = new Series
            {
                Name      = "Trigger",
                Color     = System.Drawing.Color.Blue,
                ChartType = SeriesChartType.Line
            };

            closeEma1Ema2Chart.Series.Add(closeSeries);
            closeEma1Ema2Chart.Series.Add(emaFirstSeries);
            closeEma1Ema2Chart.Series.Add(emaSecondSeries);

            macdLineChart.Series.Add(macdLineSeries);

            triggerLineChart.Series.Add(triggerLineSeries);

            var closeData = IndicatorService.GetData(Code, TargetDate, new string[] { "Tarih", "Kapanis" }, NumberOfData);

            MovingAverageConvergenceDivergence macd = new MovingAverageConvergenceDivergence(Code, TargetDate, FirstPeriod, SecondPeriod, TriggerPeriod, NumberOfData, MapReduceAllowed);

            double[] emaFirst    = macd.EmaFirst;
            double[] emaSecond   = macd.EmaSecond;
            double[] macdLine    = macd.MacdLine;
            double[] triggerLine = macd.TriggerLine;

            DateTime date;
            int      i;

            for (i = 0; i < triggerLine.Length; i++)
            {
                var close = closeData.ElementAt(i);
                date = close.GetElement("Tarih").Value.AsBsonDateTime.ToLocalTime();
                closeSeries.Points.AddXY(date, close.GetElement("Kapanis").Value.ToDouble());

                emaFirstSeries.Points.AddXY(date, emaFirst[i]);
                emaSecondSeries.Points.AddXY(date, emaSecond[i]);
                macdLineSeries.Points.AddXY(date, macdLine[i]);
                triggerLineSeries.Points.AddXY(date, triggerLine[i]);
            }
            for (; i < emaFirst.Length; i++)
            {
                var close = closeData.ElementAt(i);
                date = close.GetElement("Tarih").Value.AsBsonDateTime.ToLocalTime();
                closeSeries.Points.AddXY(date, close.GetElement("Kapanis").Value.ToDouble());

                emaFirstSeries.Points.AddXY(date, emaFirst[i]);
                emaSecondSeries.Points.AddXY(date, emaSecond[i]);
                macdLineSeries.Points.AddXY(date, macdLine[i]);
            }

            closeEma1Ema2Chart.ChartAreas[0].AxisY.Minimum = Math.Floor(new double[] { closeData.Select(p => p.GetElement("Kapanis").Value.ToDouble()).Min(), emaFirst.Min(), emaSecond.Min() }.Min());
            closeEma1Ema2Chart.ChartAreas[0].AxisY.Maximum = Math.Ceiling(new double[] { closeData.Select(p => p.GetElement("Kapanis").Value.ToDouble()).Max(), emaFirst.Max(), emaSecond.Max() }.Max());

            macdLineChart.ChartAreas[0].AxisY.Minimum = Math.Floor(macdLine.Min());
            macdLineChart.ChartAreas[0].AxisY.Maximum = Math.Ceiling(macdLine.Max());

            triggerLineChart.ChartAreas[0].AxisY.Minimum = Math.Floor(triggerLine.Min());
            triggerLineChart.ChartAreas[0].AxisY.Maximum = Math.Floor(triggerLine.Max());


            closeEma1Ema2Chart.Invalidate();
            macdLineChart.Invalidate();
            triggerLineChart.Invalidate();

            macdResultPanel.BringToFront();
        }
 public MovingAverageConvergenceDivergenceCrossover(IList <decimal> closes, int emaPeriodCount1, int emaPeriodCount2, int demPeriodCount)
     : base(closes)
 {
     _macd = new MovingAverageConvergenceDivergence(closes, emaPeriodCount1, emaPeriodCount2, demPeriodCount);
 }
Exemple #10
0
 protected override void Init()
 {
     _macdInd = GetIndicator <MovingAverageConvergenceDivergence>(Instrument.Id, Timeframe);
     _bbInd   = GetIndicator <BollingerBands>(Instrument.Id, Timeframe);
 }
        private static void RunConsoleApplication()
        {
            string filePath = (Environment.OSVersion.Platform == PlatformID.Unix || Environment.OSVersion.Platform == PlatformID.MacOSX) ? Environment.GetEnvironmentVariable("HOME") : Environment.ExpandEnvironmentVariables("%HOMEDRIVE%%HOMEPATH%");

            filePath += "\\indicatorOutput.txt";

            string   code       = "AKBNK";
            DateTime targetDate = new DateTime(2018, 11, 1).ToLocalTime();

            int numberOfData = 1000;

            var data = IndicatorService.GetData(code, targetDate, new string[] { "Tarih", "Kapanis" }, numberOfData + 1);

            double[] sma = MovingAverage.Simple(code, targetDate, 14, numberOfData);
            double[] wma = MovingAverage.Weighted(code, targetDate, 14, numberOfData);
            double[] ema = MovingAverage.Exponential(code, targetDate, 14, numberOfData);
            MovingAverageConvergenceDivergence macd = new MovingAverageConvergenceDivergence(code, targetDate, 12, 26, 9, numberOfData);

            double[]    rsi         = RelativeStrengthIndex.Rsi(code, targetDate, 14, numberOfData);
            double[]    williams    = WilliamsR.Wsr(code, targetDate, 14, numberOfData);
            Stochastics stochastics = new Stochastics(code, targetDate, 14, 3, 3, numberOfData);

            double[] closesOut      = IndicatorDataPreprocessor.GetClosesOut(numberOfData, data);
            double[] smaOut         = IndicatorDataPreprocessor.GetSMAOut(sma);
            double[] wmaOut         = IndicatorDataPreprocessor.GetWMAOut(wma);
            double[] emaOut         = IndicatorDataPreprocessor.GetEMAOut(ema);
            double[] macdOut        = IndicatorDataPreprocessor.GetMACDOut(macd);
            double[] rsiOut         = IndicatorDataPreprocessor.GetRSIOut(rsi);
            double[] williamsROut   = IndicatorDataPreprocessor.GetWilliamsROut(williams);
            double[] stochasticsOut = IndicatorDataPreprocessor.GetStochasticsOut(stochastics);

            int minRowCount;

            minRowCount = smaOut.Length;
            minRowCount = minRowCount < wmaOut.Length ? minRowCount : wmaOut.Length;
            minRowCount = minRowCount < emaOut.Length ? minRowCount : emaOut.Length;
            minRowCount = minRowCount < macdOut.Length ? minRowCount : macdOut.Length;
            minRowCount = minRowCount < rsiOut.Length ? minRowCount : rsiOut.Length;
            minRowCount = minRowCount < williamsROut.Length ? minRowCount : williamsROut.Length;
            minRowCount = minRowCount < stochasticsOut.Length ? minRowCount : stochasticsOut.Length;
            minRowCount = minRowCount < closesOut.Length ? minRowCount : closesOut.Length;
            FeatureVector vector = new FeatureVector();

            vector.AddColumn("SMA", smaOut.Select(p => (object)p.ToString(CultureInfo.InvariantCulture)).Take(minRowCount).ToArray());
            vector.AddColumn("WMA", wmaOut.Select(p => (object)p.ToString(CultureInfo.InvariantCulture)).Take(minRowCount).ToArray());
            vector.AddColumn("EMA", emaOut.Select(p => (object)p.ToString(CultureInfo.InvariantCulture)).Take(minRowCount).ToArray());
            vector.AddColumn("MACD", macdOut.Select(p => (object)p.ToString(CultureInfo.InvariantCulture)).Take(minRowCount).ToArray());
            vector.AddColumn("RSI", rsiOut.Select(p => (object)p.ToString(CultureInfo.InvariantCulture)).Take(minRowCount).ToArray());
            vector.AddColumn("WilliamsR", williamsROut.Select(p => (object)p.ToString(CultureInfo.InvariantCulture)).Take(minRowCount).ToArray());
            vector.AddColumn("Stochastics", stochasticsOut.Select(p => (object)p.ToString(CultureInfo.InvariantCulture)).Take(minRowCount).ToArray());
            vector.AddColumn("label", closesOut.Select(p => (object)string.Format("{0:0.0}", p).ToString(CultureInfo.InvariantCulture)).Take(minRowCount).ToArray());

            new LabeledPointExporter(vector).Export(filePath);

            int           count    = vector.Values[0].Length;
            FeatureVector training = new FeatureVector();

            for (int i = 0; i < vector.ColumnName.Count; i++)
            {
                training.AddColumn(vector.ColumnName[i], vector.Values[i].Take(count / 2).ToArray());
            }

            FeatureVector test = new FeatureVector();

            for (int i = 0; i < vector.ColumnName.Count; i++)
            {
                test.AddColumn(vector.ColumnName[i], vector.Values[i].Skip(count / 2).Take(count / 2).ToArray());
            }

            //TestNaiveBayes(training, test);
            //TestNaiveBayesUsingCrossValidation(training, test);
            //TestLinearRegression(training, test);
            //TestLinearRegressionUsingCrossValidation(training, test);
            //TestLogisticRegression(training, test);
            //TestLogisticRegressionUsingCrossValidation(training, test);
        }
        private static void RunFeatureSelector(int mlAlgorithm, bool isCrossValidationEnabled, double trainingSetPercentage)
        {
            string   code       = "AKBNK";
            DateTime targetDate = new DateTime(2018, 11, 1).ToLocalTime();

            int numberOfData = 4000;

            var data = IndicatorService.GetData(code, targetDate, new string[] { "Tarih", "Kapanis" }, numberOfData + 1);

            double[] sma = MovingAverage.Simple(code, targetDate, 14, numberOfData);
            double[] wma = MovingAverage.Weighted(code, targetDate, 14, numberOfData);
            double[] ema = MovingAverage.Exponential(code, targetDate, 14, numberOfData);
            MovingAverageConvergenceDivergence macd = new MovingAverageConvergenceDivergence(code, targetDate, 12, 26, 9, numberOfData);

            double[]    rsi         = RelativeStrengthIndex.Rsi(code, targetDate, 14, numberOfData);
            double[]    williams    = WilliamsR.Wsr(code, targetDate, 14, numberOfData);
            Stochastics stochastics = new Stochastics(code, targetDate, 14, 3, 3, numberOfData);

            double[] closesOut      = IndicatorDataPreprocessor.GetClosesOut(numberOfData, data);
            double[] smaOut         = IndicatorDataPreprocessor.GetSMAOut(sma);
            double[] wmaOut         = IndicatorDataPreprocessor.GetWMAOut(wma);
            double[] emaOut         = IndicatorDataPreprocessor.GetEMAOut(ema);
            double[] macdOut        = IndicatorDataPreprocessor.GetMACDOut(macd);
            double[] rsiOut         = IndicatorDataPreprocessor.GetRSIOut(rsi, false);
            double[] williamsROut   = IndicatorDataPreprocessor.GetWilliamsROut(williams, false);
            double[] stochasticsOut = IndicatorDataPreprocessor.GetStochasticsOut(stochastics, false);

            int minRowCount;

            minRowCount = smaOut.Length;
            minRowCount = minRowCount < wmaOut.Length ? minRowCount : wmaOut.Length;
            minRowCount = minRowCount < emaOut.Length ? minRowCount : emaOut.Length;
            minRowCount = minRowCount < macdOut.Length ? minRowCount : macdOut.Length;
            minRowCount = minRowCount < rsiOut.Length ? minRowCount : rsiOut.Length;
            minRowCount = minRowCount < williamsROut.Length ? minRowCount : williamsROut.Length;
            minRowCount = minRowCount < stochasticsOut.Length ? minRowCount : stochasticsOut.Length;
            minRowCount = minRowCount < closesOut.Length ? minRowCount : closesOut.Length;

            int numberOfIndicators   = IndicatorService.indicators.Length;
            int numberOfCombinations = (int)Math.Pow(2, numberOfIndicators) - 1;

            for (int i = 1; i <= numberOfCombinations; i++)
            {
                int        tmp        = i;
                List <int> indicators = new List <int>();
                for (int j = 0; j < numberOfIndicators; j++)
                {
                    if ((tmp & 1) == 1)
                    {
                        indicators.Add(IndicatorService.indicators[j]);
                    }
                    tmp >>= 1;
                }

                double accuracy = CalculateAccuracy(indicators, mlAlgorithm, isCrossValidationEnabled, minRowCount, trainingSetPercentage, smaOut, wmaOut, emaOut, macdOut, rsiOut, williamsROut, stochasticsOut, closesOut);
                if (indicators.Contains(IndicatorService.SMA))
                {
                    Console.Write("SMA ");
                }
                if (indicators.Contains(IndicatorService.WMA))
                {
                    Console.Write("WMA ");
                }
                if (indicators.Contains(IndicatorService.EMA))
                {
                    Console.Write("EMA ");
                }
                if (indicators.Contains(IndicatorService.MACD))
                {
                    Console.Write("MACD ");
                }
                if (indicators.Contains(IndicatorService.RSI))
                {
                    Console.Write("RSI ");
                }
                if (indicators.Contains(IndicatorService.WilliamsR))
                {
                    Console.Write("WilliamsR ");
                }
                if (indicators.Contains(IndicatorService.Stochastics))
                {
                    Console.Write("Stochastics ");
                }
                Console.WriteLine("=>\t" + accuracy);
            }
        }
Exemple #13
0
 public override void Initialize()
 {
     _symbol = AddForex(_ticker, Resolution.Minute).Symbol;
     _macd   = Algo.MACD(_symbol, 12, 26, 9, MovingAverageType.Exponential, _resolution);
 }