首页 > 解决方案 > 为什么我的 PineScript 代码不起作用?

问题描述

我在 PineScript 中创建了一个函数(chartmaket),它接受 4 个输入值并返回 4 个值,只有当我给出 open、high、low、close 时它才能正常工作,但如果我给出其他值它不起作用,并且编译没有错误或错误,所以请帮助我。

谢谢你,阿米特哈塔纳。正在运行的代码

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Khatanabros
//@version=4
study("level 3 chart ema 5")
len = input(5, minval=1, title="Length")
chartmaker(op,hi,lo,cl) =>
    ema =ema(cl,5)

    var c =cl

    x=if(cl[1]>ema[1])
        ((cl-op)*-1)
    else
        (cl-op)

    c:= c+x
    o =c[1]  
    y=if(cl[1]>ema[1])
        (op-lo)
    else
        (hi-op)
    h = o+y
    i=if(cl[1]>ema[1])
        (op-hi)
    else
        (lo-op)
    l = o+i    
    [o,h,l,c]

[o1,h1,l1,c1]=chartmaker(open,high,low,close)


colorbody = if(c1>o1)
    color.lime
else
    color.red


plotcandle(o1,h1,l1,c1,color=colorbody,wickcolor=colorbody,bordercolor=colorbody)
plot(ema(c1,len))

这是不起作用的代码

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Khatanabros

//@version=4
study("level 3 chart ema 5")
len = input(5, minval=1, title="Length")
chartmaker(op,hi,lo,cl) =>

    ema =ema(cl,5)

    var c =cl

    x=if(cl[1]>ema[1])
        ((cl-op)*-1)
    else
        (cl-op)

    c:= c+x
    o =c[1]  
    y=if(cl[1]>ema[1])
        (op-lo)
    else
        (hi-op)
    h = o+y
    i=if(cl[1]>ema[1])
        (op-hi)
    else
        (lo-op)
    l = o+i    
    [o,h,l,c]

[o1,h1,l1,c1]=chartmaker(open,high,low,close)
[O,H,L,C]=chartmaker(o1,h1,l1,c1)

colorbody = if(C>O)
    color.lime
else
    color.red


plotcandle(O,H,L,C,color=colorbody,wickcolor=colorbody,bordercolor=colorbody)
plot(ema(C,len))

标签: pine-scripttradingview-api

解决方案


推荐阅读