geometric pattern.pine
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «geometric pattern.pine» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Скрипт для TradingView, предназначенный для автоматического обнаружения геометрических гармонических ценовых паттернов на графике. Использует алгоритм определения пивотов (zigzag) для выделения ключевых точек разворота цены, а затем проверяет пропорции между ногами паттерна на соответствие уровням Фибоначчи. Поддерживается более десятка классических гармонических структур, включая Gartley, Bat, Butterfly, Crab и другие.
Обнаруженные паттерны отображаются на графике в виде структурных линий, подписей вершин, зон потенциального разворота и аннотаций с коэффициентами Фибоначчи. Пользователь может выбрать режим отображения: постоянное отображение всех подтверждённых паттернов или показ только текущего формирующегося паттерна в реальном времени. Доступны различные цветовые схемы и настройки прозрачности заливки.
Скрипт предоставляет встроенные оповещения TradingView для бычьих и медвежьих паттернов, а также для любых обнаруженных структур. Набор настраиваемых параметров позволяет регулировать чувствительность определения пивотов, допустимое отклонение от идеальных соотношений, фильтр по направлению и длине паттерна, а также выбрать, какие именно гармонические структуры отслеживать.
Настройки программы
| Настройка | Описание |
|---|---|
| zigzag_len | Период свинг-пивотов ZigZag — Период lookback для определения истинных рыночных свингов. Большее значение даёт более сглаженные пивоты. |
| p_right | Глубина подтверждения пивота — Количество баров для подтверждения разворотной точки свинга. |
| fib_tol_pct | Допустимая погрешность Фибоначчи — Процентное отклонение, допускаемое при сопоставлении с эталонными коэффициентами Фибоначчи. |
| dir_filter | Фильтр направления — Фильтр по направлению паттернов: только бычьи, только медвежьи или оба направления. |
| min_bars_len | Минимальная длина паттерна (свечей) — Минимальное количество баров, за которое должен быть сформирован паттерн, чтобы отсеять микрофлуктуации. |
| max_bars_len | Максимальная длина паттерна (свечей) — Максимальное количество баров для признания структуры допустимым паттерном. |
| keep_all_pat | Сохранять все подтверждённые паттерны на графике — При включении каждый подтверждённый паттерн остаётся постоянно отображённым на всей истории графика. |
| show_forming | Показывать формирующийся паттерн в точке D — Отображает предварительный просмотр гармонической структуры в реальном времени по мере формирования ноги CD. |
| show_gartley | Gartley — Включает обнаружение и отображение паттерна Gartley. |
| show_bat | Bat — Включает обнаружение и отображение паттерна Bat. |
| show_altbat | Alternate Bat — Включает обнаружение и отображение альтернативного паттерна Bat. |
| show_butterfly | Butterfly — Включает обнаружение и отображение паттерна Butterfly. |
| show_crab | Crab — Включает обнаружение и отображение паттерна Crab. |
| show_deepcrab | Deep Crab — Включает обнаружение и отображение паттерна Deep Crab. |
| show_shark | Shark — Включает обнаружение и отображение паттерна Shark. |
| show_cypher | Cypher — Включает обнаружение и отображение паттерна Cypher. |
| show_nenstar | Nen Star — Включает обнаружение и отображение паттерна Nen Star. |
| show_five0 | 5-0 Pattern — Включает обнаружение и отображение паттерна 5-0. |
| show_abcd | AB=CD — Включает обнаружение и отображение паттерна AB=CD. |
| show_threedrv | 3-Drive — Включает обнаружение и отображение паттерна 3-Drive. |
| show_swans | White Swan & Black Swan — Включает обнаружение и отображение экзотических паттернов White Swan и Black Swan. |
| show_antis | Anti-Harmonic Patterns — Включает обнаружение и отображение анти-гармонических структур. |
| _mode | Палитра цветов паттернов — Выбор режима окраски: индивидуальные цвета для каждого паттерна, бычья/медвежья тема или монохромный минимализм. |
| shading_mode | Режим заливки крыльев — Определяет способ заливки геометрических крыльев паттернов: для всех, только для последнего или без заливки. |
| shading_transp | Прозрачность заливки крыльев — Уровень прозрачности заливки крыльев паттернов в диапазоне от 10 до 95. |
| show_prz_box | Показать зоны валидации PRZ — Отрисовывает прямоугольную зону потенциального разворода в точке D. |
| show_ratios | Показать коэффициенты Фибоначчи на ногах — Отображает числовые значения коэффициентов Фибоначчи на каждой ноге паттерна. |
| show_vertices | Показать метки вершин — Отрисовывает подписи X, A, B, C, D на соответствующих точках свингов. |
| bull_col_def | Цвет бычьих паттернов по умолчанию — Базовый цвет для бычьих гармонических структур в режиме общей тематики. |
| bear_col_def | Цвет медвежьих паттернов по умолчанию — Базовый цвет для медвежьих гармонических структур в режиме общей тематики. |
| col_gartley | Цвет Gartley — Индивидуальный цвет для паттерна Gartley в режиме раздельной палитры. |
| col_bat | Цвет Bat — Индивидуальный цвет для паттерна Bat в режиме раздельной палитры. |
| col_altbat | Цвет Alternate Bat — Индивидуальный цвет для альтернативного Bat в режиме раздельной палитры. |
| col_butterfly | Цвет Butterfly — Индивидуальный цвет для паттерна Butterfly в режиме раздельной палитры. |
| col_crab | Цвет Crab — Индивидуальный цвет для паттерна Crab в режиме раздельной палитры. |
| col_deepcrab | Цвет Deep Crab — Индивидуальный цвет для паттерна Deep Crab в режиме раздельной палитры. |
| col_shark | Цвет Shark — Индивидуальный цвет для паттерна Shark в режиме раздельной палитры. |
| col_cypher | Цвет Cypher — Индивидуальный цвет для паттерна Cypher в режиме раздельной палитры. |
| col_nenstar | Цвет Nen Star — Индивидуальный цвет для паттерна Nen Star в режиме раздельной палитры. |
| col_five0 | Цвет 5-0 Pattern — Индивидуальный цвет для паттерна 5-0 в режиме раздельной палитры. |
| col_abcd | Цвет AB=CD — Индивидуальный цвет для паттерна AB=CD в режиме раздельной палитры. |
| col_threedrv | Цвет 3-Drive — Индивидуальный цвет для паттерна 3-Drive в режиме раздельной палитры. |
| alert_on_bull | Оповещение при бычьем паттерне — Включает отправку уведомления при обнаружении бычьего гармонического паттерна. |
| alert_on_bear | Оповещение при медвежьем паттерне — Включает отправку уведомления при обнаружении медвежьего гармонического паттерна. |
Поиск по коду файла
grp_engine = "Pattern Detection Engine & Smooth Swings"
zigzag_len = input.int(10, "ZigZag Swing Period", minval=4, maxval=30, tooltip="Lookback period to identify genuine market swings. Default 10 produces smooth, textbook harmonic patterns identical to the original indicator.", group=grp_engine, display=display.none)
p_right = input.int(3, "Pivot Confirmation Depth", minval=1, maxval=10, tooltip="Bars to confirm swing pivot. 3 provides fast confirmation with textbook swing accuracy.", group=grp_engine, display=display.none)
fib_tol_pct = input.float(10.0, "Fibonacci Error Tolerance %", minval=1.0, maxval=25.0, step=0.5, tooltip="Error tolerance for matching Fibonacci harmonic ratios. 10% is textbook institutional precision.", group=grp_engine, display=display.none)
dir_filter = input.string("Long and Short", "Direction Filter", options=["Long and Short", "Only Long", "Only Short"], group=grp_engine, display=display.none)
min_bars_len = input.int(10, "Minimum Pattern Length (Bars)", minval=5, maxval=50, tooltip="Filters out noisy micro-fluctuations. Genuine harmonic patterns develop over 10+ candles.", group=grp_engine, display=display.none)
max_bars_len = input.int(300, "Maximum Pattern Length (Bars)", minval=20, maxval=500, group=grp_engine, display=display.none)
keep_all_pat = input.bool(true, "Keep All Confirmed Patterns on Chart", tooltip="When enabled, every confirmed pattern remains permanently plotted across chart history.", group=grp_engine, display=display.none)
show_forming = input.bool(true, "Show Live Forming Pattern at Point D", tooltip="Displays real-time preview of the harmonic pattern as Leg CD develops.", group=grp_engine, display=display.none)
grp_patterns = "Harmonic Pattern Library"
show_gartley = input.bool(true, "Gartley", group=grp_patterns, display=display.none)
show_bat = input.bool(true, "Bat", group=grp_patterns, display=display.none)
show_altbat = input.bool(true, "Alternate Bat", group=grp_patterns, display=display.none)
show_butterfly = input.bool(true, "Butterfly", group=grp_patterns, display=display.none)
show_crab = input.bool(true, "Crab", group=grp_patterns, display=display.none)
show_deepcrab = input.bool(true, "Deep Crab", group=grp_patterns, display=display.none)
show_shark = input.bool(true, "Shark", group=grp_patterns, display=display.none)
show_cypher = input.bool(true, "Cypher", group=grp_patterns, display=display.none)
show_nenstar = input.bool(true, "Nen Star", group=grp_patterns, display=display.none)
show_five0 = input.bool(true, "5-0 Pattern", group=grp_patterns, display=display.none)
show_abcd = input.bool(true, "AB=CD", group=grp_patterns, display=display.none)
show_threedrv = input.bool(true, "3-Drive", group=grp_patterns, display=display.none)
show_swans = input.bool(false, "White Swan & Black Swan", group=grp_patterns, display=display.none)
show_antis = input.bool(false, "Anti-Harmonic Patterns", group=grp_patterns, display=display.none)
grp_style = "Executive Visual Styling"
color_mode = input.string("Distinct Pattern Colors", "Pattern Color Palette", options=["Distinct Pattern Colors", "Bullish / Bearish Theme", "Monochrome Minimalist"], tooltip="Distinct Pattern Colors gives each pattern its signature vibrant executive color (like original HPP Pro).", group=grp_style, display=display.none)
shading_mode = input.string("All Patterns Shaded", "Wing Shading Mode", options=["All Patterns Shaded", "Only Latest Pattern", "Outlines Only (No Shade)"], tooltip="All Patterns Shaded renders sleek transparent wings for all confirmed patterns.", group=grp_style, display=display.none)
shading_transp = input.int(84, "Wing Shading Transparency (10-95)", minval=10, maxval=95, tooltip="Higher value = Softer, more transparent wings.", group=grp_style, display=display.none)
show_prz_box = input.bool(true, "Show PRZ Validation Zones (Point D Box)", tooltip="Draws the institutional Potential Reversal Zone box at Point D.", group=grp_style, display=display.none)
show_ratios = input.bool(true, "Show Fibonacci Rates on Legs", tooltip="Displays exact inter-wave retracement and extension ratios on chart legs.", group=grp_style, display=display.none)
show_vertices = input.bool(true, "Show Vertex Labels (X, A, B, C, D)", tooltip="Draws neat X, A, B, C, D labels at the swing pivot tips.", group=grp_style, display=display.none)
bull_col_def = input.color(#00F2FE, "Default Bullish Color", group=grp_style, display=display.none)
bear_col_def = input.color(#FF2A6D, "Default Bearish Color", group=grp_style, display=display.none)
grp_palette = "Distinct Pattern Colors Palette"
col_gartley = input.color(#00E676, "Gartley Color", group=grp_palette, display=display.none)
col_bat = input.color(#9D4EDD, "Bat Color", group=grp_palette, display=display.none)
col_altbat = input.color(#C77DFF, "Alternate Bat Color", group=grp_palette, display=display.none)
col_butterfly = input.color(#00B0FF, "Butterfly Color", group=grp_palette, display=display.none)
col_crab = input.color(#FF1744, "Crab Color", group=grp_palette, display=display.none)
col_deepcrab = input.color(#FF6D00, "Deep Crab Color", group=grp_palette, display=display.none)
col_shark = input.color(#F72585, "Shark Color", group=grp_palette, display=display.none)
col_cypher = input.color(#FFD166, "Cypher Color", group=grp_palette, display=display.none)
col_nenstar = input.color(#7209B7, "Nen Star Color", group=grp_palette, display=display.none)
col_five0 = input.color(#FF70A6, "5-0 Color", group=grp_palette, display=display.none)
col_abcd = input.color(#06D6A0, "AB=CD Color", group=grp_palette, display=display.none)
col_threedrv = input.color(#4CC9F0, "3-Drive Color", group=grp_palette, display=display.none)
grp_alerts = "Notification Alerts"
alert_on_bull = input.bool(true, "Alert on Bullish Pattern", group=grp_alerts, display=display.none)
alert_on_bear = input.bool(true, "Alert on Bearish Pattern", group=grp_alerts, display=display.none)
type SwingPoint
int bar_idx
float price
bool is_high
var SwingPoint[] sw_pivots = array.new<SwingPoint>()
var line live_lx_xa = na
var line live_lx_ab = na
var line live_lx_bc = na
var line live_lx_cd = na
var line live_lx_xb = na
var line live_lx_bd = na
var line live_lx_xd = na
var linefill live_fill_1 = na
var linefill live_fill_2 = na
var label live_lb_x = na
var label live_lb_a = na
var label live_lb_b = na
var label live_lb_c = na
var label live_lb_d = na
var box live_prz_box = na
var linefill latest_fill_1 = na
var linefill latest_fill_2 = na
alert_bull_sig = false
alert_bear_sig = false
alert_any_sig = false
atr_val = ta.atr(14)
tol = fib_tol_pct / 100.0
is_in_range(float ratio, float min_r, float max_r, float t) =>
ratio >= (min_r * (1.0 - t)) and ratio <= (max_r * (1.0 + t))
is_near_ratio(float ratio, float target_r, float t) =>
math.abs(ratio - target_r) <= (target_r * t)
get_pattern_color(string pat, bool is_bull) =>
if color_mode == "Bullish / Bearish Theme"
is_bull ? bull_col_def : bear_col_def
else if color_mode == "Monochrome Minimalist"
is_bull ? color.silver : color.gray
else
switch pat
"Gartley" => col_gartley
"Bat" => col_bat
"Alternate Bat" => col_altbat
"Butterfly" => col_butterfly
"Crab" => col_crab
"Deep Crab" => col_deepcrab
"Shark" => col_shark
"Cypher" => col_cypher
"Nen Star" => col_nenstar
"5-0 Pattern" => col_five0
"AB=CD" => col_abcd
"3-Drive" => col_threedrv
"White Swan" => #00E676
"Black Swan" => #FF5252
=> is_bull ? bull_col_def : bear_col_def
match_harmonic_pattern(float px, float pa, float pb, float pc, float pd, bool is_bull) =>
xa = math.abs(pa - px)
ab = math.abs(pb - pa)
bc = math.abs(pc - pb)
cd = math.abs(pd - pc)
ad = math.abs(pd - pa)
xc = math.abs(pc - px)
r_ab = xa > 0.0 ? ab / xa : 0.0
r_bc = ab > 0.0 ? bc / ab : 0.0
r_cd = bc > 0.0 ? cd / bc : 0.0
r_ad = xa > 0.0 ? ad / xa : 0.0
r_xc = xa > 0.0 ? xc / xa : 0.0
pat = ""
if show_gartley and pat == ""
if is_in_range(r_ab, 0.58, 0.65, tol) and is_in_range(r_bc, 0.382, 0.886, tol) and is_in_range(r_cd, 1.13, 1.618, tol) and is_near_ratio(r_ad, 0.786, tol)
pat := "Gartley"
if show_bat and pat == ""
if is_in_range(r_ab, 0.382, 0.500, tol) and is_in_range(r_bc, 0.382, 0.886, tol) and is_in_range(r_cd, 1.618, 2.618, tol) and is_near_ratio(r_ad, 0.886, tol)
pat := "Bat"
if show_altbat and pat == ""
if is_in_range(r_ab, 0.30, 0.45, tol) and is_in_range(r_bc, 0.382, 0.886, tol) and is_in_range(r_cd, 2.0, 3.618, tol) and is_near_ratio(r_ad, 1.13, tol)
pat := "Alternate Bat"
if show_butterfly and pat == ""
if is_in_range(r_ab, 0.75, 0.82, tol) and is_in_range(r_bc, 0.382, 0.886, tol) and is_in_range(r_cd, 1.618, 2.618, tol) and is_in_range(r_ad, 1.272, 1.618, tol)
pat := "Butterfly"
if show_crab and pat == ""
if is_in_range(r_ab, 0.382, 0.618, tol) and is_in_range(r_bc, 0.382, 0.886, tol) and is_in_range(r_cd, 2.24, 3.618, tol) and is_near_ratio(r_ad, 1.618, tol)
pat := "Crab"
if show_deepcrab and pat == ""
if is_in_range(r_ab, 0.85, 0.92, tol) and is_in_range(r_bc, 0.382, 0.886, tol) and is_in_range(r_cd, 2.0, 3.618, tol) and is_near_ratio(r_ad, 1.618, tol)
pat := "Deep Crab"
if show_shark and pat == ""
if is_in_range(r_ab, 0.45, 0.90, tol) and is_in_range(r_bc, 1.13, 1.618, tol) and is_in_range(r_cd, 1.618, 2.24, tol) and is_in_range(r_ad, 0.886, 1.13, tol)
pat := "Shark"
if show_cypher and pat == ""
if is_in_range(r_ab, 0.382, 0.618, tol) and is_in_range(r_xc, 1.13, 1.45, tol) and is_near_ratio(r_ad, 0.786, tol)
pat := "Cypher"
if show_nenstar and pat == ""
if is_in_range(r_ab, 0.382, 0.618, tol) and is_in_range(r_bc, 1.35, 2.15, tol) and is_near_ratio(r_ad, 1.272, tol)
pat := "Nen Star"
if show_five0 and pat == ""
if is_in_range(r_ab, 1.13, 1.618, tol) and is_in_range(r_bc, 1.618, 2.24, tol) and is_near_ratio(r_cd, 0.50, tol)
pat := "5-0 Pattern"
if show_abcd and pat == ""
if is_in_range(r_bc, 0.618, 0.786, tol) and is_in_range(r_cd, 1.272, 1.618, tol) and ab > 0 and math.abs(cd - ab) / ab <= (tol * 2.0)
pat := "AB=CD"
if show_threedrv and pat == ""
if is_near_ratio(r_bc, 0.618, tol * 1.5) and is_near_ratio(r_cd, 1.272, tol * 1.5)
pat := "3-Drive"
if show_swans and pat == ""
if is_in_range(r_ab, 0.382, 0.786, tol) and is_in_range(r_bc, 1.13, 2.0, tol) and is_in_range(r_ad, 1.13, 1.618, tol)
pat := is_bull ? "White Swan" : "Black Swan"
if show_antis and pat == ""
if is_near_ratio(r_ab, 0.618, tol) and is_in_range(r_bc, 0.618, 0.886, tol) and is_near_ratio(r_ad, 1.272, tol)
pat := "Anti-Gartley"
else if is_in_range(r_ab, 0.382, 0.500, tol) and is_near_ratio(r_ad, 1.13, tol)
pat := "Anti-Bat"
pat
ph = ta.pivothigh(high, zigzag_len, p_right)
pl = ta.pivotlow(low, zigzag_len, p_right)
pivot_updated = false
if not na(ph)
p_bar = bar_index - p_right
p_pr = high[p_right]
s_len = array.size(sw_pivots)
if s_len > 0
last_p = array.get(sw_pivots, s_len - 1)
if last_p.is_high
if p_pr >= last_p.price
last_p.price := p_pr
last_p.bar_idx := p_bar
pivot_updated := true
else
array.push(sw_pivots, SwingPoint.new(p_bar, p_pr, true))
pivot_updated := true
else
array.push(sw_pivots, SwingPoint.new(p_bar, p_pr, true))
pivot_updated := true
if not na(pl)
p_bar = bar_index - p_right
p_pr = low[p_right]
s_len = array.size(sw_pivots)
if s_len > 0
last_p = array.get(sw_pivots, s_len - 1)
if not last_p.is_high
if p_pr <= last_p.price
last_p.price := p_pr
last_p.bar_idx := p_bar
pivot_updated := true
else
array.push(sw_pivots, SwingPoПоказано первые 50% кода (символов: 19490)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.