У меня есть текущий объект basi c xts:
tmp=xts(1:100, as.POSIXct("2020-01-1")+(1:100)*5)
, затем, когда я преобразую в минуты, я получаю:
to.minutes(tmp)
tmp.Open tmp.High tmp.Low tmp.Close
2020-01-01 00:00:55 1 11 1 11
2020-01-01 00:01:55 12 23 12 23
2020-01-01 00:02:55 24 35 24 35
2020-01-01 00:03:55 36 47 36 47
2020-01-01 00:04:55 48 59 48 59
2020-01-01 00:05:55 60 71 60 71
2020-01-01 00:06:55 72 83 72 83
2020-01-01 00:07:55 84 95 84 95
2020-01-01 00:08:00 96 96 96 96
Обратите внимание, как он обрезает каждую строку в 55 секундная отметка с последней записью в 8:00. что.
И если выровнено, я получаю:
align.time(to.minutes(tmp),60)
tmp.Open tmp.High tmp.Low tmp.Close
2020-01-01 00:01:00 1 11 1 11
2020-01-01 00:02:00 12 23 12 23
2020-01-01 00:03:00 24 35 24 35
2020-01-01 00:04:00 36 47 36 47
2020-01-01 00:05:00 48 59 48 59
2020-01-01 00:06:00 60 71 60 71
2020-01-01 00:07:00 72 83 72 83
2020-01-01 00:08:00 84 95 84 95
2020-01-01 00:09:00 96 96 96 96
И это неправильно, так как в 9:00 вообще не должно быть бара.
Мне нужно to.minutes, чтобы рассмотреть последнее значение минутной части значения закрытия минуты, если это имеет смысл.
Желаемый результат должен быть:
tmp.Open tmp.High tmp.Low tmp.Close
2020-01-01 00:01:00 1 12 1 12
2020-01-01 00:02:00 13 24 13 24
2020-01-01 00:03:00 25 36 25 36
2020-01-01 00:04:00 37 48 37 48
2020-01-01 00:05:00 49 60 49 60
2020-01-01 00:06:00 61 72 61 72
2020-01-01 00:07:00 73 84 73 84
2020-01-01 00:08:00 85 96 85 96
Я бы хотел вариант иметь одинаковую цену закрытия и открытия для 2 баров, если на конечной точке есть право торговли, но в этом нет необходимости.
Я нашел старые ссылки на align.time.down, которые должны предотвратить создание 9:00, но больше не работает.