9. Оптимизация систем в Метасток (Optimizing Systems Metastock)

Оптимизация системы заключается в выполнении множества тестов при котором перебираются различные значения параметров торговых правил.

В учебнике по тестированию систем (см.) приводятся пример по оптимизации   периодов усреднения скользящих средних в простых торговых системах. В этом примере в тест загружаются  периоды от 10 до 50 с шагом увеличения 5. Мы рекомендуем  Вам выполнить этот пример на компьютере, чтобы лучше понять принципы оптимизации.

Каждая торговая система может содержать до 10 переменных оптимизации, обозначаемых как OPT1 -  OPT10. (OPT-переменные нельзя использовать в пользовательских индикаторах). Для оптимизации Вы заменяете числовые константы в торговых правилах OPT-переменными. Затем Вы специфицируете значения для этих переменных, указав максимальное и минимальное значение, а также шаг изменения значения.

Когда Вы запускаете тест, содержащий переменные оптимизации, МетаСток автоматически выполняет тесты, каждый подставляя новую комбинацию значений переменных.

9.1 Спецификация переменных оптимизации (Specifying the Optimization Variables)

Для того чтобы специфицировать диапазоны для переменных оптимизации торговых правил, щелкните по кнопке “Optimize” диалога “System Editor”

New.  Добавляет новую OPT переменную, вызывает диалог редактирования ее свойств. (Variable Properties Dialog)

Edit.  Выводит диалог “Variable Properties” (см.). В этом диалоге Вы можете отредактировать минимальное (minimum) и максимальное (maximum) значение, а также шаг (step),  отмеченной OPT-переменной.

Delete. Удаляет отмеченную OPT-переменную. Заметьте, что Вы не можете удалить OPT-переменную, которая в данный момент имеется в формуле торгового правила.

Total Tests. Показывает, какое число тестов будет выполнено для  оптимизации системы.

9.1.1  Диалог «Свойства переменных» (Variable Properties Dialog)

Диалог “Свойства переменных” используется для спецификации диапазона изменений значений OPT-переменных.

Name.  (Имя) Выберите OPT-переменную из ниспадающего списка  (т.е., OPT1 - OPT10)

Description.  (Описание) В этот бокс Вы можете ввести описание переменной (необязательно).

Minimum. (Минимум) Напечатайте минимальное значение OPT-переменной.

Maximum. (Максимум) Напечатайте максимальное значение OPT-переменной.

Step.  (Шаг) Введите значение шага , т.е. число на которое будет увеличиваться OPT-переменная от минимального значения до максимального. Например, если диапазон минимум/максимум составляет 10/50, а шаг 10, то OPT-переменной будут присваиваться значения 10, 20, 30, 40 и 50.

9.2 Примеры оптимизаций (Example Optimizations)

Приведенное ниже правило входа в длинную позицию генерирует покупку, если цена закрытия выше ее скользящей средней с периодом усреднения 10:

Enter Long:      CLOSE > mov(CLOSE, 10, SIMPLE)

Для подбора оптимального периода усреднения скользящей средней, можно заменить период ”10” на переменную оптимизации, как показано ниже:

Enter Long:      CLOSE > mov(CLOSE, OPT1, SIMPLE)

Для того чтобы  ввести диапазон подбора значений переменной OPT1 (например, от 5 до 20 с шагом 5),  необходимо находясь в диалоге “System Editor” щелкнуть по кнопке “Optimize”. При запуске теста системы с определенными выше правилами, МетаСток выполнит серию тестов каждый раз заменяя переменную OPT1 оптимизационными значениями как показано далее:

Enter Long:       CLOSE > mov(CLOSE,   5, SIMPLE) Test #1)
Enter Long:       CLOSE > mov(CLOSE, 10, SIMPLE){Test #2)
Enter Long:       CLOSE > mov(CLOSE, 15, SIMPLE){Test #3)
Enter Long:       CLOSE > mov(CLOSE, 20, SIMPLE){Test #4)

После окончания тестирования будет получено 4 отчета (по одному на каждое оптимизационное значение).

Количество тестов необходимых для проверки каждой комбинации оптимизационных значений можно рассчитать перемножив количества тестов требуемых для проверки каждой отдельной переменной оптимизации.

Это демонстрируется на следующем примере:

Enter Long:       rsi(14) > OPT1
Close Long:       rsi(14) < OPT2
Enter Short:       rsi(14) < OPT1
Close Short:      rsi(14) > OPT2
OPT1:  minimum = 20, maximum = 40, step = 10 {3 теста}
OPT2:  minimum = 70, maximum = 80, step = 10 {2 теста}

В примере, приведенном выше переменная OPT1 имеет три возможных значения (20, 30 и 40),  переменная OPT2 может принять только два значения (70 и 80). В итоге число комбинаций всех значений будет равно шести  (3 * 2 = 6), т.е. будет всего выполнено 6 тестов показанных ниже:

Тест

PT1

PT2

1

20

70

2

30

70

3

40

70

4

20

80

5

30

80

6

40

80

Число тестов может очень быстро достигнуть огромных размеров (максимально возможное число 32 000). Для примера рассмотрим следующую систему с пересечением скользящих средних:

Enter Long:       cross(C, mov(C, OPT2, E) )
Close Long:       cross(mov(C, OPT1, E),C)
Enter Short:       cross(mov(C, OPT1, E),C)
Close Short:      cross(C, mov(C, OPT2, E))
OPT1:  minimum = 1, maximum = 100, step = 1 {100 тестов}
OPT2:  minimum = 1, maximum = 100, step = 1 {100 тестов}

В приведенном примере на каждую переменную оптимизации требуется по 100 тестов. Таким образом, число комбинаций составит 100*100=10 000.

Даже на очень быстром компьютере, эта относительно простая (несмотря на “тяжелую” оптимизацию) система потребует несколько часов для тестирования.

Для ускорения тестирования в данном случае необходимо уменьшить число производимых тестов путем уменьшения диапазона значений OPT-переменных и/или увеличения значения шага.

Количество тестов требуемых для проверки каждой оптимизационной комбинации показывается в нижней части окна диалога “Optimization Variables”.

 

"Фондовый навигатор" - про фондовый рынок, интернет-трейдинг, фундаментальный и технический анализ, торговые системы

Добавить комментарий


Защитный код
Обновить

Комментарии