Ідея коротко
Фільтр дивиться не на ціну індексу, а на те, скільки акцій усередині нього зростає. Міра проста: частка паперів індексу, які закрилися вище своєї ковзної середньої. Jack Corsellis рахує її на трьох довжинах: 20 днів (короткий приплив), 50 і 200 днів, для S&P 500, NASDAQ-100 і NASDAQ Composite. У TradingView це готові ряди, наприклад NCTW для NASDAQ Composite і 20-денної середньої.
Пороги в автора одні для всіх довжин. Вище 75% ринок перекуплений, приплив зайшов далеко. Нижче 25% перепроданий, приплив відійшов. Значення від високих 80% до 90% і вище Джек вважає крайністю: тиснути на свінг-лонги в цей час він не хоче, але й прямої заборони не називає. Для свінг-трейдера в лонг це означає: активніше набирати лідерів, коли ширина в перепроданості або виходить із неї, і зменшувати ризик, коли перекуплено все одразу. Окремий сигнал це дивергенція: індекс оновлює максимум, а ширина ні.
Чому це може працювати
Джек називає ринок машиною повернення до середнього. Більшість акцій іде за індексом. Коли майже всі папери вже вище своїх середніх, у ринку мало місця для подальшого зростання, і наступний важливий рух, на думку автора, радше вниз. Коли майже всі нижче, зона протилежна. Лідери, які трималися під час відпливу, першими зростають, коли приплив повертається, і позиція в них отримує ринок на своєму боці.
Дивергенція пояснюється участю. Якщо індекс зростає на дедалі меншій кількості паперів, основа ринку слабшає раніше, ніж це видно за ціною. Джек порівнює це з лавиною: спочатку підточується шар під снігом, поверхня рухається останньою.
Автор кілька разів повторює, що це не грааль. Перекупленість може триматися довго, перепроданість теж. Статистики у відео немає, лише епізоди на графіках.
Відмінність від index-ema-regime: там фільтр за трендом ціни індексу, він забороняє купівлі в падінні. Ширина працює майже навпаки: підштовхує до купівель, коли більшість паперів уже впала, і гальмує в сильному зростанні. Від follow-through-day відмінність у даних: день підтвердження дивиться лише на індекс і його обсяг. Фільтри можуть суперечити один одному, це треба перевіряти.
Правила
Дані й зони (автор, поріг крайності Finetiq)
// денні значення для S&P 500, NASDAQ-100, NASDAQ Composite
B20 = частка акцій індексу з Close > MA(Close, 20), %
B50 = частка з Close > MA(Close, 50), %
B200 = частка з Close > MA(Close, 200), %
// автор: готові ряди TradingView; у відео названо NCTW, S5TW, NDFI
// Finetiq: тип середньої всередині ряду задає постачальник даних
Overbought(B) = B > 75 // автор
Oversold(B) = B < 25 // автор
Extreme(B) = B >= 90 // Finetiq: поріг; в автора крайність уже від високих 80%, без прямої заборони
Дивергенція (автор, пороги Finetiq)
IndexHigh = Close of Index >= Highest(Close of Index, 60) // Finetiq: 60-денний максимум
PrevPeakB = B50 на попередньому 60-денному максимумі індексу, не ближче 20 днів // Finetiq
NegDiv = IndexHigh AND B50 < PrevPeakB - 5 // автор: індекс вище, ширина нижче
// Finetiq: розрив 5 пунктів
// автор: на довгому горизонті той самий прийом за B200
IndexLow = Close of Index <= Lowest(Close of Index, 60)
PosDiv = IndexLow AND B50 > (B50 на попередньому 60-денному мінімумі) + 5 // автор: позитивна дивергенція
// Finetiq: NegDiv і PosDiv рахуються до блоку режиму й входять у нього нижче
Режим для нових лонгів (автор словами, числа Finetiq)
// значення минулого закритого дня
// Finetiq: блок рахується останнім, після дивергенції та осцилятора Макклеллана (варіант B)
AllOB = Overbought(B20) AND Overbought(B50) AND Overbought(B200)
AllOS = Oversold(B20) AND Oversold(B50) AND Oversold(B200)
TideOut = Oversold(B20) хоча б в один з останніх 10 днів // Finetiq: вікно 10
OR PosDiv // Finetiq: позитивна дивергенція теж відплив
OR McOS // варіант B; без нього McOS = FALSE
TideIn = Overbought(B20) OR Overbought(B50)
// автор: насамперед дивиться на 20 і 50 днів, 200 тримає в голові
// умови перевіряються згори донизу, перемагає остання, що спрацювала
RiskMult = 1.0 // Finetiq: база
IF TideOut THEN RiskMult = 1.5 // автор: активніше набирати лідерів; Finetiq: 1.5
IF TideIn THEN RiskMult = 0.5 // автор: торгувати менше, скинути газ
IF NegDiv THEN RiskMult = MIN(RiskMult, 0.5) // Finetiq: негативна дивергенція
IF AllOB OR Extreme(B20) OR Extreme(B50) THEN RiskMult = 0 // автор: при високих 80-90% не час тиснути на свінг-лонги
// Finetiq: 0.5 уже від 75%, повна заборона нових входів від 90%
// або коли перекуплено все; заборона суворіша за слова автора
// Finetiq: 1.5 стосується ризику на угоду, загальний ліміт ризику портфеля не змінюється
Відкриті позиції (автор словами, правило Finetiq)
// автор: у перекупленості не виходить одразу, але надає більшої ваги закриттям під EMA 10 і 21
IF AllOB
трейлінг позиції: закриття нижче EMA(Close, 10) // Finetiq
// автор: у загальній перепроданості готовий тримати лідера довше, «від 50-денної до 50-денної»
IF AllOS у день входу
трейлінг позиції: закриття нижче SMA(Close, 50) // Finetiq
Варіант B. Осцилятор Макклеллана (автор, без чисел)
Джек використовує його як доповнення до ширини, переважно за перепроданістю. Формулу він пропонує знайти самостійно й описує осцилятор через нові максимуми й мінімуми. Стандартний осцилятор будується на різниці кількості акцій, що зростають і падають. Порогів у відео немає.
NetAdv = кількість акцій, що зросли - кількість акцій, що впали, за день
McClellan = EMA(NetAdv, 19) - EMA(NetAdv, 39) // спільнота: стандартна формула
McOS = McClellan <= 10-й перцентиль за останні 250 днів // Finetiq: поріг
// автор: осцилятор посилює сигнал на купівлю; Finetiq: McOS входить у TideOut у блоці режиму
Підключення до карток бази (Finetiq)
// приклад 1: qullamaggie-breakout (пробій, ризик 0.3-0.5%)
RiskMoney = Equity * 0.5% * RiskMult // вхід і стоп картки не змінюються
IF RiskMult = 0 THEN нові входи заборонені
// повільні папери там ведуться за EMA 20: при AllOB перемкнути їх на EMA 10
// приклад 2: five-day-low-mr (купівля 5-денного мінімуму)
IF FiveDayLow AND MarketOK AND TideOut AND NOT InPosition // MR-вхід лише при відпливі
BUY AT NEXT BAR OPEN
// порівняти з фільтром картки без ширини та із забороною входів лише при AllOB
Параметри
| Параметр | Значення | Звідки |
|---|---|---|
| Індекси | S&P 500, NASDAQ-100, NASDAQ Composite | автор |
| Довжини середніх | 20, 50, 200 днів | автор |
| Перекупленість | вище 75% | автор |
| Перепроданість | нижче 25% | автор |
| Крайність | 90% і вище (в автора вже від високих 80%) | Finetiq |
| Вікно недавнього відпливу | 10 днів | Finetiq |
| Множник ризику при відпливі | 1.5 | Finetiq |
| Множник при перекупленості | 0.5 | Finetiq |
| Заборона нових лонгів | усе перекуплено або крайність за 20 чи 50 днями | Finetiq |
| Дивергенція | 60-денний екстремум індексу, розрив 5 пунктів | Finetiq |
| Трейлінг при загальній перекупленості | EMA 10 | Finetiq |
| Трейлінг при загальній перепроданості в день входу | SMA 50 | Finetiq |
| Осцилятор Макклеллана | EMA 19 і 39 від різниці акцій, що зросли й упали | спільнота |
| Перепроданість осцилятора | 10-й перцентиль за 250 днів | Finetiq |
Що перевірити
- Чи є повернення до середнього. Порахуйте доходність індексу через 10, 20 і 40 днів після входу B20 у зону нижче 25% і вище 75%. Порівняйте з усіма днями. Це головне твердження автора, і воно перевіряється без стратегії.
- Множник проти заборони. Одна пробійна стратегія з трьома версіями фільтра: без ширини, лише заборона входів при AllOB, повна шкала 1.5, 1.0, 0.5, 0. Дивіться на просадку й кількість пропущених сильних угод.
- Околиця порогів. 70 і 30, 75 і 25, 80 і 20; крайність 85 і 90; вікно відпливу 5, 10, 20 днів. Якщо результат тримається лише на 75 і 25, фільтр підігнаний.
- Довжина середньої. Фільтр лише за B20, лише за B50 і за їх поєднанням. Автор сам каже, що короткий і довгий припливи можуть показувати різне.
- Конфлікт із фільтром тренду. Поєднайте з
index-ema-regimeі розмітьте угоди за чотирма комбінаціями: тренд так чи ні, відплив так чи ні. Особливо цікаві купівлі при відпливі в ринку, що падає. - Дивергенція. Скільки разів NegDiv з'являлася перед падінням індексу на 10% і більше і скільки разів без нього. Епізоди, що запам'яталися, нічого не доводять.
- Який індекс. Ширина S&P 500 проти NASDAQ Composite для акцій NASDAQ. У другому індексі близько 3000 паперів, багато дрібних, і його ширина поводиться інакше.
Особливості платформ
TradingView (Pine Script)
- Ряди ширини є в готовому вигляді: у відео названо NCTW, S5TW і NDFI. Ряди для інших довжин ідуть за тією самою схемою (наприклад, S5FI і S5TH для S&P 500), символи звірте в пошуку.
- Читайте їх через
request.security(sym, "D", close[1], lookahead = barmerge.lookahead_on). Значення за день стає відомим лише після закриття всіх акцій індексу. - Глибина історії в рядів ширини різна. Перевірте, з якого року ряд починається, перш ніж тестувати 200-денну версію.
- Стратегія торгує лише символ графіка. Фільтр для кошика акцій перевіряється на одному папері, множник ризику передається через
qtyуstrategy.entry.
MultiCharts і TradeStation (EasyLanguage)
- Готовий ряд частки акцій вище середньої має бути в постачальника даних окремим символом, тоді він підключається другим потоком (
Close of Data2). Якщо його немає, ряд імпортується ззовні або рахується самостійно. - Самостійний розрахунок робиться в портфельному модулі за всіма паперами індексу. Потрібен історичний склад індексу на кожну дату: сьогоднішній список дасть помилку вцілілого, і ширина в минулому вийде вищою за реальну.
- Для осцилятора Макклеллана потрібна кількість акцій, що зросли й упали. Якщо їх немає в даних, вони так само будуються за складом індексу.
- Фільтр беріть за значенням минулого дня, навіть якщо стратегія працює на внутрішньоденних барах.
MetaTrader 5 (MQL5)
- Рядів ширини в MT5 немає. Частку можна порахувати лише за CFD на акції, які є в брокера: зазвичай кілька сотень великих паперів замість повного складу індексу.
- Історія денних барів CFD на акції коротка, а частка вище 200-денної потребує 200 барів розігріву для кожного паперу.
- Денні бари різних CFD закриваються за серверним часом брокера. Перевірте, що частка рахується за однією датою для всіх символів.
- Склад індексу брокер не зберігає. Ширина на MT5 це наближення, і пороги 25 і 75 на ній можуть не працювати.
Де ідея може зламатися
- Статистики немає. Усі епізоди показано заднім числом, і автор сам попереджає, що зони можуть триматися довго.
- Правила застосування автор дав словами: активніше, менше, скинути газ. Множники й вікна наші, і результат від них залежить.
- Купівлі в перепроданості означають входи на ринку, що падає. У ведмежому ринку ширина може залишатися нижче 25% тижнями, і ранній вхід отримує серію стопів.
- Готовий ряд ширини може рахуватися за складом індексу на кожну дату або за сьогоднішнім. Спосіб розрахунку в постачальника треба з'ясувати.
- Опис осцилятора Макклеллана у відео розходиться зі стандартною формулою. Який варіант дивиться сам Джек, невідомо.
- Обидва відео спонсорує один сервіс Investor's Business Daily: MarketSmith, у 2024 році перейменований на MarketSurge (зовнішній факт, не з відео). У січневому відео 2024 року спонсора ще названо MarketSmith, у вересневому вже MarketSurge. У першому Джек згадує готові розкладки для учасників своєї платформи.