Pinecript: как я могу получить максимальное значение всех sma с длиной между 1 и i? - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь написать скрипт, который бы возвращал наибольшее значение любой скользящей средней, длина которой находится в диапазоне от 1 до указанного числа, то есть что-то, что будет работать так: maxMA = max (sma (close, 1),. .., sma (близко, я)) Есть ли способ сделать это ??

Спасибо

1 Ответ

0 голосов
/ 26 марта 2020

Версия 1

Как и вы, используя функцию max(). Это может занять до 10 аргументов. Если вам нужно больше, просто используйте максимум нескольких результатов max.


Версия 2

[2020.03.27 10:18 - LucF]

Чтобы вернуть Наивысшая из множества sma's разных периодов, вы можете использовать:

//@version=4
study("", "", true)
n = input(50)
samples = input(true)

Sma(src,p) => a = cum(src), (a - a[max(p,0)])/max(p,0)
mx = 0.
for i = 1 to n
    mx := max(mx, Sma(close, i))
plot(mx, "", color.gray, 2)

plot(samples ? Sma(close, 1) : na)
plot(samples ? Sma(close, n / 2) : na)
plot(samples ? Sma(close, n / 3) : na)
plot(samples ? Sma(close, n / 4) : na)
plot(samples ? Sma(close, n / 5) : an)

Обратите внимание, что для этого требуется функция MA, которая будет возвращать правильные результаты в for l oop, чего многие не получат. Используемая здесь функция взята из функций alexgrover здесь .

...