Достоинства и недостатки. Рекомендации по использованию
* Гипотеза о том, что все промежуточные выплаты будут реинвестированы под один и тот же процент, пока еще для российского рынка является слишком сильной. Данное допущение уместно для очень стабильной долгосрочной конъюнктуры процентных ставок. * Метод расчета индекса путем численного решения некоторого уравнения затрудняет его расчет непрограммными средствами (вручную). Скорость расчета индекса становится критической в случае, если расчет необходимо производить очень часто и в очень сжатые сроки. Таким образом, человек, не имеющий возможности пользоваться хотя бы электронными таблицами, самостоятельно рассчитать индекс не сможет. * Данный индикатор позволяет анализировать степень взаимосвязи рынка ГКО с различными макроэкономическими параметрами, а также влияние смежных сегментов финансовой сферы на конъюнктуру рынка ГКО. С помощью него удобно анализировать соотношения текущего уровня процентных ставок и темпов инфляции. Кроме того, ним удобно проводить корреляционный анализ. * У точечных показателей доходности по сравнению с кривой распределения процентных ставок есть достоинства — их динамику более удобно изображать графически на плоскости, тогда как для изображения динамики всей кривой доходности нужны уже объемные графики. * Описанный выше индикатор - инструмент макропрогнозирования в средне- и долгосрочной перспективе. Приложение 3. Оценка между точным решением и приближенным значением.
#include <iostream.h> #include <stdio.h> #include <math.h> #include <conio.h> const N=5; // кол-в инстументов int n; // кол-во бумаг float Q[N], // объемы бумаг P[N], // цены приобретения T[N], // интервал обращения Ppr; // цена продажи
// метод вычисления доходности портфеля численным методом секущих Ньютона // усовершенствованный float method3() { int i; float Ik; // Ik - значение % float F=0, F0; for (Ik=-50;Ik<300;Ik+=0.01) { F0=F; F=0; for (i=0;i<N;i++) F+=Q[i]*P[i]*pow(1+Ik/1200,(float)T[i]/30)-Ppr*Q[i]; if (F0<=0 && F>=0) break; } return Ik; }
// метод вычисления доходности портфеля через взвешивание по времени и объему float method2() { int i; float Ik,S,S1; float D[N],D1[N]; for (i=0;i<N;i++) { D[i]=(((float)Ppr-(float)P[i])/(float)P[i]*36500/(float)T[i]); D1[i]=(pow(1+D[i]*(float)T[i]/36500,30/(float)T[i])-1)*1200; } S=0;S1=0; for (i=0;i<N;i++) { S+=D1[i]*Q[i]*P[i]*T[i]; S1+=Q[i]*P[i]*T[i]; } Ik=S/S1; return Ik; }
void main(void) { float I; clrscr(); Q[0]=223;Q[1]=200;Q[2]=400;Q[3]=500;Q[4]=300;Q[5]=271;Q[6]=32;Q[7]=10; P[0]=80.16;P[1]=80.53,P[2]=80.37;P[3]=80.21;P[4]=80.05;P[5]=75.00;P[6]=93.22;P[7]=92.5; T[0]=40;T[1]=40;T[2]=40;T[3]=40;T[4]=40;T[5]=148;T[6]=14;T[7]=11; Ppr=87.15; I=method3(); cout<<endl<<"Ставка по численному методу "<<I; I=method2(); cout<<endl<<"Ставка по методу взвешивания "<<I; }
Результат: Ставка по численному методу: 76.555565 Ставка по методу взвешивания: 76.550621 Приложение 4. Проверка метода на случайной выборке. Программа 1.
#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("\n%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("\n%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+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("\nденьги %f",Cush); for (k=0;k<N;k++) { printf("\n 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("\nнач.ст-ть :%fбыло бы :%f есть:%f",S,S1,S2); }
Программа 2. #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+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("\nденьги %f",Cush); for (k=0;k<N;k++) { printf("\n 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("\nнач.ст-ть :%fбыло бы :%f есть:%f",S,S1,S2); } Программа 3. #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("\n%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("\n%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("\nденьги %f",Cush); for (k=0;k<N;k++) { printf("\n 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("\nнач.ст-ть :%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("\nденьги %f",Cush); for (k=0;k<N;k++) { printf("\n 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("\nнач.ст-ть :%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("\n%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("\n%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("\nденьги %f",Cush); for (k=0;k<N;k++) { printf("\n 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("\nнач.ст-ть :%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("\nденьги %f",Cush); for (k=0;k<N;k++) { printf("\n 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("\nнач.ст-ть :%fбыло бы :%f есть:%f",S,S1,S2); }
Популярное: Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ... Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (154)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |