Дмитрий Власов
Дмитрий Власов личный блог
12 июня 2012, 14:30

Тестирование новых техник создания МТС и выбор подходящих финансовых инструментов

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

 
Совершенно ясно, что имея в своем арсенале несколько уникальных техник и комбинируя их мы можем создать десятки уникальных торговых систем и каждая из таких торговых систем будет обладать своими особенностями, давать независимые друг от друга результаты.
 
Как можно «навскидку» оценить — будет ли полезна новая техника торговли, либо она гроша ломанного не стоит? На помощь приходит обвязка торговой системы.
Обвязка торговой системы — это простейшая техника, которая применяется для оценки эффективности новой торговой техники.
 
К примеру, если мы хотим тестировать технику входа, то обвязкой чаще всего будет выход с установленными сразу после входа в позицию стопа и тейк профита.
 
Если же цель — протестировать технику сопровождения, то нужна обвязка, генерирующая достаточно большое количество входов. Удачным вариантом здесь будет техника ударного дня  «HotDay_Enter», т.е. вход в позицию, когда цена закрытия текущей свечи либо превышает максимум предыдущей (покупка), либо опускается ниже минимума предыдущей (продажа).
 
Точно также, используя обвязку можно проверить — какая техника на конкретном временном промежутке и конкретной акции показывает себя лучше и какую технику лучше использовать в торговле.
 
Понимаю, что теоретически рассуждая, а особенно читая такие теоретические рассуждения трудно понять — о чем идет речь. Давайте на конкретном примере посмотрим — как использовать обвязку для того, чтобы определить стоит ли заносить в свою коллекцию новой техники.
 
Попутно расскажу Вам о выборе финансовых инструментов, которые наилучшим образом подходят для данной техники торговли.
 
1. Техника сопровождения позиции
 
Идея в следующем. В одной из статей Игоря Чечета, которая была посвящена технике сопровождения позиции было упомянуто об интересной возможности выхода из позиции используя скользящую среднюю с уменьшающимся периодом.
 
Т.е. идея такая — при входе в позицию мы рассчитываем по минимумам цен предыдущих нескольких периодов скользящую среднюю и ставим стоп на этом уровне. Затем с каждым новым баром период этой скользящей средней постепенно уменьшается и скользящая средняя медленно приближается к текущим ценам. При этом существует некий минимальный период, меньше которого период скользящей средней быть не может.
 
Техника внешне очень напоминает параболик, но на мой взгляд интереснее тем, что не приходится искуственно подбирать параметры ускорения и начального отступа. В то время, когда писалась эта статья Игорь коды для своих техник еще не выкладывал, поэтому пришлось самостоятельно закодировать эту технику. Единственное отличие, у Игоря использовалась экспоненциальная скользящая средняя, я же не стал мудрить и взял простую скользящую среднюю.
 
Для простоты восприятия пусть эта техника называется «TrailingSmaExit». Выглядит она следующим образом:
 
Код примера на C# (кликните чтобы посмотреть)
 
Код получился лаконичный, удобный и понятный для восприятия. Даже самому понравилось, как он был реализован. Кто пока еще не очень хорошо разбирается в программировании на языке C#, используя библиотеку WealthScript программы Wealth-Lab — читайте целый раздел о том, как это сделать, который фактически является инструкцией по созданию торговых стратегий. Инструкция специально написана простым, понятным языком для непрограммистов, к которым я себя тоже отношу с большим количеством примеров.
 
Однако мне показалось, что будет более логичным несколько модифицировать эту технику сопровождения. Было бы более логичным, если мы входим с «коротким стопом», чтобы зарезать возможный убыток в самом начале после входа и лишь по мере того, как позиция пойдет в нужном направлении узкий стоп можно будет постепенно расширять, по ходу фиксируя определенную уже накопленную прибыль.
 
Исходя из этой логики мной была создана техника, которую я назвал «TrailingSmaContraExit» — т.е. она действует наоборот.
 
У Игоря сначала устанавливается максимальный период усреднения, и потом этот период усреднения постепенно уменьшается, приближая таким образом стоп к текущей цене, но не ближе, чем позволяет минимальный период усреднения.
 
В новой технике сначала устанавливается минимальный период усреднения (этот параметр можно оптимизировать) и затем с каждым баром существования позиции период усреднения постепенно увеличивается пока на достигнет своего порогового значения, который определяется максимальным периодом усреднения (это тоже оптимизируемый параметр).
 
В общем, техника сопровождения «TrailingSmaContraExit» получилась достаточно любопытная. Вот ее код:
 
