如何延迟 pine 脚本中生成的警报,如果图表时间范围为 10m,任何人都可以帮助将警报延迟 n 秒吗?

2024-02-15

我在一秒钟内收到太多警报(相同的代码/指标应用于不同的股票/代码),并且我希望将每个警报延迟至少 5 秒。 我尝试过使用 pinecoders.com 提供的这个指标代码https://www.pinecoders.com/faq_and_code/#how-can-i-implement-a-time-delay- Between-orders https://www.pinecoders.com/faq_and_code/#how-can-i-implement-a-time-delay-between-orders给我的 10m 策略延迟(5秒)但是它不工作因为我使用的是 10m 图表,并且我希望警报延迟 5 秒。

谁能帮忙将警报延迟 1-5 秒?

@e2e4感谢您的回复,我想在更长的时间范围内进行测试(即使存在不一致)。包含代码的链接旨在仅在柱之间提供延迟,但我想在蜡烛收盘后延迟 5 秒。我尝试了以下代码

//@version=4
strategy("Strat with time delay", overlay=true)

i_qtyTimeUnits  = - input(5, "Quantity", minval = 0)
i_timeUnits     = input("seconds", "Delay ", options = ["seconds", "minutes", "hours", "days", "months", "years"])


int _timeFrom_ = na        
_year_   =  (i_timeUnits == "year"   ? int(i_qtyTimeUnits) : 0)
_month_  =(i_timeUnits == "month"  ? int(i_qtyTimeUnits) : 0)
_day_   =  (i_timeUnits == "day"    ? int(i_qtyTimeUnits) : 0)
_hour_   = (i_timeUnits == "hour"   ? int(i_qtyTimeUnits) : 0)
_minute_ =  (i_timeUnits == "minute" ? int(i_qtyTimeUnits) : 0)
_second_ =  (i_timeUnits == "second"  ? int(i_qtyTimeUnits) : 0)
// Return the resulting time in ms Unix time format.
_timeFrom_ := timestamp(_year_, _month_, _day_, _hour_, _minute_, _second_)
// Entry conditions.
ma = sma(close, 5)
goLong = close > ma?1:0
goShort = close < ma?1:0

// Time delay filter
var float lastTradeTime = na
if nz(change(goLong), time)
    // An order has been executed; save the bar's time.
    lastTradeTime := timenow
var float lastTradeTime_s = na
if nz(change(goShort), time)
    // An order has been executed; save the bar's time.
    lastTradeTime_s := timenow

delayElapsed_long = timenow > (lastTradeTime+_timeFrom_)
delayElapsed_short = timenow >  (lastTradeTime_s+_timeFrom_)

if goLong==1 and delayElapsed_long and barstate.isconfirmed
    strategy.entry("Long", strategy.long, comment="Long")
if goShort==1 and delayElapsed_short and barstate.isconfirmed
    strategy.entry("Short", strategy.short, comment="Short")

plot(ma, "MA", goLong ? color.lime : color.red)

        

我只想将警报延迟 5 秒。但上面的代码似乎不起作用。请帮忙。


我找到了这个问题的解决方案。 解决办法在于calc_on_every_tick=true和下面更新的代码,它对我有用。 我的基本想法是在不同的股票中设置警报,因为警报是同时生成的(我有一些基于时间的标准),在一秒钟内有太多的请求导致订单被拒绝。 下面的代码是这个问题的答案。

下面我计算了柱形图关闭的剩余时间,并为每个警报设置了不同的“i_qtyTimeUnits”,这会导致即使同时生成 100 个警报,警报也会延迟。 5秒的差距不会导致订单取消。

//@version=4
strategy("Strat with time delay", overlay=true,calc_on_every_tick=true)

i_qtyTimeUnits  = input(5, "Quantity", minval = 0)
i_timeUnits     = input("seconds", "Delay between entries", options = ["seconds", "minutes", "hours", "days", "months", "years"])


