我试图使用trend_line
API在TradingView屏幕上绘制一个形状(使用createMultipointShape()
图表方法的TradingView),该形状有两个任意的日期点。我能够用已经过去的时间戳在屏幕上放置形状,这没有任何问题。
但是,当在未来的中绘制带有时间戳的形状时,TradingView将在当前日期切断该形状。
例如,有了点数:{time: 1567330140, price: 11500}
(2019-09-01)和{time: 1569835740, price: 11500}
(2019-09-30),TradingView显示了以下输出:在当前日期断线的TradingView图表;所绘制的是洋红虚线,当前日期为2019年-09-16。。
当我用手画这个形状时,没有这样的限制。我似乎无法在未来画出任何形状,而不仅仅是trend_line
。有办法绕过这件事吗?这些文档仅指定如下:
createMultipointShape(点数、选项) points:对象数组[{时间、价格、通道}、.] 时间: unix时间。唯一的强制性论点。
horizontal_ray
确实可以工作(根据定义,这条线将永远持续下去),但它并没有解决我在点之间有一条线的问题。
发布于 2019-09-16 15:55:32
要在未来绘制形状,您必须确保point
的point
与当前正在打印的任何bin/interval蜡烛成直线,并将time
作为未来蜡烛打开的确切时间戳。
在您的示例中,1569835740 * 1000
(转换为ms的时间戳)是Mon Sep 30 2019 09:29:00
-因此,如果我们要打印1小时条形图,则时间戳必须是9:00:00
而不是9:29:00
。
首先在ms (x1000):1569835740000
中获得您的时间
知道ms中的1小时是3600000,我们就可以找到剩下的,看看我们有多少钱:
1569835740000 % 3600000 = 1740000
移除剩余部分以获得ms中的良好时间戳,然后转换回所需的电视格式:
time = (1569835740-1740000) / 1000
如果使用不兼容的多个时间框架,则可能必须根据当前图表间隔动态调整余数计算。
完整代码:
let time = 1569835740
time = time * 1000
let rem = time % 3600000
time = (time - rem) / 1000
widget.chart().createMultipointShape([
{
time: 1567330140
, price: 10500
},
{
time: time
, price: 10500
}
], {
shape: 'trend_line',
})
结果:
https://stackoverflow.com/questions/57955034
复制相似问题