将版本 2 更改为 4 时出现 pine 脚本错误

问题描述 投票:0回答:2

将 pine 脚本版本 2 更改为 4 时出现错误

第 17 行:未声明的标识符 '_direction';

第 18 行:在范围“anonym_function_0”中找不到变量“_direction”,无法注册 side

代码如下

    //@version=4
    study(title='ZigZag PA Strategy V4 ALERT')
    useHA = input(false, title='Use Heikken Ashi Candles')
    useAltTF = input(true, title='Use Alt Timeframe')
    tf = input('30', title='Alt Timeframe')
    showPatterns = input(true, title='Show Patterns')
    showFib0000 = input(title='Display Fibonacci 0.000:',defval=true)
    showFib0236 = input(title='Display Fibonacci 0.236:',defval=true)
    showFib0382 = input(title='Display Fibonacci 0.382:',defval=true)
    showFib0500 = input(title='Display Fibonacci 0.500:', defval=true)
    showFib0618 = input(title='Display Fibonacci 0.618:', defval=true)
    showFib0764 = input(title='Display Fibonacci 0.764:', defval=true)
    showFib1000 = input(title='Display Fibonacci 1.000:', defval=true)
    zigzag() =>
        _isUp = close >= open
        _isDown = close <= open
        _direction = _isUp[1] and _isDown ? -1 : _isDown[1] and _isUp ? 1 : nz(_direction[1])
        _zigzag = _isUp[1] and _isDown and _direction[1] != -1 ? highest(2) : _isDown[1] and _isUp and _direction[1] != 1 ? lowest(2) : na

    _ticker = useHA ? heikinashi(syminfo.tickerid) : syminfo.tickerid
    sz = useAltTF ? (change(time(tf)) != 0 ? security(_ticker, tf, zigzag()) : na) : zigzag()

我该如何修复它?

请帮助我..

pine-script
2个回答
0
投票

在 v4 中,变量需要先声明,然后才能在赋值的右侧部分引用它们。使用前请仔细与 v2 比较结果:

zigzag() =>
    _isUp = close >= open
    _isDown = close <= open
    _direction = 0
    _direction := _isUp[1] and _isDown ? -1 : _isDown[1] and _isUp ? 1 : nz(_direction[1])
    _zigzag = _isUp[1] and _isDown and _direction[1] != -1 ? highest(2) : _isDown[1] and _isUp and _direction[1] != 1 ? lowest(2) : na

0
投票

我已将其更新为 pine script v5,还添加了警报。 这里是: https://in.tradingview.com/script/nn0ip0VL-STRATEGY-RS-ZigZag-PA-Strategy-V4-1-updated-to-Pine-Script-v5/

© www.soinside.com 2019 - 2024. All rights reserved.