protected override void Initialize()
        {
            _ma = Indicators.MovingAverage(MarketSeries.Close, maPeriod, MAType);

            if (!Enum.TryParse<Colors>(AboveUpColor, out _AboveUpColor) || !Enum.TryParse<Colors>(AboveDownColor, out _AboveDownColor) || !Enum.TryParse<Colors>(BelowUpColor, out _BelowUpColor) || !Enum.TryParse<Colors>(BelowDownColor, out _BelowDownColor))
                _incorrectColors = true;
        }
        protected override void Initialize()
        {
            _ma1 = Indicators.MovingAverage(DataSource, Periods, MovingAverageType);
            _ma2 = Indicators.MovingAverage(_ma1.Result, Periods, MovingAverageType);

            base.Initialize();
        }
Beispiel #3
0
 protected override void Initialize()
 {
     deMin = CreateDataSeries();
     deMax = CreateDataSeries();
     deMinMA = Indicators.MovingAverage(deMin, Periods, MovingAverageType.Simple);
     deMaxMA = Indicators.MovingAverage(deMax, Periods, MovingAverageType.Simple);
 }
 protected override void Initialize()
 {
     _rsi = Indicators.RelativeStrengthIndex(Source, RsiPeriod);
     _bollingerBands = Indicators.BollingerBands(_rsi.Result, Volatility, StDev, MovingAverageType.Simple);
     _price = Indicators.MovingAverage(_rsi.Result, PricePeriod, PriceMaType);
     _signal = Indicators.MovingAverage(_rsi.Result, SignalPeriod, SignalMaType);
 }
Beispiel #5
0
 protected override void Initialize()
 {
     Median = Indicators.MedianPrice();
     HiInd = Indicators.MovingAverage(MarketSeries.High, SlowMA, MovingAverageType.Simple);
     LoInd = Indicators.MovingAverage(MarketSeries.Low, SlowMA, MovingAverageType.Simple);
     MasterInd = Indicators.MovingAverage(Median.Result, FastMA, MovingAverageType.Exponential);
     SignalBuffer = Indicators.MovingAverage(MacdDivrBuffer, SignalMA, MovingAverageType.Simple);
 }
Beispiel #6
0
        protected override void Initialize()
        {
            _movingAverage = Indicators.MovingAverage(HighAccelerationSeries, Period, MovingAverageType);

            long elapsedTicks = (long)Math.Ceiling((NumberOfCandle + 0.5) * MarketSeries.TimeFrame.ToTimeSpan().Ticks);
            TimeSpan elapsedSpan = new TimeSpan(elapsedTicks);
            _elapsedTime = elapsedSpan.TotalSeconds;
        }
        protected override void Initialize()
        {
            // Initialize and create nested indicators
            tr = CreateDataSeries();
            tri = Indicators.TrueRange();
            TRMA = Indicators.MovingAverage(tr, Periods, MovingAverageType.Simple);

        }
Beispiel #8
0
        protected override void Initialize()
        {
            _rocLong = Indicators.PriceROC(Source, RocPeriodLong);
            _rocShort = Indicators.PriceROC(Source, RocPeriodShort);
            _rocSum = CreateDataSeries();
            _maofRoc = Indicators.WeightedMovingAverage(_rocSum, WmaPeriod);

        }
Beispiel #9
0
        protected override void Initialize()
        {
            fastMA = Indicators.MovingAverage(MarketSeries.Close, fastPeriod, MaType);
            slowMA = Indicators.MovingAverage(MarketSeries.Close, SlowPeriod, MaType);

            arrowOffset = Symbol.PipSize * 5;

        }
 protected override void Initialize()
 {
     maOpen = Indicators.MovingAverage(MarketSeries.Open, Periods, MAType);
     maClose = Indicators.MovingAverage(MarketSeries.Close, Periods, MAType);
     maHigh = Indicators.MovingAverage(MarketSeries.High, Periods, MAType);
     maLow = Indicators.MovingAverage(MarketSeries.Low, Periods, MAType);
     haOpen = CreateDataSeries();
     haClose = CreateDataSeries();
 }
        protected override void Initialize()
        {
            _marketSerieGlobal = MarketData.GetSeries(GlobalTimeFrame);
			
			int period = 2 * (int) (GlobalTimeFrame.ToTimeSpan().Ticks / MarketSeries.TimeFrame.ToTimeSpan().Ticks);

			_localMA = Indicators.MovingAverage(LocalTrendSignal, period, MovingAverageType.Exponential);

        }
 protected override void Initialize()
 {
     // Initialize and create nested indicators
     ABS = CreateDataSeries();
     Avg = Indicators.MovingAverage(Source, Periode, MovingAverageType.Simple);
     Avg_Abs = Indicators.MovingAverage(ABS, Bands_Periode, MovingAverageType.Simple);
     Avg_Cycle = Indicators.MovingAverage(Cycle, Bands_Periode, MovingAverageType.Simple);
     back = Periode / 2;
 }
Beispiel #13
0
        protected override void Initialize()
        {
            _denominator = CreateDataSeries();
            _nominator = CreateDataSeries();
            _fastK = CreateDataSeries();
            CreateDataSeries();
            _mak = Indicators.MovingAverage(_fastK, Smooth, MaType);
            _mad = Indicators.MovingAverage(_mak.Result, DPeriod, MaType);

        }
        public void AllowTheFirstRequestItReceives()
        {
            // Arrange
            var strategy = new MovingAverage(new MovingAverageConfig(10000, 1000));

            // Act
            bool isAllowed = strategy.IsAllowed(DateTime.Now);

            // Assert
            Assert.That(isAllowed, Is.True);
        }
Beispiel #15
0
        protected override void Initialize()
        {
            if (Period < 2 * SamplingPeriod)
                ChartObjects.DrawText("message", "Period >= Sampling Period * 2", StaticPosition.TopCenter, Colors.Red);

            var lamda = (double)Period / SamplingPeriod;
            _alpha = lamda * (Period - 1) / (Period - lamda);

            _movingAverage1 = Indicators.MovingAverage(Source, Period, MAType);
            _movingAverage2 = Indicators.MovingAverage(_movingAverage1.Result, SamplingPeriod, MAType);
        }
Beispiel #16
0
        protected override void Initialize()
        {
            // Initialize and create nested indicators
            Range = CreateDataSeries();
            _Avalue = CreateDataSeries();
            MiddleRange = CreateDataSeries();

            // Initialize the Monving Average
            MovRange = Indicators.MovingAverage(Range, Period, MovingAverageType.Simple);
            _Bvalue = Indicators.MovingAverage(MiddleRange, Period, MovingAverageType.Simple);

        }
Beispiel #17
0
        protected override void Initialize()
        {
            ma = Indicators.MovingAverage(MarketSeries.Close, 200, MovingAverageType.Simple);
            if (Symbol2 != "")
            {
                symbol2 = MarketData.GetSymbol(Symbol2);
                series2 = MarketData.GetSeries(symbol2, TimeFrame);
            }

            multiplier = Symbol.Ask / symbol2.Ask;

        }
Beispiel #18
0
        protected override void Initialize()
        {
            _dataSeries = CreateDataSeries();
            _trend = CreateDataSeries();

            var period1 = (int)Math.Floor(DllPeriod / Period);
            var period2 = (int)Math.Floor(Math.Sqrt(DllPeriod));

            _movingAverage1 = Indicators.MovingAverage(Price, period1, MaType);
            _movingAverage2 = Indicators.MovingAverage(Price, DllPeriod, MaType);
            _movingAverage3 = Indicators.MovingAverage(_dataSeries, period2, MaType);

        }
