Программирование - это просто
Advertisement
Главная arrow Биржевые роботы arrow Пишем биржевого робота на C# (платный раздел) arrow Пишем биржевого робота на C#. Урок 8. Графический анализ котировок. Автомасштабирование.
26.04.2024 г.
Главное меню
Главная
Интернет магазин
Программные продукты
Биржевые роботы
Искусственный интеллект
Математика и информатика
1С:Предприятие
Уроки C#
Уроки Delphi
Уроки программирования
Web-программирование
Дизайн и графика
Компьютер для блондинок
Исходники
Статьи
Платный раздел
Рассказы про компьютеры
Хитрости и секреты
Системный подход
Размышления
Наука для чайников
Друзья сайта
Excel-это не сложно
Все о финансах
.
Пишем биржевого робота на C#. Урок 8. Графический анализ котировок. Автомасштабирование. Печать E-mail
Автор megabax   
27.12.2011 г.
Структура программы на примере простейшей программы

  Пишем биржевого робота на C#. Урок 8. Графический анализ котировок. Автомасштабирование.

Что бы смотреть урок полностью, подпишитесь на платный раздел.

В платном разделе статья находиться здесь.


Исходники к уроку можно скачать в платном разделе.

 

На прошлом уроке мы написали библиотеку для отображения графика котировок типа "японские свечи". У но у нее есть недочет - настравать параметры координатой сетки приходиться вручную. А это неудобно - захотели вместо Газпрома отобразить Норикель - и надо менять настройки: масштабы то котировок другие. Поэтому сейчас мы добавим в библиотеку функцию автомасштабирования.  Для начала скачайте из раздела "Программные продукты платного раздела" новую версию библиотеки StockLibrary.dll (туда добавлены методы getLow и getHigh класса PriceSource).

Для начала в класс GraphPrices добавим новое свойство autoScale...

 

...

 

...Соответственно, внесем изменения в метод draw этого класса, вот его новая редакция...

 

...

 

...Еще нам необходимо отключить автоматический режим прорисовки на время выполнения метода draw у класса StockGraphics, иначе может произойти рекурсивное зацикливания, так как мы меняем во время перерисовки реквизиты, которые при включенном режиме автоперерисовки приводя к перерисовке...

 

...

 

Теперь займемся тестовым примером. Для начала добавим к форме трэк бар...

 

...

 

...Переменные source и gr, которые у нас объявлены в обработчике нажатия на кнопку (см. предыдущий урок) сделаем полями класса формы:

namespace StockGraph

{

    public partial class Form1 : Form

    {

 

        private PriceSource source;

        private StockGraphics gr;

 

        public Form1()

        {

            InitializeComponent();

            pbGraphics.Image = new Bitmap(pbGraphics.Width, pbGraphics.Height);

        }

 

...

 

И перепишем обработчик нажатия на кнопку:

        private void btnShow_Click(object sender, EventArgs e)

        {

            //Создадим графическое поле биржевой информации

            gr = new StockGraphics(Graphics.FromImage(pbGraphics.Image));

 

            //Создадим источник котировок

            source = new PriceSource();

 

            //диалог открытия файла

            if (openFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)

            {

                //загрузим файл

                source.LoadFromTextFile(openFileDialog.FileName);

 

                //создадим и настроим систему координат

                gr.axesSystem = new AxesSystem(gr);

                gr.axesSystem.maxX = 350;

                gr.axesSystem.maxY = 250;

                gr.axesSystem.ratioX = 20;

                gr.axesSystem.ratioY = -5; //на экране идет отчет по оси y сверху вниз, а нам надо наоборот

                gr.axesSystem.xBegin = 0;

                gr.axesSystem.уBegin = 190;

                gr.axesSystem.xScreen = 0;

                gr.axesSystem.yScreen = 0;

               

                //Создадим график котировок

                GraphPrices gp = new GraphPrices(gr);

                gp.priceSource = source;

                gr.addObject(gp);

                gp.downCandleColor = Color.Red;

                gp.upCandleColor = Color.Green;

                gp.autoScale = true;

 

                //установим трэк бар

                trackBar.Minimum = 0;

                trackBar.Maximum = source.BarPrices.Count - 1 - Convert.ToInt32(gr.axesSystem.maxX/gr.axesSystem.ratioX);

 

                //рисование графика

                gr.draw();

                pbGraphics.Invalidate();

            } 

        }

 

Теперь пишем обработчик сдвига трек бара:

        private void trackBar_Scroll(object sender, EventArgs e)

        {

            if (source != null)

            {

                gr.axesSystem.xBegin = trackBar.Value;

                gr.draw();

                pbGraphics.Invalidate();

            }

        }

 

Все, теперь мы можем открывать любые котировки, и настройки масштаба буду делаться автоматически. К тому же мы можем видеть не только последнюю часть котировок, как в примере прошлого урока, но еще и двигать их трэк баром:

Пишем биржевого робота на C#. Урок 8. Графический анализ котировок. Автомасштабирование.

 

На этом урок закончен, но в будущем мы продолжим тему биржевой графики.

Последнее обновление ( 04.02.2013 г. )
 
« След.   Пред. »
 
© 2024 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги