0

有点抱歉,并提前感谢您的帮助。
我正在研究支点标准指标。它使用数组来绘制拉高前低点的线,从前一天收盘。我正在尝试添加一些东西,然后结合我必须的其他一些指标。但首先是在添加所有我需要基本指标才能运行的附加功能之前。我不需要的是中枢轴水平,所以我把它们写进去了,当我将代码添加到三种不同类型枢轴的数学部分时,这给我带来了一些麻烦。我已经重新安排了更改等表达式,但没有工作。有关更多信息,请参见贝洛。

line 173: Cannot call 'operator +' with argument 'expr0'='r3'. An argument of 'float[]' type 
was used but a 'const int' is expected
Cannot call 'operator +' with argument 'expr1'='r2'. An argument of 'float[]' type was used 
but a 'const int' is expected;  

--------> 此错误出现在第 150-157、169-174 和 189-196 行。我正在尝试添加到指标中间枢轴线,以便输入数学数组等,以获取代码以绘制位于每个枢轴区域中间的虚线。我相信我已经将它们的编写代码添加到流行但即使在移动所有内容并重新加载之后也会发生此错误。非常感谢帮助

第 148 行:不能使用参数 'expr0'='call 'array.push' (void)' 调用 'operator/'。使用了“void”类型的参数,但需要使用“const int”;第 149 行:无法使用参数 'expr1'='s1' 调用 'operator +'。使用了“float[]”类型的参数,但需要使用“系列浮点”;第 149 行:不能使用参数 'expr0'='call 'array.push' (void)' 调用 'operator/'。使用了“void”类型的参数,但需要使用“const int”;

----------->这些线刚好在 148,149 之上。我已经在等式中将“p”换成了 pivotX_Median,但这并没有起到多大作用。我还更改了数学表达式以及删除了 math.round_to_mintick 部分以及添加了 array.push 我也尝试了 array.min 也没有这样的运气。我对此非常陌生,真的只是摸索着通过这一切。该手册没有完全解释很多,也没有编码背景,也没有人在 Fivrr、upwork 或 TV 上回复我希望这里有人可以提供帮助。干杯。我还有一些其他问题,因为我也尝试用绘图来做到这一点,似乎一个超级简单的任务很难正确完成,并且在指标上需要所有正确的东西来使其成为一种策略。

我也在尝试添加到指标中。我正在尝试为每周时间范围放置另一组枢轴和中点,它们是它们自己的颜色,并且可编辑,就像数组可编辑一样。这样做的重点是在右侧列上获取标签,例如 emas 生产,这样您就可以轻松查看这些行的价格。以及在线上有适当的标签,这样你就可以看到你在哪里,即 S1 R1 mid piv S4 等。指标中缺少的另一件事是能够检查数学应该有一个手动输入,我注意到了我使用的 4 或 5 个指标都以稍微不同的方式表达了枢轴线。有些数学很差,有些我不确定。并且在开市前没有出现线条,蜡烛已经从前一天关闭,有时线条不会在屏幕上出现几分钟。如果您愿意,它应该能够关闭较高的时间框架枢轴,因此小时及以下是一个级别,小时和每天是一个级别,而每天是另一个级别。这三组线你应该能够一起绘制,这样你就可以更好地了解价格行为正在发生的情况。大多数枢轴指标没有警报,它们确实需要抵消警报,因此当价格行为接近枢轴区域时,您可以收到警报。对不起,啰嗦了谢谢 这三组线你应该能够一起绘制,这样你就可以更好地了解价格行为正在发生的情况。大多数枢轴指标没有警报,它们确实需要抵消警报,因此当价格行为接近枢轴区域时,您可以收到警报。对不起,啰嗦了谢谢 这三组线你应该能够一起绘制,这样你就可以更好地了解价格行为正在发生的情况。大多数枢轴指标没有警报,它们确实需要抵消警报,因此当价格行为接近枢轴区域时,您可以收到警报。对不起,啰嗦了谢谢

让我知道谢谢我正在研究支点标准指标。它使用数组来绘制拉高前低点的线,从前一天收盘。

//@version=5
indicator("Pivot Points Standard", "Pivots", overlay=true, max_lines_count=500, max_labels_count=500)

AUTO = "Auto"
DAILY = "Daily"
WEEKLY = "Weekly"
MONTHLY = "Monthly"
QUARTERLY = "Quarterly"
YEARLY = "Yearly"
BIYEARLY = "Biyearly"
TRIYEARLY = "Triyearly"
QUINQUENNIALLY = "Quinquennially"
DECENNIALLY = "Decennially"

