Tradingview Pinescript 警报未按预期工作
Tradingview Pinescript alert not working as expected
我正在使用以下 pinescript,但没有收到预期的警报。我知道这是一个重绘脚本。它在回溯测试中运行良好。
长警报设置为 "Once per bar close",短警报设置为 "once per bar"。
意外行为是
1) 有几次,虽然没有相应的长警报,但我收到了短警报(尽管我在我的脚本中已经注意了,只有在有长警报时才会发送短警报)。
2) 每个柱线有多个连续的空头警报。我知道在实时柱中,空头条件可能多次为真。但由于我已将警报设置为 "once per bar",警报应该只在第一次短条件变为真时出现。
如果我做错了什么,你能告诉我吗?
提前致谢。
//@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
您 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)
如果连续两个交易日产生买入信号,则直到产生卖出信号才会出现。
我正在使用以下 pinescript,但没有收到预期的警报。我知道这是一个重绘脚本。它在回溯测试中运行良好。 长警报设置为 "Once per bar close",短警报设置为 "once per bar"。
意外行为是 1) 有几次,虽然没有相应的长警报,但我收到了短警报(尽管我在我的脚本中已经注意了,只有在有长警报时才会发送短警报)。 2) 每个柱线有多个连续的空头警报。我知道在实时柱中,空头条件可能多次为真。但由于我已将警报设置为 "once per bar",警报应该只在第一次短条件变为真时出现。
如果我做错了什么,你能告诉我吗?
提前致谢。
//@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
您 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)
如果连续两个交易日产生买入信号,则直到产生卖出信号才会出现。