Ідея коротко
Зазвичай S&P 500 і VIX ходять у різні боки. Індекс падає, попит на пут-опціони зростає, VIX піднімається. Індекс зростає, страх зникає, VIX знижується. Dylan O'Neal, трейдер ф'ючерсів на S&P, пропонує стежити за днями, коли цей зв'язок порушено.
Якщо за день ф'ючерс S&P зріс на 1% або більше і VIX теж зріс на 1% або більше, автор вважає, що тиск на ринок завеликий і зростання скоріше зламається. Він шукає опір на S&P і продає від нього. Дзеркально: якщо обидва впали на 1% і більше, відскок імовірніший, і автор купує від підтримки. Зміна рахується до вчорашнього закриття.
Сам автор називає це підказкою, а не системою. Опір і підтримку він вибирає вручну, стоп ставить за найближчий екстремум. Нижче денна версія для перевірки самої аномалії і внутрішньоденна версія з рівнем, який можна порахувати.
Чому це може працювати
Пояснення автора будується на опціонах. VIX відображає очікувану волатильність S&P 500 на 30 днів, вона виводиться з цін опціонів. Коли фонди купують пут-опціони для страховки, VIX зростає. Якщо індекс при цьому теж зростає, отже, великі учасники страхуються на підйомі. На думку автора, таке зростання важко втримати.
Друга частина пояснення стосується алгоритмів. За словами автора, майже весь обсяг ф'ючерсів на S&P іде через алгоритми, чиї програми купівель і продажів реагують на VIX. Тому він вважає VIX провідним: якщо VIX упав на 1% разом з індексом, відскоку він чекає через VIX, а не навпаки.
Частку алгоритмів та їхню прив'язку до VIX ми не перевіряли. Статистики за правилом 1% автор не наводить, він лише каже, що такі дні бувають нечасто.
У правила є застереження від автора. Коли S&P стоїть на історичних максимумах або на максимумі за рік-два, VIX упирається в природну підлогу. Пут-опціони дешеві, фонди охоче купують страховку, і VIX повзе вгору разом із ринком. Автор називає це хибним сигналом і в такій ситуації не продає.
Правила
Сигнал (автор)
// ES: ф'ючерс S&P 500 (або індекс SPX), VIX: індекс волатильності
// «вчорашнє закриття» кожного ряду беремо за його офіційним часом закриття
ES_Prev = закриття ES учора о 16:00 ET // Finetiq: час закриття кеш-індексу S&P 500; автор каже «вчорашнє закриття», годину не уточнює
VIX_Prev = закриття VIX учора о 16:15 ET // Finetiq: денне закриття VIX; індекс рахується до 16:15 ET, поки торгуються опціони SPX
ES_Chg = ES / ES_Prev - 1
VIX_Chg = VIX / VIX_Prev - 1
AnomalyUp = ES_Chg >= +1% AND VIX_Chg >= +1% // автор: тиск, чекаємо відкату вниз
AnomalyDown = ES_Chg <= -1% AND VIX_Chg <= -1% // автор: чекаємо відскоку вгору
// фільтр автора: біля максимумів VIX упирається в підлогу, продаж не торгується
AtHigh = High(ES) сьогодні >= Highest(High(ES), 252) // автор: ATH або максимум за рік-два; Finetiq: 252 дні
IF AnomalyUp AND AtHigh THEN сигнал на продаж пропускаємо
// біля мінімумів автор такого застереження не робить
Варіант A. Денна перевірка аномалії (Finetiq)
Рівні в цій версії не потрібні. Вона відповідає на запитання, чи несе сама аномалія інформацію.
// денні бари, рішення після закриття VIX о 16:15 ET
IF AnomalyUp AND NOT AtHigh
SELL SHORT AT NEXT BAR OPEN // Finetiq
IF AnomalyDown
BUY AT NEXT BAR OPEN // Finetiq
StopLoss = EntryPrice ± 1.5 * ATR(14) // Finetiq: стартове значення
IF BarsSinceEntry >= 3 THEN EXIT AT NEXT BAR OPEN
// Finetiq: автор говорить про відскок «скоріше раніше, ніж пізніше», строк не називає
Варіант B. Усередині дня від рівня (правило автора, рівні Finetiq)
// 15-хвилинні бари ES, умови перевіряються на закритті кожного бару з 09:45 до 15:00 ET
// VIX в історії рахується в основну сесію США, раніше 09:30 ET сигналу немає
IF AnomalyUp уперше за день AND NOT AtHigh
Level = максимум ES за сьогодні на момент сигналу // Finetiq: заміна опору, який автор малює вручну
SELL SHORT LIMIT at Level // автор: продавати від опору
StopLoss = Level + 0.25 * ATR(14, D1) // Finetiq; автор ставить стоп за екстремум
Target = EntryPrice - 2 * (StopLoss - EntryPrice) // Finetiq: за прикладом автора з іншого сетапу
IF AnomalyDown уперше за день
Level = мінімум ES за сьогодні на момент сигналу // Finetiq
BUY LIMIT at Level // автор: купувати від підтримки
StopLoss = Level - 0.25 * ATR(14, D1) // Finetiq
Target = EntryPrice + 2 * (EntryPrice - StopLoss) // Finetiq
CANCEL LIMIT at 15:30 ET // Finetiq
EXIT at 15:55 ET // Finetiq
// автор допускає будь-який рівень: горизонтальний, Фібоначчі, середня, VWAP, order flow
// вхід за перетином рівня, без очікування закриття свічки (автор, розбір угоди)
Параметри
| Параметр | Значення | Звідки |
|---|---|---|
| Поріг зміни S&P | 1% до вчорашнього закриття | автор |
| Поріг зміни VIX | 1% до вчорашнього закриття | автор |
| Напрямок угоди | проти руху S&P | автор |
| Фільтр максимумів | продаж біля ATH або максимуму за рік-два не брати | автор |
| Вікно максимуму | 252 дні | Finetiq |
| Година «вчорашнього закриття» | S&P 500 16:00 ET, VIX 16:15 ET | Finetiq |
| Варіант A: стоп | 1.5 × ATR(14) | Finetiq |
| Варіант A: утримання | 3 дні | Finetiq |
| Варіант B: рівень | максимум або мінімум дня на момент сигналу | Finetiq |
| Варіант B: стоп | 0.25 × денного ATR(14) за рівнем | Finetiq |
| Варіант B: ціль | 2 відстані до стопа | Finetiq |
| Варіант B: вікно | сигнал 09:45-15:00 ET, вихід 15:55 ET | Finetiq |
Що перевірити
- Чи дає VIX щось понад рух індексу. Візьміть усі дні, коли S&P зріс на 1% і більше. Поділіть їх на дні, коли VIX теж зріс на 1%, і дні, коли VIX упав. Порівняйте доходність S&P через 1, 3 і 5 днів. Те саме для падінь. Якщо групи не відрізняються, правило зводиться до звичайного повернення після сильного дня.
- Частота і кластери. Порахуйте кількість сигналів за роками. Автор каже, що такі дні рідкісні. Якщо більша частина сигналів припадає на пару кризових періодів, вибірка менша, ніж здається.
- Околиця порогу. 0.5%, 1%, 1.5% і 2% окремо для S&P і для VIX. Денні зміни VIX зазвичай у рази більші, ніж в індексу, тому 1% для VIX може виявитися майже будь-яким зростанням. Окремий прогін із порогом S&P у частках очікуваного руху за правилом 16 автора:
VIX / 16. - Який VIX. Спотовий індекс VIX проти найближчого ф'ючерса VX. На історії вони розходяться, особливо в дні експірації та ролування контрактів. Окремо порівняйте закриття VIX о 16:15 ET зі значенням VIX о 16:00 ET: за ці 15 хвилин кеш-індекс уже закритий, а VIX ще змінюється разом з опціонами SPX.
- Фільтр максимумів. Продажі з фільтром і без нього, вікно 252 і 504 дні. Перевіряє застереження автора про природну підлогу VIX.
- Вхід від рівня проти входу на відкритті. Варіант A проти варіанта B і проти ліміту на вчорашньому максимумі або мінімумі. Якщо очікування рівня не покращує середню угоду, дискреційна частина правила нічого не додає.
- Витрати всередині дня. У варіанті B стоп вузький, і прослизання на стопі в дні високої волатильності з'їдає помітну частину результату. Проженіть тест із прослизанням в 1-2 тики.
Особливості платформ
TradingView (Pine Script)
- Стратегія торгує символ графіка (ES або SPY), VIX читається як дані:
request.security("CBOE:VIX", "D", close). Вчорашнє закриття без зазирання вперед:request.security("CBOE:VIX", "D", close[1], lookahead = barmerge.lookahead_on). - Денний бар ES1! іде за сесією CME з 18:00 ET і закривається пізніше за VIX. Зміна «за день» на такому барі не збігається зі зміною до 16:00 ET. Для точної версії рахуйте закриття 16:00 ET за внутрішньоденними барами з
time(timeframe.period, "0930-1600", "America/New_York"). Денний барCBOE:VIXмає закриватися значенням 16:15 ET. Звірте його з опублікованим закриттям Cboe за кілька днів: час закриття VIX у постачальників даних може відрізнятися. - Ліміт від рівня у варіанті B і стоп можуть виконатися на одній 15-хвилинній свічці. Порядку тестер не знає:
use_bar_magnifier = true(платні плани) або тест на молодшому таймфреймі.
MultiCharts і TradeStation (EasyLanguage)
- VIX підключається другим потоком даних (
Close of Data2), ордери надсилаються лише по Data1. У TradeStation індекс зазвичай називається$VIX.X, у MultiCharts символ залежить від постачальника даних. - В ES майже цілодобова сесія, у VIX основна. Якщо Data1 іде за повною сесією, «вчорашнє закриття» ES опиниться о 17:00 ET. Задайте ES шаблон сесії 09:30-16:00 ET або запам'ятовуйте закриття 16:00 ET самі. Для VIX (Data2) потрібен шаблон сесії до 16:15 ET, інакше денний бар закриється значенням 16:00 ET. Час закриття VIX у постачальника даних звірте з опублікованим закриттям Cboe.
- Денний бар ф'ючерса в TradeStation закривається за settlement, а не за останньою угодою. Для денного варіанта використовуйте один вид бару і в тесті, і в торгівлі.
Sell short next bar at Level limitживе один бар. У варіанті B ліміт надсилається на кожному барі до 15:30 ET, поки позиції немає.
MetaTrader 5 (MQL5)
- Спотового індексу VIX у більшості брокерів немає. Якщо символ VIX є, це зазвичай CFD на ф'ючерс VX з ролуваннями: інший рівень, стрибки при зміні контракту та інша денна зміна. Сигнал на такому ряді треба перевіряти заново.
- Для тесту на історії VIX можна завантажити користувацьким символом (
CustomSymbolCreate,CustomRatesUpdate). Для живої торгівлі все одно потрібне зовнішнє джерело котирувань. - Денний бар CFD на S&P 500 закривається опівночі за сервером брокера (часто GMT+2/+3, це близько 17:00 ET), а не о 16:00 ET. Зміну до вчорашнього закриття рахуйте за барами M15, переводячи 16:00 ET (S&P 500) і 16:15 ET (VIX) у серверний час з урахуванням літнього часу.
- Другий символ читається через
iClose(symbol, PERIOD_M15, 1), символ має бути в Market Watch. Сигнал беріть із закритого бару.
Де ідея може зламатися
- Статистики автор не показує. Правило озвучене як робоча підказка на каналі, де відео спонсорує проп-фірма, а в середині випуску йде реклама фінансування ф'ючерсних трейдерів.
- Рівні опору і підтримки автор вибирає вручну, з кількох інструментів одразу. Наша автоматична заміна (екстремум дня) може відбирати інші угоди.
- Сигнали рідкісні й, найімовірніше, скупчуються в періоди високої волатильності. Кілька років спокійного ринку можуть не дати жодного сигналу, а результат тесту триматиметься на парі криз.
- Пояснення через частку алгоритмів та їхню прив'язку до VIX не підтверджене джерелом. Якщо зв'язок слабший, ніж каже автор, аномалія може нічого не означати.
- Закриття кожного ряду треба брати в його час: S&P 500 о 16:00 ET, VIX о 16:15 ET. Ф'ючерс і CFD закриваються інакше, і поріг 1% на різних рядах виділяє різні дні. Час денного закриття VIX у свого постачальника даних варто звірити. У роздрібного трейдера в MetaTrader 5 спотового VIX зазвичай немає.