申し訳ありませんが、事前に助けてくれてありがとう。
私はピボットポイントの標準インジケーターに取り組んでいます。配列を使用して、前日の高値、安値、終値を引く線を描画します。私はいくつかのものを追加してから、私が持っている他の指標を組み合わせようとしています. しかし、最初にすべてのエクストラを追加する前に、基本インジケーターが機能する必要があります。私が必要としていたのはミッド ピボット レベルでした。これらを書き込んで、3 つの異なるタイプのピボットの数学部分にコードを追加していると、問題が発生します。表現の変更などを再配置しましたが、機能しません。詳細については、ベロを参照してください。
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 行目に表示されます。各ピボット領域の中央にある点線を描画するためのコードを取得しようとして、数学配列などを入力するようにインジケーターの中央ピボット ラインに追加しようとしています。それらの書き込みコードをpopularに追加したと思いますが、すべてを移動してリロードした後でもこのエラーが発生します。助けていただければ幸いです
148 行目: 引数 'expr0'='call 'array.push' (void)' を指定して 'operator /' を呼び出すことはできません。「void」タイプの引数が使用されましたが、「const int」が予期されます。149 行目: 引数 'expr1'='s1' で 'operator +' を呼び出すことはできません。'float[]' タイプの引数が使用されましたが、'series 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 などのどこにいるかを確認できるように、ラインに適切なラベルを付けることもできます。インジケーターに欠けているもう 1 つのことは、数学をチェックできることです。私が使用した 4 つまたは 5 つのインジケーターはすべて、ピボット ラインをわずかに異なる方法で表現しています。数学がかなり外れているものもあれば、よくわからないものもあります。市場が開く前に線が表示されないようにします。ろうそくは前日から閉じられており、画面に数分間線が表示されないことがあります。必要に応じて、より高い時間枠のピボットをオフに切り替えることができるはずです。そのため、時間以下は 1 つのレベルであり、毎日までは 1 つのレベルであり、毎日は別のレベルです。一緒にプロットできるこれらの 3 つの線のセットを使用すると、どのような価格アクションが実行されているかをよりよく把握できます。ほとんどのピボット インジケーターにはアラートがありません。オフセット アラートが本当に必要なので、価格アクションがピボット領域に近づいたときにアラートを受け取ることができます。長々とすみません ありがとうございます 一緒にプロットできるこれらの 3 つの線のセットを使用すると、どのような価格アクションが実行されているかをよりよく把握できます。ほとんどのピボット インジケーターにはアラートがありません。オフセット アラートが本当に必要なので、価格アクションがピボット領域に近づいたときにアラートを受け取ることができます。長々とすみません ありがとうございます 一緒にプロットできるこれらの 3 つの線のセットを使用すると、どのような価格アクションが実行されているかをよりよく把握できます。ほとんどのピボット インジケーターにはアラートがありません。オフセット アラートが本当に必要なので、価格アクションがピボット領域に近づいたときにアラートを受け取ることができます。長々とすみません ありがとうございます
私はピボットポイントの標準インジケーターに取り組んでいます。配列を使用して、前日の高値、安値、終値を引く線を描画します。
//@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)