Тестирование Торговых систем

 

1.     Что такое тест системы? (What is a System Test?)

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

Вы можете использовать МетаСток, чтобы:

·       разработать торговую систему ,  используя собственные правила торговли;

·       тестировать Вашу торговую систему;

·       проверить результаты тестирования при помощи  стрелок покупки/продажи  и  линии денежного баланса (equity line)  на графике, а также при помощи табличных  отчетов;

·       автоматически  оптимизировать параметры  Ваших  торговых правил , чтобы улучшить результаты;

·       сравнить торговые системы, чтобы обнаружить систему, которая работает лучше всего для конкретной ценной бумаги.

Очень важно, чтобы Вы познакомились с Учебником по системам  (System Tutorial), который  излагается далее, прежде чем начнете разрабатывать вашу торговую систему.

В системных торговых правилах используется синтаксис подобный синтаксису для разработки пользовательских индикаторов.  Если Вы недостаточно знакомы с разработкой пользовательских индикаторов, Вам необходимо прочитать раздел  справочник формул ( Formula Tutorial).

При разработке торговых систем имейте ввиду, что технический анализ это динамичный  инструмент (а возможно и искусство)  и не существует  безупречных механических систем.

Не дайте себе попасться в ловушку  чрезмерного “подлаживания” вашей системы, для специфичных ситуаций на рынке.  Для получения советов по системным улучшениям см. System Development Tips.

Отдавая должное,   присущей (врожденной) сложности торговых систем, EQUIS Internatio-nal  может  предоставить только ограниченное количество  технических средств для тестирующей системы.. Мы рады предоставить Вам инструменты при помощи, которых Вы можете развивать ваше торговое мастерство, но не можем снабдить торговой системой полностью удовлетворяющей Вас.

2.     Учебник по тестеру систем (System Tester Tutorial)

Этот короткий учебник  объясняет различные термины и концепции для тестирующих систем. Важно, чтобы Вы прочитали этот справочник, прежде чем начать разработку собственной торговой системы. Вы также должны быть хорошо знакомы  с разработкой пользовательских индикаторов (см. “Formula Tutorial”).

2.1     Основные сведения (The Basics)

Система тестирования включает следующие основные шаги. Эти шаги  описываются детально в течении дальнейшего обучения. (не пытайтесь их выполнять сейчас).

Шаг 1. Создайте торговую систему посредством спецификации торговых правил (конди-ций), которые должны устанавливать когда открывать/закрывать длинные и короткие позиции.

Шаг 2. Специфицируйте стопы (опционы) для вашей торговой системы, чтобы автоматически закрывать позиции основываясь на  принципе стоп-прибыль/стоп-убыток (gain {profit) /loss).

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

Шаг 4. Просмотрите результаты теста.  Во время тестирования МетаСток сохраняет всю информацию относительно транзакций. Вы можете затем вывести отчет, чтобы инспектировать транзакции сгенерированные вашей системой.

Шаг 5. Оптимизируйте  ваши торговые правила (опционы). Оптимизация поможет вам определить оптимальные торговые параметры для использования в Ваших  правилах.

Вы можете использовать ваш денежный баланс (акции) в качестве индикатора на графике. Вы также можете показать на графике стрелки покупка/продажа. Вы можете  также провести сравнительный тест торговых систем, чтобы выяснить которая из них наилучшим образом подходит для данной  ценной бумаги. (см. Comparing Systems).

Каждая деталь относящаяся к торговой системе, тестам и отчетам может быть выведена на принтер или в файл.

2.2     Диалог Тестера систем (The System Tester Dialog)

Прежде чем Вы продолжите работу с этим справочником, откройте график с не менее, чем 200 временными  периодами, для ценной бумаги которую Вы желаете протестировать.  Системный тест всегда выполняется на базовых данных ценной бумаги в выбранном графике.

Выбери  System Tester из меню Tools или щелкни по кнопке System Tester на панели инструментов.

Диалог  “System Tester” предлагает вам создать, тестировать, сравнить, печатать или  выполнить отчет  торговой системы. Первоначально Диалог  “System Tester” показывает имена  различных примеров торговых систем.

2.3     Создание новой системы (Creating a New System)

В Диалоге  “System Tester” щелкните по клавише <New>.

Диалог “System Editor” имеет текстовые поля для имени системы, заметок и правил. Четыре правила определяют, когда Вы хотите открывать/закрывать длинные и короткие позиции.

Введите имя системы   "My First System". Не следует вводить имена используемые в МетаСтоке  или имена существующих систем.

Щелкни  по радио-кнопке <Enter Long> и введи следующие торговые правила для входа в длинную позицию:

cross(close, mov(close,25,simple))

Написанное выше правило, как и большинство торговых правил в МетаСтоке может быть написано на английском языке. Оно говорит, “Войти в длинную позицию, если цена закрытия пересечет снизу вверх простую 25-дневную скользящую среднюю. Как и при создании пользовательских индикаторов Вы можете использовать  аббревиатуру "C"  вместо "Close" и  "S" вместо "Simple".) Торговые правила (см. “The System Editor Dialog”) очень похожи на пользовательские индикаторы (см. “Formula Tutorial”).

Введи следующую информацию для трех запоминаемых торговых правил.  Помните, что необходимо щелкать по соответствующей радио-кнопке для ввода каждого из правил (т.е. Close Long, Enter Short, and Close Short):

Close Long: cross(mov (close, 25, simple), close)

Enter Short: cross(mov(close, 25, simple), close)

Close Short: cross(close, mov(close, 25, simple))

Если все четыре правила введены правильно, щелкните по клавише  <OK>.

Если  в Ваших  правилах имеется синтаксическая ошибка, то  будет выведено сообщение об ошибке. Щелкните по клавише  <OK>, в знак признания ошибки. System Editor  вновь перенесет курсор на то место, где существует ошибка.  Вы должны исправить ошибку и вновь щелкнуть по клавише  <OK>.

 

2.4     Тестирование системы (Testing the System)

Когда Диалог “System Editor” появится вновь (и "My First System" высвечивается), щелкните по клавише “Test”, чтобы начать тест системы.  Продолжительность тестирования зависит от числа анализируемых периодов и быстродействия вашего компьютера.

 

2.5     Вывод отчетов ( Displaying the Reports)

Когда появится сообщение "System Test Completed", щелкните по клавише “Reports”. Общий отчет будет выведен на экран.

Этот отчет содержит короткую информацию о тесте. Если Вы выполнили оптимизацию включающую несколько тестов, каждый из отчетов будет выведен.

Щелкните по клавише “Reports” , чтобы вывести диалог “System Report”

Три отчета содержатся в таблице диалога “System Reports”. “Results Report” (см. Results Report) показывает  распределение прибылей, потерь и торговых операций для системы в целом. Трейдерский отчет (см. Trades Report) показывает детали каждой торговой операции выполненной системой. Отчет “Equity” (см. Equity Report) показывает как день за днем изменяется  количество денежных средств.

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

Стрелки на вашем графике появляются, когда как длинная так и короткая позиции были открыты. Стрелка направленная вверх индицирует открытие длинной позиции, а стрелка направленная вниз индицирует открытие короткой  позиции, метка “exit” указывает на закрытие позиции, метка “stop“ указывает на стоп вашей позиции.

2.6     Оптимизация (Optimizing)

Оптимизация  подразумевает замену параметров правил торговой системы на  ОРТ-пере-менные, а затем спецификацию диапазона значений в которых ОРТ-переменные могут варьировать. МетаСток затем выполняет несколько тестов во время которых подставляются  значения ОРТ-переменных из специфицированного диапазона.

"My First System" в данном справочнике тестирует сигналы покупки/продажи генерируемые 25-дневной скользящей средней. Ниже мы показываем как можно оптимизировать наши торговые правила, чтобы определить оптимальный период усреднения скользящей средней.

2.6.1     Ввод Оптимизационных переменных (Entering The Optimization Variable)

Выберите "My First System" в диалоге “System Tester” и щелкните по клавише “Edit”. Во всех четырех торговых правилах замените число 25 на выражение “ОРТ1” (оптимизационная переменная №1)

Щелкните по клавише <Optimize>. Появиться диалог “Optimization Variables”.

Щелкните по клавише <Edit>. Появиться диалог “Variable Properties ”.

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

Введите  "Moving average periods" в качестве описания переменной “ОРТ1“. Напечатайте  10 в качестве минимального значения (Minimum value) и 50 в качестве максимального (Maximum value), значение шага установите как 5 (Step value) (Как показано в следующей иллюстрации).

Щелкните по клавише  <OK>. 

Обратите внимание на общеее число тестов  (Total Tests) расположенное  в нижней части этого диалога. Это число указывает какое количество тестов (в нашем случае 9) будет выполнено. Каждый раз после редактирования переменных оптимизации необходимо проверять его значение, т.к. очень легко создать систему, которая будет генерировать громадное количество тестов .

Щелкните по клавише <Close>.

Щелкните по клавише  <OK> в диалоге  “System Editor“, чтобы вернуться в диалог “System Tester”.

2.7     Тестирование системы с оптимизационными переменными (Testing the Optimization System)

Выберите "My First System" и щелкните клавишу <Test>.

Во время выполнения оптимизации МетаСток  показывает информацию о количестве выполненных тестов,  время прошедшее от начала тестирования,   время предположительно оставшееся до окончания  тестирования, наилучшее и наихудшее отношение прибыль/убыток.

Вы можете щелкнув по клавише “Minimize” свернуть окно диалога “System Test Optimization” в иконку. В данном случае процесс оптимизации будет протекать “за экраном”, что освободит вам компьютер для выполнения других задач.

