python - 如何将 pine 脚本转换为 python
问题描述
Pine 脚本示例如下:
length = input(20, title="BB Length")
mult = input(2.0,title="BB MultFactor")
lengthKC=input(20, title="KC Length")
multKC = input(1.5, title="KC MultFactor")
useTrueRange = input(true, title="Use TrueRange (KC)", type=bool)
// Calculate BB
source = close
basis = sma(source, length)
dev = multKC * stdev(source, length)
upperBB = basis + dev
lowerBB = basis - dev
// Calculate KC
ma = sma(source, lengthKC)
range = useTrueRange ? tr : (high - low)
rangema = sma(range, lengthKC)
upperKC = ma + rangema * multKC
lowerKC = ma - rangema * multKC
sqzOn = (lowerBB > lowerKC) and (upperBB < upperKC)
sqzOff = (lowerBB < lowerKC) and (upperBB > upperKC)
noSqz = (sqzOn == false) and (sqzOff == false)
val = linreg(source - avg(avg(highest(high, lengthKC), lowest(low, lengthKC)),sma(close,lengthKC)),
lengthKC,0)
bcolor = iff( val > 0,
iff( val > nz(val[1]), lime, green),
iff( val < nz(val[1]), red, maroon))
scolor = noSqz ? blue : sqzOn ? black : gray
plot(val, color=bcolor, style=histogram, linewidth=4)
plot(0, color=scolor, style=cross, linewidth=2)
我的 Python 代码如下:
#val = linreg(source - avg(avg(highest(high, lengthKC), lowest(low, lengthKC)),sma(close,lengthKC)), lengthKC,0)
high =talib.MAX(np.array(data['high']),20)
low = talib.MIN(np.array(data['low']),20)
hl_avg = np.mean(high,low)
sma20 = talib.SMA(np.array(data['close']), timeperiod=20)
e_avg = np.mean(hl_avg,sma20)
val = talib.LINEARREG_ANGLE(np.array(data['close'] - e_avg,20,0))
一个问题是 func avg 如何转换为 python ...avg(highest(high, lengthKC)
感谢您的任何提示:)
解决方案
推荐阅读
- angular - Angular 中的本地服务不接受数据而不是字符串格式
- python - NetworkX 到 Gephi 的不同节点大小被忽略了吗?
- kubernetes - Minikube 卷写入权限?
- c# - 如何从 Xamarin.Forms 中的 CodeBehind 访问自定义 StackLayout?
- python - 错误:“AttributeError:‘DataFrame’对象没有属性‘source’”或“KeyError:‘source’”
- python - 重新匹配后读取该行
- shopify - 无法在 Shopify 中更新产品变体数据
- c# - 写入服务器的不同数据被附加为单个字符串
- android - 以编程方式测试设备指纹是否正常工作
- angular - 离子菜单链接只能使用一次