首页 > 解决方案 > 绘制一条长度有限的水平线

问题描述

我有一个数据集,其中包含当天的数量dates和预测low/high
对于我数据集中的每一天,我想绘制一条从该会话开始到结束的水平线,表示预测的低/高。

考虑下图的 SPX 15 分钟图表。蓝线是的会话图
的示例。 low/high03/05/2020

在此处输入图像描述

我的示例数据集采用这种格式[(Date1,Low1,High1),(Date2,Low2,High2),...]

[(03/02/2020,2850,2950),(03/03/2020,2975,3050),(03/04/2020,3125,3225),(03/05/2020,3080,3160),(03/06/2020,2900,2960)]

有谁知道如何开始构建可以绘制此图的 Pine 代码?

标签: pine-script

解决方案


你可以从这里开始:

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © adolgov

//@version=4
study("My Script", overlay = true)

drawHiLo(y,m,d,h,l) =>
    var hl = line.new(0,h,1,h)
    var ll = line.new(0,l,1,l)
    prevDate = timestamp(year[1],month[1],dayofmonth[1],0,0,0)
    curDate = timestamp(year,month,dayofmonth,0,0,0)
    date = timestamp(y,m,d,0,0,0)
    dateEnd = timestamp(y,m,d+1,0,0,0)
    if prevDate < date and curDate >= date
        line.set_x1(hl, bar_index)
        line.set_x1(ll, bar_index)
    if bar_index > 0 and prevDate < dateEnd and curDate >= date
        line.set_x2(hl, bar_index-1)
        line.set_x2(ll, bar_index-1)

if bar_index > 0
    drawHiLo(2020,03,02, 2850,2950)
    drawHiLo(2020,03,03, 2975,3050)
    drawHiLo(2020,03,04, 3125,3225)
    drawHiLo(2020,03,05, 3080,3160)
    drawHiLo(2020,03,06, 2900,2960)

推荐阅读