Pine script 试图编写一个代码,在下一次交易之前给策略一个缓冲时间,声明有问题

Pine script 试图编写一个代码,在下一次交易之前给策略一个缓冲时间,声明有问题,pine-script,Pine Script,我正试图在下一笔交易开始前有一个缺口。我正在使用的脚本的前一个版本在特定的测试用例中有一些问题。这一个,tris实现了相同的功能,但是我在变量声明方面遇到了一些问题 //@version=4 strategy("RSI Strategy", overlay=true) //timeframe FromMonth = input(defval = 9, title = "From Month", minval = 1) FromDay = input(

我正试图在下一笔交易开始前有一个缺口。我正在使用的脚本的前一个版本在特定的测试用例中有一些问题。这一个,tris实现了相同的功能,但是我在变量声明方面遇到了一些问题

//@version=4
strategy("RSI Strategy", overlay=true)

//timeframe
FromMonth = input(defval = 9, title = "From Month", minval = 1)
FromDay   = input(defval = 9, title = "From Day", minval = 1)
FromYear  = input(defval = 2019, title = "From Year", minval = 2000)
ToMonth   = input(defval = 11, title = "To Month", minval = 1)
ToDay     = input(defval = 23, title = "To Day", minval = 1)
ToYear    = input(defval = 2020, title = "To Year", minval = 2014) 
testPeriod() =>
    (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))
//Indicator
length      = input( 14 )
overSold    = input( 30 )
overBought  = input( 70 )
price       = close
vrsi        = rsi(price, length)
co          = crossover(vrsi, overSold)
cu          = crossunder(vrsi, overBought)

//For co

gap = 4
Arr_l = co ? 1 : 0
Mod_gap_l = sum(Arr_l)
buy_w_gap = Arr_l and (Mod_gap_l%gap == 0)? 1 : 0
if (buy_w_gap)
    strategy.entry("RsiLE", strategy.long, comment="RsiLE")
//for cu
Arr_s = co ? 1 : 0
Mod_gap_s = sum(Arr_s)
sell_w_gap =  Arr_s and (Mod_gap_s%gap == 0)? 1 : 0
if (sell_w_gap)
    strategy.entry("RsiSE", strategy.short, comment="RsiSE")
/@version=4
策略(“RSI策略”,overlay=true)
//时间框架
FromMonth=输入(defval=9,title=“From Month”,minval=1)
FromDay=输入(defval=9,title=“From Day”,minval=1)
FromYear=输入(defval=2019,title=“From Year”,minval=2000)
ToMonth=输入(defval=11,title=“To Month”,minval=1)
今天=输入(defval=23,title=“今天”,minval=1)
ToYear=输入(defval=2020,title=“To Year”,minval=2014)
testPeriod()=>
(时间>时间戳(FromYear,FromMonth,FromDay,00,00))和(时间<时间戳(ToYear,ToMonth,ToDay,23,59))
//指示器
长度=输入(14)
超卖=输入(30)
超买=投入(70)
价格=收盘价
vrsi=rsi(价格、长度)
co=交叉(vrsi,超卖)
cu=交叉低于(vrsi,超买)
//为公司
差距=4
Arr_l=co?1 : 0
Mod_gap_l=总和(Arr_l)
购买差距=Arr\u l和(Mod\u差距=0)?1 : 0
如果(购买差距)
strategy.entry(“RsiLE”,strategy.long,comment=“RsiLE”)
//对于cu
Arr_s=co?1 : 0
Mod_gap_s=总和(Arr_s)
销售差距=Arr\u s和(Mod\u差距%gap==0)?1 : 0
如果(销售差距)
strategy.entry(“RsiSE”,strategy.short,comment=“RsiSE”)

不确定你想用这个做什么,但我假设是这样的

//@version=4
strategy("RSI Strategy", overlay=true)

