【发布时间】:2022-07-26 23:02:51
【问题描述】:
我想获取有关在特定时间范围内出现一天最低点的次数的统计数据。我想获得这些数据的唯一方法是编写 Pinescript 策略。
我目前使用entryTime = input.session('0700-0900’) 指定何时应该搜索该值(图片下方的绿色区域一);
和tdayLow = request.security(tickername, 'D', low[0], lookahead=barmerge.lookahead_on) 指定应搜索的什么值。
我打算得到一个看起来像 this 的结果(每天一个或没有条目,因为只能有一个最低点)。不幸的是,它看起来像this(有几个条目,我不知道是怎么拍的,这取决于我所处的时间范围,没有一个是在当天的低点拍的)。
因为我想找到当天的最低点,所以我所处的时间框架不应该改变我得到的结果,这与我目前使用下面的代码获得的结果不同。
//@version=5
strategy("Day Low", overlay=true, margin_long=100, margin_short=100)
// === CURRENT DAY LOW ===
var tickername = ticker.new(syminfo.prefix, syminfo.ticker)
tlow = request.security(tickername, 'D', low[0], lookahead=barmerge.lookahead_on)
// === INPUT DATE RANGE ===
fromMonth = input.int(defval = 7, title = "From Month", minval = 1, maxval = 12)
fromDay = input.int(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromYear = input.int(defval = 2022, title = "From Year", minval = 2019)
thruMonth = input.int(defval = 1, title = "Thru Month", minval = 1, maxval = 12)
thruDay = input.int(defval = 1, title = "Thru Day", minval = 1, maxval = 31)
thruYear = input.int(defval = 2112, title = "Thru Year", minval = 2019)
// === INPUT TIME RANGE ===
entryTime = input.session('0700-0900', title = "Entry Time") // '0700-0900' is anytime to enter
exitTime = input.session('0800-2000', title = "Exit Time") // '0700-2000' is anytime to exit
// === DATE & TIME RANGE FUNCTIONS ===
isDate() =>
start = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finish = timestamp(thruYear, thruMonth, thruDay, 23, 59)
isDate = time >= start and time <= finish
isTime(_position) =>
isTime = time(timeframe.period, _position + ':1234567')
// === LOGIC ===
enterLong = tlow
exitLong = tlow + 20
// === EXECUTION ===
strategy.entry("L", strategy.long, when = isDate() and isTime(entryTime) and enterLong)
strategy.close("L", when = isDate() and isTime(exitTime) and exitLong)
有人可以帮我获得与第一张图片相似的结果吗?谢谢!
PS :我显然不是想找到一种可以找到当天最低点的策略,而只是根据历史数据来跟踪它的制定时间。
【问题讨论】:
标签: pine-script tradingview-api pinescript-v5