誰かがこれで私を助けることができれば、私は本当にコーダーではないので、私は大いに感謝します。基本的にコードに実行させたいことは、価格が Fib レベルに達したときに警告することです (私が事前に推定したもので、0,382 または 0,5 としましょう)。ただし、ZIG ZAG インジケーターの高低から。したがって、ジグザグ インジケーターが新しいライン (安値から最近の高値までを意味する) を作成し、価格が下落している場合、価格が最後のスイングの fib レベルに達した場合、インジケーターは私に警告します。
私の考えは、X:= (最新の高値 - 最新の安値) * 入力された fib レベル // を格納する新しい変数を作成して、クロスしたい値を取得することです
価格が var X を超えた場合、アラート
誰かが私のアイデアを手伝ってくれるなら、ここにジグザグインジケーターを置きます
//@version=4
study("Zig Zag High Low", overlay = true)
length = input(4, title = "High/Low length")
h = highest(high, length * 2 + 1)
l = lowest(low, length * 2 + 1)
f_isMin(len) =>
l == low[len]
f_isMax(len) =>
h == high[len]
var dirUp = false
var lastLow = high * 100
var lastHigh = 0.0
var timeLow = bar_index
var timeHigh = bar_index
var line li = na
f_drawLine() =>
_li_color = dirUp ? color.teal : color.orange
line.new(
timeHigh - length, lastHigh,
timeLow - length, lastLow,
xloc.bar_index, color=_li_color, width=2
)
if dirUp
if (f_isMin(length) and low[length] < lastLow)
lastLow := low[length]
timeLow := bar_index
line.delete(li)
li := f_drawLine()
if (f_isMax(length) and high[length] > lastLow)
lastHigh := high[length]
timeHigh := bar_index
dirUp := false
li := f_drawLine()
if not dirUp
if (f_isMax(length) and high[length] > lastHigh)
lastHigh := high[length]
timeHigh := bar_index
line.delete(li)
li := f_drawLine()
if f_isMin(length) and low[length] < lastHigh
lastLow := low[length]
timeLow := bar_index
dirUp := true
li := f_drawLine()
if (f_isMax(length) and high[length] > lastLow)
lastHigh := high[length]
timeHigh := bar_index
dirUp := false
li := f_drawLine()