首页 > 解决方案 > Pine 脚本三元运算符报错

问题描述

为什么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)

基本上,我要做的是根据主要代码自动将叠加/第二图表更改为特定对。

我得到的错误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 语句?

标签: pine-scripttrading

解决方案


推荐阅读