2.8     Вывод Отчетов по тестированию с оптимизационными переменными  (Displaying the Optimization Reports)

При появлении на экране сообщения "System Test Completed" (Тестирование системы завершено), щелкните по клавише <Reports>. Появится  “Общий отчет”.

Этот отчет содержит вход для каждого теста, который был выполнен. Поскольку мы выполнили 9 тестов (т.к. торговая система тестировалась с использованием 9 различных временных периодов скользящих средних), в этом отчете содержится 9 листингов по тестам. 

Тесты в отчете ранжированы по их прибыльности. При желании Вы можете использовать клавишу <Sort>, чтобы выполнить сортировку заново.

Скроллируйте отчет вправо, пока не появиться колонка ОРТ1

Значение показанное в верхней строке этой колонки является оптимальным значением скользящей средней для  изучаемой ценной бумаги. В иллюстрации приводимой выше это значение равно 10.

Щелкните клавишу <Reports>, чтобы получить дополнительную информацию по выбранному тесту.

2.9     Заключение (Tutorial Summary)

Вы закончили знакомство с Учебником по тестеру систем. Пытаясь представить этот учебник, как можно в более сжатой форме, мы не смогли осветить все возможности МетаСтоковского тестера торговых систем. Однако, сейчас Вы  должны как можно более  хорошо изучить процесс создания торговых систем.  Остатки этой главы представляют детальную информацию по тестированию систем. Если вам необходимо тестировать фьючерсы и опционы (commodies) смотрите специальные инструкции в “Testing Futures and Commodities”.

3.     Диалог «Тестер систем» (System Tester Dialog)

Диалог  “System Tester” представляет список всех Ваших  торговых систем. Вы можете создать до 1000 тестов систем. Выбранный тест системы может редактироваться, копироваться. удаляться и тестироваться.  Несколько тестов систем  также можно выбрать для проведения сравнения (см. Compare Reports). Тесты систем за именем которых следует “R“  имеют в наличии тесты выполненные в самое последнее время.

New. Вызывает диалог “System Editor”, в котором можно специфицировать имя и правила для нового теста системы. См. Creating a System Test для более подробной информации по созданию новых тестов.

Edit. Вызывает диалог “System Editor”, в котором можно редактировать выбранный тест системы.

Copy. Используется для того. чтобы сделать копию выбранного теста системы. В результате выбора этой опции Вы попадаете в диалог  “System Editor”, где можете редактировать скопированный тест системы. См. “Copying and Deleting System Tests “ для более подробной информации по копированию тестов.

Delete. Используется для удаления  выбранных тестов систем. См. “Copying and Deleting System Tests “ для более подробной информации по удалению тестов.

Print. Используется для печати выбранных тестов систем. См. “Printing System Tests “ для более подробной информации по печати тестов.

Test. Используется, чтобы запустить процесс тестирования выбранного теста. Заметим, что эта кнопка является неактивной если Вы выбрали несколько тестов не поставив при этом флажок  в  поле “Compare”. Эта кнопка также является неактивной, если нет открытых графиков. См. “Testing Systems“ для более подробной информации по тестированию.

Reports. Эта кнопка показывает суммарный отчет  (или сравнительный отчет , если в поле  “Compare” стоит флажок) для выбранного теста системы. Эта кнопка является неактивной, если после имени теста не стоит значок “R” (идентифицирует наличие отчета). . См. “Viewing the Reports“.

Options. Эта кнопка показывает диалог “System Testing Options”,  в котором Вы можете управлять различными опциями тестирования и отчетов. См. “System Testing Options“ для более подробной информации по имеющимся опциям.

Compare. Щелкните по этому полю (вставьте флажок), если Вы хотите сравнить несколько тестов систем. Если в поле “Compare” стоит флажок, кнопка “Test” меняет название на “Compare“. См. “Compare Reports “ для более подробной информации по сравнительным тестам.

4.     Создание теста системы (Creating a System Test)

Каждая торговая система содержит четыре правила торговли. Правила торговли определяют, когда должны быть  длинные/коротки позиции открыты/закрыты. Торговая система также может иметь  оптимизационные переменные и стопы.

Чтобы создать новую систему , щелкните по клавише “New” в  диалоге “System Tester”. МетаСток может запомнить до 1000 систем.  После того как Вы выберите указанную выше кнопку появится диалог “System Editor”.

4.1     Диалог «Редактор системы» (The System Editor Dialog)

Диалог  “System Editor” предлагает вам ввести имя системы, ее краткое описание и  определить четыре торговых правила. В торговых правилах используется синтаксис формул  подобный синтаксису для разработки пользовательских индикаторов (см. Creating Your Own Indicators). Этот синтаксис очень похож на синтаксис используемый для ввода формул  в (развернутые страницы - spreadsheets). Если Вы недостаточно знакомы с разработкой пользовательских индикаторов, Вам необходимо прочитать раздел  справочник формул ( Formula Tutorial).

Помните, что торговые система может находится только в одном из трех состояний: длинной или короткой позиции или с закрытыми позициями. 

После выхода из «редактора»  Вы можете специфицировать опции касающиеся управления деньгами (какие позиции открывать, комиссионные и т.п.)  в диалоге «System Testing Options» (см. System Testing Options).

Вы используете четыре радио-кнопки, чтобы выбрать правило, а затем его отредактировать.

Enter Long. (Вход в длинную позицию) Это правило указывает, когда система должна открыть длинную позицию.  Длинную позицию можно открыть только, если система находится в короткой позиции или без открытых позиций. Если система находится в длинной позиции, это правило игнорируется.

Close  Long. (Выход из длинной позиции) Это правило указывает, когда система должна закрыть длинную позицию.  Если система находится в короткой позиции или «вне рынка»,  это правило игнорируется.

Enter Short. (Вход в короткую позицию) Это правило указывает, когда система должна открыть короткую позицию.  Короткую позицию можно открыть только, если система находится в длинной позиции или без открытых позиций. Если система находится в короткой позиции, это правило игнорируется.

Close Short. (Выход из короткой позиции) Это правило указывает, когда система должна закрыть короткую позицию.  Если система находится в длинной позиции или «вне рынка»,  это правило игнорируется.

4.2     Синтаксис торговых правил (Trading Rule Syntax)

Торговые правила вводятся с использованием синтаксиса подобного таковому у пользовательских индикаторов (см. Formula Tutorial). Этот синтаксис очень похож на синтаксис используемый для ввода формул в ( spreadsheets ?).

Торговые правила всегда возвращают значение «истинна» или «ложь». Если правило возвращает значение «истинна»,  то соответствующая торговая операция выполняется (покупка, продажа и т.п.). Если возвращается  «ложь», никаких действий не производится.

Следующий пример иллюстрирует торговое правило:

Enter Long:       cross(CLOSE, mov(CLOSE,12,Simple))

Согласно этому правилу система должна открыть длинную позицию когда цена закрытия пересечет снизу вверх 12-дневную скользящую среднюю этой цены.

Подобно этому можно написать другое правило:  открыть длинную позицию, если MACD больше 0. ("macd()" - является функцией, см. MACD).

Enter Long:       macd() > 0

Все пользовательские функции для индикаторов (подобно macd()) могут использоваться в качестве торговых правил. Специфические пользовательские индикаторы могут делать ссылки на формулы типа fml() (см. Formula Call) как показано ниже:

Enter Short:       fml("My Formula") > 0

Вы можете комбинировать несколько функций  в торговом правиле используя операторы AND и OR как показано ниже. См. (Using "And" and "Or" Operators).

Enter Long:       macd() > 0 AND CLOSE > mov(CLOSE,12,S)

Приведенное выше правило требует, чтобы MACD было больше 0, и чтобы цена закрытия была больше ее 12-дневной скользящей средней.

Следующее правило использует оператор  «OR», чтобы генерировать торговую операцию, к когда MACD падает ниже 0, или когда цена закрытия падает ниже ее скользящей средней.

Close Long:       macd() < 0 OR CLOSE < mov(CLOSE,12,S)

В торговом правиле может присутствовать несколько операторов AND, OR.

Наилучший путь для контроля поведения нескольких операторов AND и OR в торговых правилах - использование скобок, как показано ниже:

Enter Long:       (macd() > 0 AND C > 100) OR H-L>5

Это торговое правило генерирует торговую операцию, если выполняются следующие условия:

MACD больше 0 и цена закрытия больше100 (т.е. выполнены оба условия) или когда, разница максимальной и минимальной цен больше 5.

Вы можете щелкнуть по клавише «Functions» (см. Pasting Functions Into Formulas),  когда редактируете торговые правила (эта кнопка активна, когда редактируется правило, но не имя, или описание).  Появится  диалог «Paste Functions» , содержащий список  имеющихся функций. Двойной щелчок по имени функции вставит ее в торговое правило на место текущей позиции курсора.

Торговое правило может оставаться пустым. Однако, пустое торговое правило никогда не генерирует торговых операций.  Торговые правила имеют доступ только к ценам ценных бумаг (максимальная, минимальная, закрытия и т.д.) и пользовательским «индикаторным» функциям (см. Functions). Торговые правила не могут ссылаться сами на себя (например, на число дней от последней торговой операции). Однако, различные стопы (см. Entering Stops) выполняют эти функции.

