Ejemplo n.º 1
0
        /// <summary>
        /// сохранить настройки в файл
        /// </summary>
        public void Save()
        {
            try
            {
                if (string.IsNullOrWhiteSpace(Name))
                {
                    return;
                }

                using (StreamWriter writer = new StreamWriter(@"Engine\" + Name + @".txt", false))
                {
                    TypeCalculationAverage = MovingAverageTypeCalculation.Simple;
                    writer.WriteLine(P1);
                    writer.WriteLine(P2);
                    writer.WriteLine(P3);
                    writer.WriteLine(TypeCalculationAverage);
                    writer.WriteLine();
                    writer.WriteLine(ColorUp.ToArgb());
                    writer.WriteLine(ColorDown.ToArgb());
                    writer.WriteLine(PaintOn);
                    writer.Close();
                }
            }
            catch (Exception)
            {
                // отправить в лог
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// конструктор без параметров. Индикатор не будет сохраняться
 /// </summary>
 /// <param name="canDelete">можно ли пользователю удалить индикатор с графика вручную</param>
 public Trix(bool canDelete)
 {
     TypeIndicator          = IndicatorOneCandleChartType.Line;
     TypePoint              = PriceTypePoints.Close;
     TypeCalculationAverage = MovingAverageTypeCalculation.Exponential;
     Period    = 9;
     ColorBase = Color.DodgerBlue;
     PaintOn   = true;
     CanDelete = canDelete;
 }
Ejemplo n.º 3
0
 /// <summary>
 /// конструктор без параметров. Индикатор не будет сохраняться
 /// </summary>
 /// <param name="canDelete">можно ли пользователю удалить индикатор с графика вручную</param>
 public StochasticOscillator(bool canDelete)
 {
     TypeIndicator          = IndicatorOneCandleChartType.Line;
     TypeCalculationAverage = MovingAverageTypeCalculation.Simple;
     P1        = 5;
     P2        = 3;
     P3        = 3;
     ColorUp   = Color.DodgerBlue;
     ColorDown = Color.DarkRed;
     PaintOn   = true;
     CanDelete = canDelete;
 }
Ejemplo n.º 4
0
        /// <summary>
        /// constructor without parameters.Indicator will not saved/конструктор без параметров. Индикатор не будет сохраняться
        /// used ONLY to create composite indicators/используется ТОЛЬКО для создания составных индикаторов
        /// Don't use it from robot creation layer/не используйте его из слоя создания роботов!
        /// </summary>
        /// <param name="canDelete">whether user can remove indicator from chart manually/можно ли пользователю удалить индикатор с графика вручную</param>
        public Trix(bool canDelete)
        {
            Name = Guid.NewGuid().ToString();

            TypeIndicator          = IndicatorChartPaintType.Line;
            TypePoint              = PriceTypePoints.Close;
            TypeCalculationAverage = MovingAverageTypeCalculation.Exponential;
            Period    = 9;
            ColorBase = Color.DodgerBlue;
            PaintOn   = true;
            CanDelete = canDelete;
        }
Ejemplo n.º 5
0
        /// <summary>
        /// constructor with parameters. Indicator will be saved
        /// конструктор с параметрами. Индикатор будет сохраняться
        /// </summary>
        /// <param name="uniqName">unique name/уникальное имя</param>
        /// <param name="canDelete">whether user can remove indicator from chart manually/можно ли пользователю удалить индикатор с графика вручную</param>
        public Trix(string uniqName, bool canDelete)
        {
            Name                   = uniqName;
            TypeIndicator          = IndicatorChartPaintType.Line;
            TypePoint              = PriceTypePoints.Close;
            TypeCalculationAverage = MovingAverageTypeCalculation.Exponential;
            Period                 = 9;
            ColorBase              = Color.DodgerBlue;
            PaintOn                = true;
            CanDelete              = canDelete;

            Load();
        }
Ejemplo n.º 6
0
        /// <summary>
        /// constructor without parameters.Indicator will not saved/конструктор без параметров. Индикатор не будет сохраняться
        /// used ONLY to create composite indicators/используется ТОЛЬКО для создания составных индикаторов
        /// Don't use it from robot creation layer/не используйте его из слоя создания роботов!
        /// </summary>
        /// <param name="canDelete">whether user can remove indicator from chart manually/можно ли пользователю удалить индикатор с графика вручную</param>
        public StochasticOscillator(bool canDelete)
        {
            Name = Guid.NewGuid().ToString();

            TypeIndicator          = IndicatorChartPaintType.Line;
            TypeCalculationAverage = MovingAverageTypeCalculation.Simple;
            P1        = 5;
            P2        = 3;
            P3        = 3;
            ColorUp   = Color.DodgerBlue;
            ColorDown = Color.DarkRed;
            PaintOn   = true;
            CanDelete = canDelete;
        }
Ejemplo n.º 7
0
        /// <summary>
        /// overload last value
        /// прогрузить только последнюю свечку
        /// </summary>
        private void ProcessOne(List <decimal> values)
        {
            if (values == null)
            {
                return;
            }
            if (Values == null)
            {
                Values = new List <decimal>();
            }

            if (TypeCalculationAverage == MovingAverageTypeCalculation.VolumeWeighted)
            {
                // ...it's not gonna weigh volume of arrays. Put another attribute
                // по объёму взвесить массив данных не выйдет. Ставим другой признак
                TypeCalculationAverage = MovingAverageTypeCalculation.Simple;
            }

            if (TypeCalculationAverage == MovingAverageTypeCalculation.Simple)
            {
                Values.Add(GetValueSimple(values, values.Count - 1));
            }
            if (TypeCalculationAverage == MovingAverageTypeCalculation.Exponential)
            {
                Values.Add(GetValueExponential(values, values.Count - 1));
            }
            if (TypeCalculationAverage == MovingAverageTypeCalculation.Weighted)
            {
                Values.Add(GetValueWeighted(values, values.Count - 1));
            }
            if (TypeCalculationAverage == MovingAverageTypeCalculation.Radchenko)
            {
                Values.Add(GetValueRadchenko(Values, values, values.Count - 1));
            }
            if (TypeCalculationAverage == MovingAverageTypeCalculation.Adaptive)
            {
                Values.Add(GetValueKaufmanAdaptive(values, values.Count - 1));
            }
        }