Методы оптимизации портфеля бескупонных облигаций

Страница 7

Q1[N], // нач. портфель

P1[N], // нач. цены

Cush,S; // деньги

float S1,S2;

int k,maxk,i;

T[0]=58;

T[1]=37;

T[2]=72;

T[3]=107;

T[4]=135;

T[5]=163;

T[6]=303;

T[7]=359;

randomize();

Cush=200000; // 2 миллиарда

maxk=0;

clrscr();

for (k=0;k<N;k++) {

D[k]=28+float(random(400))/100;

P[k]=100/pow((D[k]/1200+1),T[k]/30);

P1[k]=P[k];

Q[k]=Q1[k]=0;

if (D[maxk]<D[k]) maxk=k;

printf(" %f %f",D[k],P[k]);

}

Q1[maxk]=Q[maxk]=int(Cush/(P[maxk]*1.001));

Cush=Cush-Q[maxk]*P[maxk]*1.001;

printf(" %d %f %f",maxk,Q1[maxk],Cush);

S=0;

for (k=0;k<N;k++) S+=Q[k]*P[k];

for (i=1;i<=21;i++) {

maxk=0;

for (k=0;k<N;k++) {

D[k]=28-i/10+float(random(200))/100;

P[k]=100/pow((D[k]/1200+1),(T[k]-i)/30);

if (D[maxk]<D[k]) maxk=k;

}

for (k=0;k<N;k++) {

if (Q[k]>0)

if (D[k]+1<D[maxk]) {

Cush+=P[k]*Q[k]*0.999;

Q[maxk]+=int(Cush/(P[maxk]*1.001));

Cush=Cush-Q[maxk]*P[maxk]*1.001;

Q[k]=0;

}

}

printf(" деньги %f",Cush);

for (k=0;k<N;k++) {

printf(" Q[%d]= %f",k,Q[k]);

}

asm {

mov ax,0

int 16h

}

}

S1=S2=0;

for (k=0;k<N;k++) {

S1+=Q1[k]*P[k];

S2+=Q[k]*P[k];

}

printf(" нач.ст-ть :%fбыло бы :%f есть:%f",S,S1,S2);

}

Программа 4.

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

#include <conio.h>

const N=8;

void main(void) {

float Q[N], // кол-во

P[N], // цена

T[N], // дней до погашения

D[N], // дох-ть эффективная

Q1[N], // нач. портфель

P1[N], // нач. цены

Cush,QQ,S; // деньги

float S1,S2;

int k,maxk,i;

T[0]=58;

T[1]=37;

T[2]=72;

T[3]=107;

T[4]=135;

T[5]=163;

T[6]=303;

T[7]=359;

randomize();

Cush=0;

maxk=0;

clrscr();

for (k=0;k<N;k++) {

Q1[k]=Q[k]=100;

D[k]=28+float(random(400))/100;

P[k]=100/pow((D[k]/1200+1),T[k]/30);

}

S=0;

for (k=0;k<N;k++) S+=Q[k]*P[k];

for (i=1;i<=21;i++) {

maxk=0;

for (k=0;k<N;k++) {

D[k]=28-i+float(random(400))/100;

P[k]=100/pow((D[k]/1200+1),(T[k]-i)/30);

if (D[maxk]<D[k]) maxk=k;

}

for (k=0;k<N;k++) {

if (Q[k]>0)

if (D[k]+1<=D[maxk]) {

Cush+=P[k]*Q[k]*0.999;

QQ=int(Cush/(P[maxk]*1.001));

Q[maxk]+=QQ;

Cush=Cush-QQ*P[maxk]*1.001;

Q[k]=0;

}

}

printf(" деньги %f",Cush);

for (k=0;k<N;k++) {

printf(" Q[%d]= %f",k,Q[k]);

}

asm {

mov ax,0

int 16h

}

}

S1=S2=0;

for (k=0;k<N;k++) {

S1+=Q1[k]*P[k];

S2+=Q[k]*P[k];

}

printf(" нач.ст-ть :%fбыло бы :%f есть:%f",S,S1,S2);

}

Программа 5.

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

#include <conio.h>

const N=8;

