【问题标题】:Tradingview Pinescript alert not working as expectedTradingview Pinescript 警报未按预期工作
【发布时间】:2020-09-10 02:17:58
【问题描述】:

我正在使用下面的 pinescript,但没有收到预期的警报。我知道这是一个重绘脚本。它与回测工作正常。 长警报设置为“每柱关闭一次”,短警报设置为“每柱一次”。

意外的行为是 1) 有几次,虽然没有相应的长警报,但我收到短警报(虽然我在脚本中注意了,只有在长警报时才会发送短警报)。 2) 每根柱线有多个连续的空头警报。我知道在实时栏中,短期条件可能多次为真。但由于我已将警报设置为“每根柱一次”,因此警报应该仅在短条件第一次变为真时出现。

如果我做错了什么,请告诉我?

提前致谢。

//@version=4
study("My Script",overlay = true)

ST = input(true, title = "Activate Strategy Tester")
T_SY = input(2020, title = "Strategy Start Year")
T_SM = input(5, title = "Start Month")
T_SD = input(1, title = "Strategy Start Day")
T_EY = input(2025, title = "Strategy End Year")
T_EM = input(1, title = "End Month")
T_ED = input(1, title = "Strategy End Day")
T_S = timestamp(T_SY, T_SM, T_SD,00,00)
T_E = timestamp(T_EY, T_EM, T_ED,00,00)
T= ST and time >= T_S and time <= T_E 

firstrun = true
bought = false
longcondition = false
shortcondition = false

//Just to track first run

firstrun := firstrun[1]


if (firstrun == false)
    bought := bought[1]

//once condition is met, send a buy alert and make "bought" equal to true  //to enable selling

if (close <= 8600 and bought==false and T)
    bought := true
    longcondition :=true

alertcondition(longcondition,  "Long",  "Long")  

plotshape(longcondition,  title = "Buy",  text = 'Buy',  style = shape.labelup,   location = location.abovebar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny)


if (longcondition)
    longcondition :=false

//once condition is met, sent a sell alert.

if (bought and close>=9000 and T)  
    shortcondition := true
    bought := false

alertcondition(shortcondition,  "short",  "short") 
plotshape(shortcondition,  title = "Sell",  text = 'Sell',  style = shape.labelup,   location = location.belowbar, color= color.red, textcolor = color.white, transp = 0, size = size.tiny)


if (shortcondition)
    shortcondition :=false

plotchar(bought, "bought", "", location = location.top)   

firstrun := false

【问题讨论】:

    标签: charts pine-script trading technical-indicator


    【解决方案1】:

    如果买入信号连续两个时段产生,则直到卖出信号产生后才会出现。

    【讨论】:

    【解决方案2】:

    您的bought 变量现在自动将其值 bar 保存到 bar,并且我已经删除了脚本中 vars 的后期重新初始化。似乎在这里工作正常:

    //@version=4
    study("My Script",overlay = true)
    
    ST = input(true, title = "Activate Strategy Tester")
    T_SY = input(2000, title = "Strategy Start Year")
    T_SM = input(5, title = "Start Month")
    T_SD = input(1, title = "Strategy Start Day")
    T_EY = input(2025, title = "Strategy End Year")
    T_EM = input(1, title = "End Month")
    T_ED = input(1, title = "Strategy End Day")
    T_S = timestamp(T_SY, T_SM, T_SD,00,00)
    T_E = timestamp(T_EY, T_EM, T_ED,00,00)
    T= ST and time >= T_S and time <= T_E 
    
    var bought = false
    longcondition = false
    shortcondition = false
    
    //once condition is met, send a buy alert and make "bought" equal to true  //to enable selling
    if (close <= 8600 and bought==false and T)
        bought := true
        longcondition :=true
    
    //once condition is met, sent a sell alert.
    if (bought and close>=9000 and T)  
        shortcondition := true
        bought := false
    
    alertcondition(longcondition,  "Long",  "Long")  
    alertcondition(shortcondition,  "short",  "short") 
    plotshape(longcondition,  title = "Buy",  text = 'Buy',  style = shape.labelup,   location = location.abovebar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny)
    plotshape(shortcondition,  title = "Sell",  text = 'Sell',  style = shape.labelup,   location = location.belowbar, color= color.red, textcolor = color.white, transp = 0, size = size.tiny)
    // For debugging.
    plotchar(bought, "bought", "•", location = location.top)
    

    【讨论】:

    • 谢谢。让我检查一下
    猜你喜欢
    • 2017-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-14
    • 1970-01-01
    相关资源
    最近更新 更多