Beispiel #19
0
        protected override void Initialize()
        {
            _iDataSeries = CreateDataSeries();
            _emaDiffCenter = Indicators.ExponentialMovingAverage(_iDataSeries, 3);
            _emaSmoothed = Indicators.ExponentialMovingAverage(_emaDiffCenter.Result, 3);

            _iDataSeriesHighLow = CreateDataSeries();
            _emaDiffHighLow = Indicators.ExponentialMovingAverage(_iDataSeriesHighLow, 3);
            _emaDiffHighLow2 = Indicators.ExponentialMovingAverage(_emaDiffHighLow.Result, 3);

            _smi = CreateDataSeries();
            _maSmi = Indicators.MovingAverage(_smi, Period, MaType);
        }
        public void AllowRequestWhenMovingAverageLimitHasNotBeenTriggered()
        {
            // Arrange
            var strategy = new MovingAverage(new MovingAverageConfig(10000, 1000));
            DateTime firstRequestTime = DateTime.Now;
            strategy.IsAllowed(firstRequestTime);

            // Act
            bool isAllowed = strategy.IsAllowed(firstRequestTime.AddMilliseconds(100));

            // Assert
            Assert.That(isAllowed, Is.True);
        }
Beispiel #21
0
        protected override void Initialize()
        {
            _priceRoc1 = Indicators.PriceROC(Source, X1);
            _priceRoc2 = Indicators.PriceROC(Source, X2);
            _priceRoc3 = Indicators.PriceROC(Source, X3);
            _priceRoc4 = Indicators.PriceROC(Source, X4);

            _movingAverage1 = Indicators.MovingAverage(_priceRoc1.Result, AVG1, MAType);
            _movingAverage2 = Indicators.MovingAverage(_priceRoc2.Result, AVG2, MAType);
            _movingAverage3 = Indicators.MovingAverage(_priceRoc3.Result, AVG3, MAType);
            _movingAverage4 = Indicators.MovingAverage(_priceRoc4.Result, AVG4, MAType);

            ema = Indicators.ExponentialMovingAverage(Result, 9);

        }
Beispiel #22
0
        protected override void Initialize()
        {
            //_ma = Indicators.MovingAverage(MarketSeries.Close, SignalPeriod, MaType);
            _dataSeries = CreateDataSeries();
            _dataSeriesAbs = CreateDataSeries();

            _longDividend = Indicators.MovingAverage(_dataSeries, LongPeriod, MaType);
            _dividend = Indicators.MovingAverage(_longDividend.Result, ShortPeriod, MaType);

            _longDivisor = Indicators.MovingAverage(_dataSeriesAbs, LongPeriod, MaType);
            _divisor = Indicators.MovingAverage(_longDivisor.Result, ShortPeriod, MaType);

            _tsiSeries = CreateDataSeries();
            _signal = Indicators.MovingAverage(_tsiSeries, SignalPeriod, MaType);

        }
        public void DisAllowRequestWhenMovingAverageLimitHasBeenTriggered()
        {
            // Arrange
            var strategy = new MovingAverage(new MovingAverageConfig(10000, 1000));
            DateTime firstRequestTime = DateTime.Now;
            strategy.IsAllowed(firstRequestTime);
            const int maxRequests = 10;

            for (int i = 0; i < maxRequests; i++)
            {
                strategy.IsAllowed(firstRequestTime.AddMilliseconds((i * 100) + 100));
            }

            // Act
            bool isAllowed = strategy.IsAllowed(firstRequestTime.AddMilliseconds((maxRequests * 100) + 100));

            // Assert
            Assert.That(isAllowed, Is.False);
        }
        protected override void Initialize()
        {
            color1  = Color.FromHex(lineColor1);
            series1 = MarketData.GetBars(timeframe1);
            ma1     = Indicators.MovingAverage(series1.ClosePrices, Period1, MAType1);
            val1    = ma1.Result.LastValue;
            if (Visibility1 == true)
            {
                Chart.DrawTrendLine("Extension1", series1.OpenTimes.LastValue, val1, MarketData.GetBars(TimeFrame.Minute).OpenTimes.LastValue, val1, color1, Thickness1, LineStyle1);
            }

            color2  = Color.FromHex(lineColor2);
            series2 = MarketData.GetBars(timeframe2);
            ma2     = Indicators.MovingAverage(series2.ClosePrices, Period2, MAType2);
            val2    = ma2.Result.LastValue;
            if (Visibility2 == true)
            {
                Chart.DrawTrendLine("Extension2", series2.OpenTimes.LastValue, val2, MarketData.GetBars(TimeFrame.Minute).OpenTimes.LastValue, val2, color2, Thickness2, LineStyle2);
            }



            color3  = Color.FromHex(lineColor3);
            series3 = MarketData.GetBars(timeframe3);
            ma3     = Indicators.MovingAverage(series3.ClosePrices, Period3, MAType3);
            val3    = ma3.Result.LastValue;
            if (Visibility3 == true)
            {
                Chart.DrawTrendLine("Extension3", series3.OpenTimes.LastValue, val3, MarketData.GetBars(TimeFrame.Minute).OpenTimes.LastValue, val3, color3, Thickness3, LineStyle3);
            }


            color4  = Color.FromHex(lineColor4);
            series4 = MarketData.GetBars(timeframe4);
            ma4     = Indicators.MovingAverage(series4.ClosePrices, Period4, MAType4);
            val4    = ma4.Result.LastValue;
            if (Visibility4 == true)
            {
                Chart.DrawTrendLine("Extension4", series4.OpenTimes.LastValue, val4, MarketData.GetBars(TimeFrame.Minute).OpenTimes.LastValue, val4, color4, Thickness4, LineStyle4);
            }
        }
        protected override void Initialize()
        {
            HttpClient = new HttpClient();
            Print("Started super Profit indicator, Time frame " + MarketSeries.TimeFrame.ToString() + " \r\n " + Symbol);
            profitPositions = new List <ProfitPosition>();

            //Set the take profit and stop loss
            TakeProfit = 100 * Symbol.PipSize;
            StopLoss   = 400 * Symbol.PipSize;

            _dataSeries = CreateDataSeries();
            _trend      = CreateDataSeries();

            var period1 = (int)Math.Floor(DllPeriod / Period);
            var period2 = (int)Math.Floor(Math.Sqrt(DllPeriod));

            _movingAverage1 = Indicators.MovingAverage(Price, period1, MaType);
            _movingAverage2 = Indicators.MovingAverage(Price, DllPeriod, MaType);
            _movingAverage3 = Indicators.MovingAverage(_dataSeries, period2, MaType);
            RefreshData();
        }
        private void OnLoad(object sender, EventArgs e)
        {
            dataService = DataService.GetService();

            var data = dataService.GetSymbolData("box");

            financialChart1.BeginUpdate();
            financialChart1.BindingX = "date";
            financialChart1.Binding  = "close";
            financialChart1.Series.Add(new FinancialSeries());
            financialChart1.ChartType = C1.Chart.Finance.FinancialChartType.Line;

            ma = new MovingAverage();
            financialChart1.Series.Add(ma);

            financialChart1.DataSource = data;

            financialChart1.EndUpdate();

            movingAverage.DataSource = Enum.GetValues(typeof(MovingAverageType));
        }
Beispiel #27
0
        // Get Current Trend
        protected bool CheckMovment(int BarsBack, double MinMovement, double MaxMovement, string Description)
        {
            MovingAverage MA27 = Indicators.MovingAverage(SourceSeries, 27, MAType);

            double SignalPoint = MA27.Result.Last(1);

            double CheckPoint = MA27.Result.Last(BarsBack + 1);

            double Result = Math.Abs(SignalPoint - CheckPoint);

            Print(Description + " " + Result.ToString());

            if (Result <= MinMovement | Result >= MaxMovement)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
Beispiel #28
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
        }