Специальная переменная, называемая переменной «Р» может быть использована для ссылок на необходимые цены или индикаторы. (См. "P" Data Array Identifier для более подробной информации. См. Using the Alert() Function

4.2.1     Функция Alert  (Using the Alert() Function)

Функция Alert используется в соединении с другими функциями, чтобы возвратить значение «истинна»  для определенного числа периодов.  Функция возвращает значение «истинна» за определенное число периодов, даже если была генерирована другая торговая операция.

Следующий пример иллюстрирует использование функции Alert.

Enter Long:   RSI(14) < 30 AND alert(VOLUME > 500,3)

При вводе предыдущей формулы, как  правила для входа в длинную позицию система должна открыть таковую если RSI меньше 30 и объем был больше 500 в какой либо из трех предыдущих торговых дней. Условие "VOLUME > 500"  возвращает значение «истинна» за все  три временных периода, даже если в какой либо из этих трех дней было снижение объема ниже 500.

4.3     Использование стопов (Entering Stops)

В дополнении к торговым правилам каждая торговая система может иметь до пяти стопов. Стопы используются для того, чтобы  закрыть длинную и/или короткую позицию на основании данных о прибыли/убытках во время данной торговой операции. Например, стоп максимального убытка “Maximum Loss” закроет позицию, если  убытки будут больше специфицированной величины.

Когда вызывается стоп, позиция закрывается независимо от текущего статуса вашего торгового правила.

Вы можете специфицировать параметры при которых вызываются стопы, а также позиции, которые они могут закрыть (длинная и/или короткая).

Стопы автоматически учитывают комиссионные за открытие и закрытие позиции. Например, стоп Максимального убытка (Maximum Loss) знает величину Ваших  комиссионных за закрытие позиции и следит за тем, чтобы при ее закрытии не была превышена величина максимально возможного  убытка даже после уплаты комиссионных.

Установка стопов производится после щелчка по кнопке “Stops” в диалоге “System Editor dialog”.

4.3.1     Рентабельный стоп (Breakeven)

Этот стоп закрывает открытую позицию, как только возникает угроза убытков по отношению к денежному балансу существовавшему на момент открытия позиции.

Стоп располагается на цене, где позиция может быть закрыта с сохранением  текущего денежного баланса (т.е. баланса равного сумме денег при открытии позиции)

Чтобы избежать активации этого стопа каждый раз при открытии позиции (т.к. величина денежного баланса из-за комиссионных при открытие позиции уменьшается), возможность активации этого стопа «включается»  только когда повышается цена акций и позиция становиться прибыльной или же величина прибыли повышается выше уровня (floor level) специфицированного пользователем.

Совет: Если «floor level»  установить на 0, то рентабельный стоп  может активироваться после точки, где позиция может быть закрыта без потерь.

4.3.2     Инактивация (Inactivity)

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

Напечатайте Минимальное изменение цены (Minimum Change) и длительность периода (Periods). Метод (Method), при помощи которого рассчитывается Минимальное изменение цены, может быть специфицирован как процентный (Percentage) или в абсолютных единицах (Points).

Например, если Вы определили 1% как минимальное изменение цены в течении 20 торговых дней, МетаСток автоматически закроет Вашу длинную (короткую) позицию, если цена акций не вырастет (снизится) как минимум на 1% в течении 20-дневного «окна».

Этот стоп анализирует, только изменение цены, но не прибыли, и игнорирует комиссионные.

4.3.3     Максимальный убыток  (Maximum loss)

Этот стоп закрывает длинную позицию, если величина убытков превышает Максимально установленное значение. (Maximum Loss)

Например, если Вы установили «Maximum Loss» - 5%, позиция будет закрыта, если  убыток превысит 5% от Вашей текущей прибыли(включая комиссионные).

Внимание! Если Вы установите значение «Maximum Loss» , которое будет меньше или равно величине комиссионных за вход в позицию, то каждая торговая операция будет прерываться немедленно после открытия позиции, т.к. все операции будут убыточными уже в момент входа в позицию)

4.3.4     Плановая прибыль (Profit target)

Этот стоп закрывает  позицию, если достигнут уровень запланированной прибыли.

Например: если Вы запланировали 10% прибыли, то открытые позиции будут закрыты при ее 10-процентном увеличении с учетом комиссионных.

 

4.3.5     Подтягивание (Trailing)

Этот стоп закрывает позицию, когда  происходит потеря определенного количества (специфицированного ранее Риска прибыли - Profit Risk ) от  текущей прибыли. Т.е. каждый раз, когда позиционная прибыль достигает нового максимума, то этот стоп подтягивается на уровень, определенный в Profit Risk относительно этого нового максимума.  Величина возможной потери специфицируется в поле «Profit Risk»  при помощи процентного метода или абсолютных значений.

МетаСток предоставляет Вам возможность определить число периодов в течении которых стоп будет игнорироваться. Например, если Вы специфицируете «4» , то этот стоп будет иметь временной лаг в 4 периода. Это означает, что четыре последних дня (прибыльных или убыточных) будут игнорироваться для расчета текущего уровня стопа. Это фильтрует колебания цены (вверх или вниз), которые появляются в  последние четыре дня.

Предназначение этого стопа служит в фиксации прибыли, но не ограничении потерь. Т.к. он только уменьшает величину прибыли, которая может быть потеряна. Убытки лимитирует стоп максимальной потери (Maximum loss stop).

Поскольку подтягивающийся стоп определяется уровнем прибыли, а не уровнем цены, то ненужно и специального рассмотрения этого стопа для коротких позиций. Например, если 5% специфицированно для Риска прибыли с периодом 0, а Ваша текущая позиция имеет прибыль $100.00. Тогда стоп будет располагаться на цене, при которой Ваша прибыль могла бы снизится до $95.00 или меньше.

5.     Копирование и удаление тестов систем (Copying and Deleting System Tests)

Копию  выбранного теста системы  можно сделать при помощи кнопки  «Copy»  диалога  «System Tester dialog». Это полезно в тех случаях, когда синтаксис планируемого нового теста системы похож на синтаксис уже созданного  теста.

Например, если система «А»  похожа на запланированную новую систему «В», необходимо в диалоге «System Tester dialog» выделить имя системы «А» и щелкнуть по кнопке «Copy» , затем в появившемся окне «System Editor dialog» отредактировать имя системы, внести необходимые изменения в формулу и нажать клавишу  <OK>.

Удаление тестов систем производиться при помощи кнопки «Delete»  в диалоге  «System Tester dialog».

Укажите,  будете ли Вы удалять тест (тесты) системы в целом или только отчеты по тесту системы. Если Вы выбираете первое, то отчеты  все равно удаляются вместе с тестом.

6.     Печать тестов систем (Printing System Tests   )

Вы можете напечатать названия тестов систем и/или  их формулы при помощи диалога «Print dialog». Чтобы вывести этот диалог, щелкните по кнопке «Print» в диалоге «System Tester dialog».

Print What.  (Что печатать) Отметьте, будете ли Вы печатать только имена тестов или имена и формулы вместе для отмеченных заранее тестов.

Copies. (Копии) Введите количество необходимых копий.

Print Range. (Диапазон печати) Отметьте, будете ли Вы печатать только выбранные тесты или все тесты в целом.

7.     Тестирование систем (Testing Systems)

Для того чтобы запустить тест системы, находясь в окне диалога “System Tester” выделите  необходимое имя теста и щелкните по клавише “Test”.

Если Вы желаете сравнить какие либо тесты систем, активируйте флажок  “Compare”. См. “Comparing Systems”.

Продолжительность тестирования зависит от сложности теста и размера массива данных загруженных в график. Очевидно, что тесты содержащие в своих формулах переменные оптимизации требуют большего времени для тестирования. Это связано с тем, что компьютеру приходится выполнять тестирование по каждой комбинации таких переменных. Также скорость тестирования зависит от Вашего компьютера (т.е. быстродействия процессора, жесткого диска и т.д.).

7.1     Диалог «Оптимизация системы» (System Test Optimization Dialog)

Если в Вашей формуле имеются переменные оптимизации, то при запуске теста будет появляться окно в котором отражается процесс выполнения процедуры оптимизации.

В основном информация представляемая в этом окне понятна сама по себе и не требует дополнительных пояснений. Некоторые из пунктов этих данных описываются ниже. Для получения дополнительных сведений по оптимизации тестов, смотрите «Optimizing Systems».

Estimated Completion Time. (Длительность выполнения). Время необходимое компьютеру для выполнения оптимизации базируется на средней продолжительности выполнения отдельных тестов. После выполнения каждого отдельного теста  эта длительность корректируется. Если скорость работы Вашего  жесткого диск замедляется по мере уменьшения дискового пространства (при этом длительность выполнения каждого текущего теста медленнее предыдущего), то объявленная вначале Длительность выполнения может увеличиться. 

Execution Priority. (Приоритет исполнения) Это ниспадающее меню позволяет контролировать величину процессорного времени, необходимого для вычисления параметров теста.   Обычно, устанавливают  "High."  Установите  "Medium" или "Low", если программа выглядит как «вяленное мясо» или не реагирует, поскольку системный тест загружен в фоновом режиме (т.е., тест системы минимизирован).

Minimize. (Минимизация) Минимизация окна. Задав минимизацию окна,  Вы можете, во время  выполнения  оптимизации, выполнять другую работу на компьютере. Восстановите прежние размеры «свернутого»  окна можно двойным щелчком по его «иконке».

Щелчком по кнопке «Cancel» Вы можете прекратить процесс тестирования (there may be a slight delay after you choose Cancel). В результате появится окно с требованием подтверждения  прекращения процесса. Однако отчеты по всем тестам, которые были выполнены до щелчка по кнопке «Cancel»,  сохраняются в памяти и могут быть вызваны для просмотра. 

