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

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

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

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

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

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

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

- Form1_Resize – обработка события изменения размера, если программа свёрнута, то показываем всплывающее окно с сообщением из трея “IshiSignals в трее!”;

- InitializeComponent – метод, который используется для инициализации компонентов программы IshiSignals;

- IshiSignals – конструктор, который содержит в себе метод InitializeComponent и настройку основных параметров программы для её запуска и осуществляет отображение главной формы на экран;

- journal – метод, который формирует строки журнала сообщений, в котором отображается информация об изменении положения инструментов (бумаг) с указанием времени, когда это событие произошло;

- kritich_Leave – обработка события, возникающего при переходе активности с поля, отвечающего за значение коэффициента критичности, на другое поле формы, например, на поле с цветом. Это сделано для того, чтобы по ошибке пользователя (случайное изменение значения коэффициента) значение поля не сохранилось в настройках сразу же, а только после перехода активности к другому полю;

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

- SetDoubleBuffered – функция, помогающая решить проблему с мерцанием контролов программы при обновлении данных;

- TickOn – функция, отвечающая за реализацию мигания значков (иконки) программы в трее;

- timer1_Tick – событие, которое происходит по истечении заданного временного интервала, когда компонент timer1 тикает.

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

Список полей класса изображён на рисунке 2.23. В данном классе находятся все основные функции, отвечающие за выставление заявок, рисунок 2.24.

 

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

 

 

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

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

- AddRow – функция, добавляющая информацию о заявках в таблицу, которая находится во вкладке “Заявки” формы “Робот”;

- AddRow2 – функция, добавляющая информацию о совершённых сделках в таблицу, которая находится во вкладке “Сделки” формы “Робот”;

- btn_connected_Click – обработка события, которое происходит при нажатии пользователем на кнопку “Подключиться”, находящейся на вкладке “Настройки” формы “Робот”;

- btn_ok_Click – обработка события, которое происходит при нажатии пользователем на кнопку “Подтверждаю”, располагающуюся на форме “Робот”;

- btn_options_Click – обработка события, которое происходит при нажатии пользователем на кнопку “Настройки”, находящейся на вкладке “Настройки” формы “Робот”;

- btn_otmena_Click – обработка события, которое происходит при нажатии пользователем на кнопку “Отмена”, располагающуюся на форме “Робот”;

- btn_sdelki – функция, которая отвечает за загрузку ранее совершённых программой сделок;

- btn_sell_Click – обработка события, которое происходит при нажатии пользователем на кнопку “Продать”, находящейся на вкладке “Торговля” формы “Робот”;

- btn_verification_Click – обработка события, которое происходит при нажатии пользователем на кнопку “Проверка связи с QUIK”, находящейся на вкладке “Настройки” формы “Робот”;

- btn_zayavki – функция, которая отвечает за загрузку ранее выставленных программой заявок;

- connection_status_callback_Report – функция, которая вызывается при разрыве соединения с QUIK, она устанавливает цвет индикатора подключения в красный и выводит сообщение “Соединение с QUIK было разорвано!”;

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

- Form1_FormClosing – метод, который вызывается при закрытии главного окна формы “Робот”;

- Form1_Load – метод, который вызывается при загрузке главного окна формы “Робот”;

- InitializeComponent – метод, который используется для инициализации компонентов формы “Робот”;

- OnSendBarg – функция, непосредственно отвечающая за формирование заявки на покупку, когда пользователь вручную совершает покупку;

- order_status_callback_impl – функция, которая формирует параметры заявки;

- pokupka_robot – функция, непосредственно отвечающая за формирование автоматической заявки на покупку при работе робота в соответствии с определённым условием;

- prodaga_robot – функция, непосредственно отвечающая за формирование заявки на продажу;

- ReadDataFromFile – функция, отвечающая за считывание из файла необходимых параметров для подключения и осуществления транзакции с QUIK (номер счёта и номер клиента);

- ReadDataFromFile2 – функция, отвечающая за считывание из файла необходимой информации об эмитенте (код бумаги, код класса и размер лота);

- Robot – конструктор, который содержит в себе метод InitializeComponent и производит загрузку настроек из файла, а также производит настройку основных контролов для её запуска и осуществляет отображение формы на экран;

- saveData – функция, отвечающая за сохранение необходимой информации и записи её в файл;

- trade_status_callback_implementation – специализированная функция, которая получает информацию о сделке.

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

Список полей статического класса представляет собой набор констант. Данные константы и их значения приведены в таблице 2.6.

 

Таблица 2.6 – Константы класса “test_q” и их значения

Константа

Значение

PATH_2_QUIK

Путь к QUIK

TRANS2QUIK_ALREADY_CONNECTED_TO_QUIK

4

TRANS2QUIK_DLL_CONNECTED

10

TRANS2QUIK_DLL_DISCONNECTED

11

TRANS2QUIK_DLL_NOT_CONNECTED

7

TRANS2QUIK_DLL_VERSION_NOT_SUPPORTED

3

TRANS2QUIK_FAILED

1

TRANS2QUIK_MEMORY_ALLOCATION_ERROR

12

TRANS2QUIK_QUIK_CONNECTED

8

TRANS2QUIK_QUIK_DISCONNECTED

9

TRANS2QUIK_QUIK_NOT_CONNECTED

6

