首页 > 解决方案 > 在 strategy.entry() 中使用 Pine-Script timestamp() 函数时遇到问题

问题描述

我正在尝试在特定日期/时间创建交易,但由于某种原因,交易创建晚了 1 小时。本来应该是18:00进的,现在是19:00进的

在下面的示例代码中,使用与我在 stretegy.entry 和 exit 代码中使用的完全相同的时间戳格式,label.new 在指定时间 2021 年 8 月 5 日 03:00:00 UTC-7 正确创建但策略.entry 创建晚了 1 小时。有谁知道为什么会发生这种情况?我知道我可以通过将时间设置为 UTC-6 来“解决”这个问题,但这当然只是一个小技巧:[这是显示我的问题的屏幕截图,正如您在策略摘要中看到的那样,输入错误在 19:00 而不是 18:00 添加] 1

//@version=4
strategy("My Script", currency=currency.USD, max_boxes_count = 500, max_lines_count = 500,pyramiding = 100, overlay=true)

entryTime = timestamp("05 Aug 2021 18:00:00 UTC-7")
strategy.entry(id="Long", long=strategy.long, when=(time == entryTime))
strategy.exit(id="Long Exit", from_entry="Long", limit=110.076, stop=109.676, when=(time == entryTime))

entryTime := timestamp("05 Aug 2021 03:00:00 UTC-7")
if (time == entryTime)
    labeltext = tostring(entryTime)
    label.new(bar_index, high, text = "05 Aug 2021 03:00:00 UTC-7")

标签: pine-script

解决方案


label.new功能在满足条件后立即绘制标签。strategy.entry()函数的工作方式不同[1]

默认情况下,在每根柱线收盘时计算一次策略。在该计算期间,该策略能够生成新订单或更新现有订单。但是当柱线已经收盘时,它就不能再交易了,因此策略订单最早可以被执行的时刻是在下一根柱线的开盘时。因此,默认情况下,该策略将在满足入场条件后一柱开仓。


推荐阅读