Программа автоматического выставления заявок на фондовой бирже на основе индикатора Ишимоку

Автор: Пользователь скрыл имя, 07 Февраля 2013 в 21:31, дипломная работа

Описание работы

В процессе выполнения данной выпускной работы был проведён анализ предметной области и выявлены требования, предъявляемые к программе автоматического выставления заявок на фондовой бирже на основе индикатора Ишимоку. На основе выставленных требований, был проведён анализ существующих программных средств, предназначенных для разработки, и в результате чего было принято решение в пользу современного направления программирования – технологии .Net.

Работа содержит 1 файл

ПЗ (Листы 5-60).doc

— 3.42 Мб (Скачать)

line_name = Get_Value (line,"NAME")

mp=set_value(mp,"SecCode",line_name)

mp=set_value(mp,"LastPrice",last_price)

mp=set_value(mp,"SpanA",SpA)

mp=set_value(mp,"SpanB",SpB)

add_item(i,mp)

end for

END_PROGRAM

 

Пояснения к некоторым  функциям основного кода:

- delete_all_items() – функция, которая очищает всю таблицу;

- create_map() – функция создания пустого массива;

- get_value() – функция, которая возвращает значения из массива;

- set_value() – функция, добавляющая значение в массив;

- GET_CANDLE_EX – функция, предназначенная для приведения времени к формату «HHMMSS»;

- GET_COLLECTION_ITEM – функция, предназначенная для извлечения значений из коллекций;

- add_item(Индекс, Массив) – функция для добавления строки в программируемую таблицу;

 

Любая программа на языке QPILE должна содержать как минимум  один параметр (столбец таблицы). Данные параметры могут быть как строкового, так и числового типа. Следует учесть, что вывод данных в программируемую таблицу не является обязательным. Каждый параметр в коде программы описывается следующими строками:

  • PARAMETER – название параметра, которое должно соответствовать названию ключа в MAP-массиве;
  • PARAMETER_TITLE – название параметра, отображаемое в созданной таблице;
  • PARAMETER_DESCRIPTION – расширенное описание параметра;
  • PARAMETER_TYPE – тип данных, выводимых в данный параметр.

Код описания столбцов таблицы представлен ниже:

PARAMETER SecCode;

PARAMETER_TITLE Эмитент;

PARAMETER_DESCRIPTION Эмитент;

PARAMETER_TYPE String(30);

END

PARAMETER LastPrice;

PARAMETER_TITLE Цена;

PARAMETER_DESCRIPTION Цена;

PARAMETER_TYPE NUMERIC(10,3);

END

PARAMETER SpanA;

PARAMETER_TITLE Span A;

PARAMETER_DESCRIPTION Span A;

PARAMETER_TYPE NUMERIC(10,3);

END

PARAMETER SpanB;

PARAMETER_TITLE Span B;

PARAMETER_DESCRIPTION Span B;

PARAMETER_TYPE NUMERIC(10,3);

END

PARAMETER Rez;

PARAMETER_TITLE Положение;

PARAMETER_DESCRIPTION Положение;

PARAMETER_TYPE String(16);

END

Программа заканчивается оператором END_PORTFOLIO_EX.

2.5 Описание архитектуры программы IshiSignals и диаграмма классов

Данный программный  комплекс реализован на объектно-ориентированном языке программирования C#. Основная разработка проводилась в профессиональной специализированной интегрированной среде разработки Microsoft Visual Studio (VS) 2010 Ultimate. На рисунке 2.16 представлена диаграмма классов, сгенерированная VS. Программа автоматического выставления заявок на фондовой бирже на основе индикатора Ишимоку IshiSignals1.0 представляет собой совокупность взаимосвязанных между собой форм, а именно IshiSignals, Robot, SettingsDialog. За основу разработки был взят проект для создания приложения с пользовательским интерфейсом Windows Forms.

 

Рисунок 2.16 – Диаграмма классов программного комплекса

 

Windows Forms позволяет разрабатывать интеллектуальные клиенты. Интеллектуальный клиент – это приложение с богатым графическим интерфейсом, простое в развёртывании и обновлении, способное работать при наличии или отсутствии подключения к Интернету и использующее более безопасный доступ к ресурсам на локальном компьютере по сравнению с традиционными приложениями Windows. Windows Forms представляет собой набор управляемых библиотек, обеспечивающих распространённые задачи приложений, например чтение и запись в файловую систему. С помощью среды разработки типа VS можно создавать приложения Windows Forms, которые отображают информацию, запрашивают ввод от пользователей и обмениваются данными с удалёнными компьютерами по сети. Разработанная программа IshiSignals 1.0 является наглядным примером данного типа приложений.

В Windows Forms форма является видимой поверхностью, на которой отображается информация для пользователя. Программа IshiSignals 1.0 была построена путём создания необходимых для её работы форм, их логического связывания, помещения различных элементов управления на каждую из форм и написанием кода для реагирования на действия пользователя, такие как щелчки мыши или нажатия клавиш, запросы на обновление базы данных, запросы на покупку или продажу той или иной ценной бумаги в соответствии с определённым условием, изменение пользователем цвета строки таблицы для каждой бумаги в определённых положениях (в облаке, ниже облака, выше облака или «критическая» бумага) и т.д. Элемент управления – это отдельный элемент пользовательского интерфейса, предназначенный для отображения или ввода данных.