TRANS2QUIK_QUIK_TERMINAL_NOT_FOUND

2

TRANS2QUIK_SUCCESS

0

TRANS2QUIK_WRONG_CONNECTION_HANDLE

13

TRANS2QUIK_WRONG_INPUT_PARAMS

14

TRANS2QUIK_WRONG_SYNTAX

5


 

В данном классе находится огромное количество методов, которые вызываются из специальной библиотеки TRANS2QUIK.dll.

TRANS2QUIK.dll – динамически подключаемая библиотека, предоставляющая программный интерфейс взаимодействия с торговым терминалом QUIK, позволяющий обеспечить контроль за состоянием подключения, ввод транзакций и контроль за их исполнением.

В классе также используется специализированные вложенные типы (делегаты), которых 4. Они представлены на рисунке 2.25.

 

Рисунок 2.25 – Вложенные типы класса “test_q”

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

Структура класса “ClientParams” показана на рисунке 2.26. В данном классе содержится всего один одноимённый метод и два поля – account и client. Как было сказано выше, данный класс содержит очень важную информацию, необходимую для подключения к QUIK – это номер счёта (account) и номер клиента (client).

 

Рисунок 2.26 – Структура класса “ClientParams”

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

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

 

Рисунок 2.27 – Структура класса “SettingsDialog”

 

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

– btn_save_Click – обработка события, которое происходит при нажатии пользователем на кнопку “Сохранить”, располагающуюся на форме;

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

– InitializeComponent – метод, который используется для инициализации компонентов формы;

– saveDataSett – функция, записывающая все необходимые параметры в специальный файл настроек;

– SettingsDialog – конструктор, который содержит в себе метод для инициализации компонентов формы (InitializeComponent);

– SettingsDialog_Load – метод, который вызывается при загрузке формы.

2.6 Пользовательский интерфейс программы IshiSignals 1.0

Интерфейс программы  выполнен в классическом стиле. Все  элементы входят в набор Microsoft Visual Studio 2010. На рисунке 2.28 представлена стартовая форма программы, если не настроена передача данных по ODBC из информационно-торговой программы QUIK и БД Ichdata пустая. В такой ситуации во вкладке “Таблица” нет заполненных строк.

Если соединение с терминалом QUIK было произведено и передача по ODBC производилась из QUIK в БД хотя бы один раз, то при запуске программы IshiSignals стартовая форма будет иметь вид, представленный на рисунке 2.29. В результате работы программы строки во вкладке “Таблица” будут меняться в режиме реального времени, будут появляться, исчезать, будет меняться цвет строк вследствие изменения положения бумаги, также меняться значения цены эмитентов.

 

Рисунок 2.28 – Стартовая форма программы IshiSignals 1.0

 

 

Рисунок 2.29 – Стартовая форма программы в рабочем режиме

 

Перейдя на вкладку “Настройки” главной формы программы, мы можем увидеть 3 области: “Цвет”, “Коэф.критичности” и “Робот”. Интерфейс вкладки представлен на рисунке 2.30.

В области “Цвет” пользователь может задавать значения для следующих типов цветов, которыми будут подсвечиваться строки таблицы во вкладке “Таблица”:

– цвет для бумаг выше облака;

– цвет для бумаг в облаке;

– цвет для бумаг ниже облака;

– цвет “критической” бумаги.

Для того чтобы задать значение соответствующего типа цвета, пользователю необходимо щёлкнуть по кнопке “Выбрать цвет”, расположенной рядом с каждым полем типа цвета. В результате этого появится окно “Цвет”, в котором пользователь может выбрать понравившийся ему цвет, рисунок 2.31. Затем после успешного выбора цвета для соответствующего типа, строка таблицы с данным параметром будет окрашена в заданный цвет.

 

Рисунок 2.30 – Вкладка “Настройки” главной формы программы

 

 

Рисунок 2.31 – Окно для выбора цвета

 

Выбор цвета пользователя запоминается в определённом файле. Для каждого типа цвета существует свой файл. Для бумаг выше облака настройки цвета хранятся в файле – clr_vyshe.sz, для бумаг в облаке – clr_vobl.sz, для бумаг ниже облака – clr_nizhe.sz и для “критической бумаги” – clr_krit.sz. Для осуществления данной процедуры используется сериализация.

Сериализация представляет собой процесс преобразования объекта  в поток байтов с целью сохранения его в памяти, в базе данных или в файле. Её основное назначение – сохранить состояние объекта для того, чтобы иметь возможность воссоздать его при необходимости. Обратный процесс называется десериализацией.

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

В области “Коэф.критичности” пользователь может задавать значения данного параметра (по умолчанию – 0,5%). Коэффициент критичности необходим для того чтобы отслеживать положение бумаги и отмечать её, когда она подходит к линии индикатора в диапазоне, указанном в коэффициенте критичности. Например, если Span A = 100 рублей, а коэффициент критичности 1,5%, то зона критичности начинается от 98,5 до 101,5 рублей. Чтобы значение данного параметра сохранилось необходимо задать нужное Вам значение, а после сделать поле с данным значением неактивным, для этого достаточно щёлкнуть мышью в любое из полей с цветом. Это сделано специально, чтобы не допустить случайного изменения. Информация о значении коэффициента критичности сериализуется в файле clr_koefkr.sz. При запуске программы, также происходит десериализация значения данного коэффициента.

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

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