Beispiel #29
0
        public async Task Ema_MA_Success()
        {
            // Arrange
            var loggerMock = Mock.Of <ILogger <CsvLoader> >();
            var parser     = new CsvLoader(loggerMock);
            var fileH1     = Path.Combine(Directory.GetCurrentDirectory(), "RTS-12.20_H1.csv");
            var bars       = await parser.LoadBars(fileH1);

            var chartManager = new ChartManager(bars);

            chartManager.Finish();
            var ema = new MovingAverage(chartManager.Chart, 50);

            // Act
            var emaValues = ema.EmaValue();


            // Assert
            bars.Should().NotBeEmpty();
            bars.Should().HaveCount(863);
        }
        /// <summary>
        /// Конструктор класса робота
        /// </summary>
        /// <param name="name">Имя робота</param>
        /// <param name="startProgram">Имя программы, которая запустила робота</param>
        public OneLegArbitrageGrid(string name, StartProgram startProgram) : base(name, startProgram)
        {
            // сохраняем программу, которая запустила робота
            // это может быть тестер, оптимизатор, терминал
            _startProgram = StartProgram;

            // создаем вкладки
            TabCreate(BotTabType.Simple);
            TabCreate(BotTabType.Index);
            _tab      = TabsSimple[0];
            _tabIndex = TabsIndex[0];

            // создаем оптимизируемые параметры
            LenghtMA             = CreateParameter("LenghtMA", 60, 60, 200, 20);
            LenghtIvashovMA      = CreateParameter("LenghtIvashovMA", 100, 60, 200, 20);
            LenghtIvashovAverage = CreateParameter("LenghtIvashovAverage", 100, 60, 200, 20);
            Multiply             = CreateParameter("Multiply", 1.0m, 0.6m, 2, 0.2m);

            // создаем индикаторы
            _ma        = new MovingAverage(name + "ma", false);
            _ma        = (MovingAverage)_tabIndex.CreateCandleIndicator(_ma, "Prime");
            _ma.Lenght = LenghtMA.ValueInt;
            _ma.Save();

            _ivashov = new IvashovRange(name + "ivashov", false);
            _ivashov = (IvashovRange)_tabIndex.CreateCandleIndicator(_ivashov, "Second");
            _ivashov.LenghtAverage = LenghtIvashovAverage.ValueInt;
            _ivashov.LenghtMa      = LenghtIvashovMA.ValueInt;
            _ivashov.Save();

            // загружаем настроечные параметры бота
            Load();

            // подписка на событие обновление индекса
            _tab.ServerTimeChangeEvent += _tab_ServerTimeChangeEvent;

            // подписка на сервисные события
            ParametrsChangeByUser += OneLegArbitrage_ParametrsChangeByUser;
            DeleteEvent           += OneLegArbitrage_DeleteEvent;
        }
Beispiel #31
0
        public PairTraderSpreadSma(string name, StartProgram startProgram)
            : base(name, startProgram)
        {
            TabCreate(BotTabType.Simple);
            _tab1 = TabsSimple[0];
            _tab1.CandleFinishedEvent += _tab1_CandleFinishedEvent;

            TabCreate(BotTabType.Simple);
            _tab2 = TabsSimple[1];
            _tab2.CandleFinishedEvent += _tab2_CandleFinishedEvent;

            TabCreate(BotTabType.Index);
            _tabSpread = TabsIndex[0];
            _tabSpread.SpreadChangeEvent += _tabSpread_SpreadChangeEvent;

            _smaLong = new MovingAverage(name + "MovingLong", false)
            {
                Lenght = 22, ColorBase = Color.DodgerBlue
            };
            _smaLong = (MovingAverage)_tabSpread.CreateCandleIndicator(_smaLong, "Prime");
            _smaLong.Save();

            _smaShort = new MovingAverage(name + "MovingShort", false)
            {
                Lenght = 3, ColorBase = Color.DarkRed
            };
            _smaShort = (MovingAverage)_tabSpread.CreateCandleIndicator(_smaShort, "Prime");
            _smaShort.Save();

            Volume1 = 1;
            Volume2 = 1;

            Slipage1 = 0;
            Slipage2 = 0;

            Load();

            DeleteEvent += Strategy_DeleteEvent;
        }
Beispiel #32
0
        protected override void OnStart()
        {
            Print("Take Longs: {0}", TakeLongsParameter);
            Print("Take Shorts: {0}", TakeShortsParameter);

            if (!TakeLongsParameter && !TakeShortsParameter)
            {
                throw new ArgumentException("You need to decide whether to go long/short or both");
            }

            Print("Lot sizing rule: {0}", LotSizingRule);

            var symbolLeverage = Symbol.DynamicLeverage[0].Leverage;

            Print("Symbol leverage: {0}", symbolLeverage);

            var realLeverage = Math.Min(symbolLeverage, Account.PreciseLeverage);

            Print("Account leverage: {0}", Account.PreciseLeverage);

            Init(TakeLongsParameter,
                 TakeShortsParameter,
                 InitialStopLossRuleValues.None,
                 0,
                 TrailingStopLossRuleValues.None,
                 0,
                 LotSizingRule,
                 TakeProfitRuleValues.None,
                 0,
                 0,
                 false,
                 false,
                 DynamicRiskPercentage,
                 6);

            _bollingerBands = Indicators.BollingerBands(SourceSeries, 20, 1, MovingAverageType.Simple);
            _slowMA         = Indicators.MovingAverage(SourceSeries, SlowPeriodParameter, MovingAverageType.Exponential);
            _fastMA         = Indicators.MovingAverage(SourceSeries, FastPeriodParameter, MovingAverageType.Exponential);
        }
Beispiel #33
0
        public FastDelta_2(string name, StartProgram startProgram) : base(name, startProgram)
        {
            TabCreate(BotTabType.Simple);
            TabCreate(BotTabType.Simple);
            _tab      = TabsSimple[0];
            _tab_Slow = TabsSimple[1];

            _tab.CandleFinishedEvent        += _tab_CandleFinishedEvent;
            _tab.PositionOpeningSuccesEvent += _tab_PositionOpeningSuccesEvent;
            _tab.PositionClosingSuccesEvent += _tab_PositionClosingSuccesEvent;

            _tab_Slow.CandleFinishedEvent += _tab_Slow_CandleFinishedEvent1;

            _tab_Slow.CandleFinishedEvent += _tab_Slow_CandleFinishedEvent;

            this.ParametrsChangeByUser += FastDelta_ParametrsChangeByUser;
            Regime       = CreateParameter("Regime", "Off", new[] { "Off", "On" });
            leverage     = CreateParameter("Маржинальное плечо", 0.1m, 0.1m, 10, 0.1m);
            MaxStop      = CreateParameter("MaxStop", 1, 1, 10, 0.1m);
            isContract   = CreateParameter("Торгуем контрактами", false);
            DepoCurrency = CreateParameter("DepoCurrency", "Currency2", new[] { "Currency1", "Currency2" });


            maLenth    = CreateParameter("Период скользящей по объему", 24, 24, 48, 1);
            DeltaSizeK = CreateParameter("Коэфт для размера дельты", 6, 1, 40, 1);



            maVolume        = new MovingAverage(name + "_maVolume", false);
            maVolume        = (MovingAverage)_tab_Slow.CreateCandleIndicator(maVolume, "New1");
            maVolume.Lenght = maLenth.ValueInt;
            maVolume.TypeCalculationAverage = MovingAverageTypeCalculation.Exponential;
            maVolume.TypePointsToSearch     = PriceTypePoints.Volume;
            maVolume.Save();

            delta = new Delta(name + "delta", false);
            delta = (Delta)_tab.CreateCandleIndicator(delta, "New3");
            delta.Save();
        }
