Зміст статті

Докази та сфера застосування

Ці три посилання є офіційними документами SciPy API, що підтверджують визначення та поведінку впровадження. Вони не надають жодних доказів того, що торгова стратегія, побудована на цих функціях, є прибутковою.

Дані та ринкиВикористовуйте послідовний ряд цін закриття або числовий індикатор. Обробляйте пропущені спостереження та прогалини сесії до виявлення екстремумів; не змішуйте одиниці цін або правила коригування.
Таймфрейми дослідженняH=1 та денні бари – це можливі конфігурації дослідження. Тривалість вікна враховує спостереження, а не автоматично еквівалентну кількість ринкового часу для всіх інструментів.
Пік 106 знаходиться на чотири пункти вище своєї вищої бази 102; пік 110 лише трохи піднімається вище бази 109.7 в окремому локальному вікні.Відкрити ілюстрацію в повному розмірі
Оригінальні синтетичні ціни. Окремі локальні вікна показують, чому 106 може бути більш помітним, ніж брижа на 110. Повний побудований ряд не розглядається як одне вікно помітності.

Практична послідовність дій

Порядок дій: Виразність піка: фільтр локальних максимумів і мінімумів
Повні кроки наведено нижче. На кожному етапі потрібно записати причину відхилення, якщо бракує даних або не виконано умови.
  1. Виберіть серіюВиберіть ряд цін закриття чи індикатора та перевірте пропуски даних.
  2. Дочекайтеся завершення вікнаОцініть його центр лише після закриття правої сторони.
  3. Знайдіть обидві основиОбмежуйте пошук межами вікна та вищими піками.
  4. НормалізуватиПорівняйте помітність із зареєстрованим, узгодженим з одиницею порогом.
  5. Заморозити подіюЗбережіть властивості та фактичний час підтвердження.

Вища ціна не обов'язково є більш помітним піком

Закриття на 120 над основою біля 119.8 може бути менш структурно виразним, ніж закриття на 105 над основою біля 100. Абсолютна висота залежить від номінальної ціни. Виразність відповідає на інше питання: наскільки кандидат піднімається над контуром навколишньої структури?

SciPy визначає виразність за вищою з двох бічних основ [1]. Ширину вимірюють на заданій відносній висоті виразності [2], а find_peaks надає окремі фільтри [3]. Це інструменти числових рядів. Трактування піка як опору, розподілу чи торгової можливості потребує контексту й незалежної перевірки.

Очікувана користь — відтворюване зменшення кількості незначущих опор, не обіцянка знайти остаточну вершину за великою виразністю. Сильний тренд створює виразні локальні піки й далі вищі ціни; очікування навколишньої структури може залишити мало вигідного співвідношення прибутку до ризику на момент підтвердження.

Локальний детектор зі скінченною затримкою підтвердження

Пропонований базовий варіант використовує W=11 спостережень і радіус h=5. На закритті бару t оцінюйте лише кандидата i=t−5 у вікні від i−5 до i+5. Вимагайте виразність щонайменше 1.5×ATR[i−1]. W=11 і 1.5 — експериментальні, не оптимізовані значення. ATR до кандидата дає фіксований орієнтир волатильності, вже відомий при підтвердженні.

Від піка досліджуйте кожну сторону до межі вікна або вищого піка. Знайдіть мінімум кожного отриманого інтервалу, виберіть вищу основу й відніміть її від значення кандидата. Для западин застосуйте ту саму геометрію до цін закриття зі зміненим знаком. Мінімум одразу з обох сторін завищив би виразність піка на плечі більшої структури.

Код обмежує плато одним спостереженням. Якщо потрібні плоскі вершини, визначте їх репрезентативну позначку часу та політику повного підтвердження як іншу версію. Значення NaN не повинні непомітно перетворюватися на нулі, оскільки це створить штучні глибокі бази. Кандидат на межі вікна не має необхідних навколишніх доказів і не повинен розглядатися як центрований пік.