При выполнении пользователем какого-либо действия с формой или одним из её элементов управления, создаётся событие. Приложение реагирует на эти события с помощью кода и обрабатывает события при их возникновении.

В данном приложении необходимо было отображать данные из базы данных Microsoft Access (Ichdata.mdb), и для этого Windows Forms предоставляет гибкий элемент управления с именем DataGridView для отображения таких табличных данных в традиционном формате "строки-столбцы" так, что каждый фрагмент данных занимает свою собственную ячейку. При помощи DataGridView можно настроить внешний вид отдельных ячеек, зафиксировать строки и столбцы на своём месте, а также отображать сложные элементы управления внутри ячеек, помимо других возможностей. Также данный элемент управления позволяет отображать данные из XML-файла, веб-службы XML или другого источника данных.

Из рисунка 2.15 видно, что разработанный программный комплекс состоит из 9 классов. Это следующие классы: 2 статических класса (“Program”, “test_q”), 1 Sealed Class (“Settings”) и классы “Resources”, “MyColor”, “IshiSignals”, “Robot”, “ClientParams”, “SettingsDialog”.

Статические классы (static) – классы, содержащие только статические функции. Экземпляр такого класса не может быть создан с использованием оператора new, поскольку все члены этого класса статические и доступны с использованием имени этого класса. Также использовать данный класс в качестве базового нельзя.

Sealed-классы – это классы, от которых нельзя наследоваться. Это правило проверяется на этапе компиляции – если попытаться отнаследоваться от sealed-класса код просто не будет компилироваться. По умолчанию модификатора sealed у класса нет, т.е. любой класс изначально может быть использован в качестве базового (за исключением static-классов). Если у класса есть модификатор sealed, он может использоваться только для создания экземпляров. Главный плюс sealed-классов для меня заключается в том, что они вносят в код новую семантику, которая предоставляет дополнительную информацию инструментам (компилятору, intellisense, ReSharper и т.п.). Это, в свою очередь, позволяет выявлять существующие ошибки и избыточный код, предотвращать появление новых ошибок.

Главным классом программы IshiSignals 1.0 является статический класс Program. Именно в данном классе располагается точка входа для приложения (метод Main).

2.5.1 Описание основных классов программы IshiSignals

В состав программного комплекса IshiSignals 1.0 входит 9 классов. Краткое описание их целевого предназначения и смысловой нагрузки в программе приведено ниже в таблице 2.4.

 

Таблица 2.4 – Описание основных классов программы IshiSignals

Название класса

Описание

Program

Главный класс, который является статическим, в нём располагается точка входа для приложения (метод Main). Main может возвращать только int или void.

Resources

Этот класс находится в файле Resources.Designer.cs, который вложен в файл Resources.resx в Обозревателе решений. Класс Resources инкапсулирует все ресурсы проекта в статические свойства get только для чтения, что даёт возможность получения строго-типизированных ресурсов во время выполнения. Класс ResourceManager используется внутри свойством получения для создания нового экземпляра объекта. Он находит ресурсы, зависящие от языка и региональных параметров, предоставляет возможность отхода к стандартным ресурсам в случае отсутствия локализованного ресурса и поддерживает сериализацию ресурса.

Settings

Данный класс, который является sealed-классом, предоставляет возможность хранить настройки программы. Является наследником класса System.Configuration.App-licationSettingsBase, который в свою очередь действует как базовый класс для извлечения конкретного класса-оболочки, чтобы реализовать функцию параметров приложения в приложениях Windows Forms.

MyColor

Класс для работы с настройками цвета полей. В зависимости от различных положений бумаги (выше/ниже облака, в облаке, либо “критическая” бумага) строки таблицы будут подсвечиваться разными цветами, которые задаёт пользователь при работе с программой. Настройки этих цветов хранятся в специальных файлах. Для этого используется сериализация. Разный цвет указывает на разное положение бумаги.

IshiSignals

Данный класс является наследником класса Form. В нём находятся поля, методы, необходимые для функционирования программы. Он отвечает за формирование главной формы под именем IshiSignals.

Robot

Данный класс также является наследником класса Form. Он включает в себя различные поля, методы и вложенные типы, которые необходимы для создания и функционирования дополнительной формы программы IshiSignals 1.0 – Robot. В нём описываются такие события, как например, настройка связи с QUIK для выставления заявок на покупку и продажу, непосредственно события покупки, продажи, а также вывод необходимой информации о совершённых сделках и выставленных заявках в таблицу для просмотра, описывается метод, отвечающий за сохранение данных при завершении сеанса работы с программой и др.

test_q

Данный класс является sealed-классом, он содержит 16 констант, множество методов и 4 вложенных типа (Delegate). Он отвечает за настройку соединения и формирование транзакции с QUIK.

ClientParams

Данный класс содержит очень важную информацию, необходимую для подключения к QUIK – это номер счёта (account) и номер клиента (client).

