变量不会在每次滴答时更新
Variable not updated on each tick
我正在尝试创建一个简单的脚本,它只计算报价并画一条线来跟踪每个柱上的报价。我是一名开发人员,熟悉代码,所以我尝试了很多不同的方法来实现这一点,包括使用全局变量、局部变量、数组,甚至使用 strategy(calc_on_every_tick=true)
而不是 study()
来尝试欺骗系统...没有任何效果。
这是我做过的最简单的尝试,我是 PineScript 初学者,我希望它能工作但没有:
//@version=4
study(
title="Tick Count",
overlay=false,
precision=0)
//
// Global variables
//
var int lastTickTime = na
var int tickCount = 0
//
// Processing
//
if (barstate.isrealtime)
lastTickTime := timenow
tickCount := tickCount + 1
//
// Plots
//
plot(tickCount)
plot(lastTickTime)
lastTickTime
实时正确更新,这意味着脚本在每个 tick 上按预期输入 if
。然而,它并没有像预期的那样在每个价格变动上更新 tickCount
,而是只在每个柱的第一个价格变动上更新。
为什么 PineScript 更新一个值而不更新另一个值?如果可能的话,我如何强制它在每个刻度上更新和重新绘制 tickCount
?如果不可能,为什么?有什么解决方法吗?
原因是 Pine Script 在实时柱上的表现与在历史柱上的表现不同。
由于实时柱上发生的回滚过程,您看不到分时增量。
对于实时柱中的每个报价变动,用户变量都会回滚到它们在该实时柱打开时的状态。
这就是为什么您经常看到 tickCount
的值 1
。
它的初始状态是 0
并且 1
在每个滴答时添加到 0
。
您看到 lastTickTime
具有正确值的原因是,尽管它在每个刻度上都被重置为 na
的初始状态,但它也被分配了值 timenow
在每次滴答时,始终是当前时间。
有关回滚过程的说明,请参阅 Execution Model - Calculation based on realtime bars。
摘自link:
实时柱线流程总结:
- 脚本在实时柱开盘时执行,然后每
更新。
- 在每次实时更新之前回滚变量。
- 变量在收盘柱更新时提交一次。
我正在尝试创建一个简单的脚本,它只计算报价并画一条线来跟踪每个柱上的报价。我是一名开发人员,熟悉代码,所以我尝试了很多不同的方法来实现这一点,包括使用全局变量、局部变量、数组,甚至使用 strategy(calc_on_every_tick=true)
而不是 study()
来尝试欺骗系统...没有任何效果。
这是我做过的最简单的尝试,我是 PineScript 初学者,我希望它能工作但没有:
//@version=4
study(
title="Tick Count",
overlay=false,
precision=0)
//
// Global variables
//
var int lastTickTime = na
var int tickCount = 0
//
// Processing
//
if (barstate.isrealtime)
lastTickTime := timenow
tickCount := tickCount + 1
//
// Plots
//
plot(tickCount)
plot(lastTickTime)
lastTickTime
实时正确更新,这意味着脚本在每个 tick 上按预期输入 if
。然而,它并没有像预期的那样在每个价格变动上更新 tickCount
,而是只在每个柱的第一个价格变动上更新。
为什么 PineScript 更新一个值而不更新另一个值?如果可能的话,我如何强制它在每个刻度上更新和重新绘制 tickCount
?如果不可能,为什么?有什么解决方法吗?
原因是 Pine Script 在实时柱上的表现与在历史柱上的表现不同。
由于实时柱上发生的回滚过程,您看不到分时增量。
对于实时柱中的每个报价变动,用户变量都会回滚到它们在该实时柱打开时的状态。
这就是为什么您经常看到 tickCount
的值 1
。
它的初始状态是 0
并且 1
在每个滴答时添加到 0
。
您看到 lastTickTime
具有正确值的原因是,尽管它在每个刻度上都被重置为 na
的初始状态,但它也被分配了值 timenow
在每次滴答时,始终是当前时间。
有关回滚过程的说明,请参阅 Execution Model - Calculation based on realtime bars。
摘自link:
实时柱线流程总结:
- 脚本在实时柱开盘时执行,然后每 更新。
- 在每次实时更新之前回滚变量。
- 变量在收盘柱更新时提交一次。