我创建了一个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是投资组合中的股票数量。
例如,在上面的11/07中,将为ABBV和ABMD分配$ 3。然后在12/07,投资组合中现在有四只股票,因此将为每个AAPL和AMZN加$ 2.25(= 9/4),并且需要卖出$ 0.75的每个ABBV和ABMD,因此投资组合中的总金额为$ 9。在13/07,现在投资组合中将有两只股票,卖出2.25美元的ABBV和AMZN并购买3美元的GOOG。
第一行的股票数量会有所不同。我一直在研究解决此问题的最佳方法,并认为使用字典可能是最佳方法,在该方法中,我将股票名称指定为关键字。密钥的值将是分配给该股票的钱。然后,我可以遍历每个日期以检查是否需要进行交易。我是使用字典的新手,过去只使用过更多基本的vba,因此只想检查这种方法是否有意义,或者是否有更简单的方法?
希望我已经清楚要实现的目标。非常感谢!
答案 0 :(得分:0)
我绝对喜欢词典,但在这里它们可能并不适合您。缺点:(i)每行都需要一个新字典。 (ii)您将如何保留数据?
我会随心所欲地处理数据表。当然,使用词典存储每个股票的列位置,这样就不会像在E列中那样硬编码GOOG。然后,只需保存工作簿,就可以将模拟持久保存到磁盘。