TRADITIONAL = "Traditional"
FIBONACCI = "Fibonacci"
CLASSIC = "Classic"


kind = input.string(title="Pivot Type", defval="Traditional", options=[TRADITIONAL, FIBONACCI, CLASSIC], group= 'PIVOT TYPE & TIME FRAMES')
pivot_time_frame = input.string(title="Pivot Timeframe", defval=AUTO, options=[AUTO, DAILY, WEEKLY, MONTHLY, QUARTERLY, YEARLY, BIYEARLY, TRIYEARLY, QUINQUENNIALLY, DECENNIALLY], group= 'PIVOT TYPE & TIME FRAMES')
higher_pivot_time_frame = input.string(title=" Higher Pivot Timeframe", defval=WEEKLY, options=[AUTO, DAILY, WEEKLY, MONTHLY, QUARTERLY, YEARLY, BIYEARLY, TRIYEARLY, QUINQUENNIALLY, DECENNIALLY], group= 'PIVOT TYPE & TIME FRAMES')
look_back = input.int(title="Number of Pivots Back", defval=5, minval=1, maxval=500, group= 'PIVOT TYPE & TIME FRAMES')
is_daily_based = input.bool(title="Use Daily-based Values", defval=true, group= 'PIVOT TYPE & TIME FRAMES',
  tooltip="When this option is unchecked, Pivot Points will use intraday data while calculating on intraday charts. If Extended Hours are displayed on the chart, they will be taken into account during the pivot level calculation. If intraday OHLC values are different from daily-based values (normal for stocks), the pivot levels will also differ.")
show_labels = input.bool(title="Show Labels", defval=true, inline="labels", group= 'PIVOT TYPE & TIME FRAMES')
position_labels = input.string("Left", "", options=["Left", "Right"], inline="labels")
showLabels = input.bool(true, title='Show Labels', inline='labels', group='MORE SETTINGS')
label_size = input.string('small', options=['auto', 'tiny', 'small', 'normal', 'large', 'huge'], title='- size', inline='labels', group='MORE SETTINGS')
showOnlyLastLabels = input.bool(false, title='Only today\'s labels', inline='labels', group='MORE SETTINGS')
display_value = input.bool(true, title='Show Price Values in Labels', group='MORE SETTINGS')
nbarsforward = input.int(title='Offset labels N bars to the right', defval=50, group='MORE SETTINGS')
ndays = input.int(title='Show extensions & labels only for N days', defval=5, group='MORE SETTINGS')

