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

Налаштування

  1. Радник і його параметри
  2. тестування
  3. вхідні параметри
  4. оптимізація
  5. Фінансовий інструмент і його період
  6. методи моделювання
  7. часовий діапазон

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

Для тестування і оптимізації радників в терміналі використовується спеціальне вікно "Тестер" . Всі перераховані вище настройки проводяться у вкладці "Налаштування" цього вікна.

Радник і його параметри

В поле вікна "Тестер - Радники" слід вибрати експерт, параметри якого необхідно оптимізувати. У цьому полі можна вибрати будь-який файл радника. Тут можуть бути лише доступні в клієнтському терміналі файли. Для цього вони повинні бути скомпільованими і перебувати в папці / EXPERTS.

Після того як обраний радник, необхідно провести додаткову настройку і задати вхідні параметри. Це можна зробити натисканням кнопки "Властивості експерта".

При цьому з'явиться нове вікно з трьома вкладками:

тестування

У цій вкладці задаються загальні параметри оптимізації. До них відносяться обсяг і валюта початкового депозиту, які вказуються в однойменних полях. Саме цим депозитом буде оперувати радник під час оптимізації.

У цій вкладці також вибираються типи відкриваються позицій: Only Long - відкривати тільки довгі позиції; Only Short - тільки короткі; Long and Short - відкривати позиції в обидві сторони. Який би не був алгоритм радника, він буде відкривати позиції тільки в заданих напрямках.

Також можна включити генетичний алгоритм оптимізації. Детальний опис цього алгоритму можна знайти в статті "Генетичні алгоритми - математичний апарат" .

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

  • Balance - показником оптімізірованності є максимальне значення балансу;
  • Profit Factor - показником є ​​максимальне значення фактора прибутковості;
  • Expected Payoff - показником є ​​максимальне значення математичного очікування виграшу;
  • Maximal Drawdown - показником є ​​мінімальне значення просідання;
  • Drawdown Percent - показником є ​​мінімальне значення відносної просадки (у відсотках);
  • Custom - при виборі даного параметра в якості критерію оптимізації буде враховуватися значення функції OnTester () в радника. Даний параметр дозволяє користувачеві використовувати будь-який власний показник для оптимізації.

вхідні параметри

Тут у вигляді таблиці наводиться список всіх вхідних параметрів. Вхідними параметрами називаються змінні, які впливають на роботу експерта і можуть бути змінені прямо з клієнтського терміналу. Для зміни цих параметрів немає необхідності змінювати код експерта. Кількість вхідних змінних може варіюватися від експерта до експерта.

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

Існує можливість завантажити вже збережений набір вхідних параметрів (включаючи значення "Старт", "Крок" і "Стоп"). Це можна зробити, натиснувши кнопку "Завантажити" і вибравши попередньо збережений набір параметрів. Зберегти поточний набір зовнішніх змінних можна за допомогою однойменної кнопки.

оптимізація

Ця вкладка дозволяє управляти обмеженнями під час оптимізації. Якщо в процесі окремого прогону буде досягнуто будь-яке з умов, цей прогін радника перерветься. Оптимізація продовжиться з наступного прогону.

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

До обмежуючим параметрам відносяться:

  • Мінімальний баланс - мінімальне значення балансу у валюті депозиту;
  • Максимальний прибуток - максимальний прибуток у валюті депозиту;
  • Мінімальний рівень маржі% - мінімальний рівень маржі у відсотках;
  • Максимальна просадка% - максимальна просадка в процентах;
  • Безперервний збиток - максимальний сумарний збиток в одній серії. Збитковою серією називаються кілька наступних поспіль збиткових угод;
  • Безперервне кількість збиткових угод - максимальна кількість збиткових угод в одній серії;
  • Безперервний виграш - максимальна сумарна прибуток в одній серії. Прибутковою серією називаються кілька наступних поспіль прибуткових операцій;
  • Безперервне кількість прибуткових операцій - максимальну кількість прибуткових операцій в одній серії.

Фінансовий інструмент і його період

Щоб приступити до тестування, недостатньо лише вибрати радника і налаштувати його. Необхідно також вибрати фінансовий інструмент і період (таймфрейм) для тестувань. Всі тестування будуть проходити саме на цих даних. При тестуваннях можна вибрати один з доступних в терміналі інструментів або використовувати зовнішній файл даних. У тестуваннях використовуються файли історичних даних формату * .FXT, які записуються в директорії / TESTER. Ці файли автоматично створюються при тестуваннях, якщо був обраний наявний в терміналі інструмент.

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

Увага: якщо по інструменту є які-небудь дані за межами останніх 512 барів, відбудеться автоматичне скачування історичних даних до самого останнього наявного бару. Це може викликати різке збільшення вхідного трафіку.

методи моделювання