h = 5; W = 2*h + 1
on_closed_bar(t):
    i = t - h
    if i-h < 0 or invalid_data(i-h, t): return
    x = close[i-h:t+1]
    candidates, _ = find_peaks(x, plateau_size=(1,1))
    if h not in candidates: return
    prominences, left_bases, right_bases = peak_prominences(x, [h], wlen=W)
    p = prominences[0]
    a = ATR[i-1]
    if a is not missing and isfinite(a) and a > 0 and p / a >= 1.5:
        emit_once(i, confirmed_at=t, prominence=p, window=W)
# Troughs: repeat on -close, preserving timestamps and ATR.

Висота, поріг, виразність та ширина відповідають на різні питання

Висота — значення піка. Поріг — його безпосередня різниця із сусідніми спостереженнями. Виразність використовує ширшу навколишню основу. Ширина — горизонтальна протяжність на вибраному рівні. Широка округла вершина може мати малі різниці із сусідами, але велику виразність; високий поріг може ненавмисно залишити лише однобарні сплески.

Фільтр відстані теж має обходитися без майбутніх даних. Запуск find_peaks по всьому ряду дозволяє більшому майбутньому піку видалити ближній попередній і змінює минулий відбір. Базовий варіант оцінює кожного центрального кандидата без глобального відсіву за відстанню. Альтернатива — пауза після опублікованої події, що віддає пріоритет хронологічній доступності, не найкрасивішому пізнішому піку.

Зберігайте всі виміряні властивості в записі події, навіть якщо фільтр відхиляє кандидата. Це дозволяє діагностувати, яка умова видалила можливості. В іншому випадку, одночасне додавання ширини та відстані може покращити сукупну статистику, не залишаючи чіткого пояснення того, чи відбулася зміна через форму, час чи різну кількість угод.

Числові приклади, відхилені брижі та збиткові угоди

Синтетичний локальний сегмент: 100, 101, 103, 106, 104, 102, 103. Саме в цьому ілюстративному сегменті ліва база - 100, а права база - 102, тому помітність - 4. З посиланням на ATR=2, нормалізована помітність - 2 ATR і перевищує запропонований поріг 1.5. Навколишнє вікно все ще має завершитися, перш ніж це можна буде вважати опублікованою подією.

Інший відрізок, 108, 109, 110, 109.8, 109.7, має вищий абсолютний пік, але вища з бічних основ — 109.7. Локальна виразність лише 0.3; за ATR=1 той самий фільтр не пройдено. Це ілюстрації геометрії, не повні тестові набори W=11 і не докази прибутковості одного відрізка проти іншого.

Угода може бути збитковою після досягнення помітного максимуму. Припустимо, що підтвердження дозволяє шорт, наступним доступним виконанням є 101.8, а структурний стоп знаходиться на рівні 106.2. Запланований ціновий ризик вже становить 4.4 пунктів. Відскок до 107 зриває угоду, навіть якщо детектор правильно виміряв попередній екстремум. Прогнозована ціль, що дорівнює помітності, сама по собі була б окремою гіпотезою.

Перевірте локальність двома наборами: із вищим сусіднім піком прямо всередині фіксованого вікна й прямо за ним. Виразність нового кандидата може різнитися, але раніше опубліковану подію за незмінної історії до публікації не можна переписувати. Так задане вікно відрізняється від випадкового використання майбутньої структури.

Виразність як ознака опори до визначення входу

Пропоноване застосування — вибирати опори подвійних вершин чи зон опору, залишаючи тригер пізнішій події, наприклад закриттю нижче проміжного мінімуму. Зберігайте з кандидатом window_start, window_end, обидві основи, виразність, ATR_ref, версію детектора й confirmed_at для точного відтворення рішення.

Негайний вхід після підтвердження потребує власних стопа, виходу за часом, лімітів експозиції та моделі виконання. Виразність не дає гарантованої природної цілі. Порівнюйте проєкцію на її основі з фіксованою ціллю в R чи виходом за часом лише в зареєстрованих варіантах; не підбирайте вихід для кожного красивого графіка.

Для RSI або іншого обмеженого індикатора виразність вимірюється в пунктах індикатора. Ділення виразності RSI на ATR ціни змішує одиниці. Потрібна узгоджена за розмірністю нормалізація або початкові пункти індикатора як окремо калібрована ознака. Це стосується й порівняння детекторів логарифма ціни та звичайної ціни.

Нехай обсяг перевіряє окремий внесок

