Использование процентиль_нерест_ранка с переменной длиной для вычисления текущей медианы - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь создать работающую медианную функцию в pine-script.
Цель состоит в том, чтобы вычислить среднюю ошибку между расчетным значением тикера и фактическим значением тикера.
См. Построение уровней вручную для дневного максимума, минимума, закрытия для небольшого предыстории этой оценки.
Для каждой новой оценки медианная ошибка будет меняться с течением времени, потому что она должна учитывать все исторические ошибки, чтобы найти среднюю ошибку ,

Чтобы вычислить медиану, мы должны использовать функцию percentile_nearest_rank(source, length, percentage) с percentage=50.
Например, percentile_nearest_rank(close, 100, 50) даст медиану последних 100 цен закрытия.
Это вычислит медиана скользящего окна на 100 баров назад.
Однако это не то, что я ищу.

Что я хотел бы сделать, так это вычислить медиану между фиксированным стартовым баром (фиксированным номером или датой бара) и текущим баром.
Скажем, что у нас есть дневные бары, и моя дата начала - 05 марта. .
6 марта у меня есть длина в 2 бара для моего среднего значения: percentile_nearest_rank(close, 2, 50)
7 марта у меня есть длина в 3 бара для моего среднего значения: percentile_nearest_rank(close, 3, 50)
в марте 08, у меня есть 4 бара для моего среднего значения: percentile_nearest_rank(close, 4, 50)
et c ...
Это означает, что параметр length будет увеличиваться на каждом баре.
Итак, я Мне интересно, возможно ли в Pine скрипт использовать функцию percentile_nearest_rank, где параметр length не является фиксированным, но изменяется на каждом баре.
Если нет, я открыт для альтернатив, если таковые имеются.

Ответы [ 2 ]

2 голосов
/ 29 апреля 2020

Для вычисления скользящей медианы с использованием размера окна n точек данных потребуется упорядоченный список этих точек данных в порядке возрастания.

Поскольку вы хотите использовать увеличивающийся размер окна, вы бы нужно использовать al oop, однако вы не можете сортировать в al oop (насколько я знаю). Поэтому я думаю, что это невозможно сделать.

Вы можете использовать кумулятивное среднее значение cum(x)/bar_index в качестве замены, я не знаю, будет ли разница существенной в случае цен закрытия.

1 голос
/ 29 апреля 2020

Тип параметра length= , указанный в refman , не является серией int , поэтому нет, он не может варьироваться на каждом баре.

...