Пошук неэффективностей: Що потрібно знати про створення стратегій для торгівлі на біржі



Питань оптимізації тестування торгових стратегій присвячено безліч публікацій у блогах, статей і книг. При цьому, майже ніхто не пише про те, як побудувати таку систему з нуля. Автор блогу Financial Hacker вирішив виправити цю ситуацію і створити цикл статей по темі розробки торгових стратегій — ми представляємо вашій увазі головні тези першого матеріалу.

На смак і колір

По суті, є два основних методи побудови стратегій онлайн-трейдингу. Перший орієнтований на певну модель, другий – на інтелектуальний аналіз даних. У першому випадку ми маємо справу з поняттям неефективного ринку. Метод включає роботу з психологією трейдерів, економікою, мікроструктурою ринків, а також будь-якими зовнішніми явищами, які можуть впливати на ціни акцій. Неефективність веде до аномалій кривий цін або виникнення певних патернів коливань ціни, які можна спробувати передбачити і використовувати в торговому алгоритмі. Серед стратегій, заснованих на певній моделі, можна згадати стратегію проходження тренду, mean reversion (повернення до середнього значення), цінові цикли і кластери, статистичний арбітраж і сезонність.

Тут є проблема – ця модель не реалістична. Це спрощений образ реальності. Дана модель не може бути доведена або спростована. Її надійність може бути обґрунтована тільки через вплив на криву цін. Застосування такої моделі залежить від певної довгострокової стабільності дій передбачених з її допомогою аномалій. Перевірити її можна лише за допомогою якісного алгоритму тестування.

Інтелектуальний аналіз даних в чистому вигляді працює інакше. Він використовується для дослідження патернів цінових змін і створення за ним певного алгоритму. Які причини викликали зміни на ринку тут не так важливо. Важливо, щоб вони продовжували діяти й у майбутньому. Такий підхід призвів до появи систем трейдингу з використанням самообучающегося софту. Самий популярний прийом в даному випадку – метод підбору, проб і помилок, використання свічкових патернів, регресії, автокореляції, методу k-середніх, нейронних мереж, дерева прийняття рішень.

Переваги аналізу даних у тому, що вам не потрібно гадати про стан ринку. Недолік: всі ці методи зазвичай виявляють купу випадкових патернів і слідом генерують купу непотрібних стратегій. Відокремити випадкові патерни від тих, що дійсно впливають на стан ринку – завдання не з простих. У даний момент невідомо про успішних торгових системах, побудованих виключно на аналізі даних.

Хто розумніший: трейдер проти ринку

Очевидно, що жодна система трейдингу не буде працювати у відсутності якихось неэффективностей ринку, які можна було б експлуатувати для отримання прибутку. Але навіть, якщо неефективність існує, нічого не вийде, поки їй не можна скористатися, і поки добре озброєні гравці роблять це за вас. Отже, потрібно вміти проводити операції краще, ніж більшість учасників ринку.

Ось три основні гіпотези щодо неефективності ринку, про яких ви, напевно, вже чули:

  • Гіпотеза A: ринки працюють ефективно. Ціни залежать від реальних подій (наприклад, від публікації річних звітів компаній) і відображають реальну вартість активів. Всі трейдери володіють повнотою інформації, що діють оперативно і раціонально. Стрибки цін відсутні, зміни не несуть у собі даних для прогнозування. Технічна система трейдингу марна. В її основі буде лежати принцип удачі.
  • Гіпотеза B: ринки неефективні, але їх неефективність не дає перевагу приватним трейдерам. Тільки великі фірми і хедж-фонди можуть експлуатувати таку неефективність, володіючи великим капіталом, швидким і дорогим залізом, досвідченими аналітиками і експертами-математиками. Почати грати на їхньому полі означає перетворитися на легку здобич для таких компаній.
  • Гіпотеза C: Неефективності ринків достатньо, щоб вистачило всім. В даній ситуації розміри компаній – це не перевага, а недолік. Великі фірми і хедж-фонди дуже неповороткі. Всі ці ресурси, включаючи переоцінених аналітиків і геніїв із занадто великими зарплатами, не здатні вас випередити, якщо ви добре засвоїли правила гри.