int _timeFrom_ = na        
_year_   =  (i_timeUnits == "year"   ? int(i_qtyTimeUnits) : 0)
_month_  =(i_timeUnits == "month"  ? int(i_qtyTimeUnits) : 0)
_day_   =  (i_timeUnits == "day"    ? int(i_qtyTimeUnits) : 0)
_hour_   = (i_timeUnits == "hour"   ? int(i_qtyTimeUnits) : 0)
_minute_ =  (i_timeUnits == "minute" ? int(i_qtyTimeUnits) : 0)
_second_ =  (i_timeUnits == "second"  ? int(i_qtyTimeUnits) : 0)
// Return the resulting time in ms Unix time format.
_timeFrom_ := timestamp(_year_, _month_, _day_, _hour_, _minute_, _second_)
// Entry conditions.
ma = sma(close, 5)
goLong = crossover(close, ma)
goShort = crossunder(close , ma)

timeLeft = (time_close - timenow) / 1000 
vol=label.new(bar_index, na,text=tostring(timeLeft), color=color.red,style=label.style_labeldown, yloc=yloc.abovebar)
label.delete(vol[1])

if_t=timeLeft<=i_qtyTimeUnits?1:0

vol1=label.new(bar_index[10], na,text=tostring(i_qtyTimeUnits)+'\n '+tostring(if_t), color=color.lime,style=label.style_labelup, yloc=yloc.abovebar)
label.delete(vol1[1])


if goLong and timeLeft<=i_qtyTimeUnits
    strategy.entry("Long", strategy.long, comment="Long")
    
if goShort and timeLeft<=i_qtyTimeUnits
    strategy.entry("Short", strategy.short, comment="Short")

