Ідея коротко
Звичайна ковзна середня однаково повільна в тренді й у боковику. KAMA, яку Perry Kaufman придумав у 1970-х, змінює швидкість на кожному барі. Швидкість задає Efficiency Ratio: яка частка пройденого ціною шляху пішла в чистий зсув. Коли ціна йде майже прямо, KAMA швидко її наздоганяє. Коли ціна пиляє на місці, KAMA майже не рухається.
Kevin Davey у спільному вебінарі взяв найпростішу систему: купівля, коли закриття перетинає середню знизу вгору, вихід за перетину згори вниз. Він прогнав її на ф'ючерсі ES на 360-хвилинних барах із простою середньою і з KAMA тих самих довжин. KAMA дала трохи більше прибутку й помітно меншу просадку (дані Davey). Сам Кауфман у тому ж вебінарі розповів, що для трендслідування змінив стандартні параметри свого індикатора, і пояснив причину.
Чому це може працювати
Кауфман прийшов з аерокосмічної галузі й будував KAMA як фільтр сигналу і шуму. Вихідна ідея зі статті 1972 року змінювала довжину середньої стрибками залежно від рівня ціни, він замінив сходинки неперервною функцією. У шумі середня сповільнюється, і хибних перетинів стає менше. У тренді вона прискорюється й раніше розвертається слідом за ціною. На графіку Davey KAMA повертає вгору помітно раніше за SMA.
Основою слугує експоненційна середня. Кауфман вважає EMA найслабшим із трендових методів, але найкращим носієм адаптивності: її швидкість змінюється однією константою на кожному барі.
Нові параметри він пояснює зміною ринків. Після падіння доткомів у 2000 році обсяг сильно зріс, і всупереч його очікуванням ринки стали волатильнішими й безладнішими. 10-денна середня, на якій прославився Дончіан, за його словами, працює тепер погано, а вихідне налаштування KAMA робить середню надто швидкою для таких ринків.
Ще одна думка автора: трендова система працює не на всіх ринках, і обирати їх треба тим самим Efficiency Ratio. Угорі його списку процентні ставки, унизу фондові індекси. Тест Davey при цьому зроблено на індексі. Кауфман каже, що перевіряв KAMA на широкому наборі ринків і вона краща за звичайні середні, але цифр не показав.
Правила
Індикатор (код із книги Кауфмана на слайді)
// Efficiency Ratio: чистий зсув за N барів, поділений на пройдений шлях. Від 0 до 1
NetChg = |Close - Close[N]|
TotChg = Sum(|Close - Close[1]|, N)
ER = NetChg / TotChg // якщо TotChg = 0, то ER = 0
// Кауфман усно двічі назвав дріб навпаки. Правильна версія з коду: високий ER означає тренд
FastSC = 2 / (Fast + 1) // Fast = 2 → 0.666 (код книги)
SlowSC = 2 / (Slow + 1) // Slow = 30 → 0.0645
SC = (ER * (FastSC - SlowSC) + SlowSC) ^ 2 // квадрат, як у коді книги
KAMA = KAMA[1] + SC * (Close - KAMA[1])
// старт за кодом книги: поки номер бару не більший за N, KAMA = Close
Система Davey (автор)
// ES, 360-хвилинні бари, лише лонг, без стоп-лоса, без оптимізації
IF Close crosses above KAMA(N = 50, Fast = 2, Slow = 30)
BUY AT NEXT BAR OPEN
IF Close crosses below KAMA(N = 25, Fast = 2, Slow = 30)
EXIT AT NEXT BAR OPEN
// crosses above: Close > KAMA AND Close[1] <= KAMA[1]
// еталон для порівняння: ті самі правила на SMA(50) для входу і SMA(25) для виходу
Варіант B. Параметри Кауфмана для трендслідування зараз
Кауфман каже, що використовує KAMA як трендову систему в чистому вигляді, без додаткових фільтрів. Правил входу й виходу він не уточнив, тому ми переносимо їх із системи Davey.
// денні бари
N = 60 // автор: замість колишніх 10
Fast = 6..8 // автор усно: швидкий кінець 6–8 днів замість 2–3
Slow = 30 // автор: підпис на слайді
// на слайді нижню панель підписано (60,3,30), константа 0.00851 при ER 0.0637.
// Finetiq: перерахунок за формулою сходиться з Fast = 3, а не з 8. Перевірте обидва значення
IF Close crosses above KAMA(60, Fast, 30) BUY AT NEXT BAR OPEN // Finetiq: правило Davey з однією лінією
IF Close crosses below KAMA(60, Fast, 30) EXIT AT NEXT BAR OPEN // Finetiq
// Finetiq: шорт дзеркально перевіряти окремо, автор бік не називав
Вибір ринків (автор)
// Кауфман: трендову систему ставити на ринки з високим ER. Порогу немає, ранг відносний
ER10_i = Efficiency Ratio(10) за денними барами ринку i // автор: короткий період, 10
Rank = сортування ринків за середнім ER10 за останній рік // Finetiq: усереднення за рік
торгувати KAMA на верхній третині списку // Finetiq
// перевірка розрахунку за автором: процентні ставки вгорі, фондові індекси внизу
Параметри
| Параметр | Значення | Звідки |
|---|---|---|
| Формула ER | зсув, поділений на шлях | автор (код на слайді) |
| Швидкий і повільний кінець, Davey | 2 і 30 | автор |
| Довжина ER для входу, Davey | 50 | автор |
| Довжина ER для виходу, Davey | 25 | автор |
| Таймфрейм і ринок, Davey | 360 хвилин, ES | автор |
| Бік, Davey | лише лонг | автор |
| Стоп-лос | немає | автор |
| Довжина ER, Кауфман | 60 замість 10 | автор |
| Швидкий кінець, Кауфман | 6–8 усно, 3 на слайді | автор |
| Повільний кінець, Кауфман | 30 | автор (слайд) |
| Таймфрейм, Кауфман | денні бари | автор |
| Вхід і вихід варіанта B | перетин ціни і KAMA | Finetiq |
| ER для відбору ринків | 10 барів, відносний ранг | автор |
| Частка ринків у роботі | верхня третина за ER | Finetiq |
Що перевірити
- KAMA проти SMA на багатьох ринках. У Davey один ринок і один таймфрейм. Проженіть обидві системи на 20–30 ф'ючерсах і додайте EMA тих самих довжин як третій еталон. Дивіться медіану по ринках, а не найкращий ринок.
- Параметри до і після 2000 року. Сітка: N 10, 20, 40, 60, 90; швидкий кінець 2, 3, 6, 8. Окремо на даних до 2000 року й після. Теза Кауфмана: оптимум змістився до довгих значень по обох осях.
- Швидкий кінець 3 проти 8 при N = 60. Слайд і усна версія розходяться, результати теж можуть розійтися.
- Перетин ціни проти нахилу KAMA. Вхід за умовою
KAMA > KAMA[1]замість перетину. Кауфман зазначає, що EMA розвертається рівно тоді, коли ціна її перетинає, і у своєму тесті на 44 ринках Davey за основу брав нахил середньої. Порахуйте, наскільки різняться угоди. - Відбір ринків за ER. Та сама система на верхній і нижній третині ринків за ER10. Якщо різниці немає, відбір на ваших даних не працює.
- Витрати. За даними Davey середня угода на ES $312. Один тік прослизання на вході й на виході плюс комісія це близько $30 на коло, приблизно десята частина середньої угоди. Перерахуйте тест із витратами, для обох середніх.
- Розігрів. Порівняйте значення KAMA за перші 3–4 довжини N на двох платформах. Старт у реалізацій різний, ці бари виключіть із тесту.
Особливості платформ
TradingView (Pine Script)
- Вбудованої KAMA немає, її пишуть за формулою. Публічні скрипти різняться: перевірте, що константа підноситься до квадрата і що ER рахується як зсув, поділений на шлях.
- Старт: код книги тримає KAMA = Close на перших N барах. Запис через
nz(kama[1], close)стартує з першого бару, і значення розійдуться до кінця розігріву. - 360-хвилинний графік ES будується від початку торгової сесії символу. Порівняйте час барів із TradeStation, інакше сигнали розійдуться з тестом Davey.
- Перетини:
ta.crossover(close, kama50)іta.crossunder(close, kama25). Виконання на відкритті наступного бару стоїть за замовчуванням, як у коді Davey.
MultiCharts і TradeStation (EasyLanguage)
- Код Davey використовує функцію TradeStation
AdaptiveMovAvg(Close, 50, 2, 30): другий аргумент це довжина Efficiency Ratio, третій і четвертий швидкий і повільний кінець. Правила переносяться рядок у рядок:If Close crosses above AdaptiveMovAvg(Close, 50, 2, 30) then Buy next bar at market. - У MultiCharts наявність і реалізацію функції звірте з формулою. Надійніше написати KAMA за формулою, щоб параметри збіглися з джерелом.
- Davey наголошує, що 1440-хвилинний бар не дорівнює денному. У ф'ючерсів TradeStation денний бар закривається за settlement. Для варіанта B оберіть один вид бару і для тесту, і для торгівлі.
- Вихід у коді Davey це
Sell next bar at marketза другою, коротшою KAMA. Позиція може залишатися відкритою, коли ціна вже нижче KAMA 50: це правило, а не помилка.
MetaTrader 5 (MQL5)
- Вбудований
iAMA(symbol, period, ama_period, fast_ma_period, slow_ma_period, ama_shift, applied_price). Перед тестом звірте його значення з формулою з коду книги на одній ділянці історії: старт і деталі розрахунку в реалізацій різняться. - 360 хвилин у MT5 це
PERIOD_H6, але бари вирівняні за північчю сервера брокера, а не за початком сесії CME. Шестигодинні бари MT5 і TradeStation містять різні години, і сигнали будуть іншими. - CFD на S&P 500 відрізняється від ES ціною й розкладом торгів. Доларові результати Davey на контракт ES на CFD не переносяться, перерахуйте їх за вартістю пункту в брокера.
- Сигнал рахуйте на закритому барі (індекс 1) і перевіряйте появу нового бару.
Де ідея може зламатися
- Результат Davey це один ринок, один таймфрейм і неназваний період тесту. Різниця в чистому прибутку близько 2.5%, а максимальна просадка це одна подія. Висновок «KAMA краща за SMA» з цієї таблиці не випливає.
- Нові параметри Кауфмана ґрунтуються на його досвіді. Результатів із періодом 60 і швидким кінцем 6–8 у вебінарі немає, а підписи на слайді з усною версією не збігаються.
- Формулу ER легко перевернути при перенесенні зі слів. Тоді відбір обере протилежні ринки, а тест при цьому не впаде й виглядатиме правдоподібно.
- Індекси за Кауфманом найменш трендові ринки. Про S&P він каже, що при оптимізації швидкі середні на ньому втрачають, а повільні заробляють. Результат на ES може не переноситися на інші ринки, і навпаки.
- Вебінар слугує розігрівом до платного курсу. Частину матеріалів, наприклад таблицю ранжування ринків за ER, автори залишили для курсу.
- Стоп-лоса немає. На 360-хвилинних барах вихід за перетином нижче KAMA 25 може прийти вже після великого гепу.