将 tradingview 的 pine 脚本转换为 VScode 中的 python

Convert tradingview's pine script to python in VScode

我想将以下 Pine 脚本转换为 python 来计算 vwap1 变量的值而不绘制结果,我只想计算 vwap1 的值:

...
wapScore(pds) =>
    mean = sum(volume*close,pds)/sum(volume,pds)
    vwapsd = sqrt(sma(pow(close-mean, 2), pds) )
    (close-mean)/vwapsd

vwap1 = input(48)
plot(vwapScore(vwap1),title="ZVWAP2-48",color=#35e8ff, linewidth=2,transp=0.75)
...

我试过以下方法:

...
def calculate_SMA(ser, days):
    sma = ser.rolling(window=days).mean()
    return sma


def calculate_Zscore(pds, volume, close):
    mean = sum(volume * close, pds) / sum(volume, pds)
    vwapsd = np.sqrt(calculate_SMA(pow(close - mean, 2), pds))
    return (close - mean) / vwapsd

...

我正在使用 calculate_Zscore 函数计算值并将其添加到 pandas 数据框,但它给了我不同的值而不是交易视图中的值

我只是想发表评论...但我的声誉不允许我:)

当然,pine 脚本 (tradingview) 的 sum 与 python sum 具有不同的类型签名。 特别是第二个参数具有完全不同的含义。 在 pine 脚本中 sum(x,y) 告诉您 x 的最后 y 值的滑动总和(后面 y 条的 x 总和)。 在python sum(x,y) sum the iterable x and if y, 第二个参数已经通过(可选),这个值被添加到[=26的项目总和=] 如果你的 sum(x) == 4.5 那么 sum(x,10) == 14.5

所以您的代码至少在使用此方法时肯定需要更改

希望能有所帮助