Beispiel #34
0
        protected override void Init()
        {
            _maInd        = GetIndicator <MovingAverage>(Instrument.Id, Timeframe);
            _maInd.Period = 26;
            //_macdInd= GetIndicator<MovingAverageConvergenceDivergence>(Instrument.Id, Timeframe);
            _ftoInd = GetIndicator <FisherTransformOscillator>(Instrument.Id, Timeframe);

            _barH1 = GetCustomSeries(Instrument.Id, Period.H1);
            //_macdIndH1   = GetIndicator<MovingAverageConvergenceDivergence>(Instrument.Id, Period.H1);
            _ftoIndH1 = GetIndicator <FisherTransformOscillator>(Instrument.Id, Period.H1);
            //_maIndH1   = GetIndicator<MovingAverage>(Instrument.Id, Period.H1);
            //_maIndH1.Period=26;

            //periodM15 = new Period(PeriodType.Minute, 15);
            //_barM15 = GetCustomSeries(Instrument.Id,periodM15);
            //_ftoIndM15   = GetIndicator<FisherTransformOscillator>(Instrument.Id, periodM15);
            //_macdIndM15   = GetIndicator<MovingAverageConvergenceDivergence>(Instrument.Id, periodM15);

            periodH4  = new Period(PeriodType.Hour, 4);
            _barH4    = GetCustomSeries(Instrument.Id, periodH4);
            _ftoIndH4 = GetIndicator <FisherTransformOscillator>(Instrument.Id, periodH4);
        }
Beispiel #35
0
        public void MovingAverageData2()
        {
            PureData pureData = new PureData(new List <DataElement>
            {
                new DataElement(new DateTime(2018, 2, 19), new[] { 1.1D, 2.1D, 3.1D, 4.1D, 5.1D }),
                new DataElement(new DateTime(2018, 2, 20), new[] { 1.2D, 2.2D, 3.2D, 4.2D, 5.2D }),
                new DataElement(new DateTime(2018, 2, 21), new[] { 1.3D, 2.3D, 3.3D, 4.3D, 5.3D }),
                new DataElement(new DateTime(2018, 2, 21), new[] { 1.4D, 2.4D, 3.4D, 4.4D, 5.4D })
            });

            var sut = new MovingAverage(2, pureData, StockIndex.Close);

            DataElement[] inputData = sut.CreateData().ToArray();

            Assert.NotNull(inputData);
            Assert.AreEqual(3, inputData.Length);
            Assert.IsTrue(Math.Abs(2.15D - inputData[0].Values[0]) < 0.00000001);
            Assert.IsTrue(Math.Abs(2.25D - inputData[1].Values[0]) < 0.00000001);
            Assert.AreEqual(pureData.GetData()[1].Key, inputData[0].Key);
            Assert.AreEqual(pureData.GetData()[2].Key, inputData[1].Key);
            Assert.AreEqual(pureData.GetData()[3].Key, inputData[2].Key);
        }
        public static void UpdateEma(Guid eventActionId)
        {
            using (var db = new PoloniexContext())
            {
                var eventAction = db.EventActions.Include(x => x.MovingAverageEventAction).Single(x => x.EventActionId == eventActionId);

                var closingValue = db.CurrencyDataPoints
                                   .Where(x => x.CurrencyPair == eventAction.MovingAverageEventAction.CurrencyPair)
                                   .OrderByDescending(x => x.ClosingDateTime)
                                   .First();

                var prevEma = db.MovingAverages
                              .Where(x =>
                                     x.MovingAverageType == eventAction.MovingAverageEventAction.MovingAverageType &&
                                     x.CurrencyPair == eventAction.MovingAverageEventAction.CurrencyPair &&
                                     x.Interval == eventAction.MovingAverageEventAction.Interval &&
                                     x.MinutesPerInterval == eventAction.MovingAverageEventAction.MinutesPerInterval)
                              .OrderByDescending(x => x.ClosingDateTime)
                              .First();

                // -15 seconds to account for timer skew
                if (closingValue.ClosingDateTime >= prevEma.ClosingDateTime.AddSeconds(-15).AddMinutes(prevEma.MinutesPerInterval))
                {
                    var curEma = new MovingAverage()
                    {
                        MovingAverageType  = MovingAverageType.ExponentialMovingAverage,
                        CurrencyPair       = eventAction.MovingAverageEventAction.CurrencyPair,
                        Interval           = eventAction.MovingAverageEventAction.Interval,
                        MinutesPerInterval = eventAction.MovingAverageEventAction.MinutesPerInterval,
                        ClosingDateTime    = DateTime.UtcNow,
                        MovingAverageValue = MovingAverageCalculations.CalculateEma(closingValue.ClosingValue, prevEma.MovingAverageValue, eventAction.MovingAverageEventAction.Interval),
                        LastClosingValue   = closingValue.ClosingValue
                    };

                    db.MovingAverages.Add(curEma);
                    db.SaveChanges();
                }
            }
        }
        protected override void OnStart()
        {
            Print("Lot sizing rule: {0}", LotSizingRule);

            var symbolLeverage = Symbol.DynamicLeverage[0].Leverage;

            Print("Symbol leverage: {0}", symbolLeverage);

            var realLeverage = Math.Min(symbolLeverage, Account.PreciseLeverage);

            Print("Account leverage: {0}", Account.PreciseLeverage);

            Init(true,
                 false,
                 InitialStopLossRule,
                 InitialStopLossInPips,
                 TrailingStopLossRule,
                 TrailingStopLossInPips,
                 LotSizingRule,
                 TakeProfitRule,
                 0,
                 0,
                 false,
                 false,
                 DynamicRiskPercentage,
                 0);

            _atr             = Indicators.AverageTrueRange(14, MovingAverageType.Exponential);
            _resistenceBreak = Indicators.GetIndicator <ResistenceBreak>(SourceSeries, SendEmailAlerts, PlayAlertSound, ShowMessage,
                                                                         SwingHighStrength);
            _minimumBuffer = Symbol.PipSize * 6;
            //_timeFrameInMinutes = GetTimeFrameInMinutes();
            PendingOrders.Cancelled += OnPendingOrdersCancelled;

            _fastMA   = Indicators.MovingAverage(SourceSeries, 21, MovingAverageType.Exponential);
            _mediumMA = Indicators.MovingAverage(SourceSeries, 55, MovingAverageType.Exponential);
            _slowMA   = Indicators.MovingAverage(SourceSeries, 89, MovingAverageType.Simple);
        }
        public SmoothMovAvgProFunctionChart(ChartView BaseChart)
        {
            candle                = new Candle();
            line                  = new Line();
            lineSmooth            = new Line();
            movingAverageFunction = new MovingAverage();
            smoothMovAvgFunction  = new SmoothedMovAvgFunction();
            var = new Variables.Variables();

            Themes.CandleGodStyle(candle);

            BaseChart.Chart.Title.Text                   = "Smoothed Moving Average";
            BaseChart.Chart.Axes.Left.Automatic          = true;
            BaseChart.Chart.Axes.Left.Ticks.Transparency = 100;
            BaseChart.Chart.Axes.Bottom.Automatic        = true;

            FillSampleValues(candle, 20);
            candle.Title = "Candle";

            line.DataSource    = candle;
            line.Color         = var.GetPaletteBasic[2];
            line.LinePen.Width = 3;
            line.Function      = movingAverageFunction;
            line.Title         = "Moving Average";

            lineSmooth.DataSource    = candle;
            lineSmooth.Function      = smoothMovAvgFunction;
            lineSmooth.Color         = var.GetPaletteBasic[3];
            lineSmooth.LinePen.Width = 3;
            lineSmooth.Title         = "Smooth Moving Average";

            movingAverageFunction.Period = 3;
            smoothMovAvgFunction.Period  = 3;

            BaseChart.Chart.Series.Add(candle);
            BaseChart.Chart.Series.Add(line);
            BaseChart.Chart.Series.Add(lineSmooth);
        }
        public override void Run(IChart chart)
        {
            base.Run(chart);

            var movingAverage = new MovingAverage(chart, _period);

            var ema = movingAverage.EmaValue();

            if (ema.Length == 0)
            {
                return;
            }

            if (_tradeManager.GetOrders(_magicNumber).Any())
            {
                ClosePosition(ema);
            }

            if (!_tradeManager.GetOrders(_magicNumber).Any())
            {
                OpenPosition(ema);
            }
        }