Чтобы запустить тест системы в the background:

·       Запустите тест, который содержит оптимизационные переменные.

·       Когда появиться диалог  «System Test Optimization»,  раскройте ниспадающий список «Execution Priority»  для выбора необходимого приоритета. Если Вы планируете работать с МетаCтоком или другими программами во время выполнения тестирования (in the background), тогда выберите режим «Medium» или «Low».

Щелкните по кнопке «Minimize».

7.2     Опции тестирования системы (System Testing Options)

Вы можете настроить параметры тестирования и отчетов из имеете возможность настраивать  из диалога «System Testing Options».

Сюда относятся комиссионные, начальный капитал, страховой депозит, частота сделок и т.д.  Также Вы можете специфицировать опции concerning buy/sell стрелок и максимальное число отчетов.

7.2.1     Опции тестирования (Testing)

Price Field. (Поле цены) Выберите какую из цен Вы будете использовать в торговых операциях (т.е. open, high, low, или close).  Наиболее часто используются цены открытия и закрытия.   If you choose the open price field, you may want to specify a Delay of "1," so that the trades take place on the next day's opening price.

Delay. (Отсрочка) Введите число баров (дней, недель и т.д.), которые МетаСток будет пропускать перед выполнением торговой операции. Если Вы введете «0», то МетаСток выполнит торговую операцию в тот же  бар, как будет сгенерирован сигнал входа/выхода.  Если Вы введете «1», то такая операция будет выполнена на следующий бар.  В большинстве случаев используется «0» (операция выполняется в тот же самый бар) или «1»  (пропускается один бар перед торговой операцией).  Так как большинство торговых систем используют ежедневные данные, то операция будет выполняться в тот же самый или на следующий день после сигнала.

Наиболее приближенным к реальности подходом является, когда торговая операция совершается по цене открытия с периодом отсрочки на 1 торговый бар (день, неделю), т.е. (цена открытия на завтра).  При периоде отсрочки равным 0 очевидным является  использование цены закрытия.

Commissions. (Комиссионные) Выберите тип расчета комиссионных: в процентах или в абсолютных величинах. Затем, если хотите, Вы можете определить комиссионные входе и выхода.

Комиссионные в процентах рассчитываются от общей суммы задействованной в торговой операции. Однако, если у Вас имеется гарантийный депозит расчет может проводиться иначе  (см. ”Margin Requirement”).

Типичные комиссионные для акций составляют 2% на 10 000-долларовую транзакцию и  5% на тысяча долларовую.

“Товарные” комиссионные обычно берутся при выходе из позиции. Типичная плата составляет $30 за контракт.

Positions. (Позиции) Выберите тип возможных торговых операций (т.е.  только длинные или только короткие позиции, или и те и другие).

Points Only Test.(Только пункты) Активируйте этот флажок, если Вы проводите операции с фьючерсами или “товарами” и хотите отслеживать число пунктов выигрыша или проигрыша вместо текущих значений.  См. “Testing Futures and Commodities”.

Initial Equity. (Начальный капитал) Начальный баланс Вашего счета.  См. “Testing Futures and Commodities”, где приведены специальные инструкции относительно тестирования   систем для фьючерсов и “товаров”.

Margin Requirement %.  (Гарантийный депозит %) Процент от Вашего капитала, который должен участвовать в торговых операциях. Например: Если Вы торгуете без маржи, введите 100. если Вы торгуете акциями с 50% маржой , введите 50.  См. “Margin Requirement”.

Annual Interest Rate.  (This is the simple annual interest rate that the equity balance earns when not in a long or short position.  The interest is posted when you enter a long or short position (after being out).  См. “Earning Interest” по расчету  interest rate.

7.2.2     Опции графического отчета (Reporting)

Up Arrow. (Стрелка вверх) Выбор цвета для указателя  “стрелка вверх”(покупка).

Down Arrow. (Стрелка вниз) Выбор цвета для указателя  “стрелка вниз”(продажа)

Stop Sign. (Метки стопов)  Выбор цвета для меток “стопов” и выходов из позиции.. Т.е. символов, которые отмечают на графике места, где система сгенерировала стоп (stop) или выход из позиции (exit).

Display Buy/Sell Arrows. (Визуализация стрелок покупки /продажи) Активируйте этот флажок, если хотите, чтобы МетаСток автоматически расставлял стрелки покупки /продажи после завершения  теста системы. При наличии в тесте переменных оптимизации стрелки будут расставлены в соответствии с сигналами наиболее “прибыльного” теста. Подобно этому, если выполнялось сравнение тестов, будут отображены стрелки наиболее прибыльной системы.

Label Arrows with Buy/Sell. (Надписи стрелок Покупка/Продажа) Активируйте этот флажок, если хотите, чтобы  рядом со стрелками  имелись надписи "Buy" и "Sell".  Метки стопов выводятся с надписями "Stop".

Remove Existing Arrows.  (Удаление существующих стрелок) Если активирован этот флажок, все существующие стрелки будут удалятся автоматически всякий раз когда рисуются новые стрелки.

Plot Equity Line.  (Изображение графика баланса) При активации этого флажка график Вашего денежного баланса будет выведен автоматически как только программа закончит тестирование системы. Как и в случае со стрелками покупки/продажи, если в системе использованы переменные оптимизации, будет выведен график денежного баланса для наиболее прибыльной системы. См. “Using The Equity Line”.

8.     Сравнение систем (Comparing Systems)

Флажок “Compare check box” в диалоге “System Tester dialog” используется для запуска функции сравнения отмеченных тестов. Этот подход используется с целью выявления “лучших” торговых систем для выбранной акции.

Если Вы активировали этот флажок, то надпись на кнопке "Test" изменится на надпись "Compare". См. “Compare Reports”, где описан  специальный сравнительный отчет  “Comparison Report”, генерируемый функцией сравнения.

8.1     Диалог «Сравнение тестов систем) (System Test Comparison Dialog)

В окне этого диалога (которое подобно окну оптимизации теста) отображается информация по процессу выполнения операции сравнения тестов.

В основном информация из этого окна понятна сама по себе. См. “System Test Optimization Dialog”. Этот диалог также можно свернуть, чтобы он выполнялся в фоновом режиме.

Чтобы сравнить системы, выполните следующее:

·       Отметьте два или больше тестов систем в диалоге ”System Tester dialog”.

·       Активируйте флажок “Compare”.

·       Щелкните по кнопке “Compare”.

9.     Оптимизация систем (Optimizing Systems)

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

В учебнике по тестированию систем (см.) приводятся пример по оптимизации   периодов усреднения скользящих средних в простых торговых системах. В этом примере в тест загружаются  периоды от 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 тестов показанных ниже:

ТТест

OPT1

OPT2

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”.

 

10.     Просмотр отчетов (Viewing the Reports)

При тестировании типичной системы (см. “Compare Reports” по сравнительным отчетам) МетаСток отслеживает несколько десятков тысяч деталей тестирования. Эта информация представляется в серии отчетов. Каждый из отчетов предлагает какую либо дополнительную информацию о тесте.

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

Системный отчет (System Report) состоит из четырех страниц (вкладок) , три из которых содержат отчеты описываемые ниже:

Страница результатов (Results page) дает краткое описание результатов теста выбранного из “Общего отчета”.

Страница торговых операций (Trades page) представляет детальное описание каждой торговой операции сгенерированной выбранным тестом.

Страница баланса (Equity page) показывает изменение “день за днем” общего денежного баланса в результате работы торговой системы.          

Детализированный отчет по торговым операциям (Trade Detail report) предоставляет детальную информацию по конкретной длинной или короткой транзакции.

10.1     Общий отчет (Summary Report)

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

Общий отчет можно вывести из диалога “System Tester dialog” при помощи кнопки “Reports”. При этом справа от отмеченного теста системы  должна иметься буква "R". Ширину столбцов Общего отчета можно регулировать путем “захвата” мышью вертикальных разделителей в заголовке таблица и их перемещения до требуемой ширины.

Print. (Печать) При выборе этой кнопки содержимое Общего отчета посылается на принте.(Будет напечатано полное содержание отчета по тестам  независимо от того какой из тестов был отмечен.) См. ”Printing Reports”.

Sort.  (Сортировка) Эта кнопка служит для  сортировки Общего отчета.   После щелчка по этой кнопке, Вам будет предложено выбрать поле для сортировки и порядок сортировки (восходящий или нисходящий). См. “Sorting the Summary Report”.

Reports.  (Отчеты) При помощи этой кнопки Вы можете вывести диалог Системного отчета  для отмеченного в диалоге Общего отчета теста. См. “System Report dialog”.

10.1.1     Колонки Общего отчета  (Summary Report Columns)

Test number. (Номер теста) Каждый тест нумеруется в порядке их выполнения.

Status. (Статус) Статус может иметь три состояния  "Ok" (нормальный тест), "Invalid" (испорченный тест) или "Terminated" (прерванный тест).

Статус - ”Invalid”, появляется если имела место математическая ошибка, например такая как деление на 0. Результаты такого теста присутствуют в отчете, однако их пригодность сомнительна.

Статус -  "Terminated", возникает , если торговое правило не может быть задействовано системой.. Например, когда недостаточно данных для обработки: торговое правило содержит скользящую среднюю с периодом 200, а в наличии имеется только 100 периодов.    Если отчет был прерван, Вы можете выбрать этот отчет и  вывести описание возникшей ошибки.

Net Profit. (Чистая прибыль) Чистая прибыль или убыток полученная торговой системой. Сюда также включается прибыль/убыток от “принудительного” закрытия открытой позиции (если такая существовала) в конце теста.

