ому випадку якщо ми припускаємо злам тренду програма перевіряє деяку кількість наступних записів про ціни (кількість також задається параметром dateThreshold). Якщо при порівнянні поточної запису даних і тієї, на якій стався злам тренду, бачимо, що злам тренду підтверджений - створюємо запис про початок тренда і його закінченні. Якщо злам тренду не підтверджений - продовжуємо перебір
3) По закінченню такого перебору в базі даних FactEventAnalysisDB, за допомогою табличних уявлення PriceFactsHypothesis витягується інформація про тренди на цінні папери а за допомогою представлення SpikeFactsHypothesis - про «сплесках» і зберігаються в локальний файл формату csv.
Діаграма класів системи наведена нижче:
Рис. 2. Діаграма класів додатки Fact Event Analyzer
Короткий опис класів треба нижче:
1) CoraxesSource, CoraxFactsTable, PricesSource, SecuritiesSource, PriceFactsTable, SpikeFactsTable. Класи, що забезпечує доступ до джерел даних - однойменною таблицями в базі даних FactEventAnalysisDB.
2) FactEventAnalysisDBDataContext. Службовий клас, що забезпечує комунікацію додатки з базою даних FactEventAnalysisDB.
3) FactMiner. Клас, що виконує функції вилучення інформації про тренди за допомогою переданих йому параметрів, і запис інформації про тренди в файли.
4) Logger. Клас, що виконує ведення журналу роботи додатку.
5) PriceFactsHypothesi. Клас, що забезпечує виклик табличного представлення PriceFactsHypothesis в базі FactEventAnalysisDB.
6) SpikeFactHypothesi. Клас, що забезпечує виклик табличного представлення SpikeFactsHypothesis в базі FactEventAnalysisDB.
7) Program. Головний клас, що поєднує всі інші класи і викликає методи інших класів по ходу виконання програми. Також забезпечує читання параметрів програми з файлу параметрів.
8) Settings. Службовий клас, який зберігає інформацію про програму.
9) Parameters. Структура, що забезпечує зберігання параметрів програми, лічених з файлу параметрів.
В процесі роботи система базу даних FactEventAnalysisDB, її діаграма наведена нижче:
Також використовуються дві різні збережених процедури з бази FactEventAnalysisDB, код яких доступний в Додатку 3. Їх опис наведений нижче:
1) usp_ClearFactsTables. Очищає таблиці CoraxFactsTable і SpikeFactsTable, від старих даних, які могли залишитися від попередніх виконань програми
2) usp_populateCoraxFactsTable. Здійснює предобработку даних в таблиці CoraxesSource і переносить оброблені дані в таблицю CoraxFactsTable.
Рис. 3. Діаграма бази даних FactEventAnalysisDB
Крім цього використовуються два табличних уявлення, опис яких дано нижче:
1) PriceFactsHypothesis. Подання витягає всі пари «корпоративне подія - зміна в тренді ціни» з таблиць PriceFactsTable і CoraxFactsTable на кожну дату.
2) SpikeFactsHypothesis. Подання витягає всі пари «корпоративне подія - сплеск в ціні» з таблиць SpikeFactsTable і CoraxFactsTable на кожну дату.
Код даних уявлень також доступний в Додатку 3.
Завдання вилучення трендів не є головною темою роботи, тому згадана коротко.
За результатами роботи система виробляє два файли - SpikeFacts.csv і PriceFacts.csv, які використовуються надалі. Дані файли являють собою список пар «Характеристика події» - «Характеристика зміни» на кожну дату.
Нижче представлена ??інструкція з використання системи предобработки.
.1.1 Інструкція користувача
Для використання системи необхідно переконатися, що база з вихідними даними FactEventAnalysisDB розгорнута на комп'ютері користувача. Після цього необхідно скопіювати файл FactEventAnalyzer в будь-яку папку на комп'ютері користувача. У ту ж папку потрібно покласти файл Config.xml (доступний в Додатку 2). У даному файлі необхідно вказати актуальні параметри для наступних змінних:
. logFolder. Вказати папку, в якій буде зберігатися журнал виконання програми
2. changeThreshold. Вказати значення (у відсотках) на яке повинна змінитися ціна, щоб система припустила що тренд у зміні ціни був зломлений.
3. Dates (from і to). Дати з якої та по яку будуть проаналізовані ціни (можна використовувати для обмеження обсягу даних, які будуть оброблені.
4. spikeThreshold. Значення (у відсотках) на яке повинна змінитися ц...