#pine-script #algorithmic-trading #trading #pine-script-v4
Вопрос:
Новичок в PineScript.
Я добавил этот скрипт индикаторов (https://www.tradingview.com/script/a0vTLaS6-Double-Top-Bottom-Ultimate-OS /) к моей первоначальной стратегии, поэтому я могу добавить новые условия для strategy.close / entry, но проблема в том, что мои предыдущие графики графиков и некоторые кнопки теперь больше не работают. Я думаю, что новый скрипт, который я вставил (копирование / прошлое), накладывается на предыдущую стратегию, поэтому предыдущие графики графиков не работают. В этом случае, я думаю, лучшим вариантом будет создать Input.bool для полей, показанных ниже.
Я придумал это:
xyz = ввод (title=»XYZ», type=input.bool, defval= false)
Но я не знаю, как я должен связать этот ввод с соответствующей строкой. Я думаю, что строка 172 является соответствующим кодом для этих полей:
labelText = (doubleTop? "Double Top" : "Double Bottom") (DisplayRiskPerReward ? " RR - " tostring(riskPerReward) : "")
Кроме того, на случай, если я захочу добавить (скопировать / перенести) новые сценарии в свою стратегию. Есть ли способ
создать кнопку для всего индикатора в моем индикаторе? Например, мой индикатор называется «XYZ», и я хочу добавить «ABC» внутри «XYZ». Есть ли способ установить кнопку для «ABC», чтобы, когда я использую общий индикатор («XYZ»), я мог просто выключать и включать его? Это обычный ввод? или я должен делать отступы во всем коде?
Ответ №1:
Итак, если вы хотите иметь входные данные для включения / выключения метки «Двойное дно RR», вы можете иметь для этого входную переменную и использовать условие if, чтобы решить, следует ли вам строить график или нет.
Создайте входные данные: bool PlotLabel = input(true)
Затем измените строку 172, где построение графика обрабатывается, как показано ниже (обратите внимание на отступ):
var label baseLabel = na
if (plotLabel == true)
labelText = (doubleTop? "Double Top" : "Double Bottom") (DisplayRiskPerReward ? " RR - " tostring(riskPerReward) : "")
baseLabel := label.new(x=index, y=value, text=labelText, yloc=doubleTop?yloc.abovebar:yloc.belowbar,
color=doubleTop?bearishColor:bullishColor,
style=doubleTop?label.style_label_down:label.style_label_up,
textcolor=textColor, size=size.normal)
Итак, чтобы отобразить эту метку, ввод PlotLabel должен быть true
.
Кроме того, на случай, если я захочу добавить (скопировать / вставить) новые сценарии в свою стратегию. Есть ли способ создать кнопку для всего индикатора в моем индикаторе? Например, имя моего индикатора «XYZ», и я хочу добавить «ABC» внутри «XYZ». Есть ли способ установить кнопку для «ABC», чтобы при использовании общего индикатора («XYZ») я мог просто выключить и включить его? Это обычный ввод? или я должен делать отступы во всем коде?
Нет, вам нужно изменить код и добавить включение / отключение ввода для всего сценария, который вы копируете.
Комментарии:
1. Ваш ответ находится в версии 5 или версии 4? (Я использую V4), потому что я получил кучу ошибок «Необъявленный идентификатор». пример: необъявленный идентификатор ‘plotLable’
2. Это в версии 4. Вы скопировали мой код или написали его сами? Потому что похоже, что у вас опечатка. Этого нет
plotLable
в моем примере. Это такplotLabel
. Также, пожалуйста, обратите внимание на отступ в блоке if.3. Возникла проблема с отступом. Это сработало! Спасибо!
4. «Нет, вам нужно изменить код и добавить включение / отключение ввода для всего копируемого скрипта». можете ли вы сказать мне, как я могу настроить аргумент input.bool для этого индикатора?
5. Это есть в моем ответе:
bool plotLabel = input(true)