这是我的第一个问题,所以如果这不是一个完美的问题,我会提前道歉。我已经搜索了所有的堆栈溢出(& Google),但是找不到我要找的东西。同时,我对R也很陌生,而且我自己也在学习。
我的问题是:我试图使用来自tvm的XIRR函数来计算表中每一行的内部回报率。我能够让XIRR为一个单一的现金流工作。这是我工作的一个例子。
# This is a sample that works
install.packages("tvm")
library(tvm)
x_CF <- c(-7500, 3000, 5000, 1200, 4000)
x_d <- as.Dat
我使用XIRR函数来计算几个不同数据帧的XIRR。所有数据帧都有2列、日期和现金流量。对于某些数据帧,XIRR函数返回一个值,对于另一些数据帧,函数只是停止并抛出一个错误。下面是该函数的链接:
其职能是:
library(tidyverse)
xirr <- function(dataset) {
# creating a function to calculate npv value
npv <- function(range, dataset){
for(test.rate in range) {
max.date <-
一个多月来,我一直在与宏观经济作斗争。其目标是通过每次在列中的值更改时插入一行来按安全标识符(在C列中)对数据进行分解。之后,我希望在插入的空白行中插入XIRR公式。问题是,每个安全性都有不同数量的行,我无法使行计数在XIRR公式中变为动态。下面是我能够将代码组合在一起的代码:
Dim lRow As Long
Dim kRow As Long
Dim RowCount As Integer
For lRow = Cells(Cells.Rows.Count, "C").End(xlUp).Row To 2 Step -1
If Cells(lRow,
我使用以下函数来使用Python执行IRR计算:
from scipy.optimize import newton
def xnpv(rate, values, dates):
if rate <= -1.0:
return float('inf')
min_date = min(dates)
return sum([
value / (1 + rate)**((date - min_date).days / 365)
for value, date
in zip(val
在我的excel工作表中,我有一个矩阵,如下所示:
+---+------------+--------+--------+--------+--------+--------+-------+
| * | A | B | C | D | E | F | Col n |
+---+------------+--------+--------+--------+--------+--------+-------+
| 1 | 01/01/2000 | -1.000 | -1.000 | -1.000 | -1.000 | -1.
所以我在这个问题上被困了几天了。我看了一些其他的代码,但我仍然很短。我在VBA也不是最好的。
我有一份投资者名单,附上他们的付款和日期。我试图运行一个命令按钮,它将遍历每个帐户,查找它们的相关付款和日期,运行XIRR函数,然后将XIRR值放在每个帐户的右下方。这很简单,可以手工完成,但是当您有一个15000 cells+的电子表格时,它就会变得单调乏味,我正在尝试自动化这个过程。这变得困难,因为每个投资者有不同的支付金额,所以找到正确的位置放置XIRR的价值也使我感到困惑。
下面是我的电子表格的一个例子
Dim i As Integer
Dim x As Double
Dim dat
我有一个用户定义的CLR聚合函数,它可能会抛出错误。如果我的查询中出现错误,我想知道如何处理错误。
该函数执行与Excel类似的IRR计算,即。迭代求根计算。如果找不到根,则抛出错误。这是我需要处理的错误。
该查询是一个更大的存储过程的一部分,它看起来类似于:
select
MyID,
Excel_XIRR(col1)
from @t
group by MyID
我得到的错误是这样的:
A .NET Framework error occurred during execution of user-defined routine or aggregate "Excel_Xirr&
在声明Excel对象时,我在函数中收到消息Compile Error: User-defined type not defined。我已将引用设置为Microsoft Office对象库14.0。
Function GetAIRR(arrAssCF, arrAssDate, Guess) As Double
Dim objExcel As Excel.Application
Set objExcel = New Excel.Application
Target = objExcel.Application.Xirr(arrAssCF, arrAssDate, Gues
我正在从一个csv文件中导入一个数据框架,该文件如下所示,但是每个策略都有数百个策略和数千个现金流:
TRADE_STRATEGY EVENT_DATE BOOK_VALUE_USD
A 1/1/2021 -1.5
A 2/28/2021 -2
A 3/31/2021 4
B 2/1/2021 -1.75
B 3/31/2021 -1.25
B 4/30/2021 5.75
如何循环使用XIRR函
我有这段代码,它的作用是:
Sub try3()
Dim dates(1 To 2) As Date
Dim values(1 To 2) As Double
Dim TIR As Double
dates(1) = #1/1/2015#
dates(2) = #1/1/2016#
values(1) = -1000
values(2) = 1101
TIR = Application.WorksheetFunction.xirr(values, dates)
End Sub
但是,如果我将日期更改为
dates(1) = #1/15/2015#
dates(2) = #1/15/20
我试图跟踪我自己的共同基金购买,并试图将结果输入电子表格,以计算XIRR (内部回报率)。我计划输入我的每一次购买的数据,并将有如下表;Fund Name Fund Date Purchase TD Balanced November 30, 2015 900 Scotia Balanced November 24, 2015 1000 Scotia Balanced November 03, 2015 5000 Scotia Balanced June 23, 2015 -200
在阅读有关优化的文章时,我讨论了有关循环展开的主题。通过在Google上做一些小的搜索,我没有发现Java的编译器是否会这么做。
所以最好的方法就是自己去尝试。
事实上,我很惊讶,事实上,通过做这个循环展开,我成功地加快了速度,因为我非常确信现代编译器会为我做这件事。
public static void folded() {
System.out.println("Folded:");
long c1 = System.currentTimeMillis();
for (int r = 0; r < 10; r++) {
for
我真的是VBA的新手。我为Access VBA提供了一个相当复杂的函数,它遍历一个表,执行一系列计算和条件语句,并返回一个值。当我运行该函数并使用“Debug.Print”来获取函数值时,它准确地显示出它在“即时”窗口中应该显示的内容。但是,当我尝试对同一个表上的Access查询调用该函数时,该查询仅返回循环中的最后一个值。
我构建了一个简单得多的循环函数来尝试找出我做错了什么(见下文),同样的事情也发生了-在“即时”窗口中更正了值,只在查询的表达式中返回了最后一个值。谁能告诉我我犯了什么明显的错误?如果我可以在这里修复它,我应该能够在真实的项目中修复它。非常感谢您的帮助!
Function
如果有人可以帮助我,我需要一些在Access 2003 to Excel2003 VBA中正确定义一些调用参数的问题。我正在尝试使用Access中的ATP2.0类型库中的XIRR函数。我在Access项目中引用了ATP 2.0类型库。下面是我在表单后面使用的相关VBA代码(带有一些伪代码):
Dim aCF as Variant 'this variant will hold the cash flows
Dim aDates as Variant 'this variant will hold the dates
Dim oATP2 As ATP2.OCATP
Set oA