Мало хто сьогодні все ще вірить в першу гіпотезу. Ринки не ведуть себе раціонально і ефективно. Прикладів можна навести скільки завгодно. Найчастіше вартість компаній далека від їхньої реальної вартості. Але навіть в такій ситуації можна розгледіти деякі патерни. Ринки реагують швидко і жорстко, слідуючи чуток і новин. Але, якщо інформація менш визначена і вимагає мінімальної інтерпретації, швидкість реакції помітно знижується. Розглянемо типовий приклад такої поведінки ринку:

Кейс швейцарського франка

У вересні 2011 року Національний банк Швейцарії встановив цінове обмеження для швейцарського франка. Ідея була в тому, щоб захистити туристичну індустрію і експорт на тлі переоціненого курсу. Ліміт був встановлений на рівні 1,20 для пари EUR/CHF (євро/франк).

Взагалі, цінове обмеження – дуже рідкісний крок і вельми показовий приклад неефективності ринку. Все це можна негайно перевести у вкрай вигідну, майже безризикову трейдингову систему. У нормальній ситуації можна очікувати рішучу реакцію ринку, коли пара EUR/CHF наближається до значення 1,20. Але на практиці реакція була сильно розтягнута в часі.

Безумовно, Швейцарія – дивне місце на карті Європи. Більшість трейдингових компаній США знають лише, що тут роблять якісні сир. Або вони не помітили рішення Національного банку, або європейські офіси цих компаній забули про це доповісти. Лист з новиною добирався через Атлантичний океан три місяці, борючись по дорозі з піратами, бурями і штормами, поки, нарешті, не досяг Нью-Йорка.

Так що можна зробити, знаючи про цінове обмеження? Лише до січня 2012 року у великих гравців на ринку з'явилася ідея. І вона полягала не в розробці торговельної системи, в тому, щоб просто скуповувати франки для надання тиску на співвідношення валютної пари EUR/CHF.



Зміни ціни пари EUR/CHF у вересні 2011 – серпні 2012

Сенс був у тому, що, коли ціна досягає свого граничного значення, вигоду можна отримати, пробивши його. На кін було поставлено купа грошей, терпіння і сил. Починаючи з травня 2012, ціна EUR/CHF трималася гранично близько до значення 1,20. Але краху цінового обмеження так і не відбулося. Протягом 2012 року Швейцарія спорудила могутню стіну в 200 млрд. доларів для захисту свого цінового обмеження. Всі атаки були відбиті. У січні 2013 рейдери відступили.



Зміни ціни пари EUR/CHF у вересні 2012 – травні 2013

Ретирувалися, звільнивши шлях для роботи алгоритмічних систем. Протягом битви 2012 року вони змушені були залишатися в стороні. У приватних трейдерів не було стільки коштів, щоб вступити в гру. У січні 2013 перші умільці почали використовувати неефективність ринку на свою користь. Вони застосували метод Сітки (Grid Trade) –стратегію, засновану на хвильовому характер ринку, яка заробляє на волатильності і не залежить від напряму ціни. Це запустило верстат для друкування грошей.

Алгоритм «друкарський верстат»

Сітка – це дуже проста система. Вона виставляє відкладені і короткострокові ордера у фіксованих значеннях вище і нижче поточної ціни. Прибуток отримується при відхиленнях ринку. Ордери відкриваються і закриваються у випадку, коли ціна перетинає значення сітки в будь-якому напрямку. Гіпотетично ступінь виграшу тут наближається до 100%, але на практиці такого рівня домогтися неможливо. Трейдери зазвичай використовують віртуальний механізм хеджування, який відкриває і закриває позицію замість того, щоб відкривати нову в протилежному напрямку. Це збільшує загальну прибуток і дозволяє контролювати втрати. Так що відсоток виграшу тут коливається на практиці в районі 60%.