Beispiel #40
0
        protected override void OnStart()
        {
            //挂单标签
            labelPerfix = "TMSBot";
            //市价单标签
            scalePerfix = "scale";

            //回测
            if (IsBacktesting)
            {
                int backtestNum = new Random().Next(1, 10000);
                labelPerfix += " BT " + backtestNum;
            }

            if (scaleIn)
            {
                //写注册表
                CreateSubKey();
                if (motherClose)
                {
                    Positions.Closed += OnPositionClose;
                }
            }
            //平均正确范围指标
            atr = Indicators.AverageTrueRange(atrPeriod, MovingAverageType.Simple);
            //相对强度指数指标
            _rsi = Indicators.RelativeStrengthIndex(Source, RsiPeriod);
            //布林带指标
            _bollingerBands = Indicators.BollingerBands(_rsi.Result, Volatility, StDev, MovingAverageType.Simple);
            //移动平均线指标(RSI的平均线)
            _price  = Indicators.MovingAverage(_rsi.Result, PricePeriod, PriceMaType);
            _signal = Indicators.MovingAverage(_rsi.Result, SignalPeriod, SignalMaType);
            //随机振荡器指标
            stochastic = Indicators.StochasticOscillator(kPeriods, kSlowing, dPeriods, stMaType);
            //自定义指标
            heikenAshi = Indicators.GetIndicator <HeikenAshi>(HeikenPeriod);
        }
Beispiel #41
0
        protected override void Init()
        {
            PrintEx(string.Format("Starting {2} on account: {0}, comment: {1}, date: {3}", this.Account.Number, "Started!", "PavrykTSv1", DateTime.Now));

            _barSeries      = GetCustomSeries(Instrument.Id, _period);
            _PivotBarSeries = GetCustomSeries(Instrument.Id, _pivotPeriod);
            /// Fisher activation
            FTOind = GetIndicator <FisherTransformOscillator>(
                Instrument.Id,
                _period,
                FisherPeriod,
                FisherMa1Period, FisherMa1Method,
                FisherMa2Period, FisherMa2Method);

            /// MA5  activation
            MA5ind = GetIndicator <MovingAverage>(
                Instrument.Id,
                _period,
                MA5period,
                MA5offset,
                MA5method,
                MA5applyto);

            /// MA24 activation
            MA24ind = GetIndicator <MovingAverage>(
                Instrument.Id,
                _period,
                MA24period,
                MA24offset,
                MA24method,
                MA24applyto);

            /// Pivot activation
            Pivind = GetIndicator <Pivot>(
                Instrument.Id,
                _period);
        }
Beispiel #42
0
        protected override void Init()
        {
            vect  = CreateSeries <double>();
            trend = CreateSeries <double>();
            p     = (int)Math.Sqrt(period);

            ma1 = GetInvisibleIndicator <MovingAverage>(
                Instrument.Id,
                Timeframe,
                period,
                0,
                method,
                price
                );

            ma2 = GetInvisibleIndicator <MovingAverage>(
                Instrument.Id,
                Timeframe,
                (int)period / 2,
                0,
                method,
                price
                );
        }
    /// <summary>
    /// Initialize tracking system. Called once on game startup.
    /// </summary>
    void Start()
    {
        av = new MovingAverage(averagingSamples, logTrackingData);
        disList.Add(av);

        var logPath = Path.Combine(Application.dataPath, "Logs");

        // Create Logger
        nLog = new NamedLogger(
            new Dictionary <string, string> {
            { "rAngle", "rAngle" },
            { "lAngle", "lAngle" },
            { "rElev", "rElev" },
            { "rHorizX", "rHorizX" },
            { "rHorizZ", "rHorizZ" }
        },
            logTrackingData, logPath);

        // Add logger to list of objects to dispose of
        disList.Add(nLog);


        sk = new Skelly(maxJointVelocity, true);
    }
Beispiel #44
0
        public Storog(string name, StartProgram startProgram) : base(name, startProgram) // конструктор робота тут
        {
            TabCreate(BotTabType.Simple);                                                // создание простой вкладки
            _tab = TabsSimple[0];                                                        // записываем первую вкладку в поле

            // инициализация переменных и параметров
            price       = 1;
            _kom        = 0;
            zakritie    = 0; //последняя позиция закрылась по цене
            vkl_Robota  = CreateParameter("РОБОТ Включен?", false);
            vkl_stopa   = CreateParameter("Стоп Включен?", true);
            do_stopa    = CreateParameter(" РАСТ. до СТОПА", 10m, 5m, 100m, 5m);
            _uroven     = CreateParameter("УРОВЕНЬ Работы", 10000m, 100m, 1000m, 50m);
            slippage    = CreateParameter("Велич. проскаль.у ордеров", 1m, 1m, 50m, 5m);
            part_tovara = CreateParameter("ИСПОЛЬЗ Товара Часть(1/?)", 2, 2, 50, 1);
            do_piram    = CreateParameter(" РАСТ. до Пирамиды", 10m, 5m, 100m, 5m);
            profit      = CreateParameter("ПРОФИТ от рынка На ", 3, 5, 200, 5);
            dvig        = CreateParameter("Движение верх забрать ", 130, 5, 200, 5);
            ot_rinka    = CreateParameter(" Держаться от рынка", 110, 10, 150, 10);
            //part_depo = CreateParameter("ИСПОЛЬЗ Часть ДЕПО(1/?)", 10, 2, 50, 1);
            komis_birgi = CreateParameter("КОМ биржи в %", 0.2m, 0, 0.1m, 0.1m);
            min_lot     = CreateParameter("МИН объ.орд у биржи(базовой)", 0.001m, 0.001m, 0.05m, 0.001m);
            vel_ma      = CreateParameter("MA", 2, 3, 50, 1); // записываем в переменную параметры

            // создание и инициализация индикатора МА
            _ma        = new MovingAverage(name + "Ma", true);
            _ma        = (MovingAverage)_tab.CreateCandleIndicator(_ma, "Prime");
            _ma.Lenght = vel_ma.ValueInt; // присвоение значения
            _ma.Save();

            _tab.CandleFinishedEvent        += _tab_CandleFinishedEvent;        // подписались на событие завершения новой свечи
            _tab.NewTickEvent               += _tab_NewTickEvent;               // тики
            _tab.MarketDepthUpdateEvent     += _tab_MarketDepthUpdateEvent;     // событие пришел стакан
            _tab.PositionOpeningSuccesEvent += _tab_PositionOpeningSuccesEvent; // событие успешного открытия позиции
            _tab.PositionClosingSuccesEvent += _tab_PositionClosingSuccesEvent; // событие успешного закрытия позиции
        }
Beispiel #45
0
        protected override void Initialize()
        {
            // Calculate TDI components
            _rsi            = Indicators.RelativeStrengthIndex(Source, RsiPeriod);
            _bollingerBands = Indicators.BollingerBands(_rsi.Result, Volatility, StDev, MovingAverageType.Simple);
            _price          = Indicators.MovingAverage(_rsi.Result, PricePeriod, PriceMaType);
            _signal         = Indicators.MovingAverage(_rsi.Result, SignalPeriod, SignalMaType);

            // colorize Lines
            ChartObjects.DrawHorizontalLine("68", 68, Colors.Red, 1, LineStyle.Lines);
            ChartObjects.DrawHorizontalLine("63", 63, Colors.OrangeRed, 1, LineStyle.Lines);
            ChartObjects.DrawHorizontalLine("50", 50, Colors.Orange, 1, LineStyle.Solid);
            ChartObjects.DrawHorizontalLine("37", 37, Colors.PaleGreen, 1, LineStyle.Lines);
            ChartObjects.DrawHorizontalLine("32", 32, Colors.LimeGreen, 1, LineStyle.Lines);

            // Elders Impulse
            if (enable_EldersImpulse)
            {
                EMA = Indicators.ExponentialMovingAverage(MarketSeries.Close, EMAPeriod);
                Mac = Indicators.MacdHistogram(LongCycle, ShrtCycle, Signal);
            }
            // graphic objects
            arrowOffset = Symbol.PipSize * 5;
        }