Percent Gain or Loss. (Процент прибыли или потерь) Прибыль или убыток в процентах относительно начального денежного баланса полученный торговой системой. Здесь также учитывается прибыль/убыток от “принудительного” закрытия открытой позиции (если такая существовала) в конце теста  Это значение не выводится, если был активирован флажок "points only".

Total Trades.  (Всего торговых операций) Общее число торговых операций, которое было сгенерированно тестом.

Это число относится только к  закрытым торговым операциям и не включает открытую позицию, которая могла существовать на момент окончания теста. Кроме того, это число может быть равно 0, если была открыта только одна позиция, и не было сгенерированно сигнала ее закрытия к окончанию тестирования.

Winning Trades. (Выигрышные операции) Количество операций закрытых с прибылью.

Losing Trades. (Проигрышные операции) Количество операций закрытых с убытком.

Average Win/Average Loss. (Отношение среднего выигрыша к среднему проигрышу) Средний выигрыш насчитывается как сумма прибыли всех прибыльных операций деленная на количество таких операций. Аналогично насчитывается  средний проигрыш.

OPT. (Значение переменной оптимизации)  В отчете может присутствовать до 10 таких колонок (по одной на каждую переменную). В колонке показывается значение переменной оптимизации, которое было использовано в тесте.

10.1.2     Сортировка Общего отчета  (Sorting the Summary Report)

Для того чтобы отсортировать содержимое Общего отчета необходимо щелкнуть по кнопке  “Sort” в диалоге ”Summary Report dialog”.

Sort by. (Что сортировать) Выберите  из ниспадающего списка колонку по значениям которой будет сортироваться отчет. Сортируя по колонкам “Net Profit” или “Percent Gain or Loss” Вы увидите какой из тестов дал наибольшую прибыль.

Ascending.  (Восходящий) Сортировка от наименьших значений к наибольшим.

Descending.  (Нисходящий) Сортировка от наибольших  значений к

наименьшим.

10.2     Отчет по системе (System Report)

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

Arrows. (Стрелки) При помощи этой кнопки можно вывести или убрать с графика стрелки сигналов покупки/продажи, метки  выхода из позиции, а также метки стопов. Если в данный момент на экране нет графика, эта кнопка неактивна.

Plot Equity. (График денежного баланса). При выборе этой кнопки на графике открывается  новое внутреннее окно, в котором рисуется линия отражающая ежедневное изменение денежного баланса. Начальное (базовое) значение этой линии равно величине Вашего первичного баланса, специфицированной в диалоге “System Testing Options”. В дальнейшем  эта линия движется вверх или вниз от базового значения в зависимости от успешности Ваших  торговых операций. график денежного баланса может быть скопирован или перемещен на другие графики  тем же способом как и график обычного индикатора. (см. Copying and Moving Indicators).

См. “Using The Equity Line”.

Print.  Щелчком по этой кнопке Вы можете вывести диалог печати (Print dialog) при помощи которого можно распечатать отчет.  См. “Printing Reports”.

Inspect.  (Инспекция) Эта кнопка активна, если Вы находитесь на странице отчета о торговых операциях (Trades page) или отчета о прибыли (Equity page). Выбор этой кнопки вызывает детализированный отчет “Trade Detail report” по торговым операциям для отмеченного теста  См. “Trade Detail Report”.

10.2.1     Отчет о результатах (Results Report)

Этот  отчет дает детальную информацию о результатах тестирования для отмеченного в “Общем отчете” теста.

Total Net Profit. (Общая чистая прибыль) Общая прибыль/убыток полученные в результате работы теста. Сюда также включается прибыль/убыток от “принудительного” закрытия открытой позиции (если такая существовала) в конце теста.

Percent Gain or Loss. (Процент прибыли или потерь) Прибыль или убыток в процентах относительно начальных инвестиций.

Initial Investment. (Начальные инвестиции)  Количество денежных средств инвестированных в начале тестирования. (Это значение специфицируется в диалоге “System Testing Options dialog”)

Open Position Value. (Цена открытой позиции) Значение (цена) последней открытой позиции (если таковая была), которую в конце теста программа закрывает принудительно по цене последнего загруженного в тест периода.

 

Annual Percent Gain/Loss.  Общая чистая прибыль выраженная в процентах годовых.

Формула расчета:

                                                       365

Annual Gain/Loss   =                                                           X  Total Gain/Loss

                                          Число календарных дней

                                          загруженных в тест

 

Interest Earned.  Прибыль полученная в тот момент, когда торговая  система не имела открытых позиций. Т.е. деньги были свободны и их можно было вложить в ликвидный “безрисковый” финансовый инструмент.

Current Position. (Текущая позиция) Длинная (long), короткая (short), нет открытых позиций (out).

Date Position Entered. (Дата открытия позиции). Дата открытия текущей позиции.

Buy/Hold Profit.  Прибыль которую можно было бы получить при стратегии “купить и держать”. Эта стратегия подразумевает, что Вы совершаете покупку в первый день загруженных данных и держите эту позицию. Прибыль рассчитывается исходя из цен первого и последнего дня загруженных данных. Учитываются комиссионные за вход в позицию.

Естественно, необходимо, чтобы Ваша торговая система  давала прибыль большую, чем  стратегия “купить и держать”(т.е. “Total Net Profit” должна быть больше, чем “Buy/Hold Profit”). В противном случае, Ваша торговля не стоит потраченного времени и усилий.

Заметим, если “Buy/Hold Profit” имеет отрицательное значение, это означает, что прибыль принесла стратегия “продать и держать” (short and hold) в тех же размерах.

Buy/Hold Percent Gain/Loss.  Прибыль при стратегии “Buy/Hold Profit” в процентном выражении относительно начальных инвестиций.

Days in Test.  Общее число календарных дней загруженных в тест.

Annual Buy/Hold Percent Gain/Loss. Прибыль при стратегии “Buy/Hold Profit” в процентах годовых относительно начальных инвестиций.  См. “Annual Percent Gain/Loss”.

Total Closed Trades.  Общее количество завершенных торговых операций. (Если при окончании тестирования остается открытая позиция, то она не включается в это количество.)

Average Profit Per Trade.  Средняя прибыль на торговую операцию.(исключается незакрытая на конец теста позиция).  Средняя прибыль на операцию рассчитывается, как::

? ? ? ? ? ?

Total Long Trades.  Количество завершенных (закрытых) длинных позиций.

Winning Long Trades. Количество завершенных (закрытых) с прибылью длинных позиций.

Commissions Paid.  Сумма всех выплаченных комиссионных за время теста. (В эту сумму не включаются предполагаемые комиссионные за  закрытие открытых к окончанию теста позиций.)

Average Win/Average Loss Ratio.  Отношение средней прибыли выигрышных операций  (Averages Win) к среднему убытку проигрышных операций (Average Loss).  “Averages Win” - сумма прибыли по всем выигрышным торговым операциям деленная на количество таких операций. “Average Loss” рассчитывается аналогично.

Total Short Trades. Количество завершенных (закрытых) коротких  позиций.

Winning Short Trades. Количество завершенных (закрытых) с прибылью коротких позиций.

Total Winning Trades.  (Всего выигрышных операций) Количество завершенных (закрытых) с прибылью длинных и коротких позиций.

Amount of Winning Trades.  Общая прибыль от всех (коротких и длинных) выигрышных торговых операций.  Эта величина не включает прибыль от открытой на конец тестирования позиции, если таковая существует. Следовательно сумма  "Amount of Win Trades" и "Amount of Lose Trades" (см. ниже) может не совпадать с величиной общей чистой прибыли (Total Net Profit).

Average Win.  Средняя прибыль рассчитанная  от всех  торговых  операций завершившихся с прибылью.

Largest Win.  Наибольшая прибыль от торговой операции.

Average Length of Win.  Средняя продолжительность (в барах) выигрышных торговых операций.

Longest Winning Trade.  Наибольшая продолжительность (в барах) выигрышной торговой операции.

Most Consecutive Wins.  Наибольшее количество выигрышных торговых операций, следовавших одна за другой.

Total Losing Trades. (Всего проигрышных операций) Количество завершенных (закрытых) с убытком длинных и коротких позиций.

Amount of Losing Trades. Общий  убыток от всех (коротких и длинных) проигрышных торговых операций.  Эта величина не включает убыток от открытой на конец тестирования позиции, если таковая существует. Следовательно сумма  "Amount of Win Trades" и "Amount of Lose Trades" (см. ниже) может не совпадать с величиной общей чистой прибыли (Total Net Profit).

Average Loss. Средний убыток рассчитанный  от всех  торговых  операций завершившихся с убытком.

Largest Loss. Наибольший убыток от торговой операции.

Average Length of Loss. Средняя продолжительность (в барах) проигрышных торговых операций.

Longest Losing Trade. Наибольшая продолжительность  (в барах) проигрышной торговой операции.

Most Consecutive Losses. Наибольшее количество проигрышных торговых операций, следовавших одна за другой.

Total Bars Out.  Суммарная продолжительность (в барах) нахождения системы без открытых позиций. (т.е. нет не короткой, не длинной позиции)

Longest Out Period. Наибольшая продолжительность  (в барах) нахождения системы без открытых позиций. (т.е. нет не короткой, не длинной позиции)

Average Length Out. Средняя продолжительность (в барах) нахождения системы без открытых позиций.

