Почему defval=second
работает, но defval=third
не работает?
//@version=4
study(title="Test")
//STEP 1 - Get main symbol
getmain = syminfo.ticker
//STEP 2 - Add second symbol input
second = "EURUSD"
third = getmain == "EURUSD"?"GBPUSD" : getmain == "GBPUSD"?"EURUSD" : "BTCUSD"
sym = input(title="Symbol", type=input.symbol, defval=third)
//STEP 3 - plot
symbolClose = security(sym, timeframe.period, close)
plot(symbolClose, color=color.red)
По сути, я пытаюсь автоматически поменять оверлейный / второй график на указанную пару c на главном тикере.
Я получаю ошибку для defval=third
:
line 16: Cannot call 'input' with arguments (title=literal string, type=const string, defval=string); available overloads: input(const bool, const string, const string, const bool, const string) => input bool; input(const integer, const string, const string, const integer, const integer, const bool, const integer, [const integer...], const string) => input integer; input(const float, const string, const string, const float, const float, const bool, const float, [const float...], const string) => input float; input(const string, const string, const string, const bool, [const string...], const string, const bool) => input string; input(series[float], const string, const string, const string) => series[float];
line 17: Undeclared identifier 'sym';
line 18: Undeclared identifier 'symbolClose'
Кроме того, у меня есть около 40 пар для работы, есть ли более эффективный метод для минимизировать все эти операторы if?