我从Youtuber的视频中复制了这段简单的代码(Pine脚本),但不知何故它对我不起作用。视频:https://www.youtube.com/watch?v=z3Sq6snvFQs
代码摘要
//@version=4
study(title="Hammers and Shooting Stars", shorttitle="Pin Bars")
plot(close)
// Get user input
fibLevel = input(title="Fib Level", type=input.float, defval=0.333)
colorFilter = input(title="Color Must Match", type=input.bool, defval=false)
// Calculate fibonacci level for current candle
bullFib = (low - high) * fibLevel + high
bearFib = (high - low) * fibLevel + low
// Determine which price source closes or opens highest/lowest
lowestBody = close < open ? close : open
highestBody = close > open ? close : open
// Determine if we have a valid hammer or shooting star
hammerCandle = lowestBody >= bullFib (not colorFilter or close > open)
starCandle = highestBody <= bearFib (not colorFilter or close < open)问题:
“‘bullFib”不是一个函数(在这一行中):
hammerCandle = lowestBody >= bullFib (not colorFilter or close > open)'bearFib‘不是一个函数(在此行中):
starCandle = highestBody <= bearFib (not colorFilter or close < open)指的是什么:
bullFib = (low - high) * fibLevel + high
bearFib = (high - low) * fibLevel + low我不是一个程序员,我刚刚开始学习编程,但是这个问题经常发生。但奇怪的是,当它发生时,这是一个复制的代码,可以在其他人身上运行。
谢谢。
发布于 2021-09-16 09:55:12
这只是一个错误的语法错误。您忘记了bullFib和(not colorFilter or close > open))之间的and逻辑运算符
走这条线
hammerCandle = lowestBody >= bullFib (not colorFilter or close > open)其中bullFib和lowestBody是一些浮点变量(数字)。
下面是比较操作
lowestBody >= bullFib这将导致true或false。
下一步
(not colorFilter or close > open)这也是逻辑运算符,其结果是true或false。简化这一过程,您将获得:
hammerCandle = condition1 (condition2),这是错误的。只需在between之间添加逻辑运算符,这就有意义了。
hammerCandle = condition1 and condition2
所以正确的语法应该是
hammerCandle = lowestBody >= bullFib and (not colorFilter or close > open)https://stackoverflow.com/questions/69204199
复制相似问题