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

  Пишем биржевого робота на C#. Урок 9. Рисуем сетку на графике котировок

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

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


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

Сегодня мы еще больше усовершенствуем библиотеку отображения графика котировок. И так, берем исходники прошлого урока. Добавляем к проекту вертикальный скроллер, которым мы будем менять масштаб по оси Y (сжимать и расширять график котировок):

Пишем биржевого робота на C#. Урок 9. Рисуем сетку на графике котировок

 

У этого скроллера пишем обработчик события Scroll...

 

...

 

...Теперь сделаем горизонтальную и вертикальную сетку, при чем у горизонтальной еще и надписи добавим, которые будут выглядеть примерно так:

Пишем биржевого робота на C#. Урок 9. Рисуем сетку на графике котировок

 

 

Для этого добавим к классу StockGraphics несколько новых свойств и полей...

 

...

 

Теперь нам надо внести изменения в метод draw класса  StockGraphics...

 

...

 

И последний штрих, обработчик нажатия на кнопочку "Показать":

        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;

                gr.isHorizontalGrid = true;

                gr.isVerticalGrid = true;

                gr.gridHorizontalStep = 40;

               

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

                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();

            }

           

 

        }

 

Еще хочу сказать, что в класс AxesSystem я добавил задел на будущее getXtoAxes, getYtoAxes - методы, которые преобразуют координаты из координат экранной области во внутренние координаты системы координат.

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