Что такое фондовая биржа Как торговать на бирже
Binomo
Как стать успешным трейдером Стратегии биржевой торговли Лучшие дилинговые центры Forex Лучшие биржевые брокеры
Пардо Р. Разработка, тестирование, оптимизация торговых систем для биржевого трейдера

Боб Пардо работает над оптимизационными проблемами многие годы. Будучи автором тестовой программы широкого применения Advanced Trader и разработчиком многочисленных торговых стратегий, он вне всякого сомнения обладает всеми необходимыми знаниями для рассмотрения процесса оптимизации со всех сторон – с точки зрения разработки, тестирования и получения результатов.

Какой Форекс-брокер лучше?          Альпари          Exness          Forex4you          Сделай свой выбор!

Глава 4. Правила моделирования

Важность точности

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

Практические аспекты

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


А знаете ли Вы, что: Форекс-брокер Exness предлагает своим клиентам более 80 вариантов выбора валюты счета, в том числе метало-валютные счета.

С уважением, Админ.


Транзакционные издержки

Каждая сделка имеет постоянные и переменные транзакционные затраты, состоящие из комиссионных и проскальзывания.

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

Определение: Комиссия это транзакционная плата, взимаемая брокерской фирмой за исполнение сделки.

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

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

Определение: Стоп-ордер на покупку размещается по цене выше текущей рыночной цены и становится рыночным приказом на покупку, когда рынок торгуется по цене этого приказа или выше нее.

Определение: Рыночный opдep (market order) – это приказ купить или продать по текущей рыночной цене («по рынку»). Стоп-ордера на покупку размешаются на растущем рынке, а стопы на продажу – на падающем рынке. Часто стоп-ордера исполняются по цене хуже указанной, потому что при достижении указанной цены стоп-ордер становится рыночным приказом без ограничения цены. На быстром рынке проскальзывание стоп-ордера может быть очень большим. Ордера, исполняемые по открытию, будут выполнены по худшей стороне диапазона открытия. Именно таким образом брокеры на биржевом полу исполняют ордера без лимита. Чтобы обеспечить точную имитацию, важно убедиться в том, что любой ордер, исполняемый по максимальной или минимальной цене, включает расходы на проскальзывание.

Определение: Лимитный ордер на продажу размещается по цене выше текущей рыночной цены и должен быть исполнен по указанной цене или выше нее.

Определение: Лимитный ордер на покупку размещается по цене ниже текущей рыночной цены и должен быть исполнен по указанной цене или ниже нее.

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

Определение: MIT-ордер на продажу («Market-If-Touched» – по касанию рынка) размещается по цене выше текущего рынка и становится рыночным ордером на продажу, когда рынок торгуется по указанной цене.

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

Значение транзакционных затрат в долгосрочной торговой системе, нацеленной на более крупную прибыль на сделку, не столь велика. Рассмотрим систему, торгующую на протяжении четырех лет, выполнившую 10 сделок и принесшую прибыль $20,000. Вычтите из этой прибыли транзакционные издержки $90 на сделку ($40 на комиссионные и $50 на проскальзывание). Остается прибыль $19,100 ($20,000 – ($90X10) = $19,100). Важность этого небольшого изменения (4.5%) невелика.

Однако для очень активной краткосрочной торговой системы важность транзакционных издержек гораздо более очевидна. Транзакционные издержки могут оказывать сильнейшее воздействие на эффективность такой системы. Например, предположим, что система торгует в течение одного года, совершает 200 сделок и приносит чистую прибыль $10,000. На первый взгляд система кажется хорошей. Но при более глубокой проверке обнаруживается ее недостаток. Из прибыли $10,000 не были вычтены транзакционные издержки в размере $90 на сделку. Эти расходы «превращают» прибыль $10,000 в убыток $8,000 ($10,000 – ($90 х 200) = – $8,000). Ситуация изменилась на 180%.

Пределы ценовых движений

