Pine script 使用更高时间框架安全功能的策略延迟交易1条

Pine script 使用更高时间框架安全功能的策略延迟交易1条,pine-script,Pine Script,有一段时间以来,我们一直在为多时间段策略使用安全功能,希望知道是否有解决策略交易延迟1条的解决方案 正如您在我下面的脚本中所看到的,这个简单的策略在前一周的收盘>开盘时买入,反之亦然时卖出。我的问题是它在周二而不是周一交易。我相信周一前一周的信息已经完成,因此周一应该可以根据这些信息进行交易 是否有可能通过安全函数来解决这个问题,或者我们必须以其他方式对每周烛光的值进行编码 提前谢谢 //@version=4 strategy("MTF Lag Issue", overlay=true) we

有一段时间以来,我们一直在为多时间段策略使用安全功能,希望知道是否有解决策略交易延迟1条的解决方案

正如您在我下面的脚本中所看到的,这个简单的策略在前一周的收盘>开盘时买入,反之亦然时卖出。我的问题是它在周二而不是周一交易。我相信周一前一周的信息已经完成,因此周一应该可以根据这些信息进行交易

是否有可能通过安全函数来解决这个问题,或者我们必须以其他方式对每周烛光的值进行编码

提前谢谢

//@version=4
strategy("MTF Lag Issue", overlay=true)

weekly_open = security(syminfo.tickerid, 'W', open[1], barmerge.gaps_off, barmerge.lookahead_on)
weekly_close = security(syminfo.tickerid, 'W', close[1], barmerge.gaps_off, barmerge.lookahead_on)

weekly_red_candle = weekly_close < weekly_open
weekly_green_candle = weekly_close > weekly_open

weekly_candle_color = weekly_green_candle ? color.lime : weekly_red_candle ? color.red : color.gray

IsMonday = dayofweek == dayofweek.monday
IsTuesday = dayofweek == dayofweek.tuesday

Long = weekly_green_candle
Short = weekly_red_candle


//PLOT
w_o = plot(weekly_open, linewidth=2, color=weekly_candle_color, style=plot.style_circles, title="Open")
w_c = plot(weekly_close, linewidth=3, color=weekly_candle_color, title="Close")

plotchar(IsMonday, title='M', char='M', location=location.abovebar, color=color.yellow, size=size.auto, transp=0)
plotchar(IsTuesday, title='T', char='T', location=location.abovebar, color=color.aqua, size=size.auto, transp=0)

//STRATEGY

strategy.entry('BUY', strategy.long, when=Long)
strategy.entry('SELL', strategy.short, when=Short)
/@version=4
策略(“MTF滞后问题”,overlay=true)
每周\u打开=安全性(syminfo.tickerid,'W',打开[1],barmerge.gaps\u关闭,barmerge.lookahead\u打开)
每周关闭=安全性(syminfo.tickerid,'W',close[1],barmerge.gaps\u关闭,barmerge.lookahead\u打开)
每周\红色\蜡烛=每周\关闭<每周\打开
每周\绿色\蜡烛=每周\关闭>每周\打开
每周一支蜡烛颜色=每周一支绿色蜡烛?颜色。石灰:每周一支红蜡烛?颜色。红色:颜色。灰色
IsMonday=dayofweek==dayofweek.monday
IsTuesday=星期二
长=每周绿色蜡烛
短=每周的红色蜡烛
//密谋
w_o=绘图(每周打开,线宽为2,颜色为每周蜡烛颜色,样式为绘图。样式为圆形,title=“打开”)
w_c=绘图(每周关闭,线宽=3,颜色=每周蜡烛颜色,title=“关闭”)
plotchar(IsMonday,title='M',char='M',location=location.overbar,color=color.yellow,size=size.auto,transp=0)
plotchar(IsTuesday,title='T',char='T',location=location.overbar,color=color.aqua,size=size.auto,transp=0)
//策略
strategy.entry('BUY',strategy.long,when=long)
strategy.entry('SELL',strategy.short,when=short)
使用:


这是一个将在本周初开盘时输入交易的版本。它不使用
security()
。您可以在脚本的设置/输入中返回到上一个策略。请确保在使用前对其进行验证。评论解释了一些新增内容:

//@version=4
strategy("MTF Lag Issue", overlay=true)
useSecurity = input(false, "Use security as before")
showAbnormalWeeks = input(true, "Show abnormal weeks")
showWeekBoundaries = input(true, "Show Beginning and end of weeks")