void main(void) {

float Q[N], // кол-во

P[N], // цена

T[N], // дней до погашения

D[N], // дох-ть эффективная

Q1[N], // нач. портфель

P1[N], // нач. цены

Cush,S; // деньги

float S1,S2;

int k,maxk,i;

T[0]=58;

T[1]=37;

T[2]=72;

T[3]=107;

T[4]=135;

T[5]=163;

T[6]=303;

T[7]=359;

randomize();

Cush=200000; // 2 миллиарда

maxk=0;

clrscr();

for (k=0;k<N;k++) {

D[k]=28+float(random(400))/100;

P[k]=100/pow((D[k]/1200+1),T[k]/30);

P1[k]=P[k];

Q[k]=Q1[k]=0;

if (D[maxk]<D[k]) maxk=k;

printf(" %f %f",D[k],P[k]);

}

Q1[maxk]=Q[maxk]=int(Cush/(P[maxk]*1.001));

Cush=Cush-Q[maxk]*P[maxk]*1.001;

printf(" %d %f %f",maxk,Q1[maxk],Cush);

S=0;

for (k=0;k<N;k++) S+=Q[k]*P[k];

for (i=1;i<=21;i++) {

maxk=0;

for (k=0;k<N;k++) {

D[k]=28+i+float(random(400))/100;

P[k]=100/pow((D[k]/1200+1),(T[k]-i)/30);

if (D[maxk]<D[k]) maxk=k;

}

for (k=0;k<N;k++) {

if (Q[k]>0)

if (D[k]+1<D[maxk]) {

Cush+=P[k]*Q[k]*0.999;

Q[maxk]+=int(Cush/(P[maxk]*1.001));

Cush=Cush-Q[maxk]*P[maxk]*1.001;

Q[k]=0;

}

}

printf(" деньги %f",Cush);

for (k=0;k<N;k++) {

printf(" Q[%d]= %f",k,Q[k]);

}

asm {

mov ax,0

int 16h

}

}

S1=S2=0;

for (k=0;k<N;k++) {

S1+=Q1[k]*P[k];

S2+=Q[k]*P[k];

}

printf(" нач.ст-ть :%fбыло бы :%f есть:%f",S,S1,S2);

}

Программа 6.

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

#include <conio.h>

const N=8;

void main(void) {

float Q[N], // кол-во

P[N], // цена

T[N], // дней до погашения

D[N], // дох-ть эффективная

Q1[N], // нач. портфель

P1[N], // нач. цены

Cush,QQ,S; // деньги

float S1,S2;

int k,maxk,i;

T[0]=58;

T[1]=37;

T[2]=72;

T[3]=107;

T[4]=135;

T[5]=163;

T[6]=303;

T[7]=359;

randomize();

Cush=0;

maxk=0;

clrscr();

for (k=0;k<N;k++) {

Q1[k]=Q[k]=100;

D[k]=28+float(random(400))/100;

P[k]=100/pow((D[k]/1200+1),T[k]/30);

}

S=0;

for (k=0;k<N;k++) S+=Q[k]*P[k];

for (i=1;i<=21;i++) {

maxk=0;

for (k=0;k<N;k++) {

D[k]=28+i+float(random(400))/100;

P[k]=100/pow((D[k]/1200+1),(T[k]-i)/30);

if (D[maxk]<D[k]) maxk=k;

}

for (k=0;k<N;k++) {

if (Q[k]>0)

if (D[k]+1<=D[maxk]) {

Cush+=P[k]*Q[k]*0.999;

QQ=int(Cush/(P[maxk]*1.001));

Q[maxk]+=QQ;

Cush=Cush-QQ*P[maxk]*1.001;

Q[k]=0;

}

}

printf(" деньги %f",Cush);

for (k=0;k<N;k++) {

printf(" Q[%d]= %f",k,Q[k]);

}

asm {

mov ax,0

int 16h

}

}

S1=S2=0;

for (k=0;k<N;k++) {

S1+=Q1[k]*P[k];

S2+=Q[k]*P[k];

}

printf(" нач.ст-ть :%fбыло бы :%f есть:%f",S,S1,S2);

}

Приложение 5. Последние цены и эффективная доходность к погашению на рынке РКО с 1 по 30 апреля 1997 г.

Дата

№ бумаги

Цена посл

Дох-ть эфф-я к погашению

Дата погашения

Налог на ЦБ(в %)

01.04.97

21020

99,25

27,78

10.04.97

0

01.04.97

21021

95,82

29,98

15.05.97

15

01.04.97

22004

97,90

32,90

24.04.97

0

01.04.97

22006

93,00

33,61

19.06.97

0

01.04.97

22007

90,00

28,84

24.07.97

15

01.04.97

22008

86,90

29,47

28.08.97

15

01.04.97

22009

84,10

30,64

25.09.97

15

01.04.97

24001

73,00

28,60

12.03.98

15

02.04.97

21020

99,25

31,30

10.04.97

0

02.04.97

21021

95,69

31,70

15.05.97

15

02.04.97

22004

97,92

34,07

24.04.97

0

02.04.97

22005

94,90

33,47

29.05.97

0

02.04.97

22006

93,19

33,07

19.06.97

0

02.04.97

22007

90,99

26,02

24.07.97

15

02.04.97

22008

86,94

29,57

28.08.97