//PIVOTS
var DEF_COLOR = #3179f5
var arr_time = array.new_int()
var p = array.new_float()
p_show = input.bool(true, "P‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏", inline="P", group='PIVOTS, AND COLORS')
p_color = input.color(DEF_COLOR, "", inline="P", group='PIVOTS, AND COLORS')
var r1 = array.new_float()
var s1 = array.new_float()
s1r1_show = input.bool(true, "S1/R1", inline="S1/R1", group='PIVOTS, AND COLORS')
s1r1_color = input.color(DEF_COLOR, "", inline="S1/R1", group='PIVOTS, AND COLORS')
var r2 = array.new_float()
var s2 = array.new_float()
s2r2_show = input.bool(true, "S2/R2", inline="S2/R2", group='PIVOTS, AND COLORS')
s2r2_color = input.color(DEF_COLOR, "", inline="S2/R2", group='PIVOTS, AND COLORS')
var r3 = array.new_float()
var s3 = array.new_float()
s3r3_show = input.bool(true, "S3/R3", inline="S3/R3", group='PIVOTS, AND COLORS')
s3r3_color = input.color(DEF_COLOR, "", inline="S3/R3", group='PIVOTS, AND COLORS')
var r4 = array.new_float()
var s4 = array.new_float()
s4r4_show = input.bool(true, "S4/R4", inline="S4/R4", group='PIVOTS, AND COLORS')
s4r4_color = input.color(DEF_COLOR, "", inline="S4/R4", group='PIVOTS, AND COLORS')
var r5 = array.new_float()
var s5 = array.new_float()
s5r5_show = input.bool(true, "S5/R5", inline="S5/R5", group='PIVOTS, AND COLORS')
s5r5_color = input.color(DEF_COLOR, "", inline="S5/R5", group='PIVOTS, AND COLORS')
//MID PIVOTS
var r1m = array.new_float()
var s1m = array.new_float()
s1mr1m_show = input.bool(true, "MS1/R1", inline="MS1/R1", group='PIVOTS, AND COLORS')
s1mr1m_color = input.color(DEF_COLOR, "", inline="MS1/R1", group='PIVOTS, AND COLORS')
var r2m = array.new_float()
var s2m = array.new_float()
s2mr2m_show = input.bool(true, "MS2/R2", inline="MS2/R2", group='PIVOTS, AND COLORS')
s2mr2m_color = input.color(DEF_COLOR, "", inline="MS2/R2", group='PIVOTS, AND COLORS')
var r3m = array.new_float()
var s3m = array.new_float()
s3mr3m_show = input.bool(true, "MS3/R3", inline="MS3/R3", group='PIVOTS, AND COLORS')
s3mr3m_color = input.color(DEF_COLOR, "", inline="MS3/R3", group='PIVOTS, AND COLORS')
var r4m = array.new_float()
var s4m = array.new_float()
s4mr4m_show = input.bool(true, "MS4/R4", inline="MS4/R4", group='PIVOTS, AND COLORS')
s4mr4m_color = input.color(DEF_COLOR, "", inline="MS4/R4", group='PIVOTS, AND COLORS')
var r5m = array.new_float()
var s5m = array.new_float()
s5mr5m_show = input.bool(true, "MS5/R5", inline="MS5/R5", group='PIVOTS, AND COLORS')
s5mr5m_color = input.color(DEF_COLOR, "", inline="MS5/R5", group='PIVOTS, AND COLORS')
pivotX_open = float(na)
pivotX_open := nz(pivotX_open[1], open)
pivotX_high = float(na)
pivotX_high := nz(pivotX_high[1], high)
pivotX_low = float(na)
pivotX_low := nz(pivotX_low[1], low)
pivotX_prev_open = float(na)
pivotX_prev_open := nz(pivotX_prev_open[1])
pivotX_prev_high = float(na)
pivotX_prev_high := nz(pivotX_prev_high[1])
pivotX_prev_low = float(na)
pivotX_prev_low := nz(pivotX_prev_low[1])
pivotX_prev_close = float(na)
pivotX_prev_close := nz(pivotX_prev_close[1])



get_pivot_resolution() =>
    resolution = "M"
    if pivot_time_frame == AUTO
        if timeframe.isintraday
            resolution := timeframe.multiplier <= 15 ? "D" : "W"
        else if timeframe.isweekly or timeframe.ismonthly
            resolution := "12M"
    else if pivot_time_frame == DAILY
        resolution := "D"
    else if pivot_time_frame == WEEKLY
        resolution := "W"
    else if pivot_time_frame == MONTHLY
        resolution := "M"
    else if pivot_time_frame == QUARTERLY
        resolution := "3M"
    else if pivot_time_frame == YEARLY or pivot_time_frame == BIYEARLY or pivot_time_frame == TRIYEARLY or pivot_time_frame == QUINQUENNIALLY or pivot_time_frame == DECENNIALLY
        resolution := "12M"
    resolution

var lines = array.new_line()
var labels = array.new_label()

draw_line(i, pivot, col) =>
    if array.size(arr_time) > 1
        array.push(lines, line.new(array.get(arr_time, i), array.get(pivot, i), array.get(arr_time, i + 1), array.get(pivot, i), color=col, xloc=xloc.bar_time))