У многих фьючерсных контрактов есть заведомо оговоренные, допустимые границы дневного диапазона торговли(пределы). Как известно большинству трейдеров, купить на рынке, достигшем верхнего предела (limit-up market) или продать на рынке, достигшем нижнего предела (limit-down market), почти невозможно. В целях безопасности не следует включать в торговую имитацию входы или выходы в дни, когда достигаются пределы ценовых движений. День с предельной ценой – это день, когда открытие, максимум, минимум и закрытие одинаковы, а объем практически нулевой. Такой день не дает возможности торговать. Компьютерная имитация должна считать торговлю в такой день невозможной.

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

Ценовые разрывы при открытии рынка (Opening Gaps)

Для большинства рынков при открытии характерны ценовые разрывы разной величины. Разрыв при открытии должен быть одним из факторов, учитываемых в имитации. Каждый ордер сначала необходимо протестировать относительно цены открытия. Например, если логика системы использует для входа в рынок стоп-ордер на покупку, а цена открытия выше стоп-цены, то приказ будет исполнен по цене открытия, возможно, по верхней границе диапазона открытия, независимо от того, на каком уровне был размещен стоп. Предположим, что цена стоп-ордера на покупку составляет 345.00 и диапазон открытия – 349.75 на 350.25. Тогда следует предположить, что исполнение произойдет по 350.25.

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

Проверки ордеров (Order checks)

Важно тщательно проверять все ордера на соответствие биржевым правилам. Стоп-ордера становятся рыночными ордерами при касании рынком заданной цены. Следовательно, при проверке во время имитации нам необходимо лишь равенство максимума и стоп-ордера на покупку, а также минимума и стоп-ордера на продажу. Исполнение лимитных ордеров гарантировано в том и только том случае, если торги проходят через заданный уровень цены. На быстром рынке это не гарантировано. Следовательно, при проверке ордеров во время имитации необходимо, чтобы максимум был выше цены ордера «продать по... или лучше» (sell or better order), а минимум был ниже цены ордера «купить по... или лучше» (buy or better order). Исполнение не гарантировано даже в этом случае, но если данная цена будет пересечена, вероятность неисполнения приказа намного меньше.

Число контрактов в ордере также становится фактором торговой системы. Чем больше размер стоп-ордера, тем сильнее проскальзывание. Стоп-ордер на покупку 5 фьючерсов на S&P500 исполняется легко, и стандартное значение фактора проскальзывания будет обеспечивать точную имитацию. Стоп-ордер на покупку 500 фьючерсов на S&P500 – совсем другое дело. Для такого приказа необходимо предусматривать большее проскальзывание.

Аналогично, лимитный ордер на продажу 5 фьючерсов на S&P представляет гораздо меньшую проблему, чем лимитный ордер на продажу 500 данных контрактов. Вероятность полного исполнения более крупного приказа намного меньше, чем менее крупного, и для достижения точной имитации это необходимо учитывать.

Порядок исполнения ордеров (Order of Execution)

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

Допустим, торговая система вводит один приказ в день перед открытием данного дня. Независимо от типа ордера, компьютер должен протестировать лишь то, будет ли цена приказа достигнута при открытии, и если нет – то окажется ли она в пределах дневного диапазона. Если хотя бы одно из этих условий выполнено, данный ордер обязательно будет исполнен. Если оба условия не выполнены, то ордер не будет исполнен.

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

Например, если это был приказ на вход в покупку по стоп-цене 352, ему соответствовал стоп-лосс по цене исполнения минус 2.00 пункта, максимум дня был 354, минимум – 350, а закрытие – 353, то входной стоп по 352 был исполнен. Это вполне понятно. Если первым появляется максимум, то стоп-лосс по 350 тоже будет наверняка исполнен, и данная сделка завершается. Однако если первым появляется минимум, то торговая имитация будет предполагать, что входной приказ был исполнен на повышении к закрытию от минимума, достигнутого ранее в течение дня, и стоп-лосс не сработал. Важность этого повышается еще больше, когда система отправляет более двух приказов. Следовательно, чтобы устранить из имитации «избыточный оптимизм», необходимо исходить из худшего случая – то есть, что если стоп находится в пределах дневного диапазона, то он исполнен.

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

Что такое фондовая биржа
Яндекс.Метрика