簡體   English   中英

三元運算符給出一個未聲明的標識符(Pine Script)

[英]Ternary Operator gives an Undeclared identifier (Pine Script)

我對三元運算有疑問。 我試圖像其他帖子建議的那樣添加“var”-“var colFinal =....”,但它給了我同樣的錯誤。

//@version=3
study(title="Guppy", shorttitle="Guppy", overlay=true)
len1 = input(3, minval=1, title="Fast EMA 1")
len2 = input(5, minval=1, title="Fast EMA 2")
len3 = input(8, minval=1, title="Fast EMA 3")
len4 = input(10, minval=1, title="Fast EMA 4")
len5 = input(12, minval=1, title="Fast EMA 5")
len6 = input(15, minval=1, title="Fast EMA 6")
//Slow EMA
len7 = input(30, minval=1, title="Slow EMA 7")
len8 = input(35, minval=1, title="Slow EMA 8")
len9 = input(40, minval=1, title="Slow EMA 9")
len10 = input(45, minval=1, title="Slow EMA 10")
len11 = input(50, minval=1, title="Slow EMA 11")
len12 = input(60, minval=1, title="Slow EMA 12")
//Fast EMA (High Price)
ema1 = ema(high, len1)
ema2 = ema(high, len2)
ema3 = ema(high, len3)
ema4 = ema(high, len4)
ema5 = ema(high, len5)
ema6 = ema(high, len6)
//Slow EMA (Close Price)
ema7 = ema(close, len7)
ema8 = ema(close, len8)
ema9 = ema(close, len9)
ema10 = ema(close, len10)
ema11 = ema(close, len11)
ema12 = ema(close, len12)

//Fast EMA Color Rules
colfastL = (ema1 > ema2 and ema2 > ema3 and ema3 > ema4 and ema4 > ema5 and ema5 > ema6)
colfastS = (ema1 < ema2 and ema2 < ema3 and ema3 < ema4 and ema4 < ema5 and ema5 < ema6)
//Slow EMA Color Rules
colslowL = ema7 > ema8 and ema8 > ema9 and ema9 > ema10 and ema10 > ema11 and ema11 > ema12 
colslowS = ema7 < ema8 and ema8 < ema9 and ema9 < ema10 and ema10 < ema11 and ema11 < ema12

doubleL = colfastL and colslowL
doubleS = colfastS and colslowS

//Fast EMA Final Color Rules
colFinal = doubleL ? aqua : doubleS ? orange : colfastL ? green : gray
//Slow EMA Final Color Rules
colFinal2 = colslowL ? lime : colslowS ? red : gray

//Fast EMA Plots
p1=plot(ema1, title="Fast EMA 1", style=line, linewidth=2, color=colFinal)
plot(ema2, title="Fast EMA 2", style=line, linewidth=1, color=colFinal)
plot(ema3, title="Fast EMA 3", style=line, linewidth=1, color=colFinal)
plot(ema4, title="Fast EMA 4", style=line, linewidth=1, color=colFinal)
plot(ema5, title="Fast EMA 5", style=line, linewidth=1, color=colFinal)
p2=plot(ema6, title="Fast EMA 6", style=line, linewidth=2, color=colFinal)
fill(p1,p2,color=colFinal, transp=60)

它不識別任何變量或三元運算符。 這讓我出錯:

Add to Chart operation failed, reason: line 115: Undeclared identifier 'aqua';
line 115: Undeclared identifier 'orange';
line 115: Undeclared identifier 'green';
line 115: Undeclared identifier 'gray';
line 117: Undeclared identifier 'lime';
line 117: Undeclared identifier 'red';
line 117: Undeclared identifier 'gray';
line 119: Undeclared identifier 'line';
line 119: Undeclared identifier 'colFinal';
line 120: Undeclared identifier 'line';

解決它的最好和最簡單的方法是什么?

將其轉換為//@version=4並更正了顏色名稱。

//@version=4
study(title="Guppy", shorttitle="Guppy", overlay=true)

len1 = input(3, minval=1, title="Fast EMA 1")
len2 = input(5, minval=1, title="Fast EMA 2")
len3 = input(8, minval=1, title="Fast EMA 3")
len4 = input(10, minval=1, title="Fast EMA 4")
len5 = input(12, minval=1, title="Fast EMA 5")
len6 = input(15, minval=1, title="Fast EMA 6")

//Slow EMA
len7 = input(30, minval=1, title="Slow EMA 7")
len8 = input(35, minval=1, title="Slow EMA 8")
len9 = input(40, minval=1, title="Slow EMA 9")
len10 = input(45, minval=1, title="Slow EMA 10")
len11 = input(50, minval=1, title="Slow EMA 11")
len12 = input(60, minval=1, title="Slow EMA 12")

//Fast EMA (High Price)
ema1 = ema(high, len1)
ema2 = ema(high, len2)
ema3 = ema(high, len3)
ema4 = ema(high, len4)
ema5 = ema(high, len5)
ema6 = ema(high, len6)
//Slow EMA (Close Price)
ema7 = ema(close, len7)
ema8 = ema(close, len8)
ema9 = ema(close, len9)
ema10 = ema(close, len10)
ema11 = ema(close, len11)
ema12 = ema(close, len12)

//Fast EMA Color Rules
colfastL = (ema1 > ema2 and ema2 > ema3 and ema3 > ema4 and ema4 > ema5 and ema5 > ema6)
colfastS = (ema1 < ema2 and ema2 < ema3 and ema3 < ema4 and ema4 < ema5 and ema5 < ema6)
//Slow EMA Color Rules
colslowL = ema7 > ema8 and ema8 > ema9 and ema9 > ema10 and ema10 > ema11 and ema11 > ema12 
colslowS = ema7 < ema8 and ema8 < ema9 and ema9 < ema10 and ema10 < ema11 and ema11 < ema12

doubleL = colfastL and colslowL
doubleS = colfastS and colslowS

//Fast EMA Final Color Rules
colFinal = doubleL ? color.aqua : doubleS ? color.orange : colfastL ? color.green : color.gray
//Slow EMA Final Color Rules
colFinal2 = colslowL ? color.lime : colslowS ? color.red : color.gray

//Fast EMA Plots
p1=plot(ema1, title="Fast EMA 1", style=plot.style_line, linewidth=2, color=colFinal)
plot(ema2, title="Fast EMA 2", style=plot.style_line, linewidth=1, color=colFinal)
plot(ema3, title="Fast EMA 3", style=plot.style_line, linewidth=1, color=colFinal)
plot(ema4, title="Fast EMA 4", style=plot.style_line, linewidth=1, color=colFinal)
plot(ema5, title="Fast EMA 5", style=plot.style_line, linewidth=1, color=colFinal)
p2=plot(ema6, title="Fast EMA 6", style=plot.style_line, linewidth=2, color=colFinal)
fill(p1,p2,color=colFinal, transp=60)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM