我正在编写基于回溯测试的投资组合分析工具。简而言之,我想添加一个从 X 值开始的列,这将是初始资本加上第一笔交易的结果,并根据每笔交易的百分比变化更新其余值,但我没有排序找到一种将逻辑放入代码的方法。下面的代码是一个简化的例子。
profit <- c(10, 15, -5, -6, 20)
change <- profit / 1000
balance <- c(1010, 1025, 1020, 1014, 1036)
data <- data.frame(profit, change, balance)
到目前为止,我能想到的唯一方法是创建一个单独的向量,该向量根据更改列增加或减少,但我不确定如何以像之前的值一样考虑的方式来做到这一点,所以这样做balance = start_capital * (1 + change)会给出比例增加,始终考虑相同的初始值,而不是以前的值加上新值的变化(我希望我自己解释)。
谢谢,费尔南多。
编辑
我在实际程序上有正确的变化值,因为每次回溯测试都会用每次新交易的结果更新余额,所以真实数据上的变化列是正确的,因为它正在正确更新,但是我的代码结合了几个回溯测试并且由于余额更新是针对每个单独的回溯测试而不是组合的,因此在组合所有内容时它不可用,这就是我添加更改列的原因。