System Close Drawdown.  Значение наибольшего снижения линии денежного баланса (относительно начальных инвестиций) рассчитанного по фактически закрытым позициям.  Таким образом. это максимальное расстояние от линии начальных инвестиций до линии фактического денежного баланса при условии, что фактический денежный баланс ниже уровня начальных инвестиций.

System Open Drawdown. Значение наибольшего снижения линии денежного баланса (относительно начальных инвестиций) рассчитанного по открытым позициям.  Таким образом. это максимальное расстояние от линии начальных инвестиций до линии  денежного баланса  рассчитанного при открытой позиции (по текущим ценам) при условии, что такой баланс ниже уровня начальных инвестиций.

Max Open Trade Drawdown. Значение наибольшего снижения  денежного баланса за одну торговую операцию (относительно цены входа в позицию) рассчитанного по открытым позициям. 

“A trade's Open Position Drawdown” показывается в детализированном отчете по торговым операциям (Trade Detail Report).

Profit/Loss Index.  Индекс сравнивает суммарную прибыль выигрышных (Amount of  Winning Trades) и  суммарные убытки проигрышных (Amount of Losing Trades) операций, приводя их к одному числу, которое может изменяться в пределах от -100 (наихудшее значение) до +100 (наилучшее значение).

Отрицательное значение индекса говорит о том, что торговая система генерирует только убытки. Положительное значение -система дает больше прибыли “Amount of Profitable Trades “ по сравнению с убытками “Amount of Losing Trades”.

 

 

 

Index

Profit/Loss

+100

Высокая прибыль/Нет убытков

+50

Прибыль > Убытков

0

Прибыль = Убыткам

-50

Прибыль < Убытков

-100

Нет прибыли/Большие убытки

 

Reward/Risk Index.  Этот индекс вознаграждение (Reward) и риск связанный с его получением. Риск в этом индексе определяется как “System Open Drawdown” (т.е., как самая низкая точка линии денежного баланса под линией начальных инвестиций). Вознаграждение определяется как общая чистая прибыль (Total Net Profits) (т.е., конечная точка на линии баланса).

Этот индекс комбинирует  вознаграждение и риск в один  показатель, который может изменяться от -100 (очень рискованный) до +100 (очень надежный).  Значение индекса “Reward/Risk” равное 0, подразумевает, что вознаграждение и риск уравновешивают друг друга.

 

Index

Вознаграждение

Риск

+100

Высокое

Нет

+50

Среднее

Средний

0

Нет

Нет

-50

Низкое

Средний

-100

Очень низкое

Высокий

 

Buy/Hold Index.  Этот индекс показывает процентное отношение прибыльности работы торговой системы по сравнению  с прибыльностью  стратегии  “купи и держи”.  Значение "-50" говорит о том, что торговая система дала прибыль на половину меньше, чем  (т.е., 50%) стратегия “купи и держи”. Значение "25" - о том, что торговая система принесла прибыли на 25% больше. Значение  "0" - прибыльность одинакова..

Идеально, если Ваша система генерирует прибыльность выше, чем стратегия “купи и держи” (т.е., Buy/Hold Index > 0). В противном случае торговля не стоит времени и усилий.

10.2.2     Отчет о торговых операциях (Trades Report)

В этом отчете отражается каждая торговая операция генерированная системой.

Вы можете изменить ширину  столбцов при помощи «перетаскивания» мышью  вертикальных разделителей заголовков отчета.

Trade Number. (Номер  торговых операций) Порядковый номер торговой  операции сгенерированной во время теста.  (Торговая операция «вне рынка» не учитывается.)

Trade Type.  (Тип торговой операции)

Возможны следующие типы операций:

OUT. («Вне рынка») Период, когда нет открытых  ни длинных, ни коротких позиций.

LONG.  Длинная позиция.

SHRT.  Короткая позиция.

NSFL.  Длинная позиция была «принудительно»  закрыта из-за недостатка средств для покрытия коммиссионных. (Недостаточно средств для длинной позиции - «Sufficient Funds for Long trade»).  Торговые  операции не могут осуществляться до тех пор, пока  денежный баланс не станет достаточным для покрытия коммиссионных.

NSFS. Короткая позиция была «принудительно»  закрыта из-за недостатка средств для покрытия коммиссионных. (Недостаточно средств для короткой позиции - «Sufficient Funds for Short trade»).  Торговые  операции не могут осуществляться до тех пор, пока  денежный баланс не станет достаточным для покрытия коммиссионных.

OPEN.  Длинная или короткая позиция , которая осталась незакрытой на конец  тестирования. (Заметим, что для расчета прибылей/убытков (Profit/Loss) в данном случае используется значение, которое было бы получено, если бы эта позиция была закрыта на последнее число загруженных данных.)

Entry Date.  Дата открытия позиции.

Close Date.  Дата закрытия позиции.

Profit/Loss.  (Прибыль/Убытки). Размер прибыли или убытка полученного в результате торговой операции.

Reason For Close.  Описание причины по которой была закрыта торговая операция.

10.2.3     Отчет о денежном балансе (Equity Report)

Этот отчет показывает движение денежных средств «день за днем».

Ширину колонок можно регулировать, как сказано в предыдущем разделе.

Bar Number.  Порядковый номер бара (торгового дня, недели и т.д.).

Date.  Дата каждого временного периода (бара) анализируемого в тесте (например, дня).

Ending Position.  Торговая позиция, которая имела место на конец этого временного периода (например на конец дня).  Например, если в этот период система сменила позицию с длинной на короткую, это поле будет содержать "Short".

Close (etc.).  Цена акции на данную дату.  Эта колонка может быть озаглавлена по разному, а именно как Open, High, Low, или Close в зависимости от типа цены специфицированного в поле цены (Price Field) в диалоге «System Testing Options»  (см. «Testing»).

Current Equity.  Величина денежного баланса на конец данного периода (например на конец дня). Это значение аналогично, тому, что выводится на графике денежного баланса «Plot Equity» (см. System Report).

Change in Equity.  Изменение в денежном балансе по сравнению с предыдущей транзакцией.

10.2.4     Детализированный отчет по торговым операциям (Trade Detail Report)

В этом отчете приводятся детальные сведения по конкретной торговой операции. Такую торговую операцию следует выбрать в окне Отчета по торговым операциям   или Отчета о денежном балансе (Trades or Equity report) и щелкнуть по кнопке  <Inspect>.

Trade Number.  Порядковый номер торговой операции.  (Операция «вне рынка» - «Out» не учитывается)

Days In Trade. Число календарных дней между  датами открытия и закрытия позиции.

Trade Type.  Тип торговой операции (см. «Trades Report»)

Bars In Trade.  Количество временных периодов (баров - торговых дней, недель) в течении которых существовала данная позиция.

Entry Date.  Дата открытия позиции.

Entry Price.  Цена открытия позиции.

Entry Commission.  Комиссионные за открытие позиции.

Close Date. Дата закрытия позиции.

Close Price. Цена закрытия позиции.

Close Commission. Комиссионные за закрытие позиции.

Equity At Entry.  Величина денежного баланса на момент открытия позиции (За вычетом комиссионных за открытие позиции).

Equity At Close. Величина денежного баланса на момент закрытия позиции (За вычетом комиссионных за открытие и закрытие позиции).

Open Position Drawdown. (Провал открытой позиции) Наибольшее уменьшение денежного баланса в течении данной торговой операции (относительно цены входа в позицию).  Наибольший «провал» открытой позиции «Open Position Drawdown» представляется в Общем отчете (см. Summary Report).

Profit or Loss.  Величина прибыли/убытка в результате данной торговой операции (в долларах).

Percent Profit or Loss.  Величина прибыли/убытков в результате данной торговой операции в процентах. (Рассчитывается на основании денежного баланса при входе и выходе из позиции)

10.2.5     Системная страница  (System Page)

На этой странице (вкладке) описываются торговые правила системы, OPT - переменные и их значения, а также значения опций специфицированных в диалоге «System Testing Options»  (см. «System Test Optimization Dialog»).

 

10.3     Отчеты по сравнению систем (Compare Reports)

Если при работе с диалогом «System Tester dialog», Вы активировали флажок «Compare», то затем Вы можете отметить несколько тестов для сравнительного тестирования их работы по одной акции.(см. «Comparing Systems».)  Если же, при активированном флажке «Compare» Вы щелкните по клавише «Reports», то на экран будет выведена большая часть последних Сравнительных отчетов (Comparison Report). В верхней части этого окна представляется имя  акции по которой проводилось сравнение, а также общее число тестов систем участвующих в сравнительном тестировании. Если в  системе, участвующей в сравнительном тестировании имеются переменные оптимизации, то  в сравнительный отчет будет включен тест давший наибольшую прибыль. Значение  OPT-переменных, которые использовал тест системы можно найти на Системной странице диалога «System Report dialog» (см. «System Page»).

Применение Сравнительных отчетов - удобный способ быстрого обнаружения наиболее подходящих торговых систем для конкретной акции.  Вы можете быстро обнаружить текущую торговую позицию, которую генерируют торговые системы для данной акции.   Интересная техника анализа может заключаться в   сравнительном тестировании, не менее чем четырех надежных торговых систем.  Если большинство торговых позиций сгенерированных системами одинаково, то можно действовать в данном направлении.

Вы имеете возможность вызнать для отмеченной торговой системы Общий отчет и другие отчеты при помощи щелчка по кнопке «Reports»

Колонки Сравнительного отчета идентичны колонкам Общего отчета за исключением трех дополнительных колонок:

System Name. (Имя системы) Название торговой системы.

Current Position. (Текущая позиция) Текущая позиция торговой системы (длинная, короткая, «вне рынка»).

