首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >限制研究中的条数

问限制研究中的条数
EN

Stack Overflow用户
提问于 2021-05-14 08:21:07
回答 2查看 157关注 0票数 1

我有一个正在进行的复杂研究,当我更新和保存代码时,它需要很长时间来绘制/加载结果。有没有办法限制研究将分析的条形图的数量,我需要几个月的数据,而不是几年的数据?

我在学习函数中尝试了max_bars_back,但它似乎没有任何作用。

代码语言:javascript
复制
//30 minute 2 months worth of bars - 2880
study(title="MyScriptStudy", overlay=true, max_bars_back=2880)

我也希望当我使用“回放条”工具时,一个解决方案会起作用,这样我就可以从开始条切开的地方获得2个月的条。因此,如果我从3月1日开始切片,我会将条形图恢复到1月1日,我认为这将有助于更快地加载我的研究。

EN

回答 2

Stack Overflow用户

发布于 2021-05-14 15:13:38

您可以使用类似f_tradeDateIsAllowed()的函数将日期过滤添加到脚本中

代码语言:javascript
复制
//@version=4
study("Date Filtering", "", true)
i_dateFilter    = input(false,  "═════ Date Range Filtering ═════")
i_fromYear      = input(2020,   "From Year",    minval = 1900)
i_fromMonth     = input(1,      "From Month",   minval = 1, maxval = 12)
i_fromDay       = input(1,      "From Day",     minval = 1, maxval = 31)
i_toYear        = input(2999,   "To Year",      minval = 1900)
i_toMonth       = input(1,      "To Month",     minval = 1, maxval = 12)
i_toDay         = input(1,      "To Day",       minval = 1, maxval = 31)

fromDate        = timestamp(i_fromYear, i_fromMonth, i_fromDay, 00, 00)
toDate          = timestamp(i_toYear, i_toMonth, i_toDay, 23, 59)

f_tradeDateIsAllowed() => not i_dateFilter or (time >= fromDate and time <= toDate)


enterLong       = f_tradeDateIsAllowed() and crossover(rsi(close, 14), 50)
plotchar(enterLong, "enterLong", "▲", location.belowbar, color.lime, size = size.tiny)

max_bars_back的含义是不同的。使用max_bars_back=2880,您的脚本将存储更多数据,加载速度会更慢。

你也可以实现类似这样的东西:https://www.pinecoders.com/faq_and_code/#how-can-i-keep-only-the-last-x-labels-or-lines

票数 1
EN

Stack Overflow用户

发布于 2021-05-16 04:32:29

我为自己的特殊情况找到了一个解决方案,可能会对其他人有所帮助。此代码仅可用于在特定时间范围内添加曲线图,2个月的条形图

代码语言:javascript
复制
// Bar limiter
i_startTime = input(defval = timestamp("1 Feb 2020 04:30 +0000"), title = "Start Time", type = input.time)
i_endTime = input(defval = timestamp("1 April 2020 04:30 +0000"), title = "End Time", type = input.time)

bar_range(data) => 
    allow = time >= i_startTime and time <= i_endTime ? data : na
    
ema_200 = ema(close, 200)
plot(bar_range(ema_200), title="EMA 200", color=#fff176, linewidth=3)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67527653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档