【问题标题】:Pinescript storing high and low value's errorPinescript 存储高低值的错误
【发布时间】:2021-06-01 01:03:17
【问题描述】:

我正在尝试模拟一个相对基本的交易策略,但不幸的是我的尝试没有奏效。

本质上,当有一根红色蜡烛时,只要下一根蜡烛收盘价高于该红色蜡烛的高点,您就会买入。当下一个红色蜡烛收盘价低于原始红色蜡烛的低点时,该买入价格不断转向下一个较低的高点。因此忽略蜡烛低点和高点内的任何移动。进入后,只要下一根蜡烛低于您购买的蜡烛的低点,您就卖出。随着新的和更高的绿色蜡烛的产生,这再次不断上升。

//@version=4

strategy("9gag", pyramiding = 1, overlay=true)
candlehigh = 0.0
candlelow = 0.0
var bool enable = false


if ( close < open and enable == false )
    candlehigh := high
    candlelow := low
    enable := true
    
if (enable == true and close < candlelow)
    candlehigh := high
    candlelow := low
    enable := true

if (close > candlehigh and enable == true )
    strategy.entry("long",strategy.long,1.0,when = close > candlehigh)
    enable := false
    
if (close < candlelow and enable == true)
    strategy.close("long", when = close < candlelow)
    enable := false

所以我试图让这个工作的方式是如果收盘

然后下一个代码块检查自上次从上一个代码块记录最后一根蜡烛的低点以来是否已经形成了较低的收盘价。如果这是真的,那么将再次记录最近柱的低点和高点。

此后,只要柱线收盘价高于最后记录的烛形高点,就会进行入场。

enable 设置为 false,因此可以重复。

现在代码向我吐出任何错误,但没有进行任何交易,因此它似乎不起作用。

我找不到任何不应该工作的原因,感谢任何帮助。

谢谢!

【问题讨论】:

    标签: pine-script


    【解决方案1】:

    我认为这应该可以完成您正在尝试做的事情。我没有按照您的方式构建,而是跟踪您是否处于长期状态。请记住,订单在信号的下一个柱的开盘时执行。绿色箭头代表进入条件出现的条形,红色x代表满足条件平仓。

    我们使用barstate.isconfirmed 来检查当前柱的收盘条件。为了保持简洁,我使用布尔变量enter_longexit_long 将逻辑与进入/关闭命令分开。然后我们还可以使用这些布尔变量来plotshape() 来直观地检查逻辑。如果您想稍后添加其他条件,您可以使用相同的布尔值来翻转一个条目命令,或者为每种类型的条目条件使用多个不同的布尔值,即enter_x_longenter_y_long 等。当事情不可避免地不按计划工作,让plotshape() 映射出您的不同条件将使调试更容易。

    在编写这些类型的代码以绘制您的关卡(如要调试的烛台)时也很有帮助。

    var float candlehigh = na
    var float candlelow = na
    
    var bool in_a_long = false
    bool enter_long = false
    bool exit_long = false
    
    if barstate.isconfirmed
        if in_a_long == false
            if close < open
                candlehigh := high
                candlelow := low
            else if close > open and close > candlehigh and close[1] < open[1]
                candlehigh := high
                in_a_long := true
                enter_long := true
        else if in_a_long == true
            if close < open
                if close < candlelow
                    in_a_long := false
                    exit_long := true
                    candlehigh := high
                    candlelow := low
                else if close > candlelow and low > candlelow
                    candlelow := low
            else if close > open and low > candlelow
                candlelow := low
        strategy.entry("long", strategy.long, 1.0, when = enter_long)
        strategy.close("long", when = exit_long)
    
    plot(candlehigh, color = color.lime)
    plot(candlelow, color = color.red)
    plotshape(enter_long, style = shape.triangleup, location = location.belowbar, color = color.lime, size = size.small)
    plotshape(exit_long, style = shape.xcross, location = location.abovebar, color = color.red, size = size.small)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-03
      • 2021-06-30
      • 1970-01-01
      • 2022-08-16
      • 1970-01-01
      • 1970-01-01
      • 2021-04-21
      • 2023-02-26
      相关资源
      最近更新 更多