ропоновано асиметричні обурені міри ризику, які відрізняються тим, дозволяють відобразити ставлення інвестора до ризику, вибравши відповідну обурює функцію. Також врахована асиметрія сприйняття ризику інвестором.
. Розроблено алгоритм для оптимізації портфеля цінних паперів,
На основі запропонованих заходів ризику.
. Розроблено програмний продукт в середовищі програмування Delphi формує оптимальний портфель цінних паперів на основі запропонованих заходів ризику.
. Аналіз результатів, отриманих на основі статистичних даних котирувань найбільш ліквідних цінних паперів російського ринку, показав ефективність розробленого програмного продукту, яка полягає:
отримання максимальної прибутковості за наступний проміжок часу;
в підвищенні ефективності застосовуваних заходів ризику за рахунок підбору параметрів.
Список літератури
1. Кузнецов М.В., Овчинников А.С. Технічний аналіз ринку цінних паперів. - М.: ИНФРА-М, 1996.
2. Електронний ресурс: Фондовий ринок, цінні папери, котирування акцій на фондовій біржі finam <# «justify"> Додаток А
Лістинг програми
unit uMainForm;
interface, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, Menus, Grids, uMyExcel, StdCtrls, ExtCtrls, Math;=class (TForm): TMainMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TStringGrid;: TOpenDialog;: TSaveDialog;: TMenuItem;: TMenuItem;: TPanel;: TPanel;: TListBox;: TMenuItem;: TStringGrid; N2Click (Sender: TObject); N6Click (Sender: TObject); N4Click (Sender: TObject); N7Click (Sender: TObject);
{Private declarations}
{Public declarations};: TMainForm; uSettings;
{$ R *. dfm} TMainForm.N2Click (Sender: TObject);: OleVariant;: OleVariant;// Лист з компаніями: OleVariant;// Лист з акціями, iCol: integer;// Індекси рядка і стовпчика: integer; not OpenDialog1.Execute then;
/ / очищаємо попередні данниеiRow:=0 to sgTable.RowCount - 1 doiCol:=0 to sgTable.ColCount - 1 do.Cells [iCol, iRow]:=«»;. RowCount:=2;. Items . Clear;;// Запускаємо ExcelOpenWorkBook (OpenDialog1.FileName, false) then
/ / готуємо дані:=MyExcel.WorkBooks.Item [1];:=WorkBook.Sheets.Item [1];:=WorkBook.Sheets.Item [2];:=2;
/ / зчитуємо в нашу табліцуTrim (WorkSheet.Cells [iRow, 1]) <> «» do:=1; Trim (WorkSheet.Cells [iRow, iCol]) <> «» do.Cells [iCol - 1, iRow - 2]:=WorkSheet.Cells [iRow, iCol]; (iCol);;. RowCount:=sgTable.RowCount +1; (iRow);;. RowCount:=sgTable.RowCount- 2;
/ / зчитуємо тест.виборку:=WorkBook.Sheets.Item [3];
iRow:=2;. RowCount:=2;
/ / зчитуємо в нашу таблицю
while Trim (WorkSheet.Cells [iRow, 1]) <> «» do:=1; Trim (WorkSheet.Cells [iRow, iCol]) <> «» do.Cells [iCol - 1, iRow - 2]:=WorkSheet.Cells [iRow, iCol]; (iCol);;. RowCount:=sgTable2.RowCount +1; (iRow);;. RowCount:=sgTable2.RowCount- 1;
/ / знаходимо відношення посл.к первомуi:=1 to sgTable2.ColCount - 1 do.Cells [i, sgTable2.RowCount - 1]:=FloatToStr ((sgTable2.Cells [i, sgTable2.RowCount - 2])/(sgTable2.Cells [i, 2]));;;;// Виходимо з Excel; TMainForm.N4Click (Sender: TObject);;; TMainForm.N6Click (Sender: TObject);, j: integer;: array [0 .. 1000, 0 .. 4] of real;// Таблиця не змінюється: array [0 .. 1000, 0 .. ...