c语言代码 计算股票投资的回报率
时间: 2024-09-24 15:02:27 浏览: 78
在C语言中计算股票投资回报率,通常会涉及到原始投资金额、当前股票价格以及持有时间。下面是一个简单的示例,假设我们已经有了初始投资`initial_investment`、当前股价`current_price`和持有天数`holding_days`。我们可以使用以下公式:
```c
double calculateReturnRate(double initial_investment, double current_price, int holding_days) {
// 计算总收益
double total_profit = current_price - initial_investment;
// 如果总投资额为0,则直接返回0,因为回报率无法计算
if (initial_investment == 0) {
return 0;
}
// 计算年化回报率,这里假设一年有365天
double annualized_return_rate = (total_profit / initial_investment) * (365 / holding_days);
return annualized_return_rate * 100; // 将百分比转换为小数
}
```
在这个函数里,我们首先计算总的利润(总价值减去初始投资),然后除以初始投资得到回报比例,再乘以持有天数换算成年度回报率,并将结果转换为百分比。
相关问题
用c语言实现要重新计算财务指标的公式和值,我需要计算中涉及的变量的具体值。请提供以下变量的值: - CI:计算期间各年度的净现金流入 - CO:初始投资或现金流出 - t:以年为单位的时间段 - i:贴现率或基准收益率 - r1:贴现率低 - r2:贴现率高 - |b|:低贴现率下的财务净现值的绝对值 - |c|:高贴现率下财务净现值的绝对值 要计算财务指标,您需要变量的具体值,例如净现金流入 (CI)、初始投资 (CO)、时间段 (t)、贴现率 (i)、低贴现率 (r1)、高贴现率贴现率 (r2)、低贴现率下的净现值绝对值 (|b|) 和高贴现率下的净现值绝对值 (|c|)。 获得这些值后,您可以使用提供的公式来计算财务指标: 1.静态投资回收期: 静态投资回收期 = ∑ (CI - CO) / CI 2. 净现值(NPV): NPV = ∑ (CI - CO) / (1 i)^t 3. 内含收益率(IRR): IRR = r1 [(r2 - r1) / (|b| / |c|)] * |b| 通过将适当的值代入这些公式,您可以计算出静态投资回收期、净现值和内含回报率。
好的,我假设您已经有了计算期间各年度的净现金流入 (CI)、初始投资或现金流出 (CO)、时间段 (t)、贴现率或基准收益率 (i)、贴现率低 (r1)、贴现率高 (r2)、低贴现率下的财务净现值的绝对值 (|b|) 和高贴现率下的财务净现值的绝对值 (|c|) 的具体值,那么可以使用以下 C 语言代码来计算静态投资回收期、净现值和内含回报率:
```
#include <stdio.h>
#include <math.h>
double static_payback_period(double ci[], double co, int n) {
double cumulative_cash_flows = 0;
int years = 0;
while (cumulative_cash_flows < co && years < n) {
cumulative_cash_flows += ci[years];
years++;
}
if (cumulative_cash_flows < co) {
return -1;
} else {
return years + (co - cumulative_cash_flows) / ci[years];
}
}
double npv(double ci[], double co, double i, int n) {
double npv = -co;
for (int t = 0; t < n; t++) {
npv += ci[t] / pow(1 + i, t + 1);
}
return npv;
}
double irr(double ci[], double co, double r1, double r2, double b, double c, int n) {
double irr = r1 + (r2 - r1) * b / c;
double npv_irr = npv(ci, co, irr, n);
while (fabs(npv_irr) > 0.0001) {
if (npv_irr > 0) {
r1 = irr;
} else {
r2 = irr;
}
irr = r1 + (r2 - r1) * b / c;
npv_irr = npv(ci, co, irr, n);
}
return irr;
}
int main() {
double ci[] = {10000, 20000, 25000, 30000, 35000};
double co = 50000;
int n = sizeof(ci) / sizeof(ci[0]);
double i = 0.1;
double r1 = 0.05;
double r2 = 0.15;
double b = 50000;
double c = 60000;
double spbp = static_payback_period(ci, co, n);
printf("Static payback period: %.2lf years\n", spbp);
double npv_result = npv(ci, co, i, n);
printf("Net present value: %.2lf\n", npv_result);
double irr_result = irr(ci, co, r1, r2, b, c, n);
printf("Internal rate of return: %.2lf%%\n", irr_result * 100);
return 0;
}
```
这个程序中,我们定义了三个函数,分别用于计算静态投资回收期、净现值和内含回报率。在主函数中,我们定义了变量并将其传递给这些函数,然后打印结果。
阅读全文