Date Position Entered.  (Дата входа в позицию) Дата открытия текущей позиции.

10.4     Печать отчетов (Printing Reports)

Для того чтобы распечатать отчет необходимо щелкнуть по кнопке «Print». Появляется диалог печати.

Print Range. (Диапазон печати)  Выберите «All», чтобы распечатать отчет полностью. Радио-кнопки «Selection» и «Pages» всегда находятся в не активном состоянии. Это связано с тем, что данный диалог является стандартным диалогом «Windows», но эти кнопки не используются Метастоком.

Print Quality.  (Качество печати) Выберите разрешение (dpi = d на дюйм).  Разрешение зависит от возможностей принтера.

Print to File. (Печать в файл) Активируйте этот флажок, если хотите направить отчет в файл (присвойте файлу имя). Этот файл может быть распечатан позже при помощи команды DOS  (например, copy filename lpt1).

Copies. (Число копий) Введите число необходимых копий.

Collate Copies. (Сличение копий) Распределяет страницы по документам, если на печать выводится много копий.(Работает, если принтер поддерживает данную функцию)

10.5     Копирование отчетов в буфер обмена Windows (Copying Reports to the Windows Clipboard)

Вы можете скопировать содержимое отчетов в буфер обмена, чтобы потом использовать в других приложениях Windows.

Делается это следующим образом.

·           Выведите отчет на экран.

·           Щелкните мышью по любому месту страницы отчета.

·           Нажмите комбинацию клавиш  CTRL+C (или CTRL+Ins) для вставки содержимого страницы в буфер обмена. Затем Вы можете вставить эту страницу в другое приложение Windows при помощи функции «Paste».

11.     Использование системы Максимальной прибыли (Using the Maximum Profit System)

Система максимальной прибыли (Maximum Profit System) располагается в верхней части диалога «System Tester dialog». Это специальная система, которую нельзя редактировать и она ничего не предсказывает. Эта система показывает наилучший сценарий торговли для выбранной акции. Решения о открытии/закрытии и позиций принимает на основании уже известного ей последующего изменения цен. (такой «роскоши» у Вас не будет). Эта система используется, только как измерительная шкала, но не торговая система.

Для запуска системы Максимальной прибыли:

·       Выберите опцию «System Tester» из меню «Tools» или щелкните по аналогичной клавише на главной панели инструментов.

·       В диалоге «System Tester dialog» отметьте систему "Maximum Profit System"(которая расположена в  верхней части диалога) и щелкните по кнопке «Test».

·       Когда тестирование будет закончено, щелкните по кнопке «Reports».

Общий отчет показывает цифровые данные отражающие общие результаты тестирования. Заметим, что значения колонки "Losing Trades" равны 0.  Это связано с тем, что «идеальная» система (а «Maximum Profit System» таковой и является) не должна совершать убыточные операции.

Результаты полученные при помощи «Maximum Profit System» можно сравнить с результатами других торговых систем.  Чем ближе результаты других торговых систем к результатам «Maximum Profit System», тем лучше. 

Несмотря на то, что  система «Maximum Profit System» выдает максимально возможные результаты, индекс «Reward/Risk index» может быть меньше, чем 100%. Это связано с тем, что при входе в первую позицию, из начального капитала вычетаются комиссионные за вход и образуется «начальный провал» (initial drawdown) денежного баланса.

Торговое ожидание (trade delay) и процентная ставка (interest rate) равны 0, т.к. они не используются системой «Maximum Profit System».

12.     Советы по улучшению систем (System Development Tips)    

Увеличение прибыльности торговых систем - трудная задача. Даже после большого количества экспериментов по развитию системы, мы сами все еще находимся рядом с ненадежными системами.

12.1     Валидность результатов тестирования/оптимизации (Is Testing/Optimizing Valid?)

Одна из наиболее частых ошибок при разработке торговых систем - это сверхподгонка торговых правил к специфическому набору данных. Прежде чем поверить в то, что  Вы обнаружили «священный грааль» торговых систем, проверьте следующие моменты:

·       Обратите внимание на линию денежного баланса (см. «Using The Equity Line»).  Эта линия должна плавно подниматься вверх. Резкие скачки говорят о неустойчивой прибыли.

Проведите тестирование с использованием различных временных окон. (Т.е. разбейте массив данных на части, и выполните тестирование для каждой части) Результаты должны быть схожи с теми, что получены при тестировании на оригинальных данных.

·       Проведите повторную оптимизацию использовав, только половину оригинального массива данных.  Затем, протестируйте оставшуюся половину с использованием полученных  оптимальных значений параметров. Если тест «валиден», то результаты двух тестов должны быть похожи.

·       Протестируйте систему при различных типах трендов (т.е. восходящем, нисходящем и боковом). Хорошая система должна работать при всех типах трендов,  поскольку Вы не можете  всегда знать, когда рынок поменяет направление тренда.

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

12.2     Комиссионные (Commissions)

Обратите пристальное внимание на количество торговых операций сгенерированных системой. Если при большом количестве торговых Вы получили большую прибыль, убедитесь в реальности размера комиссионных. Результаты могут сильно отличаться в зависимости от размера комиссионных.

12.3     Сравнение Выигрышных и Убыточных операций (Winning Trades Versus Losing Trades)

Простое сопоставление количества выигрышных и убыточных операций достаточно упрощенный подход. Несмотря на важность этих показателей, Вы должны обратить внимание на отношение  Среднюю величину выигрыша (Average Win) в отношении к Средней величине убытка (Average Loss). См. «Results Report». Так некоторые вполне приличные системы могут иметь количество убыточных операций больше чем прибыльных. Однако, при этом Средняя величина выигрыша может намного превышать Среднюю величину убытка.

12.4     «Безрисковая» прибыль (Interest)

Если Вы специфицировали в торговой системе процент прибыли, получаемый, когда система находится в позиции «вне рынка», то оптимизация может привести к  системе,  которая большинство времени находится «вне рынка».  Так система, у которой каждая операция была убыточной, может оказаться самой прибыльной системой, если она находилась в позиции «вне рынка» больше чем другие тесты.

Эти рассуждения легко проверить, если в опции «Annual interest rate» диалога «System Testing Options»  установить очень высокий процент (например, 100%) и затем провести оптимизацию.

12.5     Зиг Заг фильтр (The Zig Zag Trap)

Индикатор Зиг Заг (см. «Zig Zag») использует ретроспективный подход, чтобы отфильтровывать флюктуации. Он показывает только движение цены, которое равно или больше специфицированного значения. Однако, этот индикатор определяет это «постфактум» (что не дает выгоды трейдерам)

Поэтому, никогда не используйте этот индикатор в торговых системах, т.к. он выдает результаты непригодные для реальной торговли.

12.6     Использование линии денежного баланса (Using The Equity Line)

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

Note that when an equity line is plotted, it is plotted on the selected chart.  The selected chart is not necessarily the chart that the system test was calculated on.

В идеальном случае это должна быть пологая восходящая линия. Резкие пики и спады на этой линии свидетельствуют о том, что торговая система неустойчива и рискованна. Также заметим, что систему, которая генерирует “гигантскую” прибыль на одной торговой операции (например, короткая позиция во время биржевого “краха” 1997 г.), также нельзя признать пригодной для повседневной работы.

12.7     Использование команд Вырезать/Копировать/Вставить (Use the Cut/Copy/Paste Commands)

Для ускорения процесса написания формул торговых правил, советуем Вам активно использовать функции Вырезать/Копировать/Вставить (Cut/Copy/Paste). Дело в том, что часто торговые правила системы  практически идентичны, за исключением отличия в нескольких операторах. Обратите внимание на следующие торговые правила с использованием пересечения простой скользящей средней.

Enter Long:  c > mov(c, 39, s)

Close Long:  c < mov(c, 39, s)

Вы видете, что отличие заключается лишь в операторах “больше”/”меньше”  (т.е., > и < ).

Вместо того, чтобы печатать оба правила, можно напечатать только первое, выделить его при помощи клавиш “SHIFT+Правая стрелка”, копировать посредством “CTRL+C”, затем вставить на месте второго правила при помощи “CTRL+V” ) и изменить оператор сравнения. Конечно, реальная польза от применения копирования и вставки заметна, когда Вы вводите правила значительно длиннее тех, что были приведены выше.

13.     Техническая справка  (Technical Reference)

В этом разделе приводятся некоторые технические детали относительно процесса тестирования торговых систем.

13.1     Общие сведения  (General)

Во время тестирования торговая система может находится только в одной из трех позиций: длинной, короткой или “вне рынка”.

 Текущая торговая позиция определяется: (1) торговыми правилами системы rules (см. “The System Editor Dialog”), (2) переменными оптимизации (см. “Optimizing Systems”),  и (3) установками стопов(см. “Entering Stops”).

В процессе тестирования  МетаСток запоминает  трассу из многочисленных кусочков (обычно несколько десятков тясяч) информации, получаемой  при проведении транзакций.

13.2     Выигрыши/Потери  (Gains/Losses)

Прибыли и убытки рассчитываются на основе изменения цены акций в процентах за время  в течении которого была открыта. позиция. При этом не учитывается, какое реальное количество акций могло участвовать в торговой операции. Таким образом, когда осуществляется вход в длинную или короткую позицию, инвестируются все имеющиеся в наличии денежные средства. (Даже, если размер этих средств меньше, чем текущая цена 1-й акции).

