Pine script pine中的时间范围输入

Pine script pine中的时间范围输入,pine-script,Pine Script,我刚开始学习pine on trading view。我有一个基本策略,我想在特定的交易时间测试。如何使用可调输入对时间范围进行编码,以便更改策略运行的小时数 我已经学习了一些教程,我可以获得输入,但似乎无法将其与我的策略结合起来。在我的一些尝试中,我遇到了一个无法识别的标识符错误。我一定错过了一步 这是当前代码,它至少在我的输入框中放置了一个时间范围,但它没有集成到策略中。 会话时间=输入(deffal=“0700-1000”,类型=会话,title=“会话时间”) 我还尝试了一个将开始时间和

我刚开始学习pine on trading view。我有一个基本策略,我想在特定的交易时间测试。如何使用可调输入对时间范围进行编码,以便更改策略运行的小时数

我已经学习了一些教程,我可以获得输入,但似乎无法将其与我的策略结合起来。在我的一些尝试中,我遇到了一个无法识别的标识符错误。我一定错过了一步

这是当前代码,它至少在我的输入框中放置了一个时间范围,但它没有集成到策略中。 会话时间=输入(deffal=“0700-1000”,类型=会话,title=“会话时间”)

我还尝试了一个将开始时间和结束时间作为单独代码的代码,但无法实现

以下是我迄今为止的投入:

needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
takepercent = input(0, defval = 0, minval = 0, maxval = 1000, title = 
"take, %")
needbe = input(true, defval = true, title = "Bands Entry")
needct = input(false, defval = false, title = "Counter-trend entry")
bodylen = input(10, defval = 10, minval = 0, maxval = 50, title = "Body 
length")
trb = input(1, defval = 1, minval = 1, maxval = 5, title = "Trend bars")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period")
needbb = input(true, defval = true, title = "Show Bands")
needbg = input(true, defval = true, title = "Show Background")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title 
= "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = 
"To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From 
Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To 
Month")
sessionHours = input(defval = "0700-1000", type = session, title="Session 
Hours")
src = close
以下是我试图将时间范围整合到其中的策略代码:

if up7 == 1 or up8 == 1
strategy.entry("Long", strategy.long, needlong == false ? 0 : trend == -1 
and needct == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 
01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00)))

if dn7 == 1 or dn8 == 1
strategy.entry("Short", strategy.short, needshort == false ? 0 : trend == 
1 and needct == false ? 0 : na, when=(time > timestamp(fromyear, from 
month, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00)))

if time > timestamp(toyear, tomonth, 31, 00, 00)
strategy.close_all()
如果up7==1或up8==1
strategy.entry(“Long”、strategy.Long、needlong==false?0:trend==-1
并且needct==false?0:na,when=(时间>时间戳)(fromyear,frommonth,
01,00,00)和时间<时间戳(今年,明天,31,00,00)))
如果dn7==1或dn8==1
strategy.entry(“Short”、strategy.Short、needshort==false?0:trend==
1和needct==false?0:na,when=(时间>时间戳(fromyear,from
月,01,00,00)和时间<时间戳(今年,明天,31,00,00)))
如果时间>时间戳(今年、明天、31、00、00)
策略。全部关闭()

感谢您的帮助

我对Pine脚本还比较陌生,所以可能有更好的方法

虽然我没有“变量化”我的时间框架输入,但我确实使用time()函数得到了只在交易日的特定时间进行交易的策略——请参阅。以下是我的代码:

timeOKToBuy=na(时间(timeframe.period,“0000-10001200-0000”))

然后对该变量设定操作条件(例如,在我的情况下,输入)。 如果时间在逗号分隔的范围列表中的一个句点内,则函数的作用是:返回一个时间。如果它不在这样的范围内,则返回NaN,因此当对其值调用na()时,如果一天中的时间不在这些范围内,则结果为真。在我的例子中,我想只允许东部时间10-12日的交易进入,所以我列出了该交易范围之外的范围

我对Pine脚本的了解还不够,无法理解如何获得时间范围的输入,但我看到了一些示例,认为这应该很容易


我也不知道时区在这里是怎么应用的。。。但我猜TradingView在如何配置和使用时区或各种格式的时间方面有很好的文档。

谢谢,我会尝试一下,即使没有输入选项,我仍然可以轻松修改脚本中的时间。好的,我可以尝试一下,我得到了这个“第25行:未声明的标识符
timeframe.period
”我以前在尝试其他代码时收到过这些通知,但不确定发生了什么,欢迎使用。同时提供代码和预期输出与您得到的结果。(错误等?)。电视上有很多示例代码,所以请查看这些脚本和它们的wiki。