Зміст статті
- Докази та сфера застосування
- Ілюстрація
- Процес
- Очікування повторного тестування змінює набір можливостей
- Зафіксуйте опорний рівень і перший допустимий ретест
- Порівняйте той самий час доби
- Синтетичні приклади допустимого ретесту та невдалих сценаріїв
- Оберіть захист, перш ніж побачити результат
- Додайте контрольний варіант входу одразу після пробою
- Поширені помилки
- Практичний список перевірки
- Поширені запитання
- Джерела дослідження
Докази та сфера застосування
Fidelity обговорює ретест і консолідацію на меншому обсязі, а SMB розбирає конкретний вхід. Це навчальні приклади, а не бектест запропонованого тут алгоритму.
Практична послідовність дій
- Пробити відомий рівеньЗафіксуйте Q, ATR та RVOL пробою.
- Зачекайте першого повторного тестуванняПрийміть ретест у заданій смузі протягом восьми барів; інакше строк кандидата спливає.
- Виміряйте зниження обсягуПорівняйте середній RVOL, нормований для того самого часу доби.
- Підтвердити продовженняВимагати пізніше закриття вище максимуму повторного тестування плюс буфер.
- Виконати та порівнятиВикористовуйте фактичні виконання та враховуйте пропущені сильні рухи.
Очікування повторного тестування змінює набір можливостей
Fidelity обговорює ретест пробою зі зниженою активністю під час консолідації [1]. Розбір SMB підкреслює місце входу після пробою [2]. Дослідницьке питання: чи поліпшує очікування співвідношення ризику й винагороди достатньо, щоб компенсувати рухи, які не повертаються до рівня?
Після пробою ретест може не відбутися. Вибір лише графіків із поверненням та відскоком виключає сильні рухи без входу й невдалі пробої з падінням крізь рівень. Створюйте кандидата в момент пробою; потім автомат станів класифікує ретест, сплив строку або невдачу.
Обсяг може мати три можливі ролі: незвичайна активність на початковому прориві, участь під час відкату та відновлення активності при продовженні. Не думайте, що вимога всіх трьох є найкращим варіантом. Низький обсяг також може супроводжувати недостатній попит і легке зниження, тому тихе повторне тестування залишається гіпотезою, а не доказом підтримки.
Зафіксуйте опорний рівень і перший допустимий ретест
Для запропонованої бичачої версії на п’ятихвилинних барах Q — найбільший максимум 20 барів перед t, без самого t. Задайте A=ATR14[t−1], b=max(2 ticks,0.10A) та eps=max(2 ticks,0.15A). Пробій вимагає C[t]>Q+b, C[t−1]≤Q, положення закриття (C−L)/(H−L)≥0.70 та RVOL[t]≥1.5. За нульового діапазону цей коефіцієнт не визначений. Зафіксуйте Q, A й обидва буфери.
Від t+1 до t+8 зафіксуйте перший бар r, мінімум якого лежить в інтервалі [Q−eps,Q+eps], а закриття не нижче Q. Раніше закриття нижче Q−eps скасовує кандидата. Середній RVOL від t+1 до r має бути не більший за 0.7 від RVOL пробою. Якщо умову не виконано, відхиліть кандидата цієї версії з фільтром; не вибирайте красивіший пізніший ретест.
У наступні три бари після r перше закриття вище H[r]+b створює сигнал. Стоп розмістіть на b нижче найменшого мінімуму від t+1 до сигнального бара включно; входьте за наступною доступною для виконання котировкою. Усі довжини й пороги — запропоновані дослідницькі параметри. Для короткої позиції геометрія дзеркальна, але вплив обсягу треба перевіряти окремо.
Окремий випадок — бар, мінімум якого опустився нижче всієї смуги ретесту, але закриття повернулося вище Q. Задане правило мінімуму всередині смуги не приймає його як r. Версія за перетином смуги могла б прийняти, але це інший детектор, якому потрібен новий ідентифікатор версії.
Відхиляйте пробійний бар за H≤L. Невизначений коефіцієнт положення закриття не скасовує фільтр, зокрема для бара з нульовим діапазоном, що відкрився гепом за опорним рівнем.
after_breakout_close(t):
if H[t]<=L[t] or not complete_prior_features: reject(); return
candidate = freeze(Q,A,b,eps,break_rvol,session_id,
cutoff=session_end-5_minutes,known_at=received_close_time(t))
if received_close_time(t)>=candidate.cutoff: expire(); return
r = None
for u in t+1..t+8:
if session_id(u)!=candidate.session_id or received_close_time(u)>=candidate.cutoff:
expire(); return
if C[u]<Q-eps: cancel(); return
if first_valid_retest(u):
r=u; break
if r is None: expire_no_retest(); return
if missing_rvol(t+1,r) or mean_rvol(t+1,r)>0.7*break_rvol:
reject_volume(); return
for u in r+1..r+3:
if session_id(u)!=candidate.session_id or received_close_time(u)>=candidate.cutoff:
expire(); return
if C[u]<Q-eps: cancel(); return
if C[u]>H[r]+b:
stop=min(L[t+1:u+1])-b
consume_candidate_then_order_on_next_quote_if_before_cutoff()
return
expire_no_confirmation()
# A session-close timer also expires waiting candidates when no new bar arrives.
Порівняйте той самий час доби
Запропонований RVOL_bar ділить поточний обсяг на медіанний обсяг того самого часового інтервалу за попередні 20 сесій. TradingView використовує середнє в індикаторі Relative Volume at Time [3]; медіана тут — свідомий дослідницький варіант. Не переносіть результати однієї оцінки на іншу без нового тесту.
Пробій на один бар та відкат на шість барів не слід порівнювати за загальним обсягом. Середнє значення RVOL за один і той же час контролює як тривалість, так і внутрішньоденні моделі активності. Скорочені сесії, зупинки та недоступні базові лінії повинні призводити до insufficient_data, а не до зручно підставленого значення.
Поріг зростання обсягу на сигнальному барі, наприклад RVOL≥1.2, можна додати окремим експериментом. Додатковий внесок відносної сили чи трендового фільтра EMA теж слід вимірювати окремо. Підсумковий денний обсяг і акції, що стали лідерами наприкінці дня, не можуть вибирати ранковий вхід.
Синтетичні приклади допустимого ретесту та невдалих сценаріїв
Нехай Q=50, A=1 і tick=0.01, тоді b=0.10 та eps=0.15. У пробійного бара з H50.80, L49.90 та C50.70 положення закриття дорівнює 0.80/0.90, приблизно 0.889, а відносний обсяг — RVOL2. Значення RVOL відкату 1.0,0.8 та 0.6 дають середнє 0.8, нижче допустимих 1.4. Бар ретесту має мінімум 50.05, максимум 50.35 і закриття 50.15.
Наступне закриття 50.50 перевищує 50.45. За купівлі по 50.55 та відомого мінімуму відкату 50.05 стоп дорівнює 49.95, ризик — 0.60, а ціль 2R — 51.75. Версія з підтвердженням не може приписати собі вхід по 50.00 лише тому, що до підтвердження ціна торкалася Q. Заздалегідь виставлений лімітний ордер на Q мав би інший набір доступної інформації та шлях виконання.
Закриття 49.80 до підтвердження скасовує кандидата, оскільки він нижче 49.85, навіть на низькому обсязі. Після дійсного виконання, стоп-виконання 49.90 програє 0.65 від 50.55. Якщо ціна замість цього рухається безпосередньо до 52 без повторного тестування протягом восьми барів, фіксується відсутність повторного тестування. Це зростання не є прибутком, отриманим за стратегією, яка не мала позиції.
Оберіть захист, перш ніж побачити результат
Стоп нижче всього відкату відрізняється від стопа нижче лише бара r. Базовий варіант використовує відомий мінімум від t+1 до сигнального бара включно. Не розширюйте захист до давнішої бази після входу лише заради утримання збиткової угоди.
Якщо рішення про ордер прийняте лише після підтвердження, котировку із завеликим гепом можна відхилити за наперед заданим правилом ризику чи винагороди. Для вже виставленого очікуваного вхідного ордера потрібно зберегти всі виконання до скасування. Не поєднуйте ці варіанти в одну надто сприятливу симуляцію.
Запропонований внутрішньоденний варіант виходить за першою з умов: досягнення 2R, спрацювання захисного стопа, сплив 20 барів після входу або час виходу перед закриттям сесії. Розраховуйте ціль від фактичної ціни виконання. Версії з трейлінгом за свінгами потрібні детектор без майбутніх даних та окрема статистика.
Кілька корельованих акцій можуть пробити рівні після однієї ринкової новини. Обмежуйте ризик портфеля замість повного незалежного бюджету на кожен інструмент. Записуйте відношення спреду до відстані до стопа: невелика грошова витрата може поглинути значну частину R за близького стопа ретесту.
Базовий варіант припиняє входи за п’ять хвилин до планового закриття сесії, зокрема скороченої. Кожен кандидат зберігає session_id та, за використання VWAP, anchor_id. Досягнення граничного часу, зміна сесії чи скидання якоря завершує очікувану подію. Котировка після сигналу також має надійти до цього часу. Таймер сесії скасовує очікування, навіть якщо нових барів немає; лічильники не продовжуються наступного ранку. Це дослідницьке правило, визначене статтею.
Додайте контрольний варіант входу одразу після пробою
Почніть з однієї сукупності пробоїв і порівняйте купівлю після пробою, очікування ретесту без фільтрів обсягу та очікування з цими фільтрами. Бюджети ризику й торгові календарі мають бути зіставними. Покажіть математичне очікування на виконаний вхід і дохідність на виділений день.
Вимірюйте ймовірність ретесту, час очікування, відмови за фільтром обсягу, відсутність виконання, MAE/MFE та чисті дохідності. Більша частка виграшів може поєднуватися з меншим загальним прибутком через пропуск сильних рухів. Підбирайте контрольні випадки за часом, трендом і волатильністю, щоб перевірити, чи обсяг не вибирає лише сприятливий режим.
Використовуйте хронологічну валідацію та групуйте кандидатів, що перекриваються. Перевіряйте сусідні довжини вікна ретесту й пороги RVOL, а не єдиний гострий оптимум. Повторні прогони за зростаючими префіксами даних мають довести, що Q не зміщується до нового максимуму пробою, а вибраний перший ретест не змінюється через пізніші дані.
Зберігайте нефільтровану таблицю кандидатів з усіма причинами відмови. Вона дозволяє наступному досліднику відтворити альтернативну вартість кожної умови без нового відбору в іншому наборі інструментів. Також видно, чи кращий результат зумовлений переважно меншою кількістю угод, чи справді іншими подальшими ціновими траєкторіями.
Поширені помилки
Вибір лише тих діаграм, які відскочили
Результати без повторного тестування та невдалого повторного тестування є важливими частинами знаменника.
Низький обсяг завжди означає бичачий тренд
Тиха активність сама по собі не є гарантією підтримки покупців.
Купівля по Q заднім числом після відскоку
Без заздалегідь виставленого лімітного ордера це виконання, приписане заднім числом.
Список перевірки перед застосуванням методу
Позначайте кожен пункт після перевірки на власних даних. Прогрес зберігається в цьому браузері й не засвідчує прибутковість стратегії.
Поширені запитання
Чи потрібно наздоганяти рух, якщо ретесту немає?
Ця версія пропускає рух. Прямий вхід після пробою — окремий варіант для порівняння, а не імпровізований виняток.
Чи має повторне тестування торкнутися однієї точної ціни?
Ні. Допуск фіксовано в тиках та ATR перед подією. Його ширина є параметром для перевірки.
Джерела дослідження
Кожне джерело підтверджує визначення або докази, описані поруч. Псевдокод, штучні приклади та запропоновані параметри потребують окремої перевірки.
- Entry and Exit Strategy: What you need to considerFidelity / OCC. Вивчено обговорення ретесту, невдалого пробою та обсягу в стенограмі; це не бектест. Перевірено: .
- How to improve your trading entriesSMB Capital. Вивчено оригінальну стенограму розбору ADT від 10 серпня 2020 року; аудованої P&L стратегії немає. Перевірено: .
- Relative Volume at TimeTradingView. Вивчено визначення RVOL для того самого часу доби; медіана за 20 сесій — окрема пропозиція цієї статті. Перевірено: .
Пов’язані методи
Примітка про ризики
Матеріал призначений для навчання й планування досліджень, а не є фінансовою порадою. Backtest моделює минулі дані, не гарантує майбутніх результатів і не здійснює реальних угод. Методи бібліотеки не обов’язково реалізовані в застосунку. Дивіться методологію і навчальний центр.
Перевірте правила, перш ніж ризикувати реальним капіталом
Перевірте можливості застосунку, дані й кожну змодельовану угоду; складні детектори можуть потребувати окремої реалізації.
Завантажити Backtest в App Store