plot(ma, "MA", goLong ? color.lime : color.red)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何延迟 pine 脚本中生成的警报,如果图表时间范围为 10m,任何人都可以帮助将警报延迟 n 秒吗? 的相关文章

  • 风险管理:如果已经做多,则不要下新订单

    如果该标志已经指示长 则不应有新的指示长的标志 如果标志不指示长计算表达式 longCondition if strategy long false rsi lt 30 and close gt moving avg shortCondit
  • 不能使用可变变量作为安全函数的参数

    下面的脚本无法编译 它抛出错误Cannot use a mutable variable as an argument of the security function我不明白为什么 我在安全函数中使用的参数不是可变变量 当我注释掉该行时h
  • 有没有办法从数据窗口中隐藏特定的指标值?

    我最近创建了一个脚本 可以在 TradingView 的图表上绘制几个不同的指标 在特定场景下 部分指标不活跃 在数据窗口中显示 n a 我知道 TradingView 允许我们隐藏所有指标值 我想自定义哪些指标值可见 这可能吗 谢谢你的时
  • 在 pinescript 中向警报添加变量

    我想在 pine 脚本中对 TradingView 中的多只股票使用相同的警报条件 问题是我不知道哪只股票触发了警报 除非我创建脚本的副本并为每个脚本提供自定义消息 我想要这样的东西 alertcondition someCondition
  • 标记水平 EMA 线(变量)

    这是我使用 atm 的代码 感谢比约恩 米斯蒂安 len1 input 10 minval 1 title Length len2 input 21 minval 1 title Length len3 input 55 minval 1
  • Tradingview的自动调整比例功能:排除指标的绘图

    我有一个指标 可以自动压缩 Y 轴上的整个价格图表 所以我必须在大多数情况下让它不可见 即使双击 y 尺度 图表自动调整功能 也可以包含所有可见指标 有没有办法阻止一个或所有指标这样做 哦 我刚刚找到了答案 只需右键单击 y 刻度即可调出带
  • 如何将plot语句放在if语句中

    我想在价格上绘制权益曲线 将该策略与简单的买入并持有进行比较 为了使图表有用 权益曲线可以从初始权益开始 或者与图表上的第一个价格一致 或者根本没有权益曲线 具体取决于手动输入 使用下面的代码 我得到这个 第 xx 行 无法在本地范围内使用
  • 如何仅获取表达式系列输出的最后一个值?

    我不需要这个表达式的整个数组 只需要它的最近 当前 值 如何修改其代码 UpperBollinger ta sma close 20 2 ta stdev close 20 当然 我可以用它来获得相同的较低频段 你不能这样做 Once a
  • Pinescript 重复警报

    我用 pinescript 创建了一个非常基本的脚本 study title Renko Strat w Alerts shorttitle S EURUSD 5 MakisMooz overlay true rc close buy en
  • 如何在交易视图的 PINE 图中使用不同的字符串文字?

    我的情节定义如下 plotshape xvalue location location absolute style shape labeldown color red size size tiny text Upper 这里的问题是部分文
  • 为了一致性,控制台输出应该在每次计算时调用该函数?

    当我添加到图表或保存时 我的脚本最近刚刚开始在控制台中显示这些行 The function anonym function 10 should be called on each calculation for consistency It
  • 通过代码 tradeview/pine 脚本隐藏图表、数量和信号标签上的交易

    每次我更新策略代码时 样式都会重置 这意味着 图表上的交易 信号标签 Quantity 被重置为显示 有没有办法覆盖该行为 以便我可以隐藏 图表上的交易 非常感谢您对这个看似微不足道的问题的帮助 不 默认情况下没有禁用它们的功能 前段时间我
  • 如何延迟 pine 脚本中生成的警报,如果图表时间范围为 10m,任何人都可以帮助将警报延迟 n 秒吗?

    我在一秒钟内收到太多警报 相同的代码 指标应用于不同的股票 代码 并且我希望将每个警报延迟至少 5 秒 我尝试过使用 pinecoders com 提供的这个指标代码https www pinecoders com faq and code
  • Pine Script 当前价格指标

    有没有办法在 Pine Script 中创建反映股票当前价格的指标 我需要这个指标 因为我需要在蜡烛收盘前 当存在特定交叉时 输入订单 并且逐条提供回测数据 我认为指标可以让我做到这一点 如果没有 还有其他方法可以解决这个问题 我不是一个经
  • Tradingview Pine-Script:如何仅绘制最后 x 个周期

    我只想绘制最后 x 个周期的指标 我怎么做 如果我可以进行时间操作 从plotStartDate中减去x period 也许我可以使用以下代码 period timeframe ismonthly or timeframe isweekly
  • 如何编写随机 RSI 指标

    我的指标看起来不像 TradingView 中的内置随机 RSI 指标 如何获得熟悉的外观来复制 st RSI 指标 这里是截屏 https www tradingview com x UdahzWrj 这显示了我的代码和 TradingV
  • 使用多个数组元素为相同符号生成多行(Pine 脚本)

    基于这个解决方案 https stackoverflow com questions 66370664 how to overcome compiled script code is too long in pine script来自 Bj
  • 如何阻止连续打印多个买入/卖出信号?

    我正在尝试用我的脚本实现一些目标 如果前一个信号是 卖出 我只想打印 买入 信号 反之亦然 我只想在小于之前的 卖出 信号时打印 买入 信号 反之亦然 我一整天都在努力寻找这个问题的解决方案 我不明白如何使用 valuewhen 或 bar
  • 如何删除前一个(或第n个)标签?

    我正在尝试实施一个这个问题的答案 https stackoverflow com a 73437787 2229856 但不知何故没有显示标签 也没有显示任何错误消息 在此代码之外 所有标签都会显示 因此label new 实例本身运行良好
  • 买入和卖出信号在图表上相差甚远

    我尝试根据以下策略生成的信号绘制图表 但我从脚本中观察到的是蜡烛的信号产生点不同 如果有人知道这一点 请帮助我 作为参考 我附上了下面的快照 1 买入信号快照 https i stack imgur com RLtoP png 2 卖出信号

随机推荐