Ось приклад скрипту мовою Zorro для подібної системи:

// допоміжна функція, яка перевіряє наявність умов для вчинення правочину 
bool isFree(var Price,var Grid,bool IsShort)
{
for(open_trades) {
if(TradeIsShort == IsShort
&& between(TradeEntryLimit,Price-Grid/2,Price+Grid/2))
return false;
}
return true;
}

// основна функція для торгової стратегії по парі EUR/CHF 
int run() 
{
BarPeriod = 60;
Hedge = 5; // activate virtual hedging

var Grid = 20*PIP; // set grid distance to 20 pips
var Close = priceClose();

// place pending trades at 5 grid lines above and below the Close
int i;
for(i = Close/Grid - 5; i < Close/Grid + 5; i++)
{
var Price = i*Grid;
// place short trades with profit target below the current price
if(Price < Close && isFree(Price,Grid,true))
enterShort(1,Price,0,Grid); 
// place long trades with profit target above the current price
else if(Price > Close && isFree(Price,Grid,false))
enterLong(1,Price,0,Grid);
}
}

Сітка – типова модель-орієнтована система. Вона передбачає, що якісь умови ринку утримують ціну в певному інтервалі. Наприклад, обмеження не дозволяє парі EUR/CHF опуститися нижче 1,20. Але і піднятися занадто високо ціна також не може, враховуючи факт, що Національний банк Швейцарії повинен буде в кінцевому підсумку викупити назад всі франки, які вони продали заради підтримки певного значення. Все це необхідні умови для застосування Сітки. Без них це було б звичайною рулеткою, і поповнило б список ірраціональних трейдерських методів.

Ось приклад застосування методу для пари EUR/CHF від компанії P&L у 2013 році:



На графіку можна спостерігати значні коливання ціни з істотними зниженнями в січні і травні. Але з причини наявного межі, ми можемо передбачити максимальні втрати і просто тримати достатньо коштів на рахунку. В даному випадку річна виручка склала 130%, коефіцієнт Шарпа – 1,7. Практично ніякого ризику до того моменту, поки не скасовано обмеження ціни.

Новини про даної стратегії поширювалися весь 2013 рік. Не дивно, що багато учасників ринку, приватні інвестори захотіли застрибнути в потяг. Через три роки після рішення банку Швейцарії на ринку діяли вже тисячі подібних систем. В результаті волатильність ціни EUR/CHF неухильно знижувалася.



Волатильність – ключова умова для методу Сітки. Чим її менше, тим менший дохід. Для того щоб компенсувати його зниження, потрібно вкладати більше коштів і стискати сітку. Але у нас є природний межа. Розмір сітки не може бути менше виплат по угоді. До осені 2014 волатильність впала фактично до нуля. Це супроводжувалося істотним падінням ціни, ніби хтось із великих гравців (швидше за все, сам Національний банк Швейцарії) наполегливо продає євро і скуповує франки в очікуванні великої події. Для приватних трейдерів саме час вийти з гри. Подальша доля швейцарського франка всім добре відома. У січні 2015 обмеження за ціною було скасовано.

За пару хвилин ціна EUR/CHF скотилася до значень істотно нижче 1,20. На відміну від ситуації, яка мала місце чотири роки тому, ринок відреагував миттєво. Багато постраждали. Найцікавіше, що реальне співвідношення пари, засноване на відносної купівельної спроможності кожної з валют, все це час трималося на рівні 1,50.

Висновки

  • Фінансові ринки реагує миттєво і істерично на будь-які новини з чіткими вказівками руху цін вгору або вниз.
  • Ринки реагує повільно на будь-яку інформацію, яка вимагає мінімальної інтерпретації. Можуть пройти роки, перш ніж вони усвідомлюють наявність нової неефективності або стратегії.
  • Ринки воліють грубі, лобові методи атаки. Складні стратегії використовуються невеликим числом учасників.
  • Прості системи, що спираються на очевидні неефективності, можуть бути корисні на обмеженому часовому інтервалі.


Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.