Оптимізація являє собою послідовні прогони одного і того ж радника з різними вхідними параметрами на одних і тих же даних. При цьому можна підібрати такі параметри, при яких ефективність радника буде максимальною. Термінал має убудовані засоби, що дозволяють автоматизувати цей процес. Щоб провести оптимізацію, необхідно виставити однойменний прапорець у вікні "Тестер" і натиснути кнопку "Старт".
Налаштування оптимізації радників
Оптимізація являє собою послідовні прогони одного і того ж радника з різними вхідними параметрами на одних і тих же даних. При цьому можна підібрати такі параметри, при яких ефективність радника буде максимальною. Термінал має убудовані засоби, що дозволяють автоматизувати цей процес. Перш ніж приступати до оптимізації параметрів радника, необхідно провести настроювання. Це означає, що слід:
- вибрати радника і задати його вхідні параметри
- вибрати фінансовий інструмент і його період
- вибрати один з трьох способів моделювання барів
- задати часовий діапазон для оптимізації (необов'язково)
Для тестування і оптимізації радників в терміналі використовується спеціальне вікно "Тестер". Всі перераховані вище настройки проводяться у вкладці "Налаштування" цього вікна.
Радник і його параметри
В поле вікна "Тестер - Радники" слід вибрати експерт, параметри якого необхідно оптимізувати. У цьому полі можна вибрати будь-який файл радника. Тут можуть бути лише доступні в клієнтському терміналі файли. Для цього вони повинні бути скомпільованими і перебувати в папці / EXPERTS.
Після того як обраний радник, необхідно провести додаткову настройку і задати вхідні параметри. Це можна зробити натисканням кнопки "Властивості експерта". При цьому з'явиться нове вікно з трьома вкладками:
Тестування - в цій вкладці задаються загальні параметри оптимізації. До них відносяться обсяг і валюта початкового депозиту, які вказуються в однойменних полях. Саме цим депозитом буде оперувати радник під час оптимізації. У цій вкладці також вибираються типи відкриваються позицій: Only Long - відкривати тільки довгі позиції; Only Short - тільки короткі; Long and Short - відкривати позиції в обидві сторони. Який би не був алгоритм радника, він буде відкривати позиції тільки в заданих напрямках. Також можна включити генетичний алгоритм оптимізації і вибрати оптимізується параметр (максимізація за значенням балансу, фактора прибутковості, математичне сподівання виграшу або мінімізація за значенням максимальної осідання або відсотка просадки);
Вхідні параметри - тут у вигляді таблиці наводиться список всіх вхідних параметрів. Вхідними параметрами називаються змінні, які впливають на роботу експерта і можуть бути змінені прямо з клієнтського терміналу. Для зміни цих параметрів немає необхідності змінювати код експерта. Кількість вхідних змінних може варіюватися від експерта до експерта. При оптимізації вхідні параметри радника задаються в полях "Старт", "Крок" і "Стоп". У цих полях задаються початкові значення, крок зміни і кінцеві значення зовнішніх змінних відповідно. Зліва від назви змінних є галочки, що включають параметр в оптимізацію. Якщо змінна не відзначена галочкою, вона не бере участі в оптимізації. Її значення в процесі оптимізації не змінюється, і використовується параметр, записаний в поле "Значення". Кількість прогонів експерта безпосередньо залежить від цих параметрів. Дані, що записуються в поле "Значення", не впливають на оптимізацію радника і необхідні лише для його тестування.
Існує можливість завантажити вже збережений набір вхідних параметрів (включаючи значення "Старт", "Крок" і "Стоп"). Це можна зробити, натиснувши кнопку "Завантажити" і вибравши попередньо збережений набір параметрів. Зберегти поточний набір зовнішніх змінних можна за допомогою однойменної кнопки.
Оптимізація - ця вкладка дозволяє управляти обмеженнями під час оптимізації. Якщо в процесі окремого прогону буде досягнуто будь-яке з умов, цей прогін радника перерветься.
До обмежуючим параметрам відносяться:
Мінімальний баланс - мінімальне значення балансу у валюті депозиту;
Максимальний прибуток - максимальний прибуток у валюті депозиту;
Мінімальний рівень маржі% - мінімальний рівень маржі у відсотках;
Максимальна просадка% - максимальна просадка в процентах;
Безперервний збиток - максимальний сумарний збиток в одній серії. Збитковою серією називаються кілька наступних поспіль збиткових угод;
Безперервне кількість збиткових угод - максимальна кількість збиткових угод в одній серії;
Безперервний виграш - максимальна сумарна прибуток в одній серії. Прибутковою серією називаються кілька наступних поспіль прибуткових операцій;
Безперервне кількість прибуткових операцій - максимальну кількість прибуткових операцій в одній серії.
Щоб включити обмежує умова, необхідно виставити відповідний прапорець зліва від нього. Подвійним кліком лівої кнопки миші в поле "Значення" можна змінити наявний параметр.
Фінансовий інструмент і його період
Щоб приступити до тестування, недостатньо лише вибрати радника і налаштувати його. Необхідно також вибрати фінансовий інструмент і період (таймфрейм) для тестувань. Всі тестування будуть проходити саме на цих даних. При тестуваннях можна вибрати один з доступних в терміналі інструментів або використовувати зовнішній файл даних. У тестуваннях використовуються файли історичних даних формату * .FXT, які записуються в директорії / TESTER. Ці файли автоматично створюються при тестуваннях, якщо був обраний наявний в терміналі інструмент. При використанні зовнішніх даних необхідно власноруч помістити відповідний файл даних в директорію / TESTER і відключити прапорець "Перерахувати", щоб не перезаписати цю тестуючу послідовність.
Фінансовий інструмент задається в поле "Символ", а таймфрейм - в поле "Період". Якщо файлу даних по цьому інструменту, періоду і методу моделювання не існує, він буде створений автоматично. Якщо потрібний файл вже створений, і включена опція "Перерахувати", при тестуванні відбудеться повторне генерування файлу даних. При відсутності історичних даних по інструменту і періоду, тестер автоматично завантажить 512 останніх барів історії.
Увага: якщо по інструменту є які-небудь дані за межами останніх 512 барів, відбудеться автоматичне скачування історичних даних до самого останнього наявного бару. Це може викликати різке збільшення вхідного трафіку.
Історичні дані в терміналі зберігаються тільки як бари і являють собою записи у вигляді OHLC. Ці дані можуть використовуватися для моделювання динаміки цін при оптимізації радників. У деяких випадках для тестування / оптимізації такої інформації може не вистачити. Наприклад, на денних даних коливання цін всередині бару можуть привести до спрацьовування радника. У той же час при оптимізації спрацьовування може не відбутися. Іншими словами, оптимізація радника на основі одних тільки барів іноді буває неточною і може призводить до неправильного уявлення про ефективність експерта з вибраними параметрами.
Термінал дозволяє оптимізувати радники з використанням різних методів моделювання історичних даних. При цьому динаміка цін емулюється більш точно. За рахунок використання історичних даних більш дрібних періодів можна представляти коливання цін всередині барів. Наприклад, при оптимізації радника на часових даних, динаміку цін всередині бару можна змоделювати на основі хвилинних даних. Таким чином, моделювання істотно наближає історичні дані до реальних коливань цін і робить оптимізацію радників більш достовірною.
Під час налаштування оптимізації можна вибрати один з трьох методів моделювання історичних даних:
За цінами відкриття (швидкий метод на сформованих барах)
Деякі механічні торгові системи не залежать від особливостей внутрібарного моделювання, вони торгують на сформованих барах. Те, що поточний ціновий бар повністю сформувався, можна дізнатися по появі наступного. Саме для таких експертів призначений цей режим моделювання.
В цьому режимі спочатку моделюється відкриття бару (Open = High = Low = Close, Volume = 1), що дає експерту можливість точно ідентифікувати закінчення формування попереднього цінового бара. Саме на цьому зароджується барі запускається тестування експерта. На наступному кроці видається вже повністю сформований поточний бар, але на ньому тестування не проводиться!
Контрольні точки (використовується найближчий таймфрейм + фрактальная інтерполяція)
Метод моделювання контрольних точок призначений для грубої оцінки експертів, які торгують всередині бару. Для цього методу необхідна наявність історичних даних найближчого меншого періоду (таймфрейма). У більшості випадків наявні дані меншого таймфрейма в повному обсязі покривають часовий діапазон тестованого таймфрейма. При відсутності даних меншого таймфрейма розвиток бару генерується на основі цін закриття 12 попередніх барів. Тобто, рух всередині бару повторює рух ціни за останні 12 періодів. Це і є фрактальна інтерполяція.
Як тільки з'являються історичні дані меншого таймфрейма, фрактальна інтерполяція застосовується вже до цих даних. Однак використовується вже не 12, а всього 6 попередніх барів. Тобто відтворюються реально існуючі ціни Open, High, Low, Close плюс ще дві згенерованих ціни. Значення і місце розташування цих двох згенерованих цін залежить від руху ціни на 6 попередніх барах.
Все тики (на основі всіх найменших доступних періодів з фрактальної інтерполяції кожного тика)
Цей режим дозволяє найбільш точно змоделювати рух ціни всередині бару. На відміну від "контрольних точок", потіковий метод використовує для генерації дані не тільки найближчого меншого таймфрейма, але і всіх доступних менших таймфреймів. При цьому, якщо для якогось тимчасового діапазону одночасно існують дані більш одного таймфрейма, то для генерації використовуються дані самого меншого таймфрейма. Так само, як і в попередньому методі, фрактально генеруються контрольні точки. Для генерації руху ціни між контрольними точками також використовується фрактальна інтерполяція. Можлива ситуація, коли генерується кілька однакових тиків поспіль. В цьому випадку дублюються котирування фільтруються, і фіксується обсяг останньої з таких котирувань.
Необхідно враховувати дуже великий можливий обсяг згенерованих потікових даних. Це може позначитися на споживаних ресурсах операційної системи і на швидкості тестування.
- не рекомендується запускати потіковое тестування при відсутності більш дрібних таймфреймів, повністю покривають досліджуваний період, інакше тестування буде неточним;
- моделювання по контрольним точкам в основному використовується при оптимізації радників, а моделювання всіх тиків - для ретельного тестування.
При зміні параметрів моделювання та діапазону дат (описано нижче) необхідно заново створювати файл даних. Для цього слід виставити прапорець "Перерахувати". Якщо зазначені параметри не змінювалися, перерахунку проводити не треба. В цьому випадку рекомендується відключати цей прапорець.
Діапазон дат дозволяє тестувати радники не на всіх наявних даних, а лише на обраному часовому відрізку. Це буває зручним при необхідності досліджувати окрему частину історичних даних. Обмеження діапазону дат можна використовувати не тільки при тестуванні експерта, а й при генерації тестирующей послідовності барів (файлу змодельованих даних, використовуваного для тестування). Дуже часто немає необхідності генерувати дані всієї історії, особливо при потіковом моделюванні, коли обсяг невикористовуваних даних може бути дуже великим. Тому якщо при первинній генерації тестирующей послідовності була включена можливість використання діапазону дат, то бари, що виходять за межі вказаного діапазону, не генеруються, а просто переписуються в вихідну послідовність. Дані не виключаються з послідовності, щоб залишалася можливість правильно порахувати індикатори на всій отриманої історії. Необхідно зауважити, що перші 100 барів також не генеруються. Це обмеження не залежить від встановленого діапазону дат.
- якщо не виставлений прапорець "Оптимізація", після натиснення кнопки "Старт" замість оптимізації буде проводитися тестування радника;
- при оптимізації, як і при тестуванні, можна використовувати власні файли історії.
На відміну від тестування, оптимізація передбачає багаторазові прогони механічної торгової системи (МТС) з різними вхідними параметрами. Це робиться з метою визначення параметрів радника, при яких його прибутковість буде максимальна. Щоб провести оптимізацію, необхідно виставити однойменний прапорець у вкладці налаштувань тестування і натиснути кнопку "Старт". Після цього у вікні з'являться дві нових вкладки: "Результати оптимізації" і "Графік оптимізації".
У вкладці "Результати оптимізації", на відміну від результатів тестування, публікується не список всіх операцій, а остаточні звіти кожного з прогонів.
Вся інформація представлена у вигляді таблиці з полями:
Прохід - номер прогону;
Прибуток - чистий прибуток (валовий прибуток за вирахуванням валових збитків);
Всього угод - загальна кількість відкритих торгових позицій;
Прибутковість - відношення загального прибутку до загального збитку в процентах. Одиниця означає, що сума прибутку дорівнює сумі збитків;
Матожіданіє виграшу - математичне очікування виграшу. Цей статистично розраховувати показник відображає середню прибутковість / збитковість однієї угоди. Також можна вважати, що він відображає передбачувану прибутковість / збитковість наступної операції;
Просадка $ - максимальна просадка щодо початкового депозиту, у валюті депозиту;
Просадка% - максимальна просадка щодо початкового депозиту, у відсотках;
Вхідні парамети - змінні значення вхідних змінних при кожному прогоні.
Клікнувши лівою кнопкою миші на заголовку будь-якого стовпця, можна впорядкувати всі записи в таблиці по спадаючій або по зростанню. При виконанні команди контекстного меню "Встановити вхідні параметри" в якості базових вхідних змінних експерта (вікно властивостей експерта, вкладка "Вхідні параметри") записуються дані обраного прогону. При цьому відбуваються перемикання у вкладку "Налаштування" і відключення режиму оптимізації. Натиснувши кнопку "Старт", можна приступити до тестування радника з вибраними вхідними змінними. Подвійним кліком лівої кнопки миші на рядку прогону у вкладці результатів оптимізації можна виконати ту саму дію. За допомогою команди контекстного меню "Копіювати" або клавіш-акселераторів Ctrl + C можна скопіювати виділені рядки результатів в буфер обміну для подальшого використання в інших додатках. Якщо не вибрано жодного рядка, то в буфер обміну скопіюється вся таблиця. Також, щоб скопіювати всю таблицю в буфер обміну, можна виконати команду "Копіювати все". Звіт про результати оптимізації можна також зберегти в HTML-форматі на жорсткому диску. Для цього необхідно виконати команду контекстного меню "Зберегти як звіт". Інші команди контекстного меню дозволяють налаштовувати відображення результатів:
У вкладці "Графік Оптимізації" автоматично малюється графік прибутку всіх прогонів. Графік дозволяє наочно оцінити прибутковість використання різних комбінацій вхідних параметрів. У нижній частині графіка також наводиться графік, що відображає кількість прибуткових (зелений колір) і збиткових (червоний колір) угод при кожному прогоні.
Подвійний клік лівою кнопкою миші на будь-якій точці графіка виробляє перемикання у вкладку "Результати" і вибирає відповідний прогін. За допомогою команди контекстного меню "Копіювати" або клавіш-акселераторів Ctrl + C можна скопіювати зображення графіка в буфер обміну для подальшого використання в інших додатках. Графік можна також зберегти у вигляді GIF-файлу на жорсткому диску. Для цього необхідно виконати команду контекстного меню "Зберегти як малюнок" або натиснути клавіші-акселератори Ctrl + S.