15

02.04.97

22009

84,00

31,04

25.09.97

15

02.04.97

24001

73,00

28,69

12.03.98

15

03.04.97

21020

99,30

33,14

10.04.97

0

03.04.97

21021

95,60

33,18

15.05.97

15

03.04.97

22004

98,01

34,08

24.04.97

0

03.04.97

22005

95,09

32,74

29.05.97

0

03.04.97

22006

93,31

32,88

19.06.97

0

03.04.97

22007

90,55

27,63

24.07.97

15

03.04.97

22008

87,10

29,38

28.08.97

15

03.04.97

22009

84,00

31,22

25.09.97

15

03.04.97

24001

72,95

28,83

12.03.98

15

04.04.97

21020

99,40

32,45

10.04.97

0

04.04.97

21021

95,80

32,37

15.05.97

15

04.04.97

22004

98,20

32,18

24.04.97

0

04.04.97

22005

95,20

32,55

29.05.97

0

04.04.97

22006

93,39

32,90

19.06.97

0

04.04.97

22007

90,83

27,00

24.07.97

15

04.04.97

22008

86,70

30,59

28.08.97

15

04.04.97

22009

84,06

31,27

25.09.97

15

04.04.97

24001

72,80

29,11

12.03.98

15

07.04.97

21020

99,65

33,98

10.04.97

0

07.04.97

21021

96,00

33,21

15.05.97

15

07.04.97

22004

98,40

33,45

24.04.97

0

07.04.97

22005

95,44

32,64

29.05.97

0

07.04.97

22006

93,64

32,89

19.06.97

0

07.04.97

22007

91,20

26,56

24.07.97

15

07.04.97

22008

88,40

26,91

28.08.97

15

07.04.97

22009

84,30

31,29

25.09.97

15

07.04.97

24001

73,05

29,05

12.03.98

15

08.04.97

21020

99,75

32,40

10.04.97

0

08.04.97

21021

96,65

28,30

15.05.97

15

08.04.97

22004

98,45

34,38

24.04.97

0

08.04.97

22005

95,51

32,75

29.05.97

0

08.04.97

22006

93,84

32,25

19.06.97

0

08.04.97

22007

91,20

26,81

24.07.97

15

08.04.97

22008

87,25

30,04

28.08.97

15

08.04.97

22009

84,70

30,59

25.09.97

15

08.04.97

24001

73,00

29,20

12.03.98

15

09.04.97

21020

99,87

20,27

10.04.97

0

09.04.97

21021

96,20

33,24

15.05.97

15

09.04.97

22004

98,55

34,16

24.04.97

0

09.04.97

22005

95,70

31,93

29.05.97

0

09.04.97

22006

93,60

34,06

19.06.97

0

09.04.97

22007

91,00

27,73

24.07.97

15

09.04.97

22008

87,60

29,35

28.08.97

15

09.04.97

22009

84,85

30,44

25.09.97

15

09.04.97

24001

73,20

29,03

12.03.98

15

11.04.97

21021

97,00

27,45

15.05.97

15

11.04.97

21022

92,08

28,55

10.07.97

15

11.04.97

22004

99,10

23,49

24.04.97

0

11.04.97

22005

96,20

29,21

29.05.97

0

11.04.97

22006

94,25

31,30

19.06.97

0

11.04.97

22007

91,70

25,93

24.07.97

15

11.04.97

22008

88,25

28,09

28.08.97

15

11.04.97

22009

85,39

29,60

25.09.97

15

11.04.97

24001

73,50

28,82

12.03.98

15

14.04.97

21021

97,01

30,04

15.05.97

15

14.04.97

21022

92,39

28,32

10.07.97

15

14.04.97

22004

99,07

31,75

24.04.97

0

14.04.97

22005

96,54

28,26

29.05.97

0

14.04.97

22006

94,50

31,24

19.06.97

0

14.04.97

22007

91,79

26,40

24.07.97

15

14.04.97

22008

88,00

29,38

28.08.97

15

14.04.97

22009

85,50

29,90

25.09.97

15

14.04.97

24001

73,50

29,08

12.03.98

15

15.04.97

21021

97,52

25,49

15.05.97

15

15.04.97

21022

92,50

28,21

10.07.97

15

15.04.97

22004

99,45

19,47

24.04.97

0

15.04.97

22005

96,69

27,59

29.05.97

0

15.04.97

22006

95,05

28,39

19.06.97

0

15.04.97

22007

92,00

25,94

24.07.97

15

15.04.97

22008

88,01

29,57

28.08.97

15

15.04.97

22009

86,08

28,76

25.09.97

15

15.04.97

24001

73,60

29,04

12.03.98

15

16.04.97

21021

97,84

22,79

15.05.97