SettingsDialog

Данный класс является наследником класса Form. Отвечает за формирование дополнительной формы, которая появляется в результате нажатия кнопки “Настройки”, которая размещается во вкладке “Настройки” формы Robot. В данной форме пользователь может указать номер счёта (value_kod_birzhi) и номер клиента (value_number_client).


 

Ниже будет дано описание основных функций классов, которые  в свою очередь формируют основу программы автоматического выставления заявок на фондовой бирже на основе индикатора Ишимоку.

2.5.2 Описание основных элементов  класса “Program”

Данный статический класс включает в себя всего один метод – Main. Данный метод выполняет функцию точки входа для приложения. На рисунке 2.17 изображена структура данного класса.

 

Рисунок 2.17 – Структура класса “Program” программы IshiSignals 1.0

 

Ниже представлен код  главного метода Main:

 

static void Main()

{

    Application.EnableVisualStyles();

    Application.SetCompatibleTextRenderingDefault(false);

    Application.Run(new IshiSignals());

}

 

В таблице 2.5 описываются методы точки входа Main, которые относятся к встроенному классу “Application” и в совокупности реализуют запуск программы IshiSignals 1.0.

 

Таблица 2.5 – Описание методов точки входа Main

Метод

Описание

EnableVisualStyles();

Включает визуальные стили для приложения.

SetCompatibleTextRenderingDefault(false);

Задаёт значение по умолчанию во всём приложении для свойства Sys-tem.Windows.Forms.ButtonBase.UseCompatibleTextRendering, определённого в конкретных элементах управления.

Run(new IshiSignals ());

Запускает стандартный  цикл обработки сообщений приложения в текущем потоке и делает указанную форму видимой.


2.5.3 Описание основных элементов  класса “Resources”

Структура класса “Resources” показана на рисунке 2.18. Данный класс содержит один метод – Resources, цель которого возвратить кэшированный экземпляр ResourceManager, использованный этим классом.

 

Рисунок 2.18 – Структура класса “Resources” программы IshiSignals 1.0

2.5.4 Описание основных элементов  класса “Settings”

Как описывалось выше, класс предоставляет возможность хранить настройки программы. В данном классе отсутствуют функции. Структура класса Resources показана на рисунке 2.19.

 

Рисунок 2.19 – Структура класса “Settings” программы IshiSignals 1.0

2.5.5 Описание основных элементов  класса “MyColor”

Структура класса “MyColor” показана на рисунке 2.20. В данном классе не содержится не одного метода, только два поля – col и text. Поле col принадлежит структуре System.Drawing.Color, которая представляет цвета в терминах каналов альфа, красного, зелёного и синего (ARGB). Оно содержит заданный пользователем цвет для различных положений бумаги (выше/ниже облака, в облаке) и цвет для “критической” бумаги. Поле text имеет тип string и заключает в себе строковое значение коэффициента критичности для бумаги. 

 

Рисунок 2.20 – Структура класса “MyColor” программы IshiSignals 1.0

2.5.6 Описание основных элементов  класса “IshiSignals”

Список полей класса изображён на рисунке 2.21. В данном классе находятся все основные функции программы, рисунок 2.22.

 

Функции класса:

- _nfIcon_MouseClick – обработка события, возникающего при щелчке левой кнопкой мыши на пиктограмму “Свернуть” или возникающего при щелчке на иконке программы в трее, которое описывает сворачивание программы IshiSignals 1.0 в системный трей и разворачивание;

- btn_clr_krit_Click – обработка события, которое происходит при нажатии пользователем на кнопку “Выбрать цвет” (цвет “критической” бумаги), находящейся на вкладке “Настройки” главного окна программы IshiSignals;

- btn_clr_nizhe_Click – обработка события, которое происходит при нажатии пользователем на кнопку “Выбрать цвет” (цвет для бумаг ниже облака), находящейся на вкладке “Настройки” главного окна программы IshiSignals;

 

Рисунок 2.21 – Список полей класса “IshiSignals”

 

 

Рисунок 2.22 – Методы класса “IshiSignals”

- btn_clr_vobl_Click – обработка события, которое происходит при нажатии пользователем на кнопку “Выбрать цвет” (цвет для бумаг в облаке), находящейся на вкладке “Настройки” главного окна программы IshiSignals;

- btn_clr_vyshe_Click – обработка события, которое происходит при нажатии пользователем на кнопку “Выбрать цвет” (цвет для бумаг выше облака), находящейся на вкладке “Настройки” главного окна программы IshiSignals;

- Dispose – метод, который освобождает все используемые ресурсы;

- exitToolStripMenuItem_Click – обработка события, возникающего в результате щелчка по пункту “Выход” контекстного меню, которое вызывается нажатием правой кнопки мыши по иконке программы IshiSignals в трее;

- Form1_Load_1 – метод, который вызывается при загрузке главного окна. В данном методе делаем так, чтобы форма при загрузке сразу пряталась в трей;

- Form1_Paint – обработка события перерисовки иконки в трее;

Информация о работе Программа автоматического выставления заявок на фондовой бирже на основе индикатора Ишимоку