Closed tiandian closed 6 years ago
注意上述 trading_date 为股权登记日(book_closure_date),其下一个交易日为除权除息日。 当然真实情况是股息根据交易市场不同到账日期有所不同,但是除权除息日股票价格会发生变化,此处在除权除息日进行再投资也是应该也是一种近似。
trading_date是股权登记日(昨天), 也就是今天(除权除息日)的前一天.
举个例子: 假设股权登记日帐号情况如下: 1000股, 每股10元, 因此除权除息前总市值是1000*10=10000元
假设分红计划是: 每股分红1元.
那么按照当前rqalpha的计算方式, 到了今天(除权除息日): 总股数是 1000 + 1000 1/10 = 1100股, 除权价格是: 10-1 = 9元, 所以总市值只有11009 = 9900元, 导致除权除息后少了100元. 基本上是相当于市值缩水1%, 这个误差有些大呀.
按照你说的使用trading_date的昨收也有同样的问题呀。 有更好的处理方式欢迎提出讨论~
不是使用trading_date的昨收, 而是使用今天(除权除息日)的昨收。
如果使用今日的昨收盘价购买结果如下: 总股数是 1000 + 1000 1/9 = 1111.11...股, 除权价格是: 10-1 = 9元, 所以总市值只有1111.119 = 9999.99..元, 市值没有变化, 所以使用今天(除权除息日)的昨收价购买市值是没有发生变化的。
在stock_account.py中的197行:_handle_dividend_book_closure函数中的通过dividend_reinvestment模拟股票分红再投资, 其代码如下:
在上述代码中, 分红再投资是用未复权的昨日收盘价购来买股票, 这是否不太准确的? 是否应该用今日的昨收盘价购买更准确?