Beispiel #46
0
            ///<summary>
            /// Stochastic Momentum Index
            ///</summary>
            ///<param name="pNav">Navigator</param>
            ///<param name="pOHLCV">OHLCV Recordser</param>
            ///<param name="KPeriods">K Periods</param>
            ///<param name="KSmooth">K Smooth</param>
            ///<param name="KDoubleSmooth">K Double Smooth</param>
            ///<param name="DPeriods">D Periods</param>
            ///<param name="MAType">Moving Average Type</param>
            ///<param name="PctD_MAType">%D Movering Average Type</param>
            ///<returns>Recordset</returns>
            public Recordset StochasticMomentumIndex(Navigator pNav, Recordset pOHLCV, int KPeriods, int KSmooth, int KDoubleSmooth,
                                                     int DPeriods, IndicatorType MAType, IndicatorType PctD_MAType)
            {
                MovingAverage MA      = new MovingAverage();
                Recordset     Results = new Recordset();
                General       GN      = new General();
                int           Record;
                double?       Value = 0;

                KSmooth += 1;
                int RecordCount = pNav.RecordCount;

                Field Field1 = new Field(RecordCount, "%K");


                Recordset Temp = GN.HHV(pNav, pOHLCV.GetField("High"), KPeriods, "HHV");
                Field     HHV  = new Field(RecordCount, "HHV");

                Temp.CopyField(HHV, "HHV");

                Temp = GN.LLV(pNav, pOHLCV.GetField("Low"), KPeriods, "LLV");
                Field LLV = new Field(RecordCount, "LLV");

                Temp.CopyField(LLV, "LLV");


                Field HHLL = new Field(RecordCount, "HHLL");

                for (Record = 1; Record != RecordCount + 1; ++Record)
                {
                    Value = HHV.Value(Record) - LLV.Value(Record);
                    HHLL.Value(Record, Value);
                }


                Field CHHLL = new Field(RecordCount, "CHHLL");

                for (Record = 1; Record != RecordCount + 1; ++Record)
                {
                    Value = pOHLCV.Value("Close", Record) - (0.5f * (HHV.Value(Record) + LLV.Value(Record)));
                    CHHLL.Value(Record, Value);
                }

                if (KSmooth > 1)
                {
                    switch (MAType)
                    {
                    case IndicatorType.SimpleMovingAverage:
                        Temp = MA.SimpleMovingAverage(pNav, CHHLL, KSmooth, "CHHLL");
                        break;

                    case IndicatorType.ExponentialMovingAverage:
                        Temp = MA.ExponentialMovingAverage(pNav, CHHLL, KSmooth, "CHHLL");
                        break;

                    case IndicatorType.TimeSeriesMovingAverage:
                        Temp = MA.TimeSeriesMovingAverage(pNav, CHHLL, KSmooth, "CHHLL");
                        break;

                    case IndicatorType.TriangularMovingAverage:
                        Temp = MA.TriangularMovingAverage(pNav, CHHLL, KSmooth, "CHHLL");
                        break;

                    case IndicatorType.VariableMovingAverage:
                        Temp = MA.VariableMovingAverage(pNav, CHHLL, KSmooth, "CHHLL");
                        break;

                    case IndicatorType.WeightedMovingAverage:
                        Temp = MA.WeightedMovingAverage(pNav, CHHLL, KSmooth, "CHHLL");
                        break;

                    case IndicatorType.VIDYA:
                        Temp = MA.VIDYA(pNav, CHHLL, KSmooth, 0.65, "CHHLL");
                        break;
                    }

                    Temp.CopyField(CHHLL, "CHHLL");
                }


                if (KDoubleSmooth > 1)
                {
                    switch (MAType)
                    {
                    case IndicatorType.SimpleMovingAverage:
                        Temp = MA.SimpleMovingAverage(pNav, CHHLL, KDoubleSmooth, "CHHLL");
                        break;

                    case IndicatorType.ExponentialMovingAverage:
                        Temp = MA.ExponentialMovingAverage(pNav, CHHLL, KDoubleSmooth, "CHHLL");
                        break;

                    case IndicatorType.TimeSeriesMovingAverage:
                        Temp = MA.TimeSeriesMovingAverage(pNav, CHHLL, KDoubleSmooth, "CHHLL");
                        break;

                    case IndicatorType.TriangularMovingAverage:
                        Temp = MA.TriangularMovingAverage(pNav, CHHLL, KDoubleSmooth, "CHHLL");
                        break;

                    case IndicatorType.VariableMovingAverage:
                        Temp = MA.VariableMovingAverage(pNav, CHHLL, KDoubleSmooth, "CHHLL");
                        break;

                    case IndicatorType.WeightedMovingAverage:
                        Temp = MA.WeightedMovingAverage(pNav, CHHLL, KDoubleSmooth, "CHHLL");
                        break;

                    case IndicatorType.VIDYA:
                        Temp = MA.VIDYA(pNav, CHHLL, KDoubleSmooth, 0.65, "CHHLL");
                        break;
                    }

                    Temp.CopyField(CHHLL, "CHHLL");
                }

                if (KSmooth > 1)
                {
                    switch (MAType)
                    {
                    case IndicatorType.SimpleMovingAverage:
                        Temp = MA.SimpleMovingAverage(pNav, HHLL, KSmooth, "HHLL");
                        break;

                    case IndicatorType.ExponentialMovingAverage:
                        Temp = MA.ExponentialMovingAverage(pNav, HHLL, KSmooth, "HHLL");
                        break;

                    case IndicatorType.TimeSeriesMovingAverage:
                        Temp = MA.TimeSeriesMovingAverage(pNav, HHLL, KSmooth, "HHLL");
                        break;

                    case IndicatorType.TriangularMovingAverage:
                        Temp = MA.TriangularMovingAverage(pNav, HHLL, KSmooth, "HHLL");
                        break;

                    case IndicatorType.VariableMovingAverage:
                        Temp = MA.VariableMovingAverage(pNav, HHLL, KSmooth, "HHLL");
                        break;

                    case IndicatorType.WeightedMovingAverage:
                        Temp = MA.WeightedMovingAverage(pNav, HHLL, KSmooth, "HHLL");
                        break;

                    case IndicatorType.VIDYA:
                        Temp = MA.VIDYA(pNav, HHLL, KSmooth, 0.65, "HHLL");
                        break;
                    }

                    Temp.CopyField(HHLL, "HHLL");
                }


                if (KDoubleSmooth > 1)
                {
                    switch (MAType)
                    {
                    case IndicatorType.SimpleMovingAverage:
                        Temp = MA.SimpleMovingAverage(pNav, HHLL, KDoubleSmooth, "HHLL");
                        break;

                    case IndicatorType.ExponentialMovingAverage:
                        Temp = MA.ExponentialMovingAverage(pNav, HHLL, KDoubleSmooth, "HHLL");
                        break;

                    case IndicatorType.TimeSeriesMovingAverage:
                        Temp = MA.TimeSeriesMovingAverage(pNav, HHLL, KDoubleSmooth, "HHLL");
                        break;

                    case IndicatorType.TriangularMovingAverage:
                        Temp = MA.TriangularMovingAverage(pNav, HHLL, KDoubleSmooth, "HHLL");
                        break;

                    case IndicatorType.VariableMovingAverage:
                        Temp = MA.VariableMovingAverage(pNav, HHLL, KDoubleSmooth, "HHLL");
                        break;

                    case IndicatorType.WeightedMovingAverage:
                        Temp = MA.WeightedMovingAverage(pNav, HHLL, KDoubleSmooth, "HHLL");
                        break;

                    case IndicatorType.VIDYA:
                        Temp = MA.VIDYA(pNav, HHLL, KDoubleSmooth, 0.65, "HHLL");
                        break;
                    }

                    Temp.CopyField(HHLL, "HHLL");
                }


                for (Record = KPeriods + 1; Record != RecordCount + 1; ++Record)
                {
                    double?a = CHHLL.Value(Record);
                    double?b = (0.5f * HHLL.Value(Record));
                    if (a != b && b != 0)
                    {
                        Value = 100.0f * (a / b);
                    }
                    Field1.Value(Record, Value);
                }


                if (DPeriods > 1)
                {
                    switch (PctD_MAType)
                    {
                    case IndicatorType.SimpleMovingAverage:
                        Temp = MA.SimpleMovingAverage(pNav, Field1, DPeriods, "%D");
                        break;

                    case IndicatorType.ExponentialMovingAverage:
                        Temp = MA.ExponentialMovingAverage(pNav, Field1, DPeriods, "%D");
                        break;

                    case IndicatorType.TimeSeriesMovingAverage:
                        Temp = MA.TimeSeriesMovingAverage(pNav, Field1, DPeriods, "%D");
                        break;

                    case IndicatorType.TriangularMovingAverage:
                        Temp = MA.TriangularMovingAverage(pNav, Field1, DPeriods, "%D");
                        break;

                    case IndicatorType.VariableMovingAverage:
                        Temp = MA.VariableMovingAverage(pNav, Field1, DPeriods, "%D");
                        break;

                    case IndicatorType.WeightedMovingAverage:
                        Temp = MA.WeightedMovingAverage(pNav, Field1, DPeriods, "%D");
                        break;

                    case IndicatorType.VIDYA:
                        Temp = MA.VIDYA(pNav, Field1, DPeriods, 0.65, "%D");
                        break;
                    }

                    Field Field2 = new Field(RecordCount, "%D");
                    Temp.CopyField(Field2, "%D");
                    Results.AddField(Field2);
                }
                Results.AddField(Field1);

                return(Results);
            }
 protected override void Initialize()
 {
     movingAverage = Indicators.MovingAverage(Source, Periods, MAType);
 }
