pine скрипт с двумя индикаторами один накладывается на график, а другой сам по себе?

Я пытаюсь написать сосновый скрипт с двумя индикаторами, один из которых наложен на график (EMA), а другой сам по себе? (Stoch) Кажется, я не могу найти никакой информации о том, как их разделить (визуально), но держать их в пределах 1 соснового скрипта. , т.е. иметь возможность принимать торговые решения на их основе.


person Brandon Saccone    schedule 28.01.2020    source источник


Ответы (3)


К сожалению, предыдущий ответ Люка верен. Каждый скрипт может либо создавать графики, которые накладываются на ценовой график по умолчанию, либо отображаются на другой панели, но не одновременно. Но есть обходной путь.

Предположим, вы сделали нетривиальные вычисления в своем скрипте и хотите поместить их в другую панель. Например. следующий код:

//@version=4
study(title="Stochastic", shorttitle="Stoch", format=format.price, precision=2)
periodK = input(14, title="K", minval=1)
periodD = input(3, title="D", minval=1)
smoothK = input(3, title="Smooth", minval=1)
k = sma(stoch(close, high, low, periodK), smoothK)
d = sma(k, periodD)
plot(k, title="%K", color=color.blue)
plot(d, title="%D", color=color.orange)
h0 = hline(80)
h1 = hline(20)
fill(h0, h1, color=color.purple, transp=75)

// This next plot would work best in a separate pane
someNonTrivialCalculatedSeries = close
plot(ema(someNonTrivialCalculatedSeries, 25), title="Exporting Plot")

Поскольку они имеют разный масштаб, один из них, скорее всего, сломает шкалу другого индикатора. Итак, вы хотите показать Stoch в другой сосне, тогда как ema() следует наложить на основную диаграмму. Для этого следует сделать следующие шаги:

  1. Отключите в исследовании дополнительный график, чтобы вернуть масштаб в нормальное состояние: введите здесь описание изображения

  2. Применяем к графику следующий скрипт:

    //@version=4
    study("NonOverlayIndicator", overlay=true)
    src = input(defval=close, type=input.source)
    plot(src)
    
  3. Выберите во втором скрипте исходный код требуемого сюжета из первого скрипта: введите здесь описание изображения

И вуаля — вы получили участки в разных соснах: введите здесь описание изображения

Но если вы хотите разделить участки, потому что у вас есть ограничения на количество исследований, которые вы разрешили подать (например, 3 для бесплатной учетной записи) - это вам не поможет.

person Michel_T.    schedule 29.01.2020
comment
Хороший ответ, который мне очень помог, большое спасибо, Мишель. Небольшая деталь для улучшения заключается в том, что наложение должно быть ложным. - person bevada; 03.05.2020
comment
Спасибо за это! Действительно полезный ответ. Поскольку кто-то уже опубликовал скрипт Line Chart Source, похожий на второй, который вы упомянули. , вы можете просто применить его к своей диаграмме и выбрать источник. Но да, это также занимает дополнительный слот для обучения. - person Simon East; 31.12.2020
comment
ты гений спасибо! - person ctwhome; 24.07.2021

Это невозможно сделать. Скрипт запускается либо в режиме overlay=true на графике, в котором если он не может направлять графики в другое место или в отдельную панель, когда overlay=false (по умолчанию).

Когда скрипт работает на панели, он может изменять цвет столбцов диаграммы с помощью barcolor(), но это единственный способ изменить диаграмму.

Можно масштабировать сигналы таким образом, чтобы несколько ограниченных (например, от 0 до 100, от -1 до +1) сигналов, сгенерированных одним сценарием, отображались один поверх другого, но обычно это невозможно в режиме наложения, так как вертикальный масштаб меняется. с полосами на графике. Единственный способ для скрипта наложения работать с собственной шкалой — это использовать Без шкалы, но это предотвращает построение графиков индикатора относительно цены и, следовательно, баров графика.

person PineCoders-LucF    schedule 29.01.2020
comment
Спасибо PineCoders-LucF за быстрый ответ. - person Brandon Saccone; 29.01.2020

Хороший обходной путь от Майкла. К сожалению, похоже, это работает только для передачи данных для одного графика. Я хотел бы передать данные для 3 разных графиков на график цен на акции. Если я попробую это, то для input.source я смогу выбрать только стандартные источники: open, high, low, close.... Я не могу выбрать данные из других индикаторов. Если я уберу графики 2 и 3, все будет работать так, как описал Майкл. У кого-нибудь есть обходной путь для обходного пути ..? ;-)

person Ray Johnson    schedule 08.01.2021
comment
Похоже, это задокументированное ограничение: стратегия может использовать только один внешний ввод одновременно. tradingview.com /блог/ru/ - person Ray Johnson; 09.01.2021
comment
Необходимо создать два индикатора, один адаптированный для графика, другой для панели. - person AnyDozer; 09.01.2021
comment
Да, как показано ниже на примере. Дело в том, что из индикатора без оверлея в индикатор с оверлеем можно "передать" только один график. - person Ray Johnson; 11.01.2021
comment
Да, я тоже вижу это ограничение. Если сценарий A имеет несколько графиков, то НИ ОДИН из них, похоже, не отображается в селекторе input.source в сценарии B. Разочаровывает. - person Simon East; 02.02.2021