15

16.04.97

21022

92,86

27,09

10.07.97

15

16.04.97

22004

99,60

14,95

24.04.97

0

16.04.97

22005

96,80

27,25

29.05.97

0

16.04.97

22006

95,10

28,53

19.06.97

0

16.04.97

22007

92,90

23,08

24.07.97

15

16.04.97

22008

88,49

28,50

28.08.97

15

16.04.97

22009

86,80

27,30

25.09.97

15

16.04.97

24001

73,57

29,17

12.03.98

15

17.04.97

21021

97,55

26,98

15.05.97

15

17.04.97

21022

92,43

29,18

10.07.97

15

17.04.97

22004

99,64

14,98

24.04.97

0

17.04.97

22005

96,60

29,75

29.05.97

0

17.04.97

22006

95,19

28,43

19.06.97

0

17.04.97

22007

92,03

26,37

24.07.97

15

17.04.97

22008

88,75

28,02

28.08.97

15

17.04.97

22009

86,70

27,70

25.09.97

15

17.04.97

24001

73,61

29,21

12.03.98

15

21.04.97

21021

97,85

27,47

15.05.97

15

21.04.97

21022

92,45

30,57

10.07.97

15

21.04.97

22004

99,81

14,09

24.04.97

0

21.04.97

22005

96,81

30,78

29.05.97

0

21.04.97

22006

95,20

30,32

19.06.97

0

21.04.97

22008

88,21

30,41

28.08.97

15

21.04.97

22009

86,25

29,47

25.09.97

15

21.04.97

24001

73,51

29,70

12.03.98

15

22.04.97

21021

97,90

27,97

15.05.97

15

22.04.97

21022

92,65

30,09

10.07.97

15

22.04.97

22004

99,90

4,58

24.04.97

0

22.04.97

22005

96,95

30,16

29.05.97

0

22.04.97

22006

95,45

29,16

19.06.97

0

22.04.97

22007

92,55

25,88

24.07.97

15

22.04.97

22008

88,72

29,21

28.08.97

15

22.04.97

22009

86,32

29,50

25.09.97

15

22.04.97

24001

74,00

29,14

12.03.98

15

23.04.97

21021

98,17

25,27

15.05.97

15

23.04.97

21022

93,05

28,72

10.07.97

15

23.04.97

22004

99,91

5,51

24.04.97

0

23.04.97

22005

97,20

28,34

29.05.97

0

23.04.97

22006

95,50

29,33

19.06.97

0

23.04.97

22007

92,61

25,94

24.07.97

15

23.04.97

22008

88,90

28,94

28.08.97

15

23.04.97

22009

86,55

29,14

25.09.97

15

23.04.97

24001

74,05

29,17

12.03.98

15

25.04.97

21021

98,70

19,30

15.05.97

15

25.04.97

21022

93,75

26,35

10.07.97

15

25.04.97

22005

97,60

25,52

29.05.97

0

25.04.97

22006

95,99

26,94

19.06.97

0

25.04.97

22008

89,89

26,58

28.08.97

15

25.04.97

22009

87,55

27,14

25.09.97

15

25.04.97

22010

85,25

27,57

23.10.97

15

25.04.97

24001

75,00

28,09

12.03.98

15

28.04.97

21021

98,70

22,74

15.05.97

15

28.04.97

21022

93,50

28,61

10.07.97

15

28.04.97

22005

97,70

26,79

29.05.97

0

28.04.97

22006

96,40

25,45

19.06.97

0

28.04.97

22007

93,30

24,74

24.07.97

15

28.04.97

22009

88,50

25,40

25.09.97

15

28.04.97

22010

86,50

25,44

23.10.97

15

28.04.97

24001

76,01

27,02

12.03.98

15

29.04.97

21021

98,95

19,18

15.05.97

15

29.04.97

21022

94,04

26,47

10.07.97

15

29.04.97

22005

97,90

25,15

29.05.97

0

29.04.97

22006

96,50

25,20

19.06.97

0

29.04.97

22007

93,80

23,06

24.07.97

15

29.04.97

22009

88,60

25,33

25.09.97

15

29.04.97

22010

86,35

25,89

23.10.97

15

29.04.97

24001

76,48

26,48

12.03.98

15

30.04.97

21021

99,20

15,16

15.05.97

15

30.04.97

21022

94,56

24,38

10.07.97

15

30.04.97

22005

98,50

18,20

29.05.97

0

30.04.97

22006

96,78

23,55

19.06.97

0

30.04.97

22008

90,70

25,33

28.08.97

15

30.04.97

22009

89,45

23,46

25.09.97

15

30.04.97

22010

86,63

25,46

23.10.97

15

30.04.97

24001

77,30

25,50

12.03.98

15