draw_label(i, y, txt, txt_color) =>
    if show_labels
        offset = '‏  ‏  ‏  ‏  ‏'
        labels_align_str_left= position_labels == "Left" ? txt + offset : offset + txt
        x = position_labels == "Left" ? array.get(arr_time, i) : array.get(arr_time, i + 1)
        array.push(labels, label.new(x = x, y=y, text=labels_align_str_left, textcolor=txt_color, style=label.style_label_center, color=#00000000, xloc=xloc.bar_time))

traditional() =>
    pivotX_Median = (pivotX_prev_high + pivotX_prev_low + pivotX_prev_close) / 3
    array.push(p, pivotX_Median)
    array.push(r1, pivotX_Median * 2 - pivotX_prev_low)
    array.push(s1, pivotX_Median * 2 - pivotX_prev_high)
    array.push(r2, pivotX_Median + 1 * (pivotX_prev_high - pivotX_prev_low))
    array.push(s2, pivotX_Median - 1 * (pivotX_prev_high - pivotX_prev_low))
    array.push(r3, pivotX_Median * 2 + (pivotX_prev_high - 2 * pivotX_prev_low))
    array.push(s3, pivotX_Median * 2 - (2 * pivotX_prev_high - pivotX_prev_low))
    array.push(r4, pivotX_Median * 3 + (pivotX_prev_high - 3 * pivotX_prev_low))
    array.push(s4, pivotX_Median * 3 - (3 * pivotX_prev_high - pivotX_prev_low))
    array.push(r5, pivotX_Median * 4 + (pivotX_prev_high - 4 * pivotX_prev_low))
    array.push(s5, pivotX_Median * 4 - (4 * pivotX_prev_high - pivotX_prev_low))
    array.push(r1m, pivotX_Median + r1)/2
    array.push(s1m, pivotX_Median + s1)/2
    array.push(r2m, r2 + r1)/2
    array.push(s2m, s2 + s1)/2
    array.push(r3m, r3 + r2)/2
    array.push(s3m, s3 + s2)/2
    array.push(r4m, r4 + r3)/2
    array.push(s4m, s4 + s3)/2  
    array.push(r5m, r5 + r4)/2
    array.push(s5m, s5 + s4)/2

fibonacci() =>
    pivotX_Median = (pivotX_prev_high + pivotX_prev_low + pivotX_prev_close) / 3
    pivot_range = pivotX_prev_high - pivotX_prev_low
    array.push(p, pivotX_Median)
    array.push(r1, pivotX_Median + 0.382 * pivot_range)
    array.push(s1, pivotX_Median - 0.382 * pivot_range)
    array.push(r2, pivotX_Median + 0.618 * pivot_range)
    array.push(s2, pivotX_Median - 0.618 * pivot_range)
    array.push(r3, pivotX_Median + 1 * pivot_range)
    array.push(s3, pivotX_Median - 1 * pivot_range)
    array.push(r1m, (p + r1)/2)
    array.push(s1m, (p + s1)/2)
    array.push(r2m, (r2 + r1)/2)
    array.push(s2m, (s2 + s1)/2)
    array.push(r3m, (r3 + r2)/2)
    array.push(s3m, (s3 + s2)/2)
   

classic() =>
    pivotX_Median = (pivotX_prev_high + pivotX_prev_low + pivotX_prev_close)/3
    pivot_range = pivotX_prev_high - pivotX_prev_low
    array.push(p, pivotX_Median)
    array.push(r1, pivotX_Median * 2 - pivotX_prev_low)
    array.push(s1, pivotX_Median * 2 - pivotX_prev_high)
    array.push(r2, pivotX_Median + 1 * pivot_range)
    array.push(s2, pivotX_Median - 1 * pivot_range)
    array.push(r3, pivotX_Median + 2 * pivot_range)
    array.push(s3, pivotX_Median - 2 * pivot_range)
    array.push(r4, pivotX_Median + 3 * pivot_range)
    array.push(s4, pivotX_Median - 3 * pivot_range)
    array.push(r1m, (p + r1)/2)
    array.push(s1m, (p + s1)/2)
    array.push(r2m, (r2 + r1)/2)
    array.push(s2m, (s2 + s1)/2)
    array.push(r3m, (r3 + r2)/2)
    array.push(s3m, (s3 + s2)/2)
    array.push(r4m, (r4 + r3)/2)
    array.push(s4m, (s4 + s3)/2)
    





resolution = get_pivot_resolution()

[sec_open, sec_high, sec_low, sec_close] = request.security(syminfo.tickerid, resolution, [open, high, low, close], lookahead = barmerge.lookahead_on)
sec_open_gaps_on = request.security(syminfo.tickerid, resolution, open, gaps = barmerge.gaps_on, lookahead = barmerge.lookahead_on)

custom_years_divisor = switch pivot_time_frame
    BIYEARLY => 2
    TRIYEARLY => 3
    QUINQUENNIALLY => 5
    DECENNIALLY => 10
    => -1

is_change_years = false 
if custom_years_divisor > 0 and ta.change(time(resolution))
    is_change_years := year % custom_years_divisor == 0
    
    
var is_change = false
var uses_current_bar = timeframe.isintraday and kind == na
var change_time = int(na)
is_time_change = (ta.change(time(resolution)) and custom_years_divisor == -1) or is_change_years
if is_time_change
    change_time := time




if (not uses_current_bar and is_time_change) or (uses_current_bar and not na(sec_open_gaps_on))
    if is_daily_based and custom_years_divisor == -1
        pivotX_prev_open := sec_open[1]
        pivotX_prev_high := sec_high[1]
        pivotX_prev_low := sec_low[1]
        pivotX_prev_close := sec_close[1]
        pivotX_open := sec_open
        pivotX_high := sec_high
        pivotX_low := sec_low
    else
        pivotX_prev_high := pivotX_high
        pivotX_prev_low := pivotX_low
        pivotX_prev_open := pivotX_open
        pivotX_open := open
        pivotX_high := high
        pivotX_low := low
        pivotX_prev_close := close[1]

    if barstate.islast and not is_change and  array.size(arr_time) > 0
        array.set(arr_time, array.size(arr_time) - 1, change_time)
    else
        array.push(arr_time, change_time)

    if kind == TRADITIONAL
        traditional()
    else if kind == FIBONACCI
        fibonacci()
    else if kind == CLASSIC
        classic()
 
   

    if array.size(arr_time) > look_back
        if array.size(arr_time) > 0
            array.shift(arr_time)
        if array.size(p) > 0 and p_show
            array.shift(p)
        if array.size(r1) > 0 and s1r1_show
            array.shift(r1)
        if array.size(s1) > 0 and s1r1_show
            array.shift(s1)
        if array.size(r2) > 0 and s2r2_show
            array.shift(r2)
        if array.size(s2) > 0 and s2r2_show
            array.shift(s2)
        if array.size(r3) > 0 and s3r3_show
            array.shift(r3)
        if array.size(s3) > 0 and s3r3_show
            array.shift(s3)
        if array.size(r4) > 0 and s4r4_show
            array.shift(r4)
        if array.size(s4) > 0 and s4r4_show
            array.shift(s4)
        if array.size(r5) > 0 and s5r5_show
            array.shift(r5)
        if array.size(s5) > 0 and s5r5_show
            array.shift(s5)
    is_change := true
else
    if is_daily_based and custom_years_divisor == -1
        pivotX_high := math.max(pivotX_high, sec_high)
        pivotX_low := math.min(pivotX_low, sec_low)
    else
        pivotX_high := math.max(pivotX_high, high)
        pivotX_low := math.min(pivotX_low, low)

if barstate.islast and array.size(arr_time) > 0 and is_change
    is_change := false
    if array.size(arr_time) > 2 and custom_years_divisor > 0
        last_pivot_time = array.get(arr_time, array.size(arr_time) - 1)
        prev_pivot_time = array.get(arr_time, array.size(arr_time) - 2)
        estimate_pivot_time = last_pivot_time - prev_pivot_time
        array.push(arr_time, last_pivot_time + estimate_pivot_time)
    else
        array.push(arr_time, time_close(resolution))

    for i = 0 to array.size(lines) - 1
        if array.size(lines) > 0
            line.delete(array.shift(lines))
        if array.size(lines) > 0
            label.delete(array.shift(labels))

    for i = 0 to array.size(arr_time) - 2
        if array.size(p) > 0 and p_show
            draw_line(i, p, p_color)
            draw_label(i, array.get(p, i), "P", p_color)
        if array.size(r1) > 0 and s1r1_show
            draw_line(i, r1, s1r1_color)
            draw_label(i, array.get(r1, i), "R1", s1r1_color)
        if array.size(s1) > 0 and s1r1_show
            draw_line(i, s1, s1r1_color)
            draw_label(i, array.get(s1, i), "S1", s1r1_color)
        if array.size(r2) > 0 and s2r2_show
            draw_line(i, r2, s2r2_color)
            draw_label(i, array.get(r2, i), "R2", s2r2_color)
        if array.size(s2) > 0 and s2r2_show
            draw_line(i, s2, s2r2_color)
            draw_label(i, array.get(s2, i), "S2", s2r2_color)
        if array.size(r3) > 0 and s3r3_show
            draw_line(i, r3, s3r3_color)
            draw_label(i, array.get(r3, i), "R3", s3r3_color)
        if array.size(s3) > 0 and s3r3_show
            draw_line(i, s3, s3r3_color)
            draw_label(i, array.get(s3, i), "S3", s3r3_color)
        if array.size(r4) > 0 and s4r4_show
            draw_line(i, r4, s4r4_color)
            draw_label(i, array.get(r4, i), "R4", s4r4_color)
        if array.size(s4) > 0 and s4r4_show
            draw_line(i, s4, s4r4_color)
            draw_label(i, array.get(s4, i), "S4", s4r4_color)
        if array.size(r5) > 0 and s5r5_show
            draw_line(i, r5, s5r5_color)
            draw_label(i, array.get(r5, i), "R5", s5r5_color)
        if array.size(s5) > 0 and s5r5_show
            draw_line(i, s5, s5r5_color)
            draw_label(i, array.get(s5, i), "S5", s5r5_color)

4

0 回答 0