20. «Рынок ценных бумаг» учебник под ред. Галанова В.А., Басова А.И. Москва «Финансы и статистика» 1996 г.
21. Суменкова Е.В. «Операции с ценными бумагами» Москва «Перспектива» 1997 г.
22. Ушаков П. «О взаимосвязях индикаторов рынка ГКО» журнал «Рынок ценных бумаг» №3 1997 г.
23. Черкасов В.Е. «Практическое руководство по финансово-экономическим расчетам» Москва «Метаинформ» 1995 г.
24. Черновский А. «Как оценить эффективноть управления портфелем ГКО» журнал «Рынок ценных бумаг» №24 1996 г.
25. Четыркин Е. «Методы финансовых и коммерческих расчетов»
Данная программа написана на Microsoft Visual Basic for Excel. Для запуска программы необходимо открыть файл sprav.xls в Excel, после чего в линейке меню появится дополнительный пункт меню «Справочник», состоящий из следующих разделов:
Дата
Просмотр остатков
Печать
Депозитарий
Портфель
Биржевая информация
Отчеты клиентам
Отчет недельный
Отчет месячный
Журнал лицевого учета
Окно
Бумаги
Сделки
Клиенты
Биржа
Рассмотрим подробнее каждое из пунктов меню.
Дата - изменение даты для работы.
Просмотр остатков - просмотр остатков по Клиентам.
Печать - распечатка на принтер следующих данных:
Депозитарий - печать депозитария.
Портфель - печать собственного портфеля Дилера.
Биржевая информация - печать биржевой информации.
Отчеты клиентам - печать отчетов Клиентам.
Отчет недельный - печать еженедельного отчета, предоставляемого в депозитарий.
Отчет месячный - печать ежемесячного отчета, предоставляемого в депозитарий.
Журнал лицевого учета - печать журнала лицевого учета и журнала оборотов Дилера.
Окно - выбор следующих окон для ввода информации:
Бумаги - выбор окна ввода информации об обращающихся на рынке бумагах.
Сделки - выбор окна ввода сделок.
Клиенты - выбор окна ввода Клиентов.
Биржа - выбор окна ввода биржевой информации.
Результатом работы программы являются Приложения №1.3-1.12
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
'------------------------------ Печать Депозитария ---------------
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
'-------------------------------- Печать Отчеты клиентам -----------
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; _