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

Программирование в среде TEClient Alor trade. Урок 15. В каких единицах измерения задана цена бумаги.

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

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


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

В этом уроке я начну рассмотрение вопроса наведения порядка с ценами на финансовые инструменты и единицами измерения. Но, прежде чем перейти к теме урока, я расскажу о дальнейших планах по развитию темы "Программирование в среде TEClient Alor trade". И так, в ближайшее время я планирую выпустить серию уроков, посвященных разработке механизма работы со стаканом, а так же ценами bid, ask и другими специальными возможностями TEClinet. Предполагается, что для этого будет создан отельный интерфейс (что бы не трогать существующий интерфейс ITerminalDriver), который будет реализовывать библиотека для работы с TEClient (которому мы и разрабатываем в ходе этих уроков). Иными словами, библиотека будет поддерживать два интерфейса.  По ходу реализации второго интерфейса будет потихоньку улучшаться реализация  ITerminalDriver - на это будут выделяться отдельные уроки или описание улучшений и их кода будут включаться в плановые уроки по  работе со стаканом и ценами bid, ask. Затем, когда тема работы со стаканом и ценами bid, ask будет раскрыта, мы перейдем к написанию различных роботов (спредер, арбитражер, робот торгующий по какой либо МТС-ке, робот для торговли опционами и так далее).

И так, переходим к теме урока. Прежде чем навести порядок с единицами измерения, нам необходимо сформулировать задачу, то есть определить, в каких случаях какие единицы измерения мы будем задавать. Для начала вспомним, как это делается в терминале Алор Трейд:

  • В заявках мы указываем количество лот.
  • Цена задается за 1 акцию.
  • Для облигаций цена задается в процентах от номинала.
  • Остатки показываются так же в лотах.

Теперь сформулируем задачу, как у нас должно быть в библиотеке:

  • Количество акций будет задаваться как в лотах, так и в штуках. При чем одинаково и в заявках и в остатках (какую единицу измерения выберем, в той и будет показывать).
  • Цена везде за выбранную единицу измерения. Если в лотах то цена за лот, если в штуках - то за штуку.
  • Для облигаций цена задается в рублях, за выбранную единицу измерения (лот или штука).

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

...

... На этом все, исправление методов AlorDriver закончено. Пойдем дальше. Обработчик события от таймера (у нас теперь нету в StockItem поля Id):

        private void timer_Tick(object sender, EventArgs e)

        {

            if (driver == null) return;

            lbOrdersCount.Text = "Всего заявок " + driver.ordersCount().ToString();

            if (driver.holdings == null) return;

            dgvPositions.Rows.Clear();

            List<StockItem> positions = driver.GetPositions();

            if (positions.Count == 0) return;

            dgvPositions.RowCount = positions.Count;

            int j = 0;

            foreach (StockItem item in positions)

            {

                dgvPositions.Rows[j].Cells[0].Value = item.ticker;

                dgvPositions.Rows[j].Cells[1].Value = item.name;

                dgvPositions.Rows[j].Cells[2].Value = item.count.ToString();

                dgvPositions.Rows[j].Cells[3].Value = item.price.ToString();

                j++;

            }

            lbServerType.Text = slot.ServerType[driver.slotID];

            lbPortolioPrice.Text = driver.getPortfolioPrice().ToString();

            lbItemsKindsCount.Text = "Видов инструментов: "+driver.itemsCount().ToString();

        }

...

... Название переключателей rbUnit и rbLot, обработчики выбора:

        private void rbUnit_CheckedChanged(object sender, EventArgs e)

        {

            driver.measure = Measures.unit;

        }

 

        private void rbLot_CheckedChanged(object sender, EventArgs e)

        {

            driver.measure = Measures.lot;

        }

Все, теперь можно запускать программу на тестирование:

Программирование в среде TEClient Alor trade. Урок 15. В каких единицах измерения задана цена бумаги.


Скриншоты, помеченные знаком * , являются цитатами и иллюстрациями   программного продукта "Microsoft Visual Studio 2010", авторское право на который принадлежит "Microsoft"


 

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