Untitled
unknown
plain_text
3 years ago
2.7 kB
15
Indexable
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © konidtaly88
//@version=5
isCypherPattern(float X, float A, float B, float C, float D) =>
bearish = (A<X) and (B<X) and (B>A) and (C<A) and (D<X) and (D>C)
bullish = (A>X) and (B>X) and (B<A) and (C>A) and (D>X) and (D<C)
ax = math.abs(X-A)
ba = math.abs(A-B)
bc = math.abs(C-B)
cd = math.abs(C-D)
cx = math.abs(X-C)
dx = math.abs(X-D)
r1 = ba/ax
r2 = cx/ax
r3 = cd/bc
r4 = dx/cx
isCypher = false
if bearish or bullish
one = (r1 <= 0.618) and (r1 >= 0.382)
two = (r2 <= 1.41) and (r2 >= 1.13)
three = (r3 <= 2) and (r3 >= 1.272)
four = (r4 <= 0.786)
isCypher := one and two and three and four
[isCypher, bullish, bearish, r1, r2, r3, r4]
sinceT(int t) => ta.barssince((time <= t) and (t >= time_close))
barPriceSinceT(int t) =>
since = sinceT(t)
[bar_index[since], hlc3[since]]
indicator("Harmonic Pattern Checker")
X = input.time(timestamp("20 Oct 2022 00:00 +0000"))
A = input.time(timestamp("21 Oct 2022 00:00 +0000"))
B = input.time(timestamp("22 Oct 2022 00:00 +0000"))
C = input.time(timestamp("23 Oct 2022 00:00 +0000"))
D = input.time(timestamp("24 Oct 2022 00:00 +0000"))
[barX, priceX] = barPriceSinceT(X)
[barA, priceA] = barPriceSinceT(A)
[barB, priceB] = barPriceSinceT(B)
[barC, priceC] = barPriceSinceT(C)
[barD, priceD] = barPriceSinceT(D)
// [isCypher, bullish, bearish, r1, r2, r3, r4] = isCypherPattern(barX, barA, barB, barC, barD)
var line lineAX = na
var line lineAB = na
var line lineBC = na
var line lineAC = na
var line lineCD = na
var line lineBD = na
var line lineDX = na
// if isCypher and na(lineAX)
// lineAX := line.new(barX, priceX, barA, priceA)
// lineAB := line.new(barB, priceB, barA, priceA)
// lineBC := line.new(barB, priceB, barC, priceC)
// lineAC := line.new(barC, priceC, barA, priceA)
// lineCD := line.new(barC, priceC, barD, priceD)
// lineBD := line.new(barB, priceB, barD, priceD)
// lineDX := line.new(barD, priceD, barX, priceX)
// plotshape(isCypher)
plotchar(bar_index[1] == barX, char='X', location = location.top, size=size.tiny)
plotchar(bar_index[1] == barA, char='A', location = location.top, size=size.tiny)
plotchar(bar_index[1] == barB, char='B', location = location.top, size=size.tiny)
plotchar(bar_index[1] == barC, char='C', location = location.top, size=size.tiny)
plotchar(bar_index[1] == barD, char='D', location = location.top, size=size.tiny)
Editor is loading...