/* value can either be return or price */
/* this pseudo-code function calculates the mean of value observations */
float[] average(float[] value)
{
for (i = 0 ; i < NUMBER_OF_OBSERVATIONS ; i++) sum += value[i];
return (sum / NUMBER_OF_OBSERVATIONS);
}
/* this pseudo-code function calculates the mean of value observations with probability */
float[] average(float[] value, float[] probability)
{
for (i = 0 ; i < NUMBER_OF_OBSERVATIONS ; i++) average += value[i] * probablity[i];
return average;
}
/* this pseudo-code function calculates discrete return from price observations */
float[] discreteReturn(float[] price)
{
discreteReturn[0] = 0;
for (i = 1 ; i < NUMBER_OF_OBSERVATIONS ; i++) discreteReturn[i] = price[i] / price[i-1] - 1;
return discreteReturn;
}
/* this pseudo-code function calculates excess return from price observations */
float[] excessReturn(float[] price)
{
average = average(price);
for (i = 1 ; i < NUMBER_OF_OBSERVATIONS ; i++) excessReturn[i] = price[i] / price[i-1] - 1 - average;
return excessReturn;
}
/* this pseudo-code function calculates variance from value observations */
float[] variance(float[] value, float[] probability)
{
average = average(value, probability);
for (i = 0 ; i < NUMBER_OF_ELEMENTS ; i++) variance += probability[i] * (value[i] - average)^2;
return variance;
}
/* this pseudo-code function calculates annualized variance from value observations */
float[] annualVariance(float[] value, float[] probability)
{
return variance(value, probability) * NUMBER_OF_OBSERVATIONS / NUMBER_OF_YEAR;
}
/* this pseudo-code function calculates standard deviation from value observations */
float[] stdDev(float[] value, float[] probability)
{
return variance(value, probability)^(1/2);
}
/* this pseudo-code function calculates annualized standard deviation from value observations */
float[] annualStdDev(float[] value, float[] probability)
{
return annualVariance(value, probability)^(1/2);
}
/* this pseudo-code function calculates covariance from two sets of values */
float[] variance(float[] value1, float[] value2)
{
average1 = average(value1);
average2 = average(value2);
for (i = 0 ; i < NUMBER_OF_ELEMENTS ; i++) covariance += (value1[i] - average1) * (value2[i] - average2);
return covariance;
}
/*
* this pseudo-code function calculates variance-covariance matrix from multiple values
* value[][] is in the format value[number of observations][number of variables]
*/
float[][] varcovarMatrix(float[][] value)
{
for (i = 0 ; i < NUMBER_OF_VARIABLES ; i++)
{
for (j = 0 ; j < NUMBER_OF_VARIABLES ; j++)
{
varcovar[i][j] = covariance(value[][i], value[][j]); // only takes the vertical array
}
}
return varcovar;
}
/* this pseudo-code function calculates correlation matrix from multiple values */
float[][] corrMatrix(float[][] value)
{
varcovar[][] = varcovarMatrix(value);
for (i = 0 ; i < NUMBER_OF_VARIABLES ; i++)
{
for (j = 0 ; j < NUMBER_OF_VARIABLES ; j++)
{
corr[i][j] = covariance(value[][i], value[][j]) * stdDev(value[][i]) * stdDev(value[][j]);
}
}
return corr;
}
Xem đầy đủ bài viết tại http://feedproxy.google.com/~r/TaiTran/~3/aZxzMHUiYrI/pseudo-codes-for-basic-finance-values.html
No comments:
Post a Comment