У формулі виразності немає обсягу: він додає окрему ознаку, але не гарантує статистичної незалежності. Окремо зберігайте активність біля екстремуму та RVOL при подальшому тригері. Великий сукупний обсяг не встановлює інституційної участі; виразні піки на новинах можуть супроводжуватися дорогими спредами.

Групуйте спостереження за відношенням виразності до ATR та порівнюйте діапазони RVOL усередині груп. Це перевіряє інформацію обсягу понад амплітуду ціни, не лише відбір більших рухів. Усередині дня використовуйте порівнянні бази за часом сесії; для крипто зафіксуйте майданчик і одиниці обсягу — базовий чи котируваний актив.

Повідомте, як фільтр обсягу змінює кількість сигналів, середній час утримання та експозицію. Вищий середній прибуток на виконану угоду може співіснувати з нижчою ефективністю портфеля, якщо фільтр відкидає багато корисних можливостей. Відсутність обсягу повинна мати чітку політику щодо недоступних даних, а не інтерпретуватися як екстремальне виснаження.

Окремо перевірте геометрію, стійкість та економічну цінність

Тестові набори мають включати малий пік поряд із більшим, плоскі плато, NaN, краї вікна та близьких кандидатів. Перевірте точні основи й отриману виразність. Для SciPy записуйте версію та попередню обробку; центроване згладжування додає затримку очікування пізніших спостережень.

Вимірюйте число збережених опор, фіксовану затримку підтвердження в h барів і частку побудованих на них моделей, що застаріли до доступності останньої опори. Потім оцініть чистий результат на заздалегідь фіксованому тестовому періоді з реалістичними витратами й виконанням. Чистіший графік — не економічний показник.

Збільшення W змінює визначення нової локальної структури, але не опубліковані події попередньої версії. Порівнюйте близькі розміри вікна на даних розробки, реєструйте число спроб і показуйте, чи фільтрація поліпшує чисте маточікування або ризик з урахуванням упущених можливостей.

Поширені помилки

Плутати виразність з абсолютною висотою

Вища номінальна ціна не означає більш виразний пік відносно його місцевої бази.

Відсів за відстанню після перегляду всього ряду

Майбутній пік може видалити попередню подію. Застосовуйте покрокове відтворення або задану паузу після події без знання майбутнього.

Згладжування без урахування затримки

Центроване згладжування використовує пізніші спостереження. Додайте цю затримку до фактичної доступності події.

Список перевірки перед застосуванням методу

Позначайте кожен пункт після перевірки на власних даних. Прогрес зберігається в цьому браузері й не засвідчує прибутковість стратегії.

0/8 пунктів

Поширені запитання

Чи краща виразність, ніж звичайна опорна точка?

Він додає критерій амплітуди та бази. Чи допоможе це, залежить від призначення детектора та позавибіркової продуктивності стратегії, що використовує його якорі.

Чи може виразність виявляти піки RSI?

Так, RSI — числовий ряд. Результат має одиниці пунктів RSI, тому ATR ціни не підходить як безпосередній знаменник.

Джерела дослідження

Кожне джерело підтверджує визначення або докази, описані поруч. Псевдокод, штучні приклади та запропоновані параметри потребують окремої перевірки.

  1. scipy.signal.peak_prominencesSciPy. Прочитано визначення основ, wlen і алгоритму; це чисельна документація, не фінансове дослідження. Перевірено: .
  2. scipy.signal.peak_widthsSciPy. Прочитано вимірювання ширини на відносній висоті виразності та правила інтерполяції. Перевірено: .
  3. scipy.signal.find_peaksSciPy. Прочитано визначення фільтрів і правила відстані. Перевірено: .

Пов’язані методи

Примітка про ризики

Матеріал призначений для навчання й планування досліджень, а не є фінансовою порадою. Backtest моделює минулі дані, не гарантує майбутніх результатів і не здійснює реальних угод. Методи бібліотеки не обов’язково реалізовані в застосунку. Дивіться методологію і навчальний центр.

Перевірте правила, перш ніж ризикувати реальним капіталом

Перевірте можливості застосунку, дані й кожну змодельовану угоду; складні детектори можуть потребувати окремої реалізації.

Завантажити Backtest в App Store