Зміст.
Введення.
Глава 1. Функціонування ринку ВКО.
Учасники ринку.
Процедура торгів.
Первинне розміщення (аукціон).
Вторинні торги.
Погашення.
Документообіг.
Звіти, що надаються біржею.
Звіти, що надаються Дилерами.
Глава 2. Завдання Дилера на ринку ВКО.
Ведення бек-офісу.
Оптимізація вкладання власних коштів.
Управління коштами інвесторів.
Виконання доручень Інвесторів.
Аналіз ефективності вкладень.
Глава 3. Завдання формування і ведення власного портфеля облігацій Дилера.
Формування портфеля облігацій.
Ліквідність портфеля.
Період інвестування.
Інвестування з метою максимізації доходу.
Безризикові інвестування.
Аналіз ефективності вкладень коштів у ВКО.
Постановка завдання.
Метод вирішення.
Економічна інтерпретація методу.
Економічна інтерпретація отриманих результатів.
Застосування результатів дослідження для побудови методів ефективного управління портфелем облігацій.
Висновок.
Список літератури.
Програми.
Додаток № 1. Програма автоматизації обліку РКО.
Додаток 1.1. Керівництво користувача.
Додаток 1.2. Текст програми.
Додаток № 1.3. Журнал обертів.
Додаток № 1.4. Журнал особового обліку.
Додаток № 1.5. Меморіальний ордер.
Додаток № 1.6. Звіт інвестору про здійснені угоди.
Додаток № 1.7. Структура пртфеля в розрізі по паперах.
Додаток № 1.8. Структура портфеля узагальнена.
Додаток № 1.9. Біржова інформація.
Додаток № 1.10. Щотижневий звіт в депозитарій.
Додаток № 1.11. Щомісячний звіт в депозитарій.
Додаток № 2. Програма аналізу ефективності вкладень у ВКО.
Додаток 2.1. Текст програми.
Додаток № 2.2. Діаграма порівняння прибутковості портфеля та ринку.
Додаток № 2.3. Діаграма порівняння індексу портфеля та ринку.
Додаток № 3. Вхідні статистичні дані.
Додаток 3.1. Інформація про папери.
Додаток 3.2. Інформація про угоди.
Додаток 3.3. Інформація про рух грошових коштів.
Додаток 3.4. Біржова інформація.
Введення.
Республіканські бескупонние короткострокові облігації (РКО) випускаються Міністерством Фінансів Республіки Татарстан. Ринок РКО існує з 1995 року. За три роки він став важливим сегментом в економіці Татарстану, порівнянний за обсягом запозичень з ринком міжбанківських кредитів та іноземної валюти.
Гарантом надійності вкладень у ВКО є Уряд РТ. РКО - ліквідний і найбільш дохідний інструмент фінансового ринку. Прибутковість по РКО вище, ніж по банківських внесках і депозитних сертифікатах, а також державних цінних паперів. Маючи пільгове оподаткування, РКО є найбільш привабливим вкладенням вільних фінансових ресурсів.
Вкладати кошти в РКО можуть як юридичні, так і фізичні особи. Дохід за цими облігаціями виходить від різниці між ціною купівлі та продажу, тобто дисконт.
РКО звертаються в бездокументарній формі та обліковуються записами по рахунках депо. Продаж і покупка здійснюється на фондовій біржі. У зв'язку з цим виникає завдання обліку операцій з РКО як з боку біржі, так і з боку організацій-інвесторів.
На даному сегменті фондового ринку можна робити як короткострокові спекулятивні операції, так і довгострокові вкладення вільних власних або позикових коштів. Таким чином, актуальною є задача оцінки ефективності вкладень у ВКО.
У даній дипломній роботі вирішуються два завдання:
1. Автоматизація обліку операцій з РКО;
2. Оцінка ефективності вкладень у ВКО.
На основі результатів другого завдання можна буде зробити деякі висновки для оптимізації прийняття рішень при вкладенні в бескупонние облігації.
Глава 1. Функціонування ринку ВКО.
Республіканські короткострокові облігації звертаються на Волзько-Камськой біржі (ВКБ) за допомогою проведення електронних торгів. У функціонуванні ринку РКО можна виділити наступні моменти:
1. Учасники ринку.
2. Процедура торгів.
3. Документообіг.
Учасники ринку.
Учасники ринку поділяються на дві категорії: Дилери та інвестори.
Дилер - будь-яка юридична особа, професійним учасником ринку цінних паперів, що уклала договір на виконання функцій з обслуговування операцій з облігаціями з комунальним підприємством "Дирекція по роботі з цінними паперами". Дилер може укладати угоди з РКО від свого імені і за свій рахунок, а також може виконувати функції фінансового брокера при укладанні угод від свого імені за рахунок і за дорученням інвестора.
Інвестор - будь-яка юридична або фізична особа, що уклала з Дилером договір брокерського обслуговування на ринку ВКО. Інвестор може купувати облігації тільки через Ділерів, сплачуючи при цьому комісію.
Процедура торгів.
Під час торгів РКО проходять такі етапи:
* Первинне розміщення;
* Вторинні торги;
* Погашення.
Первинне розміщення (аукціон).
Аукціон - це первинне розміщення облігацій, що проводиться Організатором (Комунальне підприємство "Дирекція по роботі з цінними паперами", агент Міністерства фінансів РТ по обслуговуванню випусків облігацій) за дорученням Міністерства фінансів Республіки Татарстан. Вони проводяться за спеціальним графіком. Дата аукціону, граничний обсяг випуску, місце і час проведення аукціону оголошуються Організатором. Контрагентами у цій процедурі є Міністерство Фінансів з одного боку, і Дилери - інший. У ході аукціону Дилери подають заявки на купівлю облігацій. Після подачі всіх заявок до встановленого часу, Міністерство Фінансів встановлює ціну відсікання - мінімальна ціна, за якою він готовий продати облігації. Усі заявки, подані вище ціни відсікання, задовольняються, заявки, подані з більш низькою ціною, не задовольняються.
Вторинні торги.
Звернення облігацій на вторинних торгах здійснюється у формі угод купівлі-продажу через торговельну систему (організація, уповноважена на підставі договору з Міністерством фінансів РТ і двосторонніх договорів з Дилерами забезпечувати процедуру укладання угод купівлі-продажу шляхом надання технічних засобів). Контрагентами у цій процедурі виступають Дилери. Дилери вводять в Торгову систему за допомогою робочих терміналів заявки на покупку або продаж облігацій. Якщо ціни заявок збігаються, то вони задовольняються, тобто угода вважається здійсненою.
Погашення.
Погашення облігацій здійснюється в певний день Міністерством Фінансів за номінальною вартістю.
Документообіг.
РКО звертаються в електронній формі. Облік за ним ведеться за допомогою записів на рахунках депо, відкритих в Волзько-Камськой трастової компанії (ВКТК). У зв'язку з цим виникають питання відображення обліку операцій в документальній формі. Під час звернення РКО можна виділити наступні види документів:
* Звіти, що надаються біржею;
* Звіти, що надаються Дилерами.
Звіти, що надаються біржею.
По завершенні торгів біржа надає кожному Ділеру наступні документи:
* Біржова інформація;
* Витяг з протоколу торгів;
* Язання Дилера за підсумками торгів;
* Витяг з реєстру угод.
Звіти, що надаються Дилерами.
У процесі участі в торгах Дилери зобов'язані надавати такі документи біржі:
* Щотижневий звіт;
* Щомісячний звіт;
* Інші документи, необхідні для допуску Дилера до торгів.
Після здійснення угоди купівлі-продажу за дорученням Інвестора, Дилер зобов'язаний надати Інвестору звіт про зроблену угоду у формі, встановленої в договорі з брокерського обслуговування та виписку з рахунку депо. Дилер також може надати біржову інформацію і надавати консультаційні послуги.
Глава 2. Завдання Дилера на ринку ВКО.
Будучи активним учасником ринку РКО, Дилер стикається з наступними завданнями:
1. Ведення бек-офісу;
2. Оптимізація вкладання власних коштів;
3. Управління коштами Інвесторів;
4. Виконання доручень Інвесторів;
5. Аналіз ефективності вкладень.
Ведення бек-офісу.
Бек-офіс - система електронного обліку операцій з цінними паперами. Він включає в себе дуже широкий спектр функціональних питань:
* Ведення журналу особового обліку та журналу оборотів (Додаток № 1.3, 1.4);
* Формування та друк меморіальних ордерів (Додаток № 1.5);
* Формування та друк звітів Інвесторам (Додаток № 1.6);
* Формування та друк власного портфеля Дилера (Додаток № 1.7, 1.8);
* Формування та друк біржової інформації (Додаток № 1.9);
* Формування та друк щотижневого та щомісячного звітів (Додаток № 1.10, 1.11).
Всі перераховані завдання реалізовані у поданій програмі автоматизованого обліку операцій з РКО.
Оптимізація вкладання власних коштів.
Під оптимізацією вкладання власних коштів розуміється створення портфеля облігацій, який задовольняв би поставленої інвестиційної або спекулятивної завданню.
Для формування портфеля можна виходити з таких факторів:
* Ліквідність;
* "Час життя";
* Отримання найбільшого доходу;
* Використання РКО в заставних операцій для отримання міжбанківських кредитів.
Управління коштами інвесторів.
Дилер може сам управляти коштами Інвесторів, якщо було укладено договір трастового обслуговування. При цьому він може брати комісію як з окремої угоди, так і з доходу, отриманого Інвестором. У даному випадку актуальною є задача оптимального управління портфелем Інвестора та оцінка ефективності діяльності Дилера.
Виконання доручень Інвесторів.
Дилер, будучи також і брокером на ринку РКО, здійснює операції купівлі-продажу від свого імені, але за дорученням Інвестора і за його рахунок. У цьому випадку Дилер повинен вести облік прийому заявок Інвесторів, виконання доручень на біржі і формування звітів. За ці послуги він отримує комісійну винагороду.
Аналіз ефективності вкладень.
Дане завдання є однією з найбільш складних і необхідними. Визначення методу аналізу - нетривіальне завдання. У Главі 3 розглянуті дві методики аналізу ефективності вкладання власних коштів в облігації.
Глава 3. Завдання формування і ведення власного
портфеля облігацій Дилера.
У процесі управління портфелем облігацій Дилер ставить перед собою наступні завдання:
* Формування портфеля облігацій;
* Аналіз ефективності вкладень коштів.
Формування портфеля облігацій.
У процесі участі в торгах Дилер інвестує вільні грошові кошти в облігації, створюючи при цьому портфель, що складається з різних серій РКО, що відрізняються тим, що мають різні терміни до погашення.
Специфікою портфеля, що складається з РКО, можуть бути наступні моменти:
* Ліквідність портфеля;
* Період інвестування;
* Інвестування з метою максимізації прибутку;
* Безризикові інвестування.
Ліквідність портфеля.
При інвестуванні коштів у РКО необхідно враховувати наступний момент. Грошові кошти Ділерів, що інвестуються в облігації на вторинних торгах, часто перевищують обсяги торгів з якої-небудь окремої серії облігації. У зв'язку з цим виникає питання ліквідності портфеля. Як показує практика фондового ринку, облігації з найменшим строком погашення більш ліквідні, ніж ті, які мають більш тривалий термін до погашення. Але, з іншого боку, облігації з меншим терміном до погашення мають і меншу прибутковість. Таким чином, при продажу найлегше продати облігації з меншим терміном до погашення, а купити ті, які мають більш тривалий термін до погашення.
Період інвестування.
Дилер при інвестуванні стикається і з наступним завданням: період інвестування. Так як ліквідність ринку безпосередньо залежить від терміну до погашення облігації, то з цим доводиться диверсифікувати портфеля за термінами погашення облігацій. Причому необхідно вибрати найкращу стратегію, яка залежить від цілей інвестування. Якщо метою інвестування є отримання максимального доходу за тривалий період часу, то можна інвестувати кошти в найбільш дохідні серії облігацій. У разі якщо метою інвестування є короткострокова спекуляція, то найбільш оптимальною стратегією в даному випадку є покупка серій облігацій з терміном погашення, близьким до встановленого строку інвестування; в цьому випадку мінімізується ризик неможливості продажу облігацій на вторинному ринку.
Інвестування з метою максимізації доходу.
У разі якщо метою інвестування є максимізація прибутку, причому термін інвестування не фіксований, тобто невідомий період інвестування, Дилер стикається з двома суперечливими факторами: прибутковість і ліквідність. У зв'язку з цим виникають завдання оптимального управління портфелем облігацій. Методи, які застосовують Дилери, є їх власними розробками (ноу-хау). Існують безліч публікацій у фінансово-економічній літературі по оптимізації вкладень у бескупонние облігації, але запропоновані методи або містять в собі невірні передумови при побудові методу оптимізації, або містять спрощення, після чого модель стає не застосовується на практиці.
Безризикові інвестування.
З метою одержання доходу, але також мінімізації ризику вилучення грошових коштів з портфеля, можна формувати портфеля за допомогою диверсифікації за строками погашення серій облігацій. Облігації, за визначенням, будучи борговими зобов'язаннями, мають термін погашення, тобто термін, в який інвестор отримує номінал облігації, тому про ризик вкладень доводиться говорити лише з точки зору періоду вкладення.
Аналіз ефективності вкладень коштів у ВКО.
Постановка завдання.
Аналіз ефективності вкладення в РКО можна розділити на аналіз внутрішнього управління портфелем облігацій і зовнішнього.
Внутрішнє управління - це оцінка зміни індексу портфеля в порівнянні з індексом ринку.
Зовнішнє управління - це оцінка зміни середньозваженої прибутковості до погашення портфеля в порівнянні з середньозваженою дохідністю до погашення ринку.
Таким чином, виникає задача порівняння управління портфелем облігацій щодо ринку шляхом побудови деякого показника, який адекватно відображав би динаміку зміни портфеля в порівнянні з динамікою зміни ринку.
Метод вирішення.
Пропонуються методики для вирішення поставлених завдань шляхом побудови наступних показників:
1. Індекс портфеля та ринку (для оцінки внутрішнього управління).
Індекс будується наступним чином.
Для портфеля:
(1)
(1.1)
(1.2)
де:
значення індексу в момент t
коефіцієнт
вартість портфеля за середньозваженими цінами на момент закриття торгів у момент t
сума додаткових вкладень (витягів) грошових коштів у портфель в момент t, причому, якщо
додаткові вкладення
сума вилучених грошей
середньозважена ціна i серії на момент закриття торгів
кількість паперів i серії в портфелі
кількість серій паперів, що обертаються на ринку
Для ринку при розрахунку коефіцієнта і змінні будуть мати такий зміст:
обсяг капіталізації ринку за середньозваженими цінами на момент t
сума розміщених (погашених) коштів на аукціоні
сума розміщених коштів на аукціоні
сума погашених коштів на аукціоні
кількість паперів i серії, що обертаються на ринку
Даний індекс показує, наскільки ефективніше було внутрішнє управління портфелем в порівнянні з ринкової кон'юнктури. Причому, якщо індекс портфеля менше індексу ринку, то управління було неефективним.
2. Ефективна норма прибутковості до погашення портфеля та ринку (для оцінки зовнішнього управління).
Показник будується таким чином (2 методи):
У теорії розрахунку застосовується наступний метод:
(2)
де:
(2.1)
сума i витратного платежу
сума i дохідного платежу
кількість днів між i видаткових та дохідних платежами
ефективна норма прибутковості, яка і визначається з рішення даного рівняння
кількість видаткових та дохідних платежів
Рівняння (2) вирішується чисельними методами, причому рішення єдино.
З-за незручності рішення рівняння на практиці звичайно застосовують інший метод знаходження:
(2.2)
де:
прибутковість до погашення i папери
кількість i папери
днів до погашення i папери
розраховується наступним чином:
(2.3)
де:
ціна купівлі i папери в% від номіналу (видатковий платіж)
ціна погашення у% від номіналу (прибутковий платіж)
кількість днів у році
днів до погашення i папери
Даний метод більш зручний при розрахунках і дає більш швидкі результати, внаслідок чого він був застосований при побудові даного показника.
Економічна інтерпретація методу.
Аналіз за допомогою методики побудови індексу портфеля та ринку включає в себе наступні моменти:
Індекс побудований таким чином, що він адекватно відображає управління портфелем і поведінка ринку.
За побудованого індексу можна визначити прибутковість до придбання портфеля та ринку, що буває необхідним для порівняння вкладень в РКО з іншими інвестиційними операціями. Прибутковість до придбання - це прибутковість на день розрахунку, яку можна отримати при продажу портфеля облігацій.
Крім того, можна оцінити поведінку ринку РКО в порівнянні з іншими ринками. Методика порівняння може бути різною і їх побудова вимагає врахування специфіки різних ринків.
Другий вид аналізу - обчислення ефективної норми прибутковості портфеля та ринку.
Запропонований метод відображає поведінку ринку і прибутковість до погашення портфеля в поточний момент часу. Впливати на цей показник можна шляхом додавання або вилучення грошових коштів у портфель облігацій. При цьому, ефективне зовнішнє управління безпосередньо залежить від обсягів додавання/вилучення грошових коштів та сформованою кон'юнктурою ринку в день проведення операцій, тобто іншими словами, має бути своєчасне проведення даних операцій.
Цей вид аналізу можна застосувати також для ефективного розподілу вільних ресурсів між різними інвестиційними ринками, оцінюючи та порівнюючи прибутковості різних ринків і спрямовуючи вільні грошові кошти на найбільш прибуткові сектори.
Економічна інтерпретація отриманих результатів.
У даній роботі порівнювався портфель РКО банку і ринок РКО з лютого по травень місяць 1997 року.
При аналізі шляхом побудови індексу було виявлено наступне. Графік, побудований на основі індексу ринку (Додаток № 2.3), має позитивний нахил. Це обумовлено тим, що ринок у той час мав тенденцію до зниження прибутковості, тому, індекс, що відображає прибутковість до придбання, збільшувався. У наведеному прикладі, заснованому на реальних даних, внутрішнє управління портфелем було ефективним в порівнянні з ринком до початку травня місяця.
На графіку порівняння прибутковості портфеля та ринку (Додаток № 2.2) можна бачити падіння прибутковості до погашення портфеля у зв'язку з ситуацією, ринковою кон'юнктурою. При аналізі за допомогою даного показника можна сказати, що квітень місяць був найбільш сприятливим для додаткового інвестування грошових коштів.
Застосування результатів дослідження для побудови методів ефективного управління портфелем облігацій.
Результати дослідження за допомогою застосування запропонованих методик дозволяють зробити основні висновки для побудови методів ефективного управління портфелем облігацій. У даному випадку, під ефективним управлінням розуміється отримання найбільшого доходу за певний проміжок часу.
Для побудови методик ефективного управління портфелем облігацій необхідно враховувати наступне:
1) управління повинне давати максимальний ефект;
2) в управлінні потрібно враховувати можливість вводу-виводу коштів;
3) необхідність спроби прогнозування ситуації при зміні ринкової кон'юнктури;
4) управління портфелем з точки зору як прибутковості, так і ліквідності;
Отримані результати також дозволяють оцінити ступінь впливу людини (у даному випадку - трейдер) на управління портфелем облігацій. Від методів, застосовуваних ним для прийняття рішень, залежить ефективність управління портфелем облігацій. У цьому випадку буває доцільним контроль за управлінням портфелем з боку вищого начальства без застосування обтяжливих методик розрахунків, з іншого боку, можна заохочувати трейдера за успішне управління портфелем облігацій. Отже, запропонований індекс можна застосувати для оцінки управління портфелем облігацій трейдером.
Інше завдання, якою можна вирішити на основі отриманих результатів - це завдання довірчого управління (траст). Грунтуючись на результатах, можна запропонувати наступну схему стягнення плати за траст з боку керуючого з клієнта. Порівнюється індекс ринку та індекс портфеля облігацій, що знаходиться в трасті. У разі, якщо індекс портфеля перевершує індекс ринку, то додатковий дохід, що виходить від більш ефективного управління портфелем облігацій, ділиться у певній пропорції між керуючим і клієнтом. Інший варіант: керуючий гарантує клієнтові певний відсоток, а плата керуючому розраховується за методикою виходячи з гарантованого доходу і прибутку, отриманого понад.
Висновок.
В роботі вирішені наступні ключові моменти, необхідні для роботи з Республіканським короткостроковими бескупоннимі облігаціями (РКО):
* Автоматизація обліку операцій з РКО
* Оцінка ефективності інвестицій в РКО
* Описано функціонування ринку РКО, поставлені завдання, які вирішує Дилер на ринку.
Рішенням задачі автоматизації операцій з РКО є програмний продукт, написаний на Visual Basic for Microsoft Excel, що дозволяє вести повний документообіг Дилера на ринку ВКО. Результатами автоматизації є стандартизовані вихідні форми, необхідні для ведення бухгалтерського обліку РКО та надання різних звітів.
При вирішенні задачі оцінки ефективності інвестицій в РКО застосовувалися статті, що містять інформацію про різні методики розрахунку прибутковості облігацій. Результатом вирішення даного завдання є розробка власної методики аналізу. Методика перевірена на реальних чисельних даних за певний період функціонування ринку ВКО. Кінцевим продуктом методу є програма, написана на Visual Basic for Microsoft Excel, що дозволяє робити аналіз ефективності управління портфелем облігацій. Наведений метод аналізу також можна застосувати надалі для побудови методів ефективного управління портфелем облігацій.
Обидві поставлені завдання впроваджені і використовуються на практиці.
Список літератури.
1. Башарин Г.П. «Начала фінансової математики» Москва, «ИНФРА-М», 1997 р.
2. Бродський В., Горліна Ю. «Модель дійсної прибутковості ГКО для клієнтів» журнал «Ринок цінних паперів» № 1 1994 р.
3. Вєтров А. «Як побудувати агреговані показники прибутковості ринку ГКО/ОФЗ» журнал «Ринок цінних паперів» № 5 1996 р.
4. Горєлов М. «Побудова оптимального портфеля ГКО: як максимізувати прибуток» журнал «Ринок цінних паперів» № 6 1996 р.
5. Горєлов М., Никифоров Л. «Про межах застосування принципу ринкового моменту» журнал «Ринок цінних паперів» № 16 1996 р.
6. Горєлов М. «Що не можна упускати при побудові моделі управління портфелем ГКО» журнал «Ринок цінних паперів» № 11 1996 р.
7. Горліна Ю. «Оцінка прибутковості операцій з ДКО: варіантів біржової гри» журнал «Ринок цінних паперів» № 6 1994 р.
8. Грядовая О. «Прибутковість як критерій оптимізації рішень з управління портфелем ГКО» журнал «Ринок цінних паперів» № 15 1994 р.
9. Губернієв В. «ГКО в оптимальному портфелі» журнал «Ринок цінних паперів» № 15 1996 р.
10. Демушкина Е. «Угоди з державними цінними паперами» журнал «Ринок цінних паперів» № 23 1996 р.
11. Екушов А. «Як перевищити середню прибутковість ринку ГКО» журнал «Ринок цінних паперів» № 11 1997 р.
12. Івахін А. «Як подолати обмеження у моделюванні ринку ГКО» журнал «Ринок цінних паперів» № 12 1996 р.
13. Комягин В.Б. «Програмування в Excel 5 і Excel 7 мовою Visual Basic» Москва, «Радио и связь» 1996 р.
14. Кузнецов М., Ніфатов П. «Грошовий потік і торгові операції на ринку ГКО» журнал «Ринок цінних паперів» № 4 1996 р.
15. Мєшкова Н. Кулакова Ю. «Прогнозування тренда ціни ГКО» журнал «Ринок цінних паперів» № 6 1996 р.
16. Михеев А. «Граємо на позикові кошти» журнал «Ринок цінних паперів» № 3 1997 р.
17. Остроушко О., Гришин О. «Прибутковість і дюрація портфеля ГКО» журнал «Ринок цінних паперів» № 5 1996р.
18. Положення про обслуговування та обіг випусків РКО РТ (затверджено постановою Кабінету Міністрів РТ від 21 квітня 1995 р. № 238)
19. «Потоки платежів, види облігацій та обчислення дохідності» Москва «Консультаційний агентство« Соболєв »1996 р.
20. «Ринок цінних паперів» підручник під ред. Галанова В.А., Басова А.И. Москва «Фінанси та статистика» 1996 р.
21. Суменкова Е.В. «Операції з цінними паперами» Москва «Перспектива», 1997 р.
22. Ушаков П. «Про взаємозв'язках індикаторів ринку ГКО» журнал «Ринок цінних паперів» № 3 1997 р.
23. Черкасов В.Е. «Практичний посібник з фінансово-економічних розрахунків» Москва «Метаінформ» 1995 р.
24. Черновский А. «Як оцінити еффектівноть управління портфелем ГКО» журнал «Ринок цінних паперів» № 24 1996 р.
25. Четиркина Е. «Методи фінансових і комерційних розрахунків»
Програми.
Додаток № 1. Програма автоматизації обліку РКО.
Додаток 1.1. Керівництво користувача.
Дана програма написана на Microsoft Visual Basic for Excel. Для запуску програми необхідно відкрити файл sprav.xls в Excel, після чого в лінійці меню з'явиться додатковий пункт меню «Довідник», що складається з наступних розділів:
Дата
Перегляд залишків
Друк
Депозитарій
Портфель
Біржова інформація
Звіти клієнтам
Звіт тижневий
Звіт місячний
Журнал особового обліку
Вікно
Папери
Угоди
Клієнти
Біржа
Розглянемо докладніше кожен з пунктів меню.
Дата - зміна дати для роботи.
Перегляд залишків - перегляд залишків по Клієнтам.
Друк - роздруківка на принтер наступних даних:
Депозитарій - друк депозитарію.
Портфель - друк власного портфеля Дилера.
Біржова інформація - друк біржової інформації.
Звіти клієнтам - друк звітів Клієнтам.
Звіт тижневий - друк щотижневого звіту, що надається в депозитарій.
Звіт місячний - друк щомісячного звіту, що надається в депозитарій.
Журнал особового обліку - друк журналу особового обліку та журналу оборотів Дилера.
Вікно - вибір наступних вікон для введення інформації:
Папери - вибір вікна введення інформації про обертаються на ринку паперах.
Угоди - вибір вікна введення угод.
Клієнти - вибір вікно вводу Клієнтів.
Біржа - вибір вікно вводу біржової інформації.
Результатом роботи програми є Додатку № 1.3-1.12
Додаток 1.2. Текст програми.
Option Explicit
Option Base 1
Public CurDate As Date
Public DepoArray () As Integer
Public BumArray (); BumArrayV () As Integer
Public Button; Перегляд; ExitVar; Купівля; Продаж; Погашення As Boolean
Const DilerConst = 1000900000
Const FilialConst = 1000999999
Const ConstMaxBum = 100 'максимальну кількість паперів (випусків)
Const MaxCount = 1000 'Максимальна кількість угод по 1-ій папері
Const S192 = "50202"
Const S904 = "47423"
Const S960 = "70102"
Const S970 = "70204"
Const SR970 = "70204"
Sub Auto_Open ()
ActiveWindow.WindowState = xlMaximized
CurDate = Date
Worksheets ( "Врем"). Cells (1; 4) = CurDate
Application.OnWindow = "CancelChanges"
Application.Windows ( "Sprav.xls"). OnWindow = "Start"
End Sub
Sub Auto_Close ()
MenuBars (xlModule). Reset
MenuBars (xlWorksheet). Reset
Application.OnWindow = ""
Application.Windows ( "Sprav.xls"). OnWindow = ""
ActiveWorkbook.Save
End Sub
Sub Start ()
Call CreateMenu
Application.DisplayFullScreen = False
ActiveWindow.WindowState = xlMaximized
CurDate = Date
Worksheets ( "Врем"). Cells (1; 4) = CurDate
End Sub
Sub CancelChanges ()
MenuBars (xlModule). Reset
MenuBars (xlWorksheet). Reset
End Sub
Sub CreateMenu ()
MenuBars (xlModule). Reset
MenuBars (xlWorksheet). Reset
With MenuBars (xlModule). Menus.Add ( "& Довідник")
. MenuItems.Add "& Дата"; "DateChange"
. MenuItems.Add "П & росмотр залишків"; "PrintOst"
. MenuItems.AddMenu ( "& Друк")
. MenuItems ( "& Друк"). MenuItems.Add "& Депозитарій"; "PrintDepo"
. MenuItems ( "& Друк"). MenuItems.Add "& Портфель"; "PrintPortfel"
. MenuItems ( "& Друк"). MenuItems.Add "& Біржова інформація"; "PrintBirgaInfo"
. MenuItems ( "& Друк"). MenuItems.Add "Звіти & клієнтам"; "PrintOtchClient"
. MenuItems ( "& Друк"). MenuItems.Add "Звіт & тижневий"; "PrintOtchWeek"
. MenuItems ( "& Друк"). MenuItems.Add "Звіт & місячний"; "PrintOtchMonth"
. MenuItems ( "& Друк"). MenuItems.Add "Журнал & особового обліку"; "PrintMagazine"
. MenuItems.AddMenu ( "& Вікно")
. MenuItems ( "& Вікно"). MenuItems.Add "& Папери"; "ViewPaper"
. MenuItems ( "& Вікно"). MenuItems.Add "& Угоди"; "ViewDeal"
. MenuItems ( "& Вікно"). MenuItems.Add "& Клієнти"; "ViewClient"
. MenuItems ( "& Вікно"). MenuItems.Add "Бі & іржа"; "ViewBirga"
. MenuItems ( "& Вікно"). MenuItems.Add "& Залишки 812"; "ViewOst812"
. MenuItems ( "& Вікно"). MenuItems.Add "Про & статки біржа"; "ViewOstBirga"
. MenuItems ( "& Вікно"). MenuItems.Add "& Захист"; "ViewProgram"
End With
With MenuBars (xlWorksheet). Menus.Add ( "& Довідник")
. MenuItems.Add "& Дата"; "DateChange"
. MenuItems.Add "П & росмотр залишків"; "PrintOst"
. MenuItems.AddMenu ( "& Друк")
. MenuItems ( "& Друк"). MenuItems.Add "& Депозитарій"; "PrintDepo"
. MenuItems ( "& Друк"). MenuItems.Add "& Портфель"; "PrintPortfel"
. MenuItems ( "& Друк"). MenuItems.Add "& Біржова інформація"; "PrintBirgaInfo"
. MenuItems ( "& Друк"). MenuItems.Add "Звіти & клієнтам"; "PrintOtchClient"
. MenuItems ( "& Друк"). MenuItems.Add "Звіт & тижневий"; "PrintOtchWeek"
. MenuItems ( "& Друк"). MenuItems.Add "Звіт & місячний"; "PrintOtchMonth"
. MenuItems ( "& Друк"). MenuItems.Add "Журнал & особового обліку"; "PrintMagazine"
. MenuItems.AddMenu ( "& Вікно")
. MenuItems ( "& Вікно"). MenuItems.Add "& Папери"; "ViewPaper"
. MenuItems ( "& Вікно"). MenuItems.Add "& Угоди"; "ViewDeal"
. MenuItems ( "& Вікно"). MenuItems.Add "& Клієнти"; "ViewClient"
. MenuItems ( "& Вікно"). MenuItems.Add "Бі & іржа"; "ViewBirga"
. MenuItems ( "& Вікно"). MenuItems.Add "& Залишки 812"; "ViewOst812"
. MenuItems ( "& Вікно"). MenuItems.Add "Про & статки біржа"; "ViewOstBirga"
. MenuItems ( "& Вікно"). MenuItems.Add "& Захист"; "ViewProgram"
End With
End Sub
Sub ViewPaper ()
Sheets ( "Папери"). Select
Call EndOf
End Sub
Sub ViewDeal ()
Sheets ( "Угоди"). Select
Call EndOf
End Sub
Sub ViewClient ()
Sheets ( "Клієнти"). Select
Call EndOf
End Sub
Sub ViewBirga ()
Sheets ( "Біржа"). Select
Call EndOf
End Sub
Sub ViewOst812 ()
Sheets ( "Остаткі812"). Select
Call EndOf
End Sub
Sub ViewOstBirga ()
Sheets ( "ОстаткіБіржа"). Select
Call EndOf
End Sub
Sub ViewProgram ()
Sheets ( "Захист"). Select
End Sub
'------------------------------ Друк Депозитарію ---------------< br />
Sub PrintDepo ()
Dim BumNum; CliNum; i; j; k; a; n; Sign; s As Integer
Dim Flag As Boolean
Dim Code As Long
Dim Str As String
Dim DepoFil () As Integer
Dim Num As Integer
CurDate = Worksheets ( "Врем"). Cells (1; 4)
Call FormBum
Sheets ( "Депо"). Select
BumNum = Worksheets ( "Врем"). Cells (1; 2)
Cells (3; 5) = Worksheets ( "Врем"). Cells (1; 4)
Cells (3; 5). NumberFormat = "Д мммм, РРРР"
Cells (3; 5). HorizontalAlignment = xlCenterAcrossSelection
Cells (3; 5). Font.Bold = True
Num = 9
For i = 1 To BumNum
Cells (6; i + 1) = Worksheets ( "Врем"). Cells (i; 1)
Cells (6; i + 1). Font.Bold = True
Cells (6; i + 1). Interior.ColorIndex = 40
Cells (Num + 1; i + 1). Interior.ColorIndex = 15
Cells (Num + 1; i + 1) = ""
Cells (Num; i + 1). Interior.ColorIndex = 40
Cells (Num; i + 1) = ""
Cells (5; i + 1). Interior.ColorIndex = 40
Next
Cells (Num; 1). Interior.ColorIndex = 40
Cells (Num; 1) = "Разом"
Cells (Num; 1). Font.Bold = True
Cells (Num; 1). Font.Italic = True
Cells (Num; 1). HorizontalAlignment = xlCenter
Cells (Num + 1; 1) = ""
Cells (Num + 1; 1). Interior.ColorIndex = 15
CliNum = Worksheets ( "Врем"). Cells (1; 3)
ReDim DepoArray (CliNum; BumNum)
ReDim DepoFil (BumNum)
a = 2
While Worksheets ( "Угоди"). Cells (a; 1) Empty
i = 1
While Worksheets ( "Клієнти"). Cells (i + 1; 2) _
Worksheets ( "Угоди"). Cells (a; 2)
If Worksheets ( "Клієнти"). Cells (i + 1; 2) = Empty Then
MsgBox "Невірний номер клієнта у вікні 'Угоди' рядок:" + CStr (a)
Sheets ( "Угоди"). Select
Cells (a; 2). Select
Exit Sub
End If
i = i + 1
Wend
k = 0
For j = 1 To BumNum
If Worksheets ( "Врем"). Cells (j; 1) = Worksheets ( "Угоди"). Cells (a; 3) Then
k = j
Exit For
End If
Next
If k = 0 Then
a = a + 1
GoTo NNN
End If
If Not IsEmpty (Worksheets ( "Угоди"). Cells (a; 4)) Then
Sign = 1
Else
Sign = -1
End If
If CurDate> = Worksheets ( "Угоди"). Cells (a; 1) Then
If Worksheets ( "Угоди"). Cells (a; 2) = FilialConst Then
DepoFil (k) = DepoFil (k) + Sign * Worksheets ( "Угоди"). Cells (a; 6)
Else
DepoArray (i; k) = DepoArray (i; k) + Sign * Worksheets ( "Угоди"). Cells (a; 6)
End If
End If
a = a + 1
NNN:
Wend
n = 7
For i = 1 To CliNum
Flag = False
For k = 1 To BumNum
If DepoArray (i; k)> 0 Then Flag = True
Next
If Flag Then
Str = Format (Worksheets ( "Клієнти"). Cells (i + 1; 2); "0000000000")
Str = Right (Str; 5)
Cells (n; 1). NumberFormat = "@"
Cells (n; 1). Font.Bold = True
Cells (n; 1). HorizontalAlignment = xlCenter
Cells (n; 1). Font.Italic = False
Cells (n; 1). Interior.ColorIndex = 2
Cells (n; 1) = Str
For k = 1 To BumNum
If DepoArray (i; k) 0 Then
Cells (n; k + 1) = DepoArray (i; k)
Else
Cells (n; k + 1) = ""
End If
Cells (n; k + 1). Font.Bold = False
Cells (n; k + 1). Font.Italic = False
Cells (n; k + 1). Interior.ColorIndex = 2
Next
If n = 7 Then
n = n + 4
Else
n = n + 1
End If
End If
Next
'розрахунок по філії
Cells (8; 1) = "Філія"
Cells (8; 1). Font.Bold = True
Cells (8; 1). HorizontalAlignment = xlCenter
Cells (8; 1). Font.Italic = False
Cells (8; 1). Interior.ColorIndex = 2
For k = 1 To BumNum
If DepoFil (k) 0 Then
Cells (8; k + 1) = DepoFil (k)
Else
Cells (8; k + 1) = ""
End If
Cells (8; k + 1). Font.Bold = False
Cells (8; k + 1). Font.Italic = False
Cells (8; k + 1). Interior.ColorIndex = 2
Next
For i = 1 To BumNum
Cells (n; i + 1). Interior.ColorIndex = 40
s = 0
For k = 11 To n - 1
s = s + Cells (k; i + 1)
Next
Cells (n; i + 1). Value = s
Next
For i = 1 To BumNum
Cells (9; i + 1) = Cells (7; i + 1) + Cells (8; i + 1)
Next
Cells (n; 1). Interior.ColorIndex = 40
Cells (n; 1) = "Разом 9998"
Cells (n; 1). Font.Bold = True
Cells (n; 1). Font.Italic = True
Range ( "A1: Z200"). Borders (xlLeft). LineStyle = xlNone
Range ( "A1: Z200"). Borders (xlRight). LineStyle = xlNone
Range ( "A1: Z200"). Borders (xlTop). LineStyle = xlNone
Range ( "A1: Z200"). Borders (xlBottom). LineStyle = xlNone
Range ( "A1: Z200"). BorderAround LineStyle: = xlNone
Range (Cells (5; 1); Cells (n; BumNum + 1)). Borders (xlLeft). Weight = xlThin
Range (Cells (5; 1); Cells (n; BumNum + 1)). Borders (xlRight). Weight = xlThin
Range (Cells (5; 1); Cells (n; BumNum + 1)). Borders (xlTop). Weight = xlThin
Range (Cells (5; 1); Cells (n; BumNum + 1)). Borders (xlBottom). Weight = xlThin
Range (Cells (5; 1); Cells (n; BumNum + 1)). BorderAround Weight: = xlMedium
Range (Cells (n + 1; 1); Cells (100; 30)). Delete shift: = xlToLeft
Range (Cells (1; BumNum + 2); Cells (100; 30)). Delete shift: = xlToLeft
If DialogPrint ( "Депо"; 1) Then Exit Sub
Call EditOstBirga (DilerConst)
End Sub
'-------------------------------- Друк Звіти клієнтам -----------< br/>
Sub PrintOtchClient ()
Dim Sheet; Ost812 As Object
Dim i; j; d; a; Col; m; MM; NN; MMM; k; b; q As Long
Dim FlagBuy; FlagCell; FlagDeal; FlagDepo As Boolean
Dim CliNum As Long
Dim ComStr; StrComS As String
Dim BumNum; z; z1; Index As Integer
Dim s; sum; SumBuy; Ost; SumCom; ComBirga; ComDiler; ComSum As Double
Dim Com As Double
Dim OstIn; OstOut; OstBegin; OstEnd As Double
Dim RowNum As Long
Dim OstInDate; OstOutDate As String
Dim DoFlag As Boolean
Dim Auk As Boolean
Set Sheet = Worksheets ( "Угоди")
Sheet.Range ( "A2"). Sort Key1: = Sheet.Range ( "A2"); Order1: = xlAscending; _
Key2: = Sheet.Range ( "B2"); Order2: = xlAscending; _
Key3: = Sheet.Range ( "D2"); Order3: = xlAscending; _
Header: = xlYes; OrderCustom: = 1; _
MatchCase: = False; Orientation: = xlTopToBottom
CurDate = Worksheets ( "Врем"). Cells (1; 4)
Worksheets ( "ОтчетиІнвесторам"). Select
i = 2
FlagDeal = False
FlagBuy = True
FlagCell = True
NN = 29 'початок
m = NN
Range (Cells (NN - 1; 2); Cells (NN + 200; 6)). Delete shift: = xlToLeft
Rows (CStr (NN - 1) + ":" + CStr (NN - 1)). RowHeight = 28
Rows (CStr (NN - 1) + ":" + CStr (NN - 1)). WrapText = True
Rows (CStr (NN - 1) + ":" + CStr (NN - 1)). HorizontalAlignment = xlCenter
Rows (CStr (NN - 1) + ":" + CStr (NN - 1)). VerticalAlignment = xlBottom
Cells (NN - 1; 2) = "№ випуску"
Cells (NN - 1; 3) = "Дата погашення"
Cells (NN - 1; 4) = "Ціна угоди"
Cells (NN - 1; 5) = "Кількість"
Cells (NN - 1; 6) = "Сума операції"
Cells (NN - 3; 3) = "Досконалі угоди на ринку ВКО"
Cells (NN - 3; 3). Font.Bold = True
sum = 0
SumBuy = 0
SumCom = 0
ComBirga = 0
Call FormBum
BumNum = Worksheets ( "Врем"). Cells (1; 2)
ReDim BumArray (BumNum)
ReDim BumArrayV (BumNum)
Index = CInt (InputBox ( "Введіть номер 1-го ордери"))
Do While Sheet.Cells (i; 1) Empty
If Sheet.Cells (i; 1) = CurDate And Sheet.Cells (i; 2) DilerConst Then
FlagDeal = True
If FlagBuy And Sheet.Cells (i; 4) Empty Then
Купівля = True
CliNum = Sheet.Cells (i; 2)
Cells (m; 2) = "Покупка"
Cells (m; 2). HorizontalAlignment = xlLeft
Range (Cells (m; 2); Cells (m; 6)). Interior.ColorIndex = 15
m = m + 1
MM = m
FlagBuy = False
End If
If FlagCell And Sheet.Cells (i; 4) = Empty Then
If Not FlagBuy Then
s = 0
Col = 0
SumCom = 0
ComBirga = 0
For a = MM To m - 1
Cells (a; 6) = Cells (a; 4) * Cells (a; 5) * 10
If Cells (a; 4) 100 Then
SumCom = SumCom + Cells (a; 4) * Cells (a; 5) * 10
ComBirga = ComBirga + _
CDbl (Format (Cells (a; 4) * Cells (a; 5) * 0,1 * Worksheets ( "Інфо"). Cells (1; 2) + 0,001; "0,00"))
Else
Погашення = True
End If
Cells (a; 6). NumberFormat = "# ###"< br />
s = s + Cells (a; 6)
Col = Col + Cells (a; 5)
Next a
sum = sum + s
SumBuy = s
Cells (m; 6) = s
Cells (m; 6). NumberFormat = "# ###"< br />
Cells (m; 5) = Col
Cells (m; 2) = "Разом"
m = m + 1
End If
CliNum = Sheet.Cells (i; 2)
Cells (m; 2) = "Продаж"
Продаж = True
Cells (m; 2). HorizontalAlignment = xlLeft
Range (Cells (m; 2); Cells (m; 6)). In