Код примера на C# (кликните чтобы посмотреть)
 
Отличий, как Вы заметили от техники «TrailingSmaExit» не так уж и много, хотя принцип в основу положен совсем другой.
 
2. Техника генерации сигналов на вход в позицию
 
После того, как код готов — необходимо проверить а рабочий ли этот код. Будет ли эффективной использование этой техники? Не построили ли мы «воздушный замок», который в реальной жизни и в реальной торговле работать не будет.
 
Именно здесь приходит на помощью обвязка торговой системы.
 
У нас есть техника сопровождения под названием TrailingSmaExit. Остается придумать — как будем входить в позиции.
 
А зачем придумывать, зачем изобретать велосипед, если у нас уже есть целая коллекция торговая техника для генерации сигналов на вход в позицию.
 
Вот как, к примеру, выглядит эта коллекция торговых техник у меня:
 
Коллекция торговых техник 
 
Выберем из списка торговых техник генерации сигналов на вход в позицию (EnterSygnals) торгоую технику под названием ударный день «HotDay_Enter».
 
Этот выбор обусловлен тем, что:
  • для этой торговой техники вообще не нужны никакие индикаторы с оптимизируемыми параметрами;
  • она генерирует достаточное количество торговых сигналов;
  • является логичной с точки зрения здравого смысла.
 
Для примера привожу также код техники «HotDay_Enter»
 
Код примера на C# (кликните чтобы посмотреть)
 
Для тестирования новой техники сопровождения позиции «TrailingSmaContraExit» именно техника «HotDay_Enter», генерирующая сигналы на вход в позицию и будет обвязкой. Скажу здесь, что в качестве обвязки мы могли бы выбрать любую технику входов из всего списка, который есть в нашем распоряжении.
 
3. Конструирование МТС из техники сопровождения и техники входа в позицию
 
Теперь, имея перед глазами правила сопровождения позиции (TrailingSmaContraExit) и правила входа в позицию (HotDay_Enter) мы можем сделать полноценную торговую систему типа «Обвязка»… Т.е. мы, образно говоря, собираем пазл из имеющихся кусочков и получаем готовую картину в виде новой торговой системы.
 
Для того, чтобы при одном взгляде на название торговой системы можно было понять — как она торгует предлагаю называть торговые системы однотипно. Сначала идет название техники входа в позицию, а затем после нижнего подчеркивания писать название техники сопровождения.
 
Для нашего случая МТС будет называться так:  HotDayEnter_TrailingSmaContraExit.
 
Далее привожу для Вас получившийся код торговой системы для Wealth-Lab.
 
Код примера на C# (кликните чтобы посмотреть)
 
Как Вы уже заметили, весь код торговой системы состоит из кода двух техник, которые я приводил выше. Мы просто взяли уже готовый код из двух техник и сложили из него «пазл», сделав новую торговую систему. Cразу скажу, что торговать такую систему пока еще нельзя (хотя если хочется — пожалуйста — торгуйте).
 
Просто цель такой «обвязочной» системы в том, чтобы потестировать какую-либо гипотезу.
 
В качестве гипотезы здесь выдвигается следующее утверждение: техника сопровождения позиции с помощью выставления стопов, использующих скользящую среднюю с постепенно возрастающим периодом эффективна.
 
Давайте теперь посмотрим, что делать с получившейся торговой системой.
 
Для чтения продолжения статьи кликните здесь:
8 Комментариев
  • Vasili_Alibabaevich
    12 июня 2012, 15:16
    Хороший пост, благодарю.
  • 2341234
    12 июня 2012, 17:39
    пост ниочем…
      • 2341234
        14 июня 2012, 20:19
        Дмитрий Власов, я подготовил длинный ответ, но устал писать. Спрошу кратко, а вы считаете, что из этого поста можно много почерпнуть?
  • jtrade
    12 июня 2012, 18:54
    Спасибо!!!
  • ves2010
    12 июня 2012, 19:54
    На самом деле нет никакого многообразия… пару лет протестишь этот шлак поймешь
  • Андреев Андрей
    13 июня 2012, 03:18
    Дмитрий спасибо Вам! Вы делаете огромный труд, с критикой по поводу конкретной системы которую Вы представил во многом согласен, но что-то мне подсказывает что целью поста была не публикация грааля и уж тем более не попытка убедить скептиков.
    То как Вы хорошо пишите о программировании, тестировании и оптимизации — вызывает уважение!
    Также отмечу последовательность в ваших постах — от простого к сложному. Так держать!
    С нетерпением жду новых постов :-) Спасибо Дмитрий!

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн