每2周查找交易日期(如果是星期六或星期日,则显示星期五日期)

时间:2019-06-08 09:50:06

标签: excel google-sheets

对于回测交易系统,我需要每2周轮换我的头寸,但是如果一天是星期六或星期日,则需要星期五。

每个月进行两次半月更新;月中和月底。 月中更新是在每个月的第15个日历日。如果15号是周末或假日,则更新将在15号之前的最后一个交易日进行。 例如,如果15日是星期六,那么更新将在14日星期五结束。

我需要根据开始日期和结束日期返回轮换日期列表。 假设我需要从2018年1月1日到2018年12月31日每隔15天,它应该根据上述规则仅返回有效日期。

该公式应适用于Google Sheet或Excel。

我尝试了以下操作:

http://prntscr.com/nz6j25

http://prntscr.com/nz6j7t

由于Google表格googlefinance公式允许使用每天和每周的间隔(1或7),因此返回的不是我所需要的。参见下面的googlefinance定义(https://support.google.com/docs/answer/3093281?hl=en):

“ interval-[可选]-返回数据的频率;” DAILY“或” WEEKLY“。 间隔也可以指定为1或7。不允许使用其他数值。“

1 个答案:

答案 0 :(得分:0)

您需要在规格上更加精确。您提供了多个不一致的时间间隔。例如:两周(每14天一次,并且总是在同一工作日);每15天(在大多数时间段不会是月中和EOM);月中和月末。

我建议您为每个所需的时间间隔开发公式。

一旦根据所需的时间间隔开发了相关的公式,为避免日期落在周末(或假期,如果系统需要),则可以使用WORKDAY函数:

=WORKDAY(computedDate+1,-1, [holiday])

如果您的computedDate是在星期六或星期日;通过添加1天,然后减去上一个工作日,将得出星期五。

如果您的交易间隔为每两周一次,则只需确保第一天不在星期六或星期日。对于其他间隔,您可能必须将公式应用于每个computedDate

相关问题