Pine script 关于获取上一个蜡烛OHLC的Pine脚本帮助

Pine script 关于获取上一个蜡烛OHLC的Pine脚本帮助,pine-script,Pine Script,我的代码试图在一张15分钟的图表上得出以下结论 第二个15分钟的蜡烛应该是一个内部的酒吧 第三支15分钟蜡烛应该打破第一支15分钟蜡烛的高度 上述情况持续时间较长。 为了测试策略,我编写了以下代码 //@version=4 strategy(title="15minbreak") CdlHigh=0.0 CdlLow=0.0 if(hour(time)==09 and minute(time) == 45) CdlHigh := high CdlLow :

我的代码试图在一张15分钟的图表上得出以下结论

  • 第二个15分钟的蜡烛应该是一个内部的酒吧
  • 第三支15分钟蜡烛应该打破第一支15分钟蜡烛的高度
  • 上述情况持续时间较长。 为了测试策略,我编写了以下代码

    //@version=4
    strategy(title="15minbreak")
    
    CdlHigh=0.0
    CdlLow=0.0
    
    if(hour(time)==09 and minute(time) == 45)
        CdlHigh := high
        CdlLow := low
        
    isInside = ((CdlHigh[1] < CdlHigh[0]) and (CdlLow[1] > CdlLow[0])) // 2nd cdl is inside bar
    nextCdlBreak = CdlHigh > CdlHigh[0] // 3rd cdl has given a breakout.
    
    goLong = (isInside and nextCdlBreak)
    closeLong = (low < CdlLow[0])
    
    strategy.entry("Long",strategy.long,100,when = goLong)
    strategy.close("Long",when = closeLong)
    
    /@version=4
    策略(title=“15入侵”)
    CdlHigh=0.0
    CdlLow=0.0
    如果(小时(时间)==09分钟(时间)==45)
    CdlHigh:=高
    CdlLow:=低
    isInside=((CdlHigh[1]CdlLow[0])//第二个cdl在条内
    nextCdlBreak=CdlHigh>CdlHigh[0]//第三个cdl已发出断开信号。
    goLong=(isInside和nextCdlBreak)
    closeLong=(低
    但是当我运行代码时,我什么也看不到。
    我不确定我在这里遗漏了什么。请求帮助。

    您正在将9:45烛光的高度指定给CdlHigh,然后对生成最后一个值的变量使用历史引用运算符
    []
    。请尝试打开数据窗口并查看变量:

    plotchar(CdlHigh,'cdlhigh','')
    plotchar(CdlHigh[1],'cdlhigh','')
    
    对于调试,我们可以首先将时间转换为一个变量并绘制它,以查看它是否工作:

    second_candle = hour(time)==09 and minute(time) == 45
    plotshape(second_candle, style=shape.circle, color=color.black, size=size.small)    
    
    现在,您已经验证了它是否正确地选择了蜡烛,您可以通过添加条件继续调试。根据我查找的定义,内部栏表示前面的栏具有较高的上限和较低的下限。您可以将条件组合成一个变量,或使用单独的变量,如下所示:

    //@version=4
    strategy(title="15minbreak", overlay=true)
    
    
    second_candle = hour(time)==09 and minute(time) == 45
    inside_bar = high[1] > high and low[1] < low
    special_candle = inside_bar and second_candle
    
    plotshape(special_candle, style=shape.circle, color=color.black, size=size.small)    
    
    这应该足以生成一个进入条件。很难判断出你想要的退出条件是什么,因为你使用了一个用于存储第二个蜡烛高的变量的历史引用。如果是这样,你需要用
    var
    关键字初始化一个变量,并在第二个蜡烛高时存储该值_candle的计算结果为true,或者可能使用
    valuewhen
    函数

    var float exit_low = na
    if second_candle
        exit_low := low
    

    谢谢你的回复。我会尝试并更新。至于退出条件。我基本上是说,只要第三个15分钟烛光的低点被打破,交易就会结束。这可以在白天的任何时候发生
    var float exit_low = na
    if second_candle
        exit_low := low