Історичні дані в терміналі зберігаються тільки як бари і являють собою записи у вигляді OHLC. Ці дані можуть використовуватися для моделювання динаміки цін при оптимізації радників. У деяких випадках для тестування / оптимізації такої інформації може не вистачити. Наприклад, на денних даних коливання цін всередині бару можуть привести до спрацьовування радника. У той же час при оптимізації спрацьовування може не відбутися. Іншими словами, оптимізація радника на основі одних тільки барів іноді буває неточною і може призводить до неправильного уявлення про ефективність експерта з вибраними параметрами.

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

Під час налаштування оптимізації можна вибрати один з трьох методів моделювання історичних даних:

  • За цінами відкриття (швидкий метод на сформованих барах)
    Деякі механічні торгові системи не залежать від особливостей внутрібарного моделювання, вони торгують на сформованих барах. Те, що поточний ціновий бар повністю сформувався, можна дізнатися по появі наступного. Саме для таких експертів призначений цей режим моделювання.
    В цьому режимі спочатку моделюється відкриття бару (Open = High = Low = Close, Volume = 1), що дає експерту можливість точно ідентифікувати закінчення формування попереднього цінового бара. Саме на цьому зароджується барі запускається тестування експерта. На наступному кроці видається вже повністю сформований поточний бар, але на ньому тестування не проводиться!
  • Контрольні точки (використовується найближчий таймфрейм + фрактальная інтерполяція)
    Метод моделювання контрольних точок призначений для грубої оцінки експертів, які торгують всередині бару. Для цього методу необхідна наявність історичних даних найближчого меншого періоду (таймфрейма). У більшості випадків наявні дані меншого таймфрейма в повному обсязі покривають часовий діапазон тестованого таймфрейма. При відсутності даних меншого таймфрейма розвиток бару генерується на основі цін закриття 12 попередніх барів. Тобто, рух всередині бару повторює рух ціни за останні 12 періодів. Це і є фрактальна інтерполяція.
    Як тільки з'являються історичні дані меншого таймфрейма, фрактальна інтерполяція застосовується вже до цих даних. Однак використовується вже не 12, а всього 6 попередніх барів. Тобто відтворюються реально існуючі ціни Open, High, Low, Close плюс ще дві згенерованих ціни. Значення і місце розташування цих двох згенерованих цін залежить від руху ціни на 6 попередніх барах.
  • Все тики (на основі всіх найменших доступних періодів з фрактальної інтерполяції кожного тика)
    Цей режим дозволяє найбільш точно змоделювати рух ціни всередині бару. На відміну від "контрольних точок", потіковий метод використовує для генерації дані не тільки найближчого меншого таймфрейма, але і всіх доступних менших таймфреймів. При цьому, якщо для якогось тимчасового діапазону одночасно існують дані більш одного таймфрейма, то для генерації використовуються дані самого меншого таймфрейма. Так само, як і в попередньому методі, фрактально генеруються контрольні точки. Для генерації руху ціни між контрольними точками також використовується фрактальна інтерполяція. Можлива ситуація, коли генерується кілька однакових тиків поспіль. В цьому випадку дублюються котирування фільтруються, і фіксується обсяг останньої з таких котирувань.
    Необхідно враховувати дуже великий можливий обсяг згенерованих потікових даних. Це може позначитися на споживаних ресурсах операційної системи і на швидкості тестування.

Увага:

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

У клієнтському терміналі в історії цінових даних зберігаються тільки ціни Bid. Для моделювання цін Ask в тестері стратегій за замовчуванням використовується поточний спред інструменту на момент запуску оптимізації. Однак користувач може задати власне значення спреду для оптимізації в поле "Спред".

часовий діапазон

Діапазон дат дозволяє тестувати радники не на всіх наявних даних, а лише на обраному часовому відрізку. Це буває зручним при необхідності досліджувати окрему частину історичних даних. Обмеження діапазону дат можна використовувати не тільки при тестуванні експерта, а й при генерації тестирующей послідовності барів (файлу змодельованих даних, використовуваного для тестування). Дуже часто немає необхідності генерувати дані всієї історії, особливо при потіковом моделюванні, коли обсяг невикористовуваних даних може бути дуже великим. Тому якщо при первинній генерації тестирующей послідовності була включена можливість використання діапазону дат, то бари, що виходять за межі вказаного діапазону, не генеруються, а просто переписуються в вихідну послідовність. Дані не виключаються з послідовності, щоб залишалася можливість правильно порахувати індикатори на всій отриманої історії. Необхідно зауважити, що перші 100 барів також не генеруються. Це обмеження не залежить від встановленого діапазону дат.

Щоб увімкнути режим батьківського контролю по датах, необхідно виставити прапорець "Використання дат" і вказати необхідні значення в полях "Від" і "До". Після того як зроблені всі настройки, можна натиснути кнопку "Старт" і почати тестування. Після початку тестування в нижній частині вікна можна переглянути орієнтовний час завершення цього процесу.

Увага:

  • якщо не виставлений прапорець "Оптимізація", після натиснення кнопки "Старт" замість оптимізації буде проводитися тестування радника ;
  • при оптимізації, як і при тестуванні, можна використовувати власні файли історії .