//timeframe
FromMonth = input(defval = 9, title = "From Month", minval = 1)
FromDay   = input(defval = 9, title = "From Day", minval = 1)
FromYear  = input(defval = 2019, title = "From Year", minval = 2000)
ToMonth   = input(defval = 11, title = "To Month", minval = 1)
ToDay     = input(defval = 23, title = "To Day", minval = 1)
ToYear    = input(defval = 2020, title = "To Year", minval = 2014) 
testPeriod() =>
    (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))
//Indicator
length      = input( 14 )
overSold    = input( 30 )
overBought  = input( 70 )
price       = close

var int     gap         = 4
var float   vrsi        = na
var bool    co          = na
var bool    cu          = na
var int     Mod_gap_l   = na
var int     Mod_gap_s   = na
var bool    buy_w_gap   = na
var bool    sell_w_gap  = na

vrsi        := rsi(price, length)
co          := crossover(vrsi, overSold)
cu          := crossunder(vrsi, overBought)

//For co

// Arr_l = co ? 1 : 0
// Mod_gap_l = sum(Arr_l)
Mod_gap_l := barssince(co)
buy_w_gap := (Mod_gap_l > 0) and (Mod_gap_l%gap == 0)
if buy_w_gap
    strategy.entry("RsiLE", strategy.long, comment="RsiLE")

//for cu
// Arr_s = co ? 1 : 0
// Mod_gap_s = sum(Arr_s)
Mod_gap_s   := barssince(cu) // I assume you want to use 'cu' here instead of 'co'
sell_w_gap  := (Mod_gap_s > 0) and (Mod_gap_s%gap == 0)? 1 : 0
if sell_w_gap
    strategy.entry("RsiSE", strategy.short, comment="RsiSE")
/@version=4
策略(“RSI策略”,overlay=true)
//时间框架
FromMonth=输入(defval=9,title=“From Month”,minval=1)
FromDay=输入(defval=9,title=“From Day”,minval=1)
FromYear=输入(defval=2019,title=“From Year”,minval=2000)
ToMonth=输入(defval=11,title=“To Month”,minval=1)
今天=输入(defval=23,title=“今天”,minval=1)
ToYear=输入(defval=2020,title=“To Year”,minval=2014)
testPeriod()=>
(时间>时间戳(FromYear,FromMonth,FromDay,00,00))和(时间<时间戳(ToYear,ToMonth,ToDay,23,59))
//指示器
长度=输入(14)
超卖=输入(30)
超买=投入(70)
价格=收盘价
var int gap=4
var float vrsi=na
var bool co=na
var bool cu=na
var int Mod_gap_l=na
var int Mod_gap_s=na
var bool buy_w_gap=na
var bool sell_w_gap=na
vrsi:=rsi(价格、长度)
co:=交叉(vrsi,超卖)
cu:=交叉低于(vrsi,超买)
//为公司
//Arr_l=co?1 : 0
//Mod_gap_l=总和(Arr_l)
模间隙:等于巴塞(co)
购买差距:=(模差距>0)和(模差距百分比差距==0)
如果买w__gap
strategy.entry(“RsiLE”,strategy.long,comment=“RsiLE”)
//对于cu
//Arr_s=co?1 : 0
//Mod_gap_s=总和(Arr_s)
Mod_gap_s:=barssince(cu)//我假设您想在这里使用'cu'而不是'co'
销售差距:=(模差距>0)和(模差距百分比差距==0)?1 : 0
如果你卖了你的差距
strategy.entry(“RsiSE”,strategy.short,comment=“RsiSE”)

我想做的是,在下一笔交易之前,给我的策略一个冷静期。说n支蜡烛。n是已经在中解决的可变间隙。我交叉检查,其中一个留下了一些边界线案例。因此,我们试图建立一个更强大的东西,最好用一个例子+屏幕截图来解释边界线案例。你在这个问题上发布的代码对我来说毫无意义。我可以亲自发短信给你吗?电子邮件?