IsMonday = dayofweek == dayofweek.monday
IsTuesday = dayofweek == dayofweek.tuesday
// Correctly detects beginning of the week on any day.
WeekBegin = change(weekofyear)
// Detect end of week hoping it's a Friday but accommodate weeks with no Friday.
WeekEnd = dayofweek == dayofweek.friday or (WeekBegin and dayofweek[1] != dayofweek.friday)

// New open/close data.
var weekly_open = open
var weekly_close = close
if WeekBegin
    weekly_open := open
if WeekEnd
    weekly_close := close

// Previously used open/close data.
weekly_open2 = security(syminfo.tickerid, 'W', open[1], barmerge.gaps_off, barmerge.lookahead_on)
weekly_close2 = security(syminfo.tickerid, 'W', close[1], barmerge.gaps_off, barmerge.lookahead_on)

weekly_red_candle = useSecurity ? weekly_close2 < weekly_open2 : weekly_close < weekly_open
weekly_green_candle = useSecurity ? weekly_close2 > weekly_open2 : weekly_close > weekly_open

weekly_candle_color = weekly_green_candle ? color.lime : weekly_red_candle ? color.red : color.gray

Long = weekly_green_candle
Short = weekly_red_candle

//PLOT
w_o = plot(useSecurity ? weekly_open2 : weekly_open, linewidth=2, color=weekly_candle_color, style=plot.style_circles, title="Open")
w_c = plot(useSecurity ? weekly_close2 : weekly_close, linewidth=3, color=weekly_candle_color, title="Close")

plotchar(IsMonday, title='M', char='M', location=location.abovebar, color=color.yellow, size=size.auto, transp=0)
plotchar(IsTuesday, title='T', char='T', location=location.abovebar, color=color.aqua, size=size.auto, transp=0)
// Begin and end of week conditions.
plotchar(showWeekBoundaries and WeekBegin, title='WeekBegin', char='▲', location=location.belowbar, color=color.silver, size=size.tiny, transp=0)
plotchar(showWeekBoundaries and WeekEnd, title='WeekEnd', char='▼', location=location.belowbar, color=color.silver, size=size.tiny, transp=0)
// Show weeks with abnormal beginnings/ends.
bgcolor(showAbnormalWeeks and WeekEnd and dayofweek != dayofweek.friday ? color.red : na)
//STRATEGY

strategy.entry('BUY', strategy.long, when=Long)
strategy.entry('SELL', strategy.short, when=Short)
/@version=4
策略(“MTF滞后问题”,overlay=true)
useSecurity=input(false,“像以前一样使用安全性”)
showAbnormalWeeks=输入(true,“showAbnormalWeeks”)
showWeekBoundaries=输入(true,“显示周的开始和结束”)
IsMonday=dayofweek==dayofweek.monday
IsTuesday=星期二
//在任何一天正确检测一周的开始。
WeekBegin=变更(WeekYear)
//检测周末希望是星期五,但适应没有星期五的星期。
WeekEnd=dayofweek==dayofweek.friday或(WeekBegin and dayofweek[1]!=dayofweek.friday)
//新的打开/关闭数据。
var每周\u打开=打开
var每周_关闭=关闭
如果周末开始
每周打开:=打开
如果周末
每周关闭:=关闭
//以前使用的打开/关闭数据。
每周_open2=安全性(syminfo.tickerid,'W',open[1],barmerge.gaps_关闭,barmerge.lookahead_打开)
每周关闭2=安全性(syminfo.tickerid,'W',close[1],barmerge.gaps\u关闭,barmerge.lookahead\u打开)
每周红色蜡烛=使用安全性?每周关闭2<每周打开2:每周关闭<每周打开
每周\绿色\蜡烛=使用安全性?每周关闭2>每周打开2:每周关闭>每周打开
每周一支蜡烛颜色=每周一支绿色蜡烛?颜色。石灰:每周一支红蜡烛?颜色。红色:颜色。灰色
长=每周绿色蜡烛
短=每周的红色蜡烛
//密谋
w\u o=绘图(使用安全?每周\u打开2:每周\u打开,线宽=2,颜色=每周\u蜡烛\u颜色,样式=绘图。样式\u圆圈,title=“打开”)
w_c=绘图(使用安全?每周关闭2:每周关闭,线宽=3,颜色=每周关闭,标题=“关闭”)
plotchar(IsMonday,title='M',char='M',location=location.overbar,color=color.yellow,size=size.auto,transp=0)
plotchar(IsTuesday,title='T',char='T',location=location.overbar,color=color.aqua,size=size.auto,transp=0)
//开始和结束一周的条件。
plotchar(显示WeekBoundaries和WeekBegin,title='WeekBegin',char='1▲', location=location.belowbar,color=color.silver,size=size.tiny,transp=0)
plotchar(showWeekBoundaries and WeekEnd,title='WeekEnd',char='1▼', location=location.belowbar,color=color.silver,size=size.tiny,transp=0)
//显示开始/结束异常的周数。
bgcolor(显示星期和周末以及星期五!=星期五?color.red:na)
//策略
strategy.entry('BUY',strategy.long,when=long)
strategy.entry('SELL',strategy.short,when=short)

