【问题标题】:Is there a way to get the OHLC of first and second candle of the day in Pine Script有没有办法在 Pine Script 中获得当天第一根和第二根蜡烛的 OHLC
【发布时间】:2021-04-27 02:06:55
【问题描述】:

我想要 5 分钟时间范围内当天第一根和第二根蜡烛的 OHLC 数据。即第一个 5 分钟蜡烛的 OHLC 和第二个 5 分钟蜡烛的 OHLC。我尝试了以下方法。

is_newbar(res) =>
    t = time(res)
    change(t) != 0 ? 1 : 0

is_newbar1(res) =>
    t = time(res)
    change(t[1]) != 0 ? 1 : 0

newbar = is_newbar("D")
newbar1 = is_newbar1("D")

var float s1 = na
var float s2 = na
var float s3 = na
var float s4 = na
if newbar
    s1 := low
    s2 := high
    s3 := close
    s4 := open

var float s11 = na
var float s12 = na
var float s13 = na
var float s14 = na
if newbar1
    s11 := low
    s12 := high
    s13 := close
    s14 := open

获得这些值后,我正在为范围突破编码,例如 if s13>s3 then do something.问题是,它不仅实时获取前两个蜡烛值,而且考虑每根蜡烛 OHLC 并尝试每次都匹配 if 条件。我希望它执行一次并显示结果。请帮帮我。

【问题讨论】:

  • 我使用的是version4

标签: pine-script trading algorithmic-trading


【解决方案1】:

这是我通常用于在特定时间进行买卖的方法。我使用这个脚本来回测 BTST 策略。由于您想在特定时间触发买入/卖出操作,您实际上可以在脚本中提供小时和分钟。您只需要确保在您想要的点上有一个接近点,基本上,保持分辨率小于 5 分钟,并且可以每隔 5 分钟给出一个蜡烛。 (在你的情况下是 1 分钟和 5 分钟的蜡烛)

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SaiyadRasikh
//@version=4
strategy("Stackoverflow_Answer", overlay = true)

// Allowing only Long entries
strategy.risk.allow_entry_in(strategy.direction.long)

//Considering Nifty as the Index
var s_close = 0.0

if (hour(time) == 09 and minute(time) == 20)
    s_close := close
    
buy = s_close > s_close[1] //Condition where second candleis close is higher than first candle close, Then enter the trade
sell = s_close < s_close[1]

strategy.entry("Long", strategy.long, when = buy,comment="Buy")
strategy.entry("Short", strategy.short, when = sell,comment="Sell")

上面的代码作为情节你会得到类似的东西。

【讨论】:

  • 你能提供完整的代码,以便我调整和测试吗?
  • 编辑了我的代码,我想这就是你想要实现的。使用 5 分钟蜡烛,然后 close[1] 将为您提供前一根蜡烛的收盘价。使用它,您可以触发您的条件。 Hepe 这会有所帮助。和平!
  • 这很棒。但需要一点点改变。现在它在蜡烛关闭后立即建立位置。我们可以让它像,如果蜡烛的高点或低点被打破,那么只买/卖吗?你能帮帮我吗?
  • 你应该使用有问题的蜡烛的高点,如果它的高点高于价格才被打破然后买入/卖出。 @PrasannaKumarSR
【解决方案2】:

嗨@Prasanna Kumar S R,

不要使用 if 并将值保存到变量中,而是尝试使用“valuewhen”。 我一直在制定一个策略,我必须将第一个手柄保存在高位。我使用了以下代码 '''d = valuewhen( (is_first), high, 0 )''' 当我绘制“d”时它的常数直到一天结束。

【讨论】:

    猜你喜欢
    • 2021-01-24
    • 2021-08-17
    • 1970-01-01
    • 2021-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多