Beispiel #48
0
 protected override void OnStart()
 {
     fastMa = Indicators.MovingAverage(SourceSeries, FastPeriods, MAType);
     slowMa = Indicators.MovingAverage(SourceSeries, SlowPeriods, MAType);
 }
Beispiel #49
0
 protected override void Initialize()
 {
     ma = Indicators.MovingAverage(SpreadResult, SpreadMAPeriod, SpreadMaType);
 }
Beispiel #50
0
 protected override void Initialize()
 {
     atr = CreateDataSeries();
     tri = Indicators.TrueRange();
     expo = Indicators.MovingAverage(MarketSeries.Close, KeltnerPeriod, matype);
 }
Beispiel #51
0
 protected override void Initialize()
 {
     _ma = Indicators.MovingAverage(Source, MaPeriod, MAType);
 }
 public void AddMATrendTester(int leadN, int baseN)
 {
     _bMATrendTester = true;
     _leadingMA = new MovingAverage(leadN);
     _baseMA = new MovingAverage(baseN);
 }
Beispiel #53
0
 protected override void OnStart()
 {
     _slowMa = Indicators.MovingAverage(SourceSeries, SlowPeriods, MAType);
 }
Beispiel #54
0
        //================================================================================
        //                                                             ON START
        //================================================================================
        protected override void OnStart()
        {
            Positions.Closed += OnPositionsClosed;

            // ExecuteOrder(InitialVolume, GetRandomTradeType());

            foreach (var position in Account.Positions)
            {
                if (position.TradeType == TradeType.Buy)
                {
                    Trade.CreateSellMarketOrder(Symbol, Volume);
                    break;
                    // optional break to hedge only one position
                }
                else
                {
                    Trade.CreateBuyMarketOrder(Symbol, Volume);
                    break;
                    // optional break to hedge only one position
                }
            }
            Positions.Closed += OnPositionsClosed;

            _fastMa = Indicators.MovingAverage(SourceSeries, FastPeriods, MAType);
            _slowMa = Indicators.MovingAverage(SourceSeries, SlowPeriods, MAType);

            Positions.Opened += PositionsOnOpened;
            Positions.Closed += PositionsOnClosed;
        }
 public EyeData(int len)
 {
     xavg = new MovingAverage(len);
     yavg = new MovingAverage(len);
 }
 protected override void Initialize()
 {
     movingAverage = Indicators.MovingAverage(Source, Periods, MAType);
 }
        private async void ModUpdateProgress_Shown(object sender, EventArgs e)
        {
            var averageDownloadSpeed = new MovingAverage(20);
            var downloadStartTime    = DateTime.MinValue;

            try
            {
                #region Initialize UI

                progressBar1.Style   = ProgressBarStyle.Marquee;
                progressBar1.Value   = 0;
                progressBar1.Maximum = 1;

                labelPercent.Text = "";

                checkBoxSleep.Enabled = false;

                var random = new Random();
                if (random.Next(0, 10) >= 8)
                {
                    var offset    = random.Next(20, 80);
                    var offsetStr = new string(Enumerable.Repeat(' ', offset).ToArray());
                    labelPercent.Text  = offsetStr + " ( )  ( )\n";
                    labelPercent.Text += offsetStr + "( o . o)";
                }

                olvColumnProgress.Renderer     = new BarRenderer(0, 100);
                olvColumnProgress.AspectGetter = rowObject => (int)Math.Round(((UpdateDownloadItem)rowObject).FinishPercent);
                olvColumnSize.AspectGetter     = rowObject => ((UpdateDownloadItem)rowObject).TotalSize;
                //olvColumnDownloaded.AspectGetter = rowObject => ((UpdateDownloadItem)rowObject).GetDownloadedSize();
                olvColumnStatus.AspectGetter = rowObject =>
                {
                    var item = (UpdateDownloadItem)rowObject;
                    return(item.Exceptions.Count == 0
                        ? item.Status.ToString()
                        : item.Status + " - " + string.Join("; ", item.Exceptions.Select(x => x.Message)));
                };
                olvColumnName.AspectGetter = rowObject => ((UpdateDownloadItem)rowObject).DownloadPath.Name;
                olvColumnNo.AspectGetter   = rowObject => ((UpdateDownloadItem)rowObject).Order;

                fastObjectListView1.PrimarySortColumn   = olvColumnStatus;
                fastObjectListView1.SecondarySortColumn = olvColumnNo;
                fastObjectListView1.Sorting             = SortOrder.Ascending;
                fastObjectListView1.PrimarySortOrder    = SortOrder.Ascending;
                fastObjectListView1.SecondarySortOrder  = SortOrder.Ascending;
                fastObjectListView1.ShowSortIndicators  = true;
                fastObjectListView1.Sort();
                fastObjectListView1.ShowSortIndicator();

                _overallSize = _completedSize = FileSize.Empty;

                #endregion

                SetStatus("Preparing...");
                if (await ProcessWaiter.CheckForProcessesBlockingKoiDir() == false)
                {
                    throw new OperationCanceledException();
                }

                #region Find and select updates

                SetStatus("Searching for mod updates...");
                labelPercent.Text = "Please wait, this might take a couple of minutes.";
                var updateTasks = await UpdateSourceManager.GetUpdates(_cancelToken.Token, _updaters, _autoInstallGuids);

                _cancelToken.Token.ThrowIfCancellationRequested();

                progressBar1.Style = ProgressBarStyle.Blocks;

                if (updateTasks.All(x => x.UpToDate))
                {
                    SetStatus("Everything is up to date!");
                    progressBar1.Value = progressBar1.Maximum;
                    _cancelToken.Cancel();
                    return;
                }

                var isAutoInstall = _autoInstallGuids != null && _autoInstallGuids.Length > 0;
                if (!isAutoInstall)
                {
                    SetStatus($"Found {updateTasks.Count} updates, waiting for user confirmation.");
                    updateTasks = ModUpdateSelectDialog.ShowWindow(this, updateTasks);
                }
                else
                {
                    var skipped = updateTasks.RemoveAll(x => x.UpToDate);
                    SetStatus($"Found {updateTasks.Count} update tasks in silent mode, {skipped} are already up-to-date.", true, true);
                }

                if (updateTasks == null)
                {
                    throw new OperationCanceledException();
                }

                #endregion

                SleepControls.PreventSleepOrShutdown(Handle, "Update is in progress");

                #region Set up update downloader and start downloading

                downloadStartTime = DateTime.Now;

                var downloader    = UpdateDownloadCoordinator.Create(updateTasks);
                var downloadItems = downloader.UpdateItems;

                SetStatus($"{downloadItems.Count(items => items.DownloadSources.Count > 1)} out of {downloadItems.Count} items have more than 1 source", false, true);

                fastObjectListView1.Objects = downloadItems;

                progressBar1.Maximum  = 1000;
                progressBar1.Value    = 0;
                checkBoxSleep.Enabled = true;

                _overallSize = FileSize.SumFileSizes(downloadItems.Select(x => x.TotalSize));

                var lastCompletedSize = FileSize.Empty;
                updateTimer.Tick += (o, args) =>
                {
                    var itemCount = fastObjectListView1.GetItemCount();
                    if (itemCount > 0)
                    {
                        fastObjectListView1.BeginUpdate();
                        fastObjectListView1.RedrawItems(0, itemCount - 1, true);
                        // Needed if user changes sorting column
                        //fastObjectListView1.SecondarySortColumn = olvColumnNo;
                        fastObjectListView1.Sort();
                        fastObjectListView1.EndUpdate();
                    }

                    _completedSize = FileSize.SumFileSizes(downloadItems.Select(x => x.GetDownloadedSize()));

                    var totalPercent = (double)_completedSize.GetKbSize() / (double)_overallSize.GetKbSize() * 100d;
                    if (double.IsNaN(totalPercent))
                    {
                        totalPercent = 0;
                    }

                    // Download speed calc
                    var secondsPassed       = updateTimer.Interval / 1000d;
                    var downloadedSinceLast = FileSize.FromKilobytes((long)((_completedSize - lastCompletedSize).GetKbSize() / secondsPassed));
                    lastCompletedSize = _completedSize;
                    averageDownloadSpeed.Sample(downloadedSinceLast.GetKbSize());
                    var etaSeconds = (_overallSize - _completedSize).GetKbSize() / (double)averageDownloadSpeed.GetAverage();
                    var eta = double.IsNaN(etaSeconds) || etaSeconds <0 || etaSeconds> TimeSpan.MaxValue.TotalSeconds
                        ? "Unknown"
                        : TimeSpan.FromSeconds(etaSeconds).GetReadableTimespan();

                    labelPercent.Text =
                        $"Overall: {totalPercent:F1}% done  ({_completedSize} out of {_overallSize})\r\n" +
                        $"Speed: {downloadedSinceLast}/s  (ETA: {eta})";
                    //$"Speed: {downloadedSinceLast:F1}KB/s";

                    progressBar1.Value = Math.Min((int)Math.Round(totalPercent * 10), progressBar1.Maximum);
                };
                updateTimer.Start();

                SetStatus("Downloading updates...", true, true);

                await downloader.RunUpdate(_cancelToken.Token);

                _cancelToken.Token.ThrowIfCancellationRequested();

                #endregion

                #region Show finish messages

                var failedItems     = downloadItems.Where(x => x.Status == UpdateDownloadStatus.Failed).ToList();
                var unfinishedCount = downloadItems.Count(x => x.Status != UpdateDownloadStatus.Finished);

                var s = $"Successfully updated/removed {downloadItems.Count - unfinishedCount} files from {updateTasks.Count} tasks.";
                if (failedItems.Any())
                {
                    s += $"\nFailed to update {failedItems.Count} files because some sources crashed. Check log for details.";
                }

                SetStatus(s, true, true);

                updateTimer.Stop();
                progressBar1.Value = progressBar1.Maximum;
                labelPercent.Text  = "";

                if (failedItems.Any(x => x.Exceptions.Count > 0))
                {
                    var exceptionMessages = failedItems
                                            .SelectMany(x => x.Exceptions)
                                            .Where(y => !(y is DownloadSourceCrashedException))
                                            // Deal with wrapped exceptions
                                            .Select(y => y.Message.Contains("InnerException") && y.InnerException != null ? y.InnerException.Message : y.Message)
                                            .Distinct();

                    var failDetails = "Reason(s) for failing:\n" + string.Join("\n", exceptionMessages);
                    Console.WriteLine(failDetails);
                    s += " " + failDetails;
                }

                // Sleep before showing a messagebox since the box will block until user clicks ok
                SleepIfNecessary();

                MessageBox.Show(s, "Finished updating", MessageBoxButtons.OK, MessageBoxIcon.Information);

                #endregion
            }
            catch (OutdatedVersionException ex)
            {
                SetStatus("KK Manager needs to be updated to get updates.", true, true);
                ex.ShowKkmanOutdatedMessage();
            }
            catch (OperationCanceledException)
            {
                SetStatus("Update was cancelled by the user.", true, true);
            }
            catch (Exception ex)
            {
                var exceptions = ex is AggregateException aex?aex.Flatten().InnerExceptions : (ICollection <Exception>) new[] { ex };

                if (!exceptions.Any(x => x is OperationCanceledException))
                {
                    SleepIfNecessary();
                }

                SetStatus("Unexpected crash while updating mods, aborting.", true, true);
                SetStatus(string.Join("\n---\n", exceptions), false, true);
                MessageBox.Show("Something unexpected happened and the update could not be completed. Make sure that your internet connection is stable, " +
                                "and that you did not hit your download limits, then try again.\n\nError message (check log for more):\n" + string.Join("\n", exceptions.Select(x => x.Message)),
                                "Update failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                updateTimer.Stop();
                checkBoxSleep.Enabled = false;

                fastObjectListView1.EmptyListMsg = "Nothing was downloaded";

                _cancelToken.Cancel();

                labelPercent.Text = "";
                if (_completedSize != FileSize.Empty)
                {
                    labelPercent.Text += $"Downloaded {_completedSize} out of {_overallSize}";
                    if (downloadStartTime != DateTime.MinValue)
                    {
                        var timeSpent = DateTime.Now - downloadStartTime;
                        labelPercent.Text += $" in {timeSpent.GetReadableTimespan()}";
                    }
                    labelPercent.Text += "\n";
                }
                var averageDlSpeed = averageDownloadSpeed.GetAverage();
                if (averageDlSpeed > 0)
                {
                    labelPercent.Text += $"Average download speed: {new FileSize(averageDlSpeed)}/s";
                }

                progressBar1.Style = ProgressBarStyle.Blocks;
                button1.Enabled    = true;
                button1.Text       = "OK";

                if (_autoInstallGuids != null && _autoInstallGuids.Length > 0)
                {
                    Close();
                }

                SleepControls.AllowSleepOrShutdown(Handle);
            }
        }
Beispiel #58
0
 public CompositeIndicator(/* your parameters here */)
 {
     _ma = new MovingAverage();
 }
Beispiel #59
0
 protected override void Initialize()
 {
     obv = Indicators.OnBalanceVolume(Bars.ClosePrices);
     ma  = Indicators.MovingAverage(OBV, Period, MAType);
 }
Beispiel #60
-1
 protected override void Initialize()
 {
     _typicalPrice = CreateDataSeries();
     _highLowRange = CreateDataSeries();
     _ma = Indicators.MovingAverage(_typicalPrice, MaPeriod, MaType);
     _maBands = Indicators.MovingAverage(_highLowRange, MaPeriod, MaType);
 }