Найти торговую дату каждые 2 недели (если суббота или воскресенье, то показать дату пятницы) - PullRequest
0 голосов
/ 08 июня 2019

Для системы тестирования с обратным тестированием мне нужно чередовать свои позиции каждые 2 недели, НО, если день суббота или воскресенье, мне нужно брать пятницу.

Полумесячные обновления производятся дважды вмесяц;середина месяца и конец месяца.Обновления в середине месяца 15-го календарного дня каждого месяца.Если 15-е число будет выходным или праздничным днем, обновление произойдет в последний торговый день, предшествующий 15-му.Например, если 15-е число - суббота, то обновление произойдет в конце пятнадцатого числа.

Мне нужно вернуть список дат ротации, основанный на дате начала и дате окончания.Допустим, мне нужно каждые 15 дней с 1 января 2018 года по 31 декабря 2018 года, он должен возвращать только действительные даты на основе правил, описанных выше.

Формула должна быть для Google Sheet или Excel.

Я попробовал следующее:

http://prntscr.com/nz6j25

http://prntscr.com/nz6j7t

Это не возвращает именно то, чтоМне нужно, так как формула googlefinance google sheet позволяет использовать дневные и недельные интервалы (1 или 7).См. Ниже определение googlefinance (https://support.google.com/docs/answer/3093281?hl=en):

"интервал - [ДОПОЛНИТЕЛЬНО] - частота возвращаемых данных; либо« ЕЖЕДНЕВНЫЙ », либо« ЕЖЕНЕДЕЛЬНЫЙ ». Интервал можно альтернативно указать как 1 или 7. Другие числовые значенияне допускаются. "

1 Ответ

0 голосов
/ 08 июня 2019

Вы должны быть более точными в ваших спецификациях.Вы предоставили несколько несовместимых интервалов.Например: две недели (это будет каждые 14 дней и всегда будет приходиться на один и тот же день недели);каждые 15 дней (это НЕ будет серединой месяца и МНВ в течение большинства периодов времени);середина месяца и конец месяца.

Я предлагаю разработать формулы для каждого из ваших желаемых интервалов.

После того, как вы разработали эти соответствующие формулы, в зависимости от желаемого интервала, чтобы избежатьдата, приходящаяся на выходные (или выходной день, если это требуется для вашей системы), вы можете использовать функцию WORKDAY:

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

Если ваш computedDate в субботу или воскресенье;добавив 1 день, а затем вычтя его до предыдущего рабочего дня, вы получите пятницу.

Если ваш торговый интервал каждые две недели, вам нужно только убедиться, что первая дата не в субботу или воскресенье.Для других интервалов может потребоваться применить формулу к каждому computedDate.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...