#pine-script
Вопрос:
В настоящее время я пишу стратегию с использованием Pine-скрипта, что также является моим первым опытом написания кодов. Затем я столкнулся с этой проблемой, касающейся циклов for.
if bcktst and strategy.opentrades lt; 6 for n = 0 to 5 n = strategy.opentrades strategy.entry("Short #" str.tostring(n 1),strategy.short, when=barstate.isconfirmed, oca_type=strategy.oca.cancel) if sld gt; emaLTFs strategy.exit("Close #" str.tostring(n 1),"Short #" str.tostring(n 1), limit=tp1, stop=sld atr, trail_price=tst1, trail_offset=(tst1 * beper1)/syminfo.mintick) else strategy.exit("Close #" str.tostring(n 1),"Short #" str.tostring(n 1), limit=tp2, stop=emaLTFs atr, trail_price=tst2, trail_offset=(tst2 * beper2)/syminfo.mintick)
Код отображает мои ожидаемые результаты, как показано на рисунке ниже(Отображение диаграммы).
Однако он показывает запрос о затенении переменной, и я обеспокоен, так как я буду повторять код несколько раз для разных триггеров, и он зальет консоль одним и тем же запросом.
строка 239: Затенение переменной «n», существующей в родительской области. Вы хотели использовать оператор ‘:=’ вместо ‘=’ ?
Я попытался заменить оператора ( = на:=), но сценарий не может быть выполнен, и консоль отображается (см. подсказку об ошибке изображения).
Ошибка добавления в диаграмму, причина: строка 239: Переменная «n» не может быть изменяемой.
Я пробовал несколько методов, но это единственный оператор цикла for, который отображает то, что я намеревался.
Поэтому мой вопрос в том, есть ли какие-либо обходные пути для удаления приглашения или я что-то упускаю.
Спасибо, что уделили мне время.
Комментарии:
1. Что такое версия скрипта pine?
2. Pine-скрипт //@версия=5
Ответ №1:
Вы повторно присваиваете значение переменной counter ( n
в данном случае) оператора for.
for n = 0 to 5 n = strategy.opentrades
Используйте другое имя переменной, и все будет в порядке.
for n = 0 to 5 n_trades = strategy.opentrades
Комментарии:
1. Спасибо, чувак! Изменение переменной действительно удалило приглашение, но заказы на ввод накапливаются, добавляя оператор if после цикла for.