Exemplo n.º 1
0
        void ComboBoxPatternIndicatorSearchType_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            PatternIndicators pattern = (PatternIndicators)_pattern.GetTempPattern(PatternType.Indicators);

            Enum.TryParse(ComboBoxPatternIndicatorSearchType.SelectedValue.ToString(), out pattern.SearchType);
            _pattern.Save();
        }
Exemplo n.º 2
0
        /// <summary>
        /// загрузить отдельный одиночный паттерн из строки
        /// </summary>
        private void LoadPattern(string pat, List <IPattern> array)
        {
            string[] patternInString = pat.Split('^');

            PatternType type;

            Enum.TryParse(patternInString[0], out type);

            if (type == PatternType.Candle)
            {
                PatternCandle pattern = new PatternCandle();
                pattern.Load(pat);
                array.Add(pattern);
            }
            if (type == PatternType.Volume)
            {
                PatternVolume pattern = new PatternVolume();
                pattern.Load(pat);
                array.Add(pattern);
            }
            if (type == PatternType.Indicators)
            {
                PatternIndicators pattern = new PatternIndicators();
                pattern.Load(pat);
                array.Add(pattern);
            }
            if (type == PatternType.Time)
            {
                PatternTime pattern = new PatternTime();
                pattern.Load(pat);
                array.Add(pattern);
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// прорисовать паттерн на его индивидуальном чарте
        /// </summary>
        private void PaintSinglePattern(IPattern pattern, ChartPainter chart)
        {
            if (chart.GetChart().InvokeRequired)
            {
                chart.GetChart().Invoke(new Action <IPattern, ChartPainter>(PaintSinglePattern), pattern, chart);
                return;
            }
            chart.ClearDataPointsAndSizeValue();
            chart.ClearSeries();

            if (pattern.Type == PatternType.Candle)
            {
                chart.PaintSingleCandlePattern(((PatternCandle)pattern).GetInCandle());
            }
            if (pattern.Type == PatternType.Volume)
            {
                chart.PaintSingleVolumePattern(((PatternVolume)pattern).GetInCandle());
            }
            if (pattern.Type == PatternType.Indicators)
            {
                PatternIndicators pat = (PatternIndicators)pattern;



                for (int i = 0; pat.Indicators != null && i < pat.Indicators.Count; i++)
                {
                    if (chart.IndicatorIsCreate(pat.Indicators[i].Name + "0") == false)
                    {
                        chart.CreateSeries(chart.GetChartArea(pat.Indicators[i].NameArea), pat.Indicators[i].TypeIndicator, pat.Indicators[i].NameSeries + "0");
                    }

                    chart.ProcessIndicator(pat.Indicators[i]);
                }
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// take a copy
        /// взять копию
        /// </summary>
        public IPattern GetCopy()
        {
            PatternIndicators pattern = new PatternIndicators();

            string save = GetSaveString();

            pattern.Load(save);

            return(pattern);
        }
Exemplo n.º 5
0
        void InitializePatternIndicatorsTab()
        {
            PatternIndicators pattern = (PatternIndicators)_pattern.GetTempPattern(PatternType.Indicators);

            TextBoxPatternIndicatorLenght.Text         = pattern.Length.ToString();
            TextBoxPatternIndicatorLenght.TextChanged += TextBoxPatternIndicatorLenght_TextChanged;

            ComboBoxPatternIndicatorSearchType.Items.Add(PatternIndicatorSearchType.CandlePosition);
            ComboBoxPatternIndicatorSearchType.Items.Add(PatternIndicatorSearchType.IndicatorsAngle);
            ComboBoxPatternIndicatorSearchType.SelectedItem      = pattern.SearchType;
            ComboBoxPatternIndicatorSearchType.SelectionChanged += ComboBoxPatternIndicatorSearchType_SelectionChanged;
        }
Exemplo n.º 6
0
        /// <summary>
        /// взять копию
        /// </summary>
        public IPattern GetCopy()
        {
            PatternIndicators pattern = new PatternIndicators();

            pattern.Sequence = Sequence;
            pattern.SequenceCandlePosition = SequenceCandlePosition;
            pattern.Length = Length;
            pattern.Expand = Expand;
            pattern.Weigth = Weigth;

            return(pattern);
        }
Exemplo n.º 7
0
        void TextBoxPatternIndicatorLenght_TextChanged(object sender, TextChangedEventArgs e)
        {
            PatternIndicators pattern = (PatternIndicators)_pattern.GetTempPattern(PatternType.Indicators);

            try
            {
                pattern.Length = Convert.ToInt32(TextBoxPatternIndicatorLenght.Text);
            }
            catch (Exception)
            {
                TextBoxPatternIndicatorLenght.Text = pattern.Length.ToString();
            }
            _pattern.Save();
        }
Exemplo n.º 8
0
        /// <summary>
        /// is the current formation our pattern
        /// является ли текущая формация нашим паттерном
        /// </summary>
        /// <param name="candles">candles/свечи</param>
        /// <param name="indicators">indicators/индикаторы</param>
        /// <param name="numberPattern">the index on which we watch the pattern/индекс по которому мы смотрим паттерн</param>
        public bool ThisIsIt(List <Candle> candles, List <IIndicatorCandle> indicators, int numberPattern)
        {
            if (indicators == null ||
                indicators.Count == 0)
            {
                return(false);
            }

            if (numberPattern - Length - 2 <= 0)
            {
                return(false);
            }

            if (Sequence == null ||
                Sequence.Length == 0)
            {
                return(false);
            }

            PatternIndicators tempIndicators = new PatternIndicators();

            tempIndicators.Length     = Length;
            tempIndicators.Weigth     = Weigth;
            tempIndicators.SearchType = SearchType;
            tempIndicators.Expand     = Expand;
            tempIndicators.SetFromIndex(candles, indicators, numberPattern);

            if (tempIndicators.SequenceCandlePosition == null)
            {
                return(false);
            }

            if (SearchType == PatternIndicatorSearchType.CandlePosition)
            {
                for (int i = 0; i < SequenceCandlePosition.Length; i++)
                {
                    for (int i2 = 0; i2 < SequenceCandlePosition[0].Length; i2++)
                    {
                        if (SequenceCandlePosition[i][i2] != tempIndicators.SequenceCandlePosition[i][i2])
                        {
                            return(false);
                        }
                    }
                }
            }

            if (SearchType == PatternIndicatorSearchType.IndicatorsAngle)
            {
                decimal[][] sequence = tempIndicators.Sequence;

                if (sequence == null ||
                    sequence.Length == 0 ||
                    sequence.Length != Sequence.Length ||
                    sequence[0].Length != Sequence[0].Length)
                {
                    return(false);
                }

                for (int i = 0; i < sequence.Length; i++)
                {
                    for (int i2 = 0; i2 < Sequence[0].Length; i2 += 2)
                    {
                        decimal price = (sequence[i][i2] + sequence[i][i2 + 1]) / 2;

                        if (price > Sequence[i][i2] ||
                            price < Sequence[i][i2 + 1])
                        {
                            return(false);
                        }
                    }
                }
            }
            return(true);
        }