非常感谢!我不知道这个特性存在,结果我一直都在看Pine3参考。另一个问题是,有没有可能在周一酒吧的开放式上进行交易?再次感谢。看看这个解决方案,这是否意味着如果我想将此逻辑应用于不同的时间段对,例如“D”和1H,我需要根据时间段每次修改代码?比如用星期一和小时来代替?我希望有一个更普遍的方式进入一个更高的时间框架开始开放栏。可能是可能的,但需要一个更稳健的设计。那代码正是我为你的特殊要求而设计的;没有设计通用解决方案。好吧,如果没有内置的PineScript函数或设置可以实现这一点,那么我假设通用解决方案会非常复杂。谢谢你的信息。
//@version=4
strategy("MTF Lag Issue", overlay=true)
useSecurity = input(false, "Use security as before")
showAbnormalWeeks = input(true, "Show abnormal weeks")
showWeekBoundaries = input(true, "Show Beginning and end of weeks")

IsMonday = dayofweek == dayofweek.monday
IsTuesday = dayofweek == dayofweek.tuesday
// Correctly detects beginning of the week on any day.
WeekBegin = change(weekofyear)
// Detect end of week hoping it's a Friday but accommodate weeks with no Friday.
WeekEnd = dayofweek == dayofweek.friday or (WeekBegin and dayofweek[1] != dayofweek.friday)

// New open/close data.
var weekly_open = open
var weekly_close = close
if WeekBegin
    weekly_open := open
if WeekEnd
    weekly_close := close

// Previously used open/close data.
weekly_open2 = security(syminfo.tickerid, 'W', open[1], barmerge.gaps_off, barmerge.lookahead_on)
weekly_close2 = security(syminfo.tickerid, 'W', close[1], barmerge.gaps_off, barmerge.lookahead_on)

weekly_red_candle = useSecurity ? weekly_close2 < weekly_open2 : weekly_close < weekly_open
weekly_green_candle = useSecurity ? weekly_close2 > weekly_open2 : weekly_close > weekly_open

weekly_candle_color = weekly_green_candle ? color.lime : weekly_red_candle ? color.red : color.gray

Long = weekly_green_candle
Short = weekly_red_candle

//PLOT
w_o = plot(useSecurity ? weekly_open2 : weekly_open, linewidth=2, color=weekly_candle_color, style=plot.style_circles, title="Open")
w_c = plot(useSecurity ? weekly_close2 : weekly_close, linewidth=3, color=weekly_candle_color, title="Close")

plotchar(IsMonday, title='M', char='M', location=location.abovebar, color=color.yellow, size=size.auto, transp=0)
plotchar(IsTuesday, title='T', char='T', location=location.abovebar, color=color.aqua, size=size.auto, transp=0)
// Begin and end of week conditions.
plotchar(showWeekBoundaries and WeekBegin, title='WeekBegin', char='▲', location=location.belowbar, color=color.silver, size=size.tiny, transp=0)
plotchar(showWeekBoundaries and WeekEnd, title='WeekEnd', char='▼', location=location.belowbar, color=color.silver, size=size.tiny, transp=0)
// Show weeks with abnormal beginnings/ends.
bgcolor(showAbnormalWeeks and WeekEnd and dayofweek != dayofweek.friday ? color.red : na)
//STRATEGY

strategy.entry('BUY', strategy.long, when=Long)
strategy.entry('SELL', strategy.short, when=Short)