Например, если изначально при открытии длинной позиции имелось $1,000, а к моменту закрытия этой позиции цена акции выросла на 10%, то Ваша прибыль составит  $100, а денежный баланс вырастет до $1,100. Если Вы снова откройте длинную позицию и цена акций к ее закрытию вновь вырастет на 10%, то в данном случае Ваша прибыль составит уже $110 (т.е. 10% от $1,100), а общий денежный баланс будет равен  $1,210.

Заметим, что в этом примере не учитывались комиссионные и “безрисковая” прибыль получаемая, во время позиции “вне рынка”.

13.3     Комиссионные  (Commissions)

В приводимом ниже примере используются те же цифры, что и в предыдущем, т.е. $1,000 начальных средств, две следующих одна за другой длинных позиций с 10% прибылью каждая.

Однако, в этом примере берутся комиссионные: $30 за открытие позиции и $25 за закрытие. Напомним, что комиссионные могут  специфицироваться как в долларах, так и в процентах.

Как только открывается длинная позиция, $30 вычетается из $1,000 начальных средств, и таким образом величина инвестиций составляет $970. Затем к закрытию позиции цена акций вырастает на 10%, следовательно прибыль составит $97 (т.е.,  10% от $970). При закрытии позиции  $25 комиссионных будет вычтено из $97 полученной прибыли. Таким образом, в результате первой торговой операции с учетом комиссионных заработано $72. Суммировав $72 и  $970 получаем текущий денежный баланс -  $1,042.

При открытии второй длинной позиции $30 комиссионных вычетается из  $1,042, и для инвестиции остается  $1,012. Как и ранее при закрытии позиции получаем 10% прибыли - $101.20 (10% от  $1,012). За закрытие позиции из $101.20 прибыли вычетается  $25 комиссионных , остается  $76.20. Добавляем прибыль к денежному балансу после первой операции ($76.20 +  $1,012) и получаем текущий денежный баланс -$1,088.20.

В случае, если средств для уплаты комиссионных за открытие позиции недостаточно, МетаСток попытается войти в позицию, но сразу же ее дезактивирует. Тип данной торговой операции называется “non-sufficient fund” (недостаточно денег), что отражается в отчете по торговым операциям (см. “Trades Report”) в виде аббревиатур "NSFS" или "NSFL" для короткой и длинной позиций соответственно. Торговые операции не будут совершаться системой до тех пор, пока полученной “безрисковой” прибыли (если активирована такая опция) не будет достаточно, чтобы покрыть комиссионные за открытие позиции. 

13.4     Гарантийный  депозит  (Margin Requirement)

Размер гарантийного депозита (Margin Requirement) специфицируется в диалоге “System Testing Options”. Этот размер выражается в процентах от  полной суммы  средств необходимой для проведения торговой операции. При помощи гарантийного депозита Вам предоставляется “плечо” для проведения транзакций. Например, если Вы оперируете с акциями имея 20% гарантийный депозит (т.е. Вы фактически вносите только 20% от полной стоимости акций), тогда 10% рост стоимости акций принесет Вам 50% прибыли. Рассмотрим следующий пример.

Начальная сумма средств составляла $1,000. Была открыта длинная позиция. В дальнейшем к моменту закрытия позиции рост стоимости акций составил 10%  и в обычном случае прибыль составила бы $100 (т.е., 10% от $1,000). Однако, Вы при данной торговой операции использовали 20% гарантийный депозит, и могли купить акций на сумму $5,000(Ваши $1,000 являющиеся 20-процентным гарантийным депозитом и плюс $4,000 или  80% заемных средств). Таким образом, 10% повышение стоимости акций должно было принести $500 прибыли (т.е., 10% от  $5,000). Эти $500 как раз и составляют 50% прибыли от  инвестированных Вами $1,000.

13.5     Заработанная «вне рынка» прибыль (Earning Interest)

“Безрисковая” прибыль (Earning Interest) - прибыль получаемая от вложения денег в очень надежный высоколиквидный финансовый инструмент в период, когда нет открытых позиций (позиция “вне рынка”). Эта прибыль специфицируется в процентах годовых в диалоге “System Testing Options” (см. “Testing”)

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

13.6     Последовательность эволюций (Order of Evaluation)

Предполагается, что в начале тестирования торговая система находится в  позиции “вне рынка”.

Когда система находится в позиции “вне рынка”(Out position):

·       если  одновременно генерируются сигналы входа в длинную (Enter Long) и короткую позицию (Enter Short), то сигнал входа в длинную позицию имеет более высокий приоритет;

·       если генерируются  сигналы “Enter Long” или “Enter Short”, то текущая позиция “вне рынка” закрывается и полученная “безрисковая” прибыль добавляется к  текущему денежному балансу.

Когда система находится в длинной или короткой позиции:

·       все сигналы входа в длинную позицию игнорируются, если система уже в длинной позиции;

·        все сигналы входа в короткую позицию игнорируются, если система уже в короткой позиции;

·       все сигналы входа в длинную позицию игнорируются, если в диалоге “System Testing Options” не были активированы переключатели “Longs” или “Both”;

·       все сигналы входа в короткую позицию игнорируются, если в диалоге “System Testing Options” не были активированы переключатели “Shorts” или “Both”.

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

1.    Проверка на сигнал входа в противоположную позицию (например, если позиция длинная, проверяется наличие сигнала входа в короткую позицию)

2.    Проверка на сигнал закрытия позиции (например, если позиция длинная, то  проверяется  наличие сигнала на закрытие длинной позиции  - “Close Long”).

3.    Проверка сигнала стопа.

13.7     Разрешение других ситуаций (Other Accounting Issues)

В случае, если денежный баланс равен или уже ниже нуля (последнее возможно только в случае, если комиссионные специфицированы в долларах, но не в процентах),  торговая система не может получать “безрисковую” прибыль и не может открывать торговых позиций до окончания тестирования. Заметим. что это однако не относится к тестам с активированной опцией “points only".

Когда специфицировано торговое ожидание (Trade Delay), то все сигналы к открытию/закрытию позиций и стопам игнорируются до тех пор, пока не закончиться  период ожидания. Например, если опция “Trade Delay” равна 5 и поступил сигнал на закрытие длинной позиции, то все другие сигналы будут игнорироваться  пока не пройдет 5 дней (недель и т.д.) и сигнал на закрытие позиции не будет выполнен. Даже если в течении этого периода ожидания закрытия позиции появится противоположный сигнал на открытие длинной позиции, то сигнал закрытия не будет прерван, а сигнал открытия будет проигнорирован.

13.8     Тестирование Фьючерсов и Товаров (Testing Futures and Commodities)

Тестирование торговых систем работающих с фьючерсами и товарами  выполняется в режиме  "points only". Этот режим ("points only" - только пункты) подразумевает,  что текущие значения цен финансовых инструментов игнорируются, а для расчетов используется  трасса количества выигранных или проигранных пунктов.

Для того, чтобы тест выполнялся в таком режиме перед его пуском, активируйте флажок “Points Only” в диалоге “System Testing Options”.

В этом случае значения таких опций как начальный денежный баланс (initial equity), гарантийный депозит (margin requirement) и “безрисковая” прибыль “annual interest rate” игнорируются.

В случае выполнения тестирования в режиме “points only” линия денежного баланса может опускаться ниже 0.

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

Комиссионные рассчитываются только  при соблюдении  следующих условий:

·       В диалоге “System Testing Options” должна быть выбрана опция "Points";

·       Величина комиссионных должна быть меньше или равна 1. Размер комиссионных должен соответствовать числу пунктов. Например, если Ваши комиссионные составляют $30.00, а движение в один тик при тестировании фьючерсов составляет 0.03125 (или $31.25 на контракт), то Вы можете ввести 0.03 ($30.00 пункт эквивалентно) комиссионных.

Имеются следующие отличия отчетов для режима “points only”:

·       В заголовке всех отчетов имеются слова "Points Only Test";

·       В отчете результатов  (Results Report), в некоторые из полей может быть записано "N/A". Это означает, что данные поля могут содержать только текущие значения цен, но не пункты;

·       В детализированном отчете по торговым операциям (Trade Detail Report), в поле “Percent Profit or Loss“, также будет записано “N/A", поскольку это поле также может использовать только текущие значения цен, но не пунктов.

·       В детализированном отчете по торговым операциям (Trade Detail report), в полях денежный баланс при входе в позицию (Equity at Entry) и денежный баланс при выходе из позиции (Equity at Close) показывается  количество пунктов при входе и выходе из торговой операции (соответственно).

13.9     Скорость (Speed)

Математический сопроцессор значительно сокращает время тестирования. Так, типичный тест, который выполняется за десять минут на  процессоре 486SX (без сопроцессора), на процессоре 486DX в который встроен сопроцессор, будет выполнен меньше,  чем за пять минут.

Много времени тратится при записи отчетов на жесткий диск. Поэтому Вы можете значительно снизить время тестирования использовав более быстрый жесткий диск.

Если количество генерируемых отчетов превышает возможный для запоминания максимум (см. “Reporting”), то происходит значительное замедление работы, т.к. после выполнения каждого теста МетаСток  вынужден брать паузу для удаления наименее прибыльных тестов.

13.10     Дисковое пространство (Disk Space)

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

Из-за того, что для каждого теста сохраняется большое количество информации, отчеты могут “оккупировать” значительное пространство жесткого диска. Эти отчеты сохраняются в поддиректории  с именем SREPORTS входящего в поддиректорию MetaStock. Вы можете удалить эти отчеты при помощи кнопки “Delete” в диалоге “System Tester dialog” или  же удалить непосредствено файлы из поддиректории SREPORTS и всех расположенных ниже поддиректорий.

Хостинг от uCoz