Как проверить, существует ли пара в функции безопасности? - PullRequest
0 голосов
/ 08 февраля 2020

У меня есть скрипт, который проверяет несколько пар для определенного условия. Но теперь одна пара (BINANCE: BTGETH) больше не существует, и это сломало мой сценарий: вы получаете сообщение об ошибке, значения больше нет.

Я хотел бы проверить в своем сценарии, существуют ли пары, поэтому мой Скрипт будет продолжать работать, несмотря на то, что одна из пар больше не доступна. Например, java, try-catch или что-то в этом роде.

Я пытался сделать if-then для функции security/input или использовать na() для нее, но это не работает. Например, такие вещи, как:

ab = na(security("BINANCE:BTGETH", res, low))

ab = iff(na(security("BINANCE:BTGETH", res, low), true)

Есть идеи по этому поводу? Я знаю, что Pinescript не подходит для такого рода вещей, я надеялся, что что-то существует, чтобы справиться с этим.

Другой способ работает, например:

BTGsym = input(title="Symbol", type=symbol, defval="BINANCE:ADAETH")
BTGlow = security(BTGsym, res, low)

ab = na(BTGlow[0])

a := if (ab)
    1
else
    0

plot(a, color=yellow)

Это будет plot, но как только символ не существует, он скомпилируется, но вы получите предупреждение invalid_symbol, и сценарий прервется.

1 Ответ

0 голосов
/ 09 февраля 2020

К сожалению, это невозможно. Это не ограничение самого Pine-скрипта, а способ, которым исследования (включая встроенные) выполняются с помощью tradingview: исследование запрашивает множество символов (один или несколько) и только тогда, когда все символы готовы, вычисление будет начато Таким образом, если система обнаружит, что один из необходимых символов не существует или не может быть задан по какой-либо причине (например, у символа нет внутридневного значения, но исследование требует внутридневного разрешения для символа), то исследование будет отклонено даже не запускается ни одна логи c. Так что, пока tradingview не изменил этот рабочий процесс, pine не сможет поддерживать желаемое вами поведение.

...