Зміст статті
- Докази та сфера застосування
- Ілюстрація
- Процес
- Підібрана лінія описує спостережуване вікно
- Оцінюйте модель лише за даними до свічки виявлення
- Повернення всередині каналу може бути успішним або невдалим
- Фіксовані коефіцієнти не роблять центр нерухомим
- Діагностика залишків не підтверджує прибутковості
- Обсяг фільтрує події без переписування каналу
- Хронологічні тести й корисні контрольні версії
- Поширені помилки
- Практичний список перевірки
- Поширені запитання
- Джерела дослідження
Докази та сфера застосування
Fidelity пояснює регресійний індикатор, statsmodels і NIST — побудову моделі та діагностику. Жодне джерело не підтверджує прибутковості запропонованого входу після повернення ціни в канал.
Практична послідовність дій
- Оцініть модель за минулимЗастосуйте OLS логарифма ціни з вільним членом, виключивши свічку виявлення.
- Перевірте контекстЗастосуйте задані вимоги до нахилу й залишків.
- Зафіксуйте модель при відхиленніЗберігайте незмінні коефіцієнти та початок координат.
- Дочекайтеся повернення в каналВимагайте закриття всередині смуги, але нижче центральної цілі.
- Оцінити ризикПеревірте стопи, виходи за часом і витрати на даних поза розробкою.
Підібрана лінія описує спостережуване вікно
Fidelity описує свій індикатор лінійної регресії через кінцеву точку підібраної лінії за N періодів [1]. У цій статті ця описова ідея розширюється за допомогою залишкових смуг. Похилий центр означає, що перебування значно нижче лінії не означає автоматично фундаментальну дешевизну або неминуче зростання.
Розділіть два питання: наскільки добре пряма лінія пояснює минуле вікно, і чи сьогоднішнє відхилення передбачає подальшу прибутковість. R² відповідає на перше. Стабільне зниження може мати високий R², тоді як купівля нижче його підібраної лінії неодноразово призводить до втрат грошей.
Канал можна застосовувати до повернення до середнього або продовження тренду, але це конкурентні гіпотези. Базова версія нижче чекає виходу вниз і повернення всередину фіксованої нижньої смуги. Вона не переходить на моментум, коли історична угода повернення до середнього зазнає невдачі.
Оцінюйте модель лише за даними до свічки виявлення
Для j=0…N−1 задайте y[j]=log(C[j]) й оцініть y=a+bj звичайним методом найменших квадратів. Залишки e[j]=y[j]−a−bj, їхній масштаб s=sqrt(sum(e²)/(N−2)). Через h кроків після вікна m(h)=a+b(N−1+h), цінові смуги exp(m(h)±ks). Запропоновано N=60, k=2; відхиляйте недодатні ціни й майже нульовий s.
statsmodels OLS не додає вільний член до переданої матриці регресорів автоматично [2], тож включіть стовпець константи. Оцінюйте модель до t−1 включно, а закриття свічки t — при h=1. Включення t дозволило б самому шоку змістити центр і ширину, за якими оцінюється той самий шок.
Фільтр контексту діапазону abs(b)×(N−1)/s≤1 порівнює оцінений дрейф із масштабом залишків. Це правило відбору, а не тест стаціонарності. Коли вихід за смугу створює кандидата, збережіть a, b, s, початковий індекс і вхідне вікно моделі. Активного кандидата ніколи не переоцінюйте.
Завершення строку має пріоритет над сигналом. Псевдокод задає цей порядок та ініціалізує previous_z при першому виході за смугу. Пропущені дані, нечислові чи нескінченні результати й нульовий масштаб залишків вимикають кандидата, не допускаючи ділення на нуль або штучного екстремального z-показника.
if no_candidate:
if invalid_or_nonpositive(close[t-N:t+1]): return
a,b,s = fit_log_ols(close[t-N:t], with_intercept=True)
if not finite(a,b,s) or s <= min_residual_scale: return
regime_ok = abs(b)*(N-1)/s <= 1.0
z = (log(C[t])-(a+b*N))/s
if regime_ok and z < -2:
freeze_candidate(a,b,s,origin=t-N,expiry=t+10,
previous_z=z,excursion_low=L[t])
else:
if t > candidate.expiry:
expire(); return
j = t-candidate.origin
z = (log(C[t])-(candidate.a+candidate.b*j))/candidate.s
update_excursion_low(L[t])
if candidate.previous_z < -2 and -2 <= z < 0:
emit_long(t)
candidate.previous_z = z
# Never refit an active candidate or backfill historical channels.
Повернення всередині каналу може бути успішним або невдалим
Умовний приклад: центр близько 100, нахил 0, масштаб логарифмічних залишків s=0.01. Нижня смуга двох сигм близько 98.02, верхня — 102.02. Ціна 97.8 нижче смуги; наступне закриття 98.3 повертається всередину. Вхід 98.4, стоп 97.5 і ціль 100 дають ризик 0.9 та потенційний прибуток 1.6, близько 1.78R до витрат.
Успішна умовна траєкторія спочатку досягає 100. При невдачі нова інформація веде ціну вниз до 96, потім до 94. Позиція має закритися за реально доступною ціною біля 97.5 або гірше при гепі. Добра апроксимація минулого не запобігає зміні середовища формування ціни.
Не розширюйте sigma після падіння, оголошуючи, що попередній стоп насправді не порушувався. Це змінює зафіксоване рішення за вже відомим результатом. Оновлення для майбутніх кандидатів не змінюють обліку наявної угоди.
Інша траєкторія стрибає прямо з 97.8 до 101. Хоч ціна повернулася в смугу, базова версія вимагає z<0, тому не купує вище центральної цілі. Правило фіксується наперед, а не додається після гепу з поганим співвідношенням прибутку до ризику.
Фіксовані коефіцієнти не роблять центр нерухомим
Фіксація коефіцієнтів a і b не робить проєкцію центру горизонтальною: вона рухається за початковим нахилом зі зростанням індексу часу. На сигналі зафіксуйте ціль на проєкції центру для очікуваного часу входу, а стоп — нижче мінімуму всього відхилення за смугу з відніманням буфера.
Запропонована позиція закривається через десять свічок, якщо ні ціль, ні стоп не досягнуті. Строк кандидата й час утримання позиції — різні відліки: перший обмежує очікування повернення в канал, другий — утримання після входу. Зберігайте обидва, щоб відкриття угоди випадково не подовжило строк кандидата.
Якщо виконання затримується відносно очікуваного входу, визначте наперед, чи лишається ціль незмінною, чи торговий план скасовується до надсилання заявки за економічним правилом. Не відсувайте ціль після виконання лише для привабливості потенційного прибутку.
На швидких рухах порівнюйте припущення наступного відкриття й реально доступного котирування. Історичний перетин лінії не гарантує виконання за її ціною. Якщо ціль — очікувальна лімітна заявка, моделюйте активацію, кількість і можливе невиконання; не зараховуйте центр автоматично, коли наступна свічка охопила його ціну.
Діагностика залишків не підтверджує прибутковості
NIST розглядає класичні припущення про залишки, зокрема незалежність і сталу дисперсію [3]. Фінансові ціни можуть їх порушувати. Тому ±2s не є автоматично 95% прогнозним інтервалом наступної ціни, а звичайне p-значення нахилу OLS не доводить торговельної переваги.
Перевіряйте автокореляцію залишків, хвости розподілу й стійкість s між вікнами. Тривалі залишки з одного боку можуть означати, що стратегія торгує проти нового тренду. Діагностика має пояснювати модель, а не служити вибору лише сприятливих історичних епізодів.
Практичне порівняння зберігає заморожені знімки для кожного кандидата та відображає рух ціни відносно цих знімків. Якщо очевидне повернення відбувається лише тому, що центр, що неодноразово перебудовується, рухається до ціни, ефектом є адаптація моделі, а не повернення ціни до початкового рівня.
R², стандартна похибка та z-показник служать різним цілям. R² описує відповідність, стандартна похибка підсумовує шкалу залишків у вікні, а z-показник виражає поточне відхилення під цією замороженою шкалою. Жоден з них не слід перейменовувати на ймовірність виграшу наступної угоди.
Обсяг фільтрує події без переписування каналу
Одна гіпотеза уникає торгівлі проти руху при незвично високому RVOL, який може супроводжувати переоцінку активу. Конкурентна гіпотеза шукає високу активність при виході за смугу й спокійніше повернення всередину. Оберіть і зареєструйте ознаку до перегляду результатів, не застосовуйте обидва пояснення за зручністю.
Використовуйте базу для зіставного часу сесії, записуйте спреди й доступні новини з часом публікації. Підсумковий обсяг відхилення не має впливати на рішення до його завершення. При підтвердженні повернення можна підсумувати спостережуваний вихід за смугу, але available_at ознаки відображає час її останнього вхідного спостереження.
Заміна OLS регресією з вагами за обсягом змінює саму модель. Порівнюйте її як окрему версію з незваженою базою. Інакше користь, приписана обсягу, може поєднувати змінені центр, масштаб залишків і фільтр входу, не визначаючи внеску кожного.
Хронологічні тести й корисні контрольні версії
Порівняйте канал із горизонтальним середнім типу Bollinger та базовим z-показником без нахилу за однакових входів, виходів і витрат. Оберіть N, k і фільтр контексту на вибірці розробки, зберігши фінальний недоторканий тест. Видаляйте інтервали міток угод, що перетинають межу поділу, якщо інакше обидві вибірки використовували б результат одного виходу за смугу.
Тестові набори мають перевіряти вільний член, кінець вікна t−1, логарифмічний масштаб, ступені свободи, нульовий s, пропуски й незмінність минулих рішень при додаванні майбутнього. Перевірте кандидата, строк якого минув, а ціна повернулася в смугу на наступній свічці: він має залишитися простроченим без пізнього сигналу.
Звітуйте про чисту дохідність, хвостові збитки, час без угод і результати за наперед заданими режимами. Ускладнюйте виконання та гепи в стрес-тестах. Якщо прибуток залежить від точного виконання за центром усередині неоднозначної свічки з гепом, виправте модель виконання до економічних висновків.
Поліном вищого порядку може точніше відповідати історичним даним, додаючи при цьому нестабільну екстраполяцію та більше можливостей для дослідження. Лінійна базова лінія є цінною, оскільки її коефіцієнти, проекцію та випадки невдачі можна перевірити безпосередньо.
Поширені помилки
Перебудовувати минулі канали
Поточна лінія переписує ранні сигнали, створюючи видимість постійної точності графіка.
Перетворення R² на коефіцієнт виграшів
Пояснювальна відповідність у вибірці не те саме, що прогнозна торгова ефективність.
Торгувати проти зміни ринкового режиму
Старий канал може втратити актуальність, коли нова інформація переоцінює інструмент.
Список перевірки перед застосуванням методу
Позначайте кожен пункт після перевірки на власних даних. Прогрес зберігається в цьому браузері й не засвідчує прибутковість стратегії.
Поширені запитання
Чи завжди регресія краща за смуги Боллінджера?
Ні. Додаються нахил і вибір моделі. Щоб визначити їхній внесок, порівнюйте стратегії за однакових правил торгівлі й виконання.
Чи може поліном покращити наближення?
Це можна досліджувати, але додаються ступені свободи й ризик екстраполяції. Точніша апроксимація минулого сама не доводить кращої стратегії.
Джерела дослідження
Кожне джерело підтверджує визначення або докази, описані поруч. Псевдокод, штучні приклади та запропоновані параметри потребують окремої перевірки.
- Linear Regression IndicatorFidelity. Прочитано визначення індикатора регресії через кінцеву точку лінії. Перевірено: .
- statsmodels OLSstatsmodels. Прочитано правила OLS щодо вільного члена, пропущених даних і оцінювання моделі. Перевірено: .
- Are the model residuals well-behaved?NIST/SEMATECH. Прочитано класичні припущення про залишки; це не висновки про передбачуваність ринку. Перевірено: .
Пов’язані методи
Примітка про ризики
Матеріал призначений для навчання й планування досліджень, а не є фінансовою порадою. Backtest моделює минулі дані, не гарантує майбутніх результатів і не здійснює реальних угод. Методи бібліотеки не обов’язково реалізовані в застосунку. Дивіться методологію і навчальний центр.
Перевірте правила, перш ніж ризикувати реальним капіталом
Перевірте можливості застосунку, дані й кожну змодельовану угоду; складні детектори можуть потребувати окремої реалізації.
Завантажити Backtest в App Store