Побудова торгової системи: статистичні методи

Anonim

Видимі фільтри

Величезна кількість торгових систем засновані на індикаторах і саме тому виникає питання - а що ці індикатори виражають? Вірна відповідь - в більшості випадків нічого особливого вони не висловлюють. Індикатори являють собою лише спеціалізовані фільтри. Деякі індикатори, такі як індекс торгового каналу (CCI), індекс відносної сили (RSI) і стохастік, в основному, є фільтри високих частот першого порядку, які перетворять цінові коливання і представляють їх у вигляді осциляторів. Інші індикатори, такі як змінна середня - це переважно згладжують фільтри, які служать для усунення ринкового шуму. Існують і комбінації двох згаданих типів фільтрів. Перед тим як почати використовувати індикатори як фільтри в своїй торгівлі будь-яка розсудлива людина запитає - чи мають дані, отримані за допомогою різного роду індикаторів, прогнозної силою стосовно майбутнім цінами.

Крім індикаторних торгових систем широкого поширення набули торговельні системи побудовані на основі сетап. У ролі сетап виступають речі на зразок "купувати, якщо поточна ціна закриття нижче ціни закриття, яка була дев'ять днів тому, при тому, що останні чотири закриття були послідовно нижче, а вища ціна закриття 27 днів назад вище, ніж поточна вища ціна як мінімум на значення рівне квадратному кореню з 1. 618 ". Трейдеру з мінімальним стажем торгівлі зрозуміло, що такі сетапи носять евристичний характер і можуть не мати нічого спільного з майбутніми цінами. Патерни з японських свічок і фігури технічного аналізу також потрапляють під велику категорію сетап. І в даному випадку весь фокус у тому, щоб визначити чи мають такі сетапи прогнозну силу в плані визначення майбутніх цін.

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

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

Інструменти прогнозування цін

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

Так як для роботи необхідні фактичні дані, потрібно перенести точку відліку на 10 днів назад в якості моменту здійснення події. У EasyLanguage (програмі для створення і тестування торгових систем) змінні полягають для довідки в код. Наприклад, Close - Close [9] означає зростання ціни за останні 10 днів в відношенні до ціни закриття.

Тестовий код починається з події, яка сталася 10 денних свічок назад. Цей звичайний тест, а як подія може виступати все, що піддається опису за допомогою комп'ютерного коду. Перетин двох ковзних середніх є всього лише один приклад. Уявивши, що подія відбулася, обчислюється відсоткове збільшення або зменшення цін на протязі наступних 10 барів, завершуючи на поточній ціні закриття. Ця процентна ціна, співвіднесення з ціною закриття 10 барів назад, призначається змінної FuturePrice. Мінлива FuturePrice обмежується значеннями -10% і + 10%. Після установки кордонів, FuturePrice перемасштабіруется, маючи можливість приймати значення від 0 до 100, так, щоб FuturePrice приймаючи відповідне значення могла міститися в одній зі ста осередків. План полягає в тому, щоб накопичити певну кількість входжень FuturePrice в кожну з комірок на весь період послідовності цінових даних. Для того, щоб забезпечити статистично репрезентативний об'єм вибірки, використовується інформацію за останні 10 років. За результатами обробки даних, кількість випадків в осередках створює функцію розподілу ймовірності для цін на 10 барів вперед з моменту початку події.

Також проводиться вимір середньої процентовки майбутньої ціни шляхом вимірювання "центру ваги" (CG) функції розподілу ймовірності. Якби крива функції розподілу ймовірності була вирізана з шматка паперу, то CG був би місцем уздовж горизонтальної осі, де крива може бути надана в рівновазі. Загальна процедура функції в координатах X і Y полягає в підсумовуванні творів XY, а також підсумовуванні значень Y. Співвідношення цих сум і дає CG. Оскільки вісь х центрована на 50, 50 прибирається, щоб побудова кривої CG створює відчуття нульової точки прибутку. Крива CG будується під барчартом в міру того, як зустрічаються успішні події.

Приклад тестування події на прогнозованість

Конкретний приклад тестування події на прогнозованість покаже то як відбувається цей процес. У нашому прикладі створимо подія, в якому простий стохастік буде коливатися між нулем і одиницею. Точка розвороту для входу в довгу позицію з'являється, коли стохастік перетинає поріг 0. 2, оскільки перетин цього порога віщує зростання ціни. Отже, подія відбувається тоді, коли стохастік 10 барів назад перетинає поріг 0.2.

Тестування проходило з використанням даних за ф'ючерсним контрактом на S & P на часовому проміжку в 10 років. Тестована торгова система використовувала в ролі індикатора стохастик довжиною в 10 барів. Було виявлено, що до закінчення 10 річного періоду CG наближалася до значення 1. 09%. Після того як отримано середнє значення прибутку за 10 років потрібно розглянути розподіл ймовірностей прогнозованих цін за той же період.

Функція розподілу ймовірностей

Оскільки перетин Стохастика порогового значення і як наслідок настання події після якого починався аналіз цінового руху виявилося в значній мірі передбачуваним, з'явилася можливість продовжити написання торгової системи. В даному випадку потрібно провести адаптацію торгової системи шляхом зміни довжини стохастика і порогового рівня для настання події так, щоб це давало максимальний результат, при цьому потрібно пам'ятати про необхідність обмеження збиткових угод за допомогою stop-loss.

Зразок торгової системи

Під час оптимізації торговельної системи на часовому періоді в 10 років за ф'ючерсними контрактами на S & P виявляється, що оптимальною довгою стохастика є 8, а не 10, а граничне значення для настання події 0. 3 дає кращий підсумковий результат, ніж 0.2. Оптимальною довжиною тимчасового періоду для прогнозування ціни виявився інтервал в не в 10, а в 14 барів. Збиткові угоди в прогнозному тесті торгової системи були обмежені рівнем 3.8%.

Зростання капіталу за тестовані 10 років стохастичною системи торгової системи

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

Тестування - ключ до побудови прибутковою торгової системи

У даній статті була описана процедура розвитку і поліпшення торговельних систем за допомогою статистичного підходу. В процесі роботи над торговельною системою методом описаним в статті необхідно написати тестовий код, який дозволить оцінити те, чи будуть ціни статистично зростати або падати протягом заданого часу (в барах) після настання ключової події. Як події може виступати все, що завгодно, головне, щоб це можна було описати в коді. Тест допоможе показати з якою частотою ціна піде вгору (сигналізуючи про угоди на купівлю) або ж вниз (сигналізуючи про угоди на s продаж) після настання події. Після того, як прогнозоване подія визначено, його можна вписати в торговельну стратегію, параметри якої можна легко коригувати для оптимізації роботи.

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