Excel VBA-使用字典和日期循环



我创建了一个excel,它可以查看许多股票的历史每日数据,如果它们满足各种要求,电子表格会创建一个何时买卖股票的信号。我已经完成了这项工作,输出的一个小例子如下(1是买入,-1是卖出(:

AAPL   ABBV   ABMD   GOOG    AMZN
11/07/2015            1     1       
12/07/2015    1                            1
13/07/2015           -1            1      -1
14/07/2015   -1            -1     -1    

我现在想找出一种方法,将资金分配给每一笔交易,每只股票的分配不超过3美元,总投资组合不超过9美元,因此每只股票分配为"=min(3,9/n(",其中n是投资组合中的股票数量。

例如,在2007年11月的上文中,将向ABBV和ABMD各拨款3美元。然后在2007年12月,投资组合中现在有四只股票,因此每只AAPL和AMZN将增加2.25美元(=9/4(,并且需要出售每只ABBV和ABMD 0.75美元,因此投资组合中的总金额为9美元。7月13日,投资组合中有两只股票,出售投资组合中ABBV和AMZN 2.25美元的股票,购买GOOG 3美元的股票。

上排的股票数量会有所不同。我一直在研究解决这个问题的最佳方法,并认为使用字典可能是最好的,我将股票名称作为关键字。然后,这些钥匙的价值将是分配给该股票的资金。然后我可以循环查看每个日期,以检查是否需要进行交易。我是使用字典的新手,过去只使用过更基本的vba,所以我只想检查一下这种方法是否有意义,或者是否有更简单的方法来处理它?

希望我想达到的目标是明确的。非常感谢!

我非常喜欢字典,但它们可能不是最适合你的。缺点:(i(每行都需要一本新字典。(ii(你将如何保存这些数据?

我会按照你现有的数据表运行。当然,用字典来存储每只股票的列位置,这样你就不会硬编码GOOG在E列。然后,你只需保存工作簿,就可以将模拟保存到磁盘上。

最新更新