Кевин Дейви - Чит-коды для алгоритмической торговли

От ju.vskv, 3 апреля, 2025 в В помощь трейдеру

Автор#1

image.thumb.png.0409e8f8b79d38f7fd6dcdda3688f04a.png

 

ЧИТ-КОДЫ ДЛЯ АЛГОРИТМИЧЕСКОЙ ТОРГОВЛИ

 

Методы быстрой и эффективной разработки лучших алгоритмических торговых систем

 

ВВЕДЕНИЕ

 

Если вы новичок в алготрейдинге или даже не знаете, что такое алгоритмическая торговля, просто прекратите читать эту книгу: она не для вас, по крайней мере пока. Вместо этого прочтите мою книгу «Введение в алгоритмическую торговлю» (“Intro To Algo Trading”).

 

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

 

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

 

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

 

Обратите внимание: я не обсуждаю здесь размеры позиций, психологию, управление портфелем или другие важные темы. Почему? Хотя я считаю, что они важны, моя цель в этой книге – помочь трейдерам лучше развивать свою алгоритмическую торговую систему. Психология ОЧЕНЬ важна, но она не поможет вам, если ваши алгоритмические стратегии ужасны!

 

Для меня успешная торговля начинается с преимуществ, которые можно реализовать посредством систем алгоритмической торговли.

 

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

 

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

 

То же самое относится и к трейдингу. Когда у вас есть преимущество, тогда становятся важными и все остальные компоненты торговли. Проще говоря, всё начинается с хорошей стратегии, и именно поэтому в этой книге я сосредоточусь на методах улучшения стратегий алгоритмической торговли.

 

Я разбил эту книгу на 4 основных раздела:

 

Общие рекомендации и полезные советы

 

Глава 1. Становится ли алготрейдинг сложнее? Как выглядит алготрейдинг в наши дни по сравнению с прошлым? И что ждет нас в будущем?

Глава 2. Алгоритмическая торговля на полный рабочий день. Насколько это осуществимо? Какие полезные советы помогут вам в этой области?

Глава 3. 15 советов для алгоритмической торговли. Советы, которые я узнал за эти годы и которые помогут вам в вашей торговле.

 

Улучшение входов

 

Глава 4. Исследование таймфреймов. Какой таймфрейм лучше? Какой таймфрейм является худшим? И почему? 

Глава 5. Исследование возврата к среднему значению. Я тестирую некоторые популярные (и не очень популярные) торговые подходы, основанные на возврате к среднему. Как их можно использовать для создания хороших стратегий?

 

Улучшение ваших существующих стратегий

 

Глава 6. Методы защиты от рисков. Как можно сделать существующие стратегии менее рискованными?

Глава 7. Торговля на бычьем/медвежьем рынке. Действительно ли работает фильтрация сделок в «макросреде»? Если да, то как достичь этого? 

 

Улучшение ваших выходов

 

Глава 8. Какой выход лучше? Результаты моего обширного тестирования выходов.

Глава 9. Исследование соотношения прибыли к риску. Существует ли оптимальное соотношение прибыли к риску? Если да, то какое оно?

Глава 10. Выход после прибыльных (или убыточных) баров. Хороший ли это подход, чтобы использовать его на практике?

 

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

 

Я делюсь и другими исследованиями на своем YouTube-канале https://www.youtube.com/channel/UCjTZtWVBchDTJuxy_7GjySQ

 

К тому времени, когда вы закончите чтение этой книги, вероятно, будет завершено еще одно новое исследование, которое я опубликую на своем вебсайте. Ну, что мне еще сказать? Я ЛЮБЛЮ изучать алготрейдинг!

 

Итак, не будем терять время, давайте начнем! 

 

ДОРОЖНАЯ КАРТА МОИХ КНИГ ПО АЛГОРИТМИЧЕСКОЙ ТОРГОВЛЕ

 

С выпуском этой книги теперь в моем арсенале 5 книг по трейдингу. Люди часто спрашивают меня: «Какая из этих книг подойдет именно мне?» Вот удобная дорожная карта, которая поможет вам принять решение:

 

«Введение в алгоритмическую торговлю» (“Introduction To Algo Trading”). Если вы новичок в мире алготрейдинга, это отличная книга для начала. В ней приводятся основы алготрейдинга и обсуждения некоторых простых вещей, которые вам нужно знать, прежде чем серьезно заняться этим.

 

«Создание прибыльных алгоритмических торговых стратегий» (“Building Winning Algorithmic Trading Systems”). Те из вас, кто хоть немного попробовал свои навыки в алгоритмической торговле, вероятно, уже поняли, что самая сложная часть алготрейдинга – это построение действительно работающей алгоритмической торговой системы. Моя книга поможет вам в этом. В ней вы узнаете правильную технику разработки собственных алгоритмических торговых стратегий.

 

«Идеи трейдера-чемпиона для входов и выходов из рынка» (“Entry and Exit Confessions Of A Champion Trader”). Как только вы приобретете опыт в алготрейдинге и поймете, как разрабатывать стратегии, это станет непрерывным процессом создания  новых стратегий. Поскольку большинство идей и стратегий, которые вы тестируете, не будут работать, вам нужен постоянный запас идей. Именно его предоставляет данная книга. Множество идей для входов в рынок и выходов из него, которые я использовал в своей торговле. Эта книга надолго обеспечит трейдеров среднего уровня идеями для тестирования.

 

«План инвестирования на фондовом рынке для начинающих» (“Beginners Stock Market Investing Blueprint”). Эта книга предназначена для начинающих трейдеров и инвесторов, но будет полезна и продвинутым трейдерам. Она имеет иное направлении, чем мои книги по алготрейдингу, и фокусируется на фондовом рынке. Многие трейдеры, торгующие алгоритмами на фьючерсах, нашли эту книгу полезной для портфелей акций на своих пенсионных счетах.

 

«Чит-коды для алгоритмической торговли» (“Algo Trading Cheat Codes”). Это книга, которую вы сейчас держите в руках. Она предназначена для трейдеров среднего и продвинутого уровня – трейдеров, ищущих новые концепции и исследования, которые помогут им разрабатывать новые стратегии. Используя выводы, полученные в ходе работы, проделанной для написания этой книги, трейдеры смогут избежать некоторых тупиков, свойственных разработке алгоритмических систем.

 

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

 

КЕВИН Дж. ДЭЙВИ

Изменено 23 апреля пользователем ju.vskv

Автор#2

image.thumb.png.c027d9a51582ca9418d01923cafec385.png

 

ГЛАВА 1

СТАНОВИТСЯ ЛИ АЛГОТРЕЙДИНГ СЛОЖНЕЕ?

 

Когда в 2014 году вышла моя первая книга «Создание прибыльных алгоритмических торговых стратегий» (“Building Winning Algorithmic Trading Systems”), я увидел в названии термин «алгоритмический» и подумал, что мое издательство сошло с ума. Я чувствовал, что вместо слова «алгоритмический» было бы гораздо лучше использовать «систематический», «механический», «основанный на правилах» или даже «количественный», поскольку в то время этот термин использовали немногие трейдеры.

 

Боже, как же я ошибался! Оказывается, за последние несколько лет популярность алготрейдинга резко возросла. Просто взгляните на рост поискового запроса термина «алготрейдинг» (“algo trading”) в Google Trends:

 

 

image.png.bba24668d822bb4d2339b096407d551d.png

 

В последние несколько лет популярность алготрейдинга действительно подскочила. Он всё еще уступает таким дискреционным торговым терминам, как «поток ордеров» (“order flow”) и «ценовое движение» (“price action”), но становится всё более и более известным.

 

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

 

Алгоритмические трейдеры-новички не всегда являются хорошими алгоритмическими трейдерами

 

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

 

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

 

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

 

Еще одна область, где алготрейдеры-новички терпят неудачу – это увлечение автоматизацией. Чтобы упростить разработку стратегий, многие компании теперь предлагают «конструкторы стратегий» – автоматизированные программные пакеты, которые создают случайным образом сгенерированные стратегии с исторически прибыльными бэктестами.

 

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

 

Да, алготрейдинг становится всё сложнее, но...

 

Когда вы сложите всё это воедино, то увидите, что алгоритмическая торговля становится более конкурентоспособной, и с ее помощью всё бо́льшее количество игроков ежедневно выходят на поле. И когда многие из них покинут трейдинг, те, которые останутся, будут оснащены сильнее и лучше, чем алготрейдеры 5 лет назад.

 

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

 

Начните с прочного фундамента

 

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

 

Чтобы стать успешным алготрейдером, вам нужно начать с прочного фундамента – процесса разработки стратегий, который доказал свою эффективность. Благодаря этой надежной методологии вы сможете включить в свой процесс некоторые другие методы. Но всё начинается с прочного фундамента – проверенного процесса разработки стратегий.

 

Старайтесь быть уникальными

 

Большинство алготрейдеров-новичков тестируют одни и те же вещи. Они тестируют свои стратегии на 60-минутных или других стандартных таймфреймах. Тестируют сигналы, основанные на инструменте, на котором торгуете и вы. Они тестируют те же стопы и тейки, устанавливая их на очевидных уровнях графика.

 

Один из способов добиться успеха состоит в том, что вы должны выделиться из толпы. Как насчет того, чтобы протестировать свою стратегию на 59-минутном или даже на 61-минутном таймфрейме вместо 60-минутного? По мере движения торгового дня вы будете всё больше и больше отдаляться от того, что делает толпа на 60-минутном таймфрейме.

 

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

 

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

 

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

 

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

 

Всегда стремитесь улучшить свой подход

 

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

 

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

 

Принятая концепция запланированного устаревания

 

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

 

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

 

Для меня это означает тщательно следить за стратегиями и отключать (деактивировать) их, когда они начинают демонстрировать плохие результаты. Некоторые недавние исследования, которые я провел, предполагают отключение стратегий ДО ТОГО, КАК они начнут показывать плохую производительность. Иногда лучше перестать использовать их через X месяцев или лет, независимо от производительности.

 

Для серьезных алготрейдеров такой подход означает постоянную разработку новых стратегий. Каждая устаревшая стратегия должна заменяться новой! Я называю свой метод подходом Strategy Factory® (Фабрикой стратегий®). Этот процесс заставляет меня разрабатывать новые стратегии, таким образом, я всегда остаюсь впереди игры.

 

Дело в том, что вы планируете худшее, но всё равно можете надеяться на лучшее.

 

Итак, каков же вывод? Становится ли алготрейдинг с годами всё сложнее?

 

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

 

Чит-коды для алгоритмической торговли

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

  • Не почивайте на лаврах – постоянно совершенствуйте свою торговлю

  • Ожидайте, что стратегии в конечном итоге перестанут работать, и будьте готовы к тому, что их место займут новые стратегии

Изменено 23 апреля пользователем ju.vskv

Автор#3

image.thumb.png.83cc84c660408f2e9e75d46a00f11ed1.png

 

ГЛАВА 2

АЛГОРИТМИЧЕСКАЯ ТОРГОВЛЯ НА ПОЛНЫЙ РАБОЧИЙ ДЕНЬ

 

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

 

Такова ли, по вашему мнению, жизнь трейдера, торгующего полный рабочий день на фьючерсном/фондовом/криптовалютном/валютном рынке? Или это просто мечта?

 

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

 

Подходит ли вам алготрейдинг?

 

Чтобы преуспеть в любом начинании, вам нужны только две вещи: желание и талант. Истинный успех заключается в том, чтобы наслаждаться тем, чем вы зарабатываете себе на жизнь, будь вы трейдером, сантехником, пожарным или бизнесменом. Вы должны ДЕЙСТВИТЕЛЬНО очень сильно хотеть овладеть навыками своей профессии. Вся эта чепуха о любви к своей работе на самом деле является 100%-ой истиной! Занимаясь тем, что вы любите, вы будете становиться лучше, приобретать новые знания и в конечном итоге достигнете вершин в своей сфере.

 

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

 

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

 

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

 

Если вы относитесь к такой категории трейдеров, были ли вы успешны в торговле на условиях частичной занятости? В идеале вам нужно иметь за плечами 2-5 лет стабильно прибыльной торговли, чтобы начать думать о том, как стать трейдером на полный день.Вы не только любите программировать и тестировать новые алгоритмические торговые стратегии, но и обладаете необходимыми навыками для этого? Если у вас нет всего этого, откуда в таком случае вы знаете, что станете успешным трейдером на полную занятость?

 

Возможности для алгоритмического трейдинга на полный рабочий день

 

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

 

Алготрейдинг дома в пижаме

 

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

 

Чтобы стать частным алготрейдером на полный рабочий день, вам прежде всего потребуется значительный объем торгового капитала. Точная сумма у каждого будет своя, но давайте предположим, что вы хотите заработать грязными $ 150 000 (до уплаты налогов от трейдинга). Со счетом в $ 5 000 это будет нелегко (если вообще возможно), не прибегая к высоким рискам. Конечно же, найдутся «учителя-шарлатаны» и операторы трейдинг-румов, которые будут говорить вам, что это легко. Однако реальность такова, что небольшие счета сливаются задолго до того, как у них появится шанс получить огромную прибыль. 

 

Итак, предположим, что вы зарабатываете в трейдинге очень респектабельные 30% в год, используя приемлемые цифры риска. Это означает, что для получения желаемого дохода вам нужен счет в размере $ 500 000. Это также предполагает, что вы не будете добавлять средства к своему торговому капиталу, что вы, естественно, захотите сделать (сложные проценты действительно являются секретом богатства). Учитывая все эти обстоятельства, получать доход от трейдинга на полный рабочий день – непростая задача.

 

Однако, будучи трейдером, торгующим в пижаме полный рабочий день, вы можете дополнить свою торговлю вспомогательными видами деятельности, такими как продажа торговых сигналов. Есть специальный сайт Zulutrade, где клиенты подписываются на торговые сигналы, и если ваша торговля прибыльна, за вами последуют многие люди. Вот еще два сайта, где вы можете продавать сигналы подписчикам: Striker и collective2. Каждый из этих трех сайтов ориентирован на разные рынки (Zulu – прежде всего на форекс, а Striker – прежде всего на фьючерсы).

 

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

 

Проп-трейдинг

 

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

 

Торговля по типу «мы профинансируем вас»

 

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

 

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

 

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

 

Советник по торговле сырьевыми товарами (СТА)

 

Многие хорошие алготрейдеры в конечном итоге хотят торговать индивидуально и привлекать чужой капитал. В регулируемом мире фьючерсов это означает стать советником по торговле сырьевыми товарами, или СТА. С помощью этой модели вы будете торговать на клиентских счетах полный рабочий день, получая комиссию за управление в размере 1-2% и 15-20% дохода от торговой прибыли.

 

Если вы сможете показать успешный опыт работы с реальными деньгами, у вас не должно возникнуть проблем с привлечением клиентов. Если у вас будет $ 1 000 000 долларов в управлении и вы заработаете 20% годовых, вы получите около $ 60 000 в год, которые покроют ваши расходы, зарплаты сотрудникам и сторонние услуги, такие как аудит и бухгалтерия. Это небольшая сумма, поэтому большинство профессионалов сходятся во мнении, что модель СТА не станет по-настоящему жизнеспособной до тех пор, пока у вас в управлении не будет $ 5-10 млн.

 

Когда вы начинаете управлять чужими деньгами, динамика торговли, безусловно, меняется. Просадки, которые могут не иметь для вас большого значения, имеют большое значение для ваших клиентов. Великий трейдер и СТА Марти Шварц (Marty Schwartz) описал в своей книге «Питбуль» (“Pitbull”), как клиенты жаловались ему, когда он был в больнице, хотя они прекрасно знали, что он был смертельно болен! Это неумолимая и безжалостная бизнес-среда.

 

Кроме того, клиенты – не единственное внешнее беспокойство для СТА. В вашу дверь также будут стучаться правительственные регуляторы. Чтобы стать СТА, вы должны зарегистрироваться и регулярно проходить аудит. Это дает клиентам уверенность в том, что вы не исчезнете с их деньгами и не будете неправильно управлять ими. Рассматривайте регулирование и надзор как положительный аспект для данной индустрии. 

 

Одним из больших недостатков СТА, помимо головной боли от недовольных клиентов и обременительных регуляторов, является то, что бо́льшая часть вашего времени будет тратиться не на торговлю, а на маркетинг и продажи. Мир сам придет к двери хорошего трейдера, но только если мир будет знать, что вы открыты для бизнеса. Таким образом, пытаясь сделать трейдинг – то, что вы действительно любите – успешным бизнесом, вы, по иронии судьбы, можете обнаружить, что уделяете трейдингу очень мало времени.

 

Профессиональные фонды

 

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

 

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

 

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

 

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

 

Реальность такова, что трейдинг на полную занятость довольно сложен не только в плане заработка денег, но и в плане того, чтобы делать это последовательно. В моей торговле были годы, когда первые 10 месяцев года я либо находился на нуле, либо нес убытки, но затем ноябрь и декабрь приносили мне настолько хорошую прибыль, что в целом эти годы выглядели очень хорошо! Прочая связанная с трейдингом деятельность направлена на диверсификацию рисков и сглаживание кривой вашего личного дохода и капитала. Если у вас есть что-то связанное с трейдингом, что вы можете предложить всему миру (а не только себе), то почему бы не сделать это?

 

Статистика неудач и многочисленные примеры свидетельствуют о том, что алготрейдинг – это трудный вид деятельности. Торговать полный рабочий день еще сложнее. Это требует навыков, желания и страсти к рынкам. Если у вас есть всё это, то перед вами открыты разные пути, в зависимости от того, куда вы хотите направить свою карьеру. Но это осуществимо. Мечта каждого алготрейдера, торгующего неполный рабочий день, стать трейдером на полный день действительно может стать реальностью.

 

Чит-коды для алгоритмической торговли

  • Мечта стать трейдером на полный рабочий день значительно отличается от реальности

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

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

Изменено 3 мая, 2025 пользователем ju.vskv

Автор#4

image.thumb.png.5f963c289f0e1619b8771a1e0fb2c2c7.png

 

ГЛАВА 3

15 СОВЕТОВ ДЛЯ АЛГОРИТМИЧЕСКОЙ ТОРГОВЛИ

 

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

 

Совет №1. Не используйте стопы

 

Чтобы увидеть результат одного входа, я обычно тестирую свои стратегии с простым выходом – через определенное количество баров, независимо от открытой прибыли или убытка. Это хороший выход. Таким образом, во многих стратегиях я вообще НЕ использую стоп-лосс. Стоп-лоссы сильно снижают производительность, хотя и дают некое душевное успокоение.

 

Конечно, в любую разрабатываемую вами стратегию вы можете включить стоп-лоссы, трейлинг-стопы и/или тейк-профиты. Просто помните: это может КАРДИНАЛЬНО изменить результаты, которые вы получите.

 

Совет №2. Работает ли ваша стратегия на нескольких рынках?

 

В США около 40 крупных инструментов на фьючерсном рынке, и обычно любая разрабатываемая мною стратегия хорошо работает только на определенных рынках или даже на каком-то одном. Это связано с тем, что ни один ПАТТЕРН НЕ РАБОТАЕТ ХОРОШО ВЕЗДЕ. Вы, должно быть, видели людей, рекламирующих тот или иной индикатор/паттерн/стратегию, которые говорят, что «она работает на всех рынках и на всех таймфреймах». Думаю, что это полная чушь, предназначенная для того, чтобы заставить людей поверить, что они нашли Святой Грааль.

 

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

 

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

 

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

 

Совет №3. Тестируйте свою стратегию на различных таймфреймах

 

Точно так же, как не существует «универсального» паттерна, работающего на всех рынках, так и паттерны не могут работать на всех таймфреймах. Некоторые паттерны работают только на дневных таймфреймах, некоторые – на нескольких таймфреймах. Как и в случае с выбранным рынком, вы должны протестировать свою стратегию на разных таймфреймах и посмотреть на результаты.

 

Я с подозрением отнесусь к паттерну, который отлично работает на 90-минутном таймфрейме, но не работает на 89-минутном и 91-минутном таймфреймах. Но при этом меня не слишком смутит хорошая производительность паттерна на 90-минутном таймфрейме и плохие результаты его работы на 30-минутном и 120-минутном таймфреймах.

 

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

 

Совет №4. Всегда учитывайте торговые издержки

 

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

 

Чтобы правильно оценить стратегию – как разработанную вами, так и купленную или арендованную, – всегда НАСТАИВАЙТЕ на результатах с учетом проскальзываний и комиссий.

 

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

 

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

 

В моем клубе “Strategy Factory” («Фабрика стратегий») я требую, чтобы трейдеры использовали разумную величину проскальзывания, которая варьирует для каждого рынка. Эти цифры основаны как на реальных торговых результатах, так и на тщательном анализе данных (сотни тысяч точек данных).

 

Суть здесь в том, чтобы убедиться, что вы ВСЕГДА учитываете проскальзывание и комиссии!

 

Совет №5. Необходимость выполнения большого количества тестирований

 

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

 

Итак, всё, что я показываю в данной книге – это начало, а не конец. Вам действительно нужно правильно протестировать и оценить всё самостоятельно, прежде чем вкладывать в это реальные деньги.

 

Совет №6. Отсутствие гарантий успеха

 

Я уверен, что некоторые из вас проверят концепции, изложенные в этой книге, и в конечном итоге придут к выводу, что...НИ ОДНА ИЗ НИХ НЕ достойна торговли на реальном рынке! Иногда добавление стопов, тейков или любых других трейлинг-выходов может полностью разрушить полезность всего задуманного подхода. Или, например, вы используете для выхода уровень поддержки и сопротивления и обнаруживаете, что этот подход несовместим со многими стратегиями.

 

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

 

Совет №7. Не пренебрегайте риском

 

Бьюсь об заклад, что 8 из 10 трейдеров-новичков думают только о прибыли. Я знаю это, потому что сам был таким на заре своей карьеры в трейдинге! Но прибыль – это только половина успеха в хорошей торговле. Очень важен и риск. Обычно это измеряется просадкой. Подумайте о сберегательном счете в банке. Счет медленно, но уверенно растет с течением времени из-за отсутствия просадок и риска (если на минуту забыть о валютных рисках, рисках дефолта, инфляционных рисках и т.д.).

 

Если бы все торговые стратегии были такими – плавными и стабильными! К сожалению, просадки являются важной и неизбежной частью торговли.

 

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

 

Совет №8. Больше оптимизации – НЕ означает ЛУЧШЕ

 

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

 

Настройка может работать для радио, но она не обязательно работает для торговых стратегий! Не ведитесь на это! Оптимизация – это почти всегда ПЛОХО. Старайтесь оптимизировать как можно меньше.

 

Совет №9. Помните, что паттерны и общие выводы не являются полными стратегиями

 

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

 

Помните, что исследование, представленное здесь, является НАЧАЛОМ стратегии алготрейдинга, а не готовым продуктом. Надеюсь, моя работа поможет вам встать на правильный путь, но прежде чем вы начнете торговать на реальном счете, предстоит проделать много работы.

 

Я всегда представляю создание стратегии как фабрику. Идеи и паттерны – это сырье. «Машины» на заводе – это тесты, которые вы проводите для разработки, улучшения и верификации своей стратегии. Таким образом, фабрика выпускает либо стратегии, либо мусор для свалки.

 

Чтобы фабрика продолжала работать, вам нужно много сырья. Именно это даёт данная книга. Но от вас зависит, чтобы всё это заработало!

 

Совет №10. Не забывайте тестировать данные вне выборки

 

У меня есть процесс разработки стратегий, который работает для меня (и моих студентов), но если вы решите создать свой собственный процесс разработки, помните: ОБЯЗАТЕЛЬНО СЛЕДУЕТ ТЕСТИРОВАТЬ ДАННЫЕ ВНЕ ВЫБОРКИ!

 

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

 

Главное – сделать нечто большее, чем просто оптимизированное тестирование.

 

Совет №11. Миллионы итераций – это нехорошо!

 

Многие люди ошибочно полагают, что чем больше итераций, тем лучше для стратегии. Это верно лишь отчасти.

 

Большое количество итераций:

 

1. Даст более эффективный бэктест,

НО

2. Покажет худшие результаты в будущем. 

 

Итак, если вы хотите получить красивые результаты бэктеста, используйте миллионы итераций – как можно больше. Но если вам нужна стратегия, которая хорошо работает в режиме реального времени, то тестируйте ее с меньшим количеством итераций – такой подход будет ГОРАЗДО лучше!

 

Совет №12. Иногда хорошо работают как индикаторы, так и паттерны

 

Некоторые алготрейдеры думают, что с алгоритмическими стратегиями хорошо работают только индикаторы – скользящие средние, RSI, ADX, полосы Боллинджера и т.д. Это неправда.

 

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

 

Ключ к успеху, как вы уже много раз слышали от меня – это тестировать и наблюдать за результатами!

 

Совет №13. Не забывайте о выходах!

 

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

 

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

 

Совет №14. Психология тоже важна

 

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

 

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

 

Совет №15. В трейдинге нет никаких гарантий

 

Многие трейдеры имеют искаженное представление об алгоритмической торговле:

 

1. Создаю прибыльный бэктест.

2. Торгую на реальном рынке.

3. Откидываюсь на спинку кресла и расслабляюсь, пока деньги текут ко мне рекой.

 

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

 

И все тестирования в мире не гарантируют, что тот или иной алгоритм будет успешным в будущем. Безусловно, тестирование помогает, как и успешный процесс разработки стратегии.

 

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

 

Чит-коды для алгоритмической торговли

  • Каждый совет, приведенный выше, сам по себе является чит-кодом! 

Изменено 10 апреля, 2025 пользователем ju.vskv

Автор#5

image.thumb.png.91674a6d704982ba57f7fee644b6c110.png

 

ГЛАВА 4

ИССЛЕДОВАНИЕ ТАЙМФРЕЙМОВ

 

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

 

Тем не менее, мне ОЧЕНЬ нравятся и короткие таймфреймы, потому что на них можно торговать несколько раз в день.

 

Уверен, что это не только мое личное мнение, поскольку масса трейдеров и тех, кто хочет ими стать, считают, что ключ к успеху – это частые сделки. Но так ли это на самом деле?

 

Я решил проверить, обоснованно ли я пренебрегал такими краткосрочными таймфреймами, как 2-минутные и 5-минутные, и будет ли торговля на них прибыльной. Или мое предпочтение дневных и 1440-минутных таймфреймов (которые не совпадают из-за соотношения расчетной цены и последних торгуемых цен, но это отдельная тема для разговора) было изначально правильным?

 

Давайте выясним это!

 

Задача исследования

 

Рассмотрим простую стратегию торговли на пробоях:

 

Код для Tradestation

If close=highest(close,InputVar1) then buy next bar at market;

If close=lowest(close,InputVar1) then sellshort next bar at market;

 

Я установил значение параметра InputVar1 на краткосрочное (10 баров), среднесрочное (25 баров) и долгосрочное (40 баров). Я выбрал простой подход к торговле пробоев, поскольку он используется многими трейдерами.

 

А также решил протестировать обратную стратегию. Рассматривайте это как контртрендовую торговлю или как «антипробойную» стратегию возврата к среднему:

If close=highest(close,InputVar1) then sellshort next bar at market;

If close=lowest(close,InputVar1) then buy next bar at market;

 

Что касается рынков, рассмотрим 40 различных фьючерсных рынков (с учетом скорректированных на исторических данных непрерывных контрактов): @AD, @BO, @BP, @C, @CC, @CD, @CL, @CT, @DX, @EC, @ES.D, @ES, @FC, @FV, @GC, @HG, @HO, @JY, @KC, @KW, @LC, @LH, @NG, @NK@NQ, @O, @OJ, @PL, @RB, @RR, @S, @SB, @SF, @SI, @SM, @RTY, @TY, @US, @W, @YM. 

 

Данный тест выполняется в интервале данных с 1 января 2006 года по 12 февраля 2021 года.

 

Наконец (самое главное в этом исследовании), я собираюсь изучить, как работает данная стратегия на 25 различных таймфреймах, от 1-минутного до 1440-минутного: 1, 2, 5, 10, 20, 30, 45, 60, 75, 90, 120, 150, 180, 210, 240, 300, 360, 420, 480, 600, 720, 840, 960, 1150, 1440. 

 

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

 

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

 

В скором времени увидим, был ли я прав!

 

Результаты стратегии торговли пробоев без учета проскальзывания и комиссий

 

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

 

image.png.a3f9bdd75e862ee3c88c1e84264c12c9.png

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

 

Ниже 10-минутного таймфрейма, даже без учета проскальзывания и комиссий, результаты торговли плохие. О чем это говорит? Пробои на очень коротких таймфреймах обычно бывают ложными! Это полезно знать.

 

По мере увеличения таймфрейма результаты улучшаются, достигая максимума на 120-минутном таймфрейме. Пробои на этих таймфреймах наиболее прибыльны.

 

Еще одним интересным моментом здесь является то, что на более длинных таймфреймах, примерно от 360- до 1440-минутного, продуктивность данной стратегии почти одинакова (и не столь хороша по сравнению с пиковой прибылью на 120-минутном таймфрейме).

 

Если посмотреть на максимальную просадку, то на меньших таймфреймах максимальные просадки больше, вплоть до примерно 60-минутного таймфрейма.

 

image.png.a92cdbde8b573cf8ac9776d961c98ba7.png

Рисунок 2. Максимальная просадка в зависимости от таймфрейма, торговля по тренду без учета проскальзывания и комиссий

 

Таким образом, на очень краткосрочных таймфреймах традиционная торговля по тренду дает ужасные результаты в рамках всех 40 фьючерсных рынков. Есть несколько рынков (CT, HO, RB, S), на которых данная стратегия на меньших таймфреймах оказывается гораздо более прибыльной. Но в целом короткие таймфреймы демонстрируют худшую производительность.

 

Результаты стратегии контртрендовой торговли без учета проскальзывания и комиссий

 

Без учета проскальзывания и комиссий результаты, описанные выше, теоретически должны быть обратными в плане чистой прибыли. Давайте проверим, так ли это.

 

image.png.e4541cf8f9058507a56a4ea4fa088d7f.png

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

 

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

 

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

 

image.png.92b2c3349b098848cc1834c6a8e81fce.png

Рисунок 4. Максимальная просадка в зависимости от таймфрейма, торговля против тренда без учета проскальзывания и комиссий

 

Результаты стратегии торговли пробоев с учетом проскальзывания и комиссий

 

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

 

Давайте сначала посмотрим на чистую прибыль: 

 

image.png.96481efd92519a8c57aa4d3322c27a34.png

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

 

На очень коротких таймфреймах мы видим огромные убытки! Очевидно, что проскальзывание и комиссии оказывают сильное влияние на результаты торговли. Увеличим масштаб, чтобы увидеть, что происходит на других таймфреймах: 

 

image.png.d83f73589da28af8701f0e032d363395.png

Рисунок 6. Прибыль в зависимости от таймфрейма, торговля по тренду с учетом проскальзывания и комиссий, увеличенный масштаб

 

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

 

При анализе максимальной просадки мы видим во многом то же самое. 

 

image.png.e6f13cf8c953a1443882c3387cc83325.png

Рисунок 7. Максимальная просадка в зависимости от таймфрейма, торговля по тренду с учетом проскальзывания и комиссий

 

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

 

image.png.994eecda2b46e42a25a411ca258fbd38.png

Рисунок 8. Стратегия трендовой торговли, приблизительное проскальзывание и комиссии за год

 

Увеличим масштаб, чтобы лучше увидеть результаты торговли с учетом затрат на более высоких таймфреймах:

 

image.png.f768a01ae580d9e893a9307857a27e14.png

Рисунок 9. Стратегия трендовой торговли, приблизительное проскальзывание и комиссии за год, увеличенный масштаб

 

Это может показаться очевидным, но важно осознавать, что бо́льшее количество сделок означает больше проскальзываний и комиссий, что обычно приводит к снижению чистой прибыли. Больше сделок не всегда лучше!

 

Результаты стратегии контртрендовой торговли пробоев с учетом проскальзывания и комиссий

 

image.png.65d281b9b32de80a3a7be53c556b41b6.png

Рисунок 10. Прибыль в зависимости от таймфрейма, стратегия контртрендовой торговли с учетом проскальзывания и комиссий, увеличенный масштаб

 

Торговля против тренда в целом не является прибыльной, независимо от таймфрейма. Это логично, так как 1) в результатах доминируют проскальзывание и комиссии, и 2) в тех немногих случаях, когда торговля пробоев в направлении тренда будет прибыльной, обратная стратегия приносит убытки.

 

Чит-коды для алгоритмической торговли

  • Проскальзывание и комиссии могут быть убийственным фактором для стратегий на коротких таймфреймах

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

  1. Используйте лимитные ордера, где это возможно (просто имейте в виду, что у них есть недостатки как в бэктестах, так и в реальной торговле, особенно в случаях с «касательным исполнением» (“touch fills”))

  2. Открывайте меньше сделок! Данное исследование работало по принципу «всегда в рынке» (always in), т.е. допускало открытие всех сделок: лучшим подходом к торговле на коротких таймфреймах будет стратегия, гораздо более избирательная в отношении сделок

  • Стратегии торговли пробоев на более высоких таймфреймах могут быть прибыльными даже с учетом проскальзывания и комиссий. Однако они могут быть не очень привлекательными с точки зрения соотношения риска к прибыли

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

 

 

 

Изменено 26 мая, 2025 пользователем ju.vskv

Автор#6

image.thumb.png.6deec09547627ca05d795c69efcef0c5.png

 

ГЛАВА 5

ИССЛЕДОВАНИЕ ВОЗВРАТА К СРЕДНЕМУ ЗНАЧЕНИЮ

 

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

 

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

 

Когда вы смотрите на торговлю с этой точки зрения, все те категории, которые я упомянул выше, просто сливаются в одну прибыльную торговую тактику. Не ограничивайте себя одним стилем или категорией – научитесь делать хорошо многие вещи!

 

Я поднимаю этот вопрос, потому что в течение многих лет я избегал того, что обычно называют торговлей возврата к среднему значению. Многие стратегии возврата к среднему пытаются спрогнозировать точку разворота на рынке. Я всегда считал это ловлей падающего ножа. Зачем пытаться поймать падающий нож, если можно просто поднять нож с пола после того, как он упадет?

 

Конечно, это не очень хорошее «мышление трейдера». Если я могу получить хорошую доходность с поправкой на риск, то, возможно, мне следует рассмотреть эту возможность, а не сразу же отклонить ее. Именно это я и делаю в данной главе...

 

В рамках этого исследования я провожу то же базовое исследование, которое вы видите в других главах. Я тестирую данную стратегию на:

  • 40 фьючерсных рынках

  • 5 различных таймфреймах

  • 10-летнем периоде исторических данных

  • учитываю проскальзывание и комиссии

Что касается реальных стратегий, я начну с работы Сезара Альвареса: на его вебсайте представлено очень много хороших идей. Я использовал его идеи в качестве основы, иногда внося в них незначительные корректировки, некоторые идеи я придумал сам.

 

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

 

Как и в других исследованиях в этой книге, я понимаю, что конкретный вход может не принести прибыль в целом, тем более что я оцениваю его на 40 рынках и 5 таймфреймах. Мой опыт показывает, что НИ ОДНА СТРАТЕГИЯ НЕ РАБОТАЕТ на всех 40 рынках и на всех 5 таймфреймах, иначе это действительно был бы Святой Грааль! Моя цель здесь не в том, чтобы сказать: «Используйте стратегию торговли возврата к среднему XX, потому что она работает везде и в любых условиях». Вместо этого я пытаюсь раскрыть подходы к торговле возврата к среднему значению, которые в целом могут работать лучше, чем другие. Зная это, я могу сосредоточить все свои усилия в процессе разработки стратегии на наилучших подходах торговли возврата к среднему. Именно это я рекомендую делать и вам.

 

Подходы, которые я использовал, представлены с кратким описанием и кодом для Tradestation. Если вы не используете Tradestation, вы можете применить предоставленные мною инструкции «на простом языке». Примечание: команды “Buy” («Покупай») сначала предназначены для закрытия коротких позиций, а затем для открытия длинных. Команды “Sell Short” («Продавай») сначала закрывают длинные позиции и только потом открывают короткие.

 

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

 

InputVar2= 5-20 с шагом 5 (4 значения)

InputVar3= 25-40 с шагом 5 (4 значения)

inputVar4= от 0 до 1 с шагом 1 (2 значения) [задействовано или не задействовано]

inputVar5= от 0 до 1 с шагом 1 (2 значения) [задействовано или не задействовано]

Всего было проведено 64 теста. 

 

Для всех входов я использовал следующий код для выхода  «выход через 7 баров после входа»:

 

If InputVar5=1 then begin

If marketposition=1 and barssinceentry>7 then sell next bar at market;

If marketposition=-1 and barssinceentry>7 then buytocover next bar at market;

End;

 

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

 

Я выбрал выход после 7 баров, полагая, что среднестатистические сделки на возврате к среднему должны быть относительно короткими по продолжительности (примерно 1,5 недели для торговли на дневном таймфрейме). Позже мы увидим, к чему привело это предположение (спойлер: ни к чему хорошему!).

 

Стратегия №1. Простая стратегия с использованием RSI с коротким периодом

Общая идея:

Когда RSI с периодом 2 бара опускается ниже определенного значения (область перепроданности), это хорошее время для покупки. Обратное верно для продажи.

 

Вход:

Если RSI с периодом 2 бара пересекает сверху вниз уровень InputVar2, то покупайте на следующем баре.

Если RSI с периодом 2 бара пересекает снизу вверх уровень 100-InputVar2, то продавайте на следующем баре.

 

Выход:

Если RSI с периодом 2 бара закрывается выше уровня InputVar3, то закрывайте длинную позицию.

Если RSI с периодом 2 бара закрывается ниже уровня 100-InputVar3, то закрывайте короткую позицию.

 

Код для Tradestation

If RSI(close,2) crosses below InputVar2 then begin

buy next bar at market;

end;

If RSI(close,2) crosses above 100-InputVar2 then begin

sellshort next bar at market;

end;

If Inputvar4=1 then begin

If marketposition=1 and RSI(close,2) crosses above InputVar3 then sell next bar at market;

If marketposition=-1 and RSI(close,2) crosses below 100-InputVar3 then buytocover next bar at market;

end;

 

Стратегия №2. Простая стратегия с использованием индикатора Connors RSI

Общая идея:

Когда Connors RSI с периодом 2 бара опускается ниже определенного значения (область перепроданности), это хорошее время для покупки. Обратное верно для продажи.

 

Вход:

Если Connors RSI с периодом 2 бара пересекает сверху вниз уровень InputVar2, то покупайте на следующем баре.

Если Connors RSI с периодом 2 бара пересекает снизу вверх уровень 100-InputVar2, то продавайте на следующем баре.

 

Выход:

Если Connors RSI с периодом 2 бара закрывается выше уровня InputVar3, то закрывайте длинную позицию.

Если Connors RSI с периодом 2 бара закрывается ниже уровня 100-InputVar3, то закрывайте короткую позицию.

 

Код для Tradestation

If ConnorsRSI(3,2,100) crosses below InputVar2 then begin

buy next bar at market;

end;

If ConnorsRSI(3,2,100) crosses above 100-InputVar2 then begin

sellshort next bar at market;

end;

If Inputvar4=1 then begin

If marketposition=1 and ConnorsRSI(3,2,100) crosses above InputVar3 then sell next bar at market;

If marketposition=-1 and ConnorsRSI(3,2,100) crosses below 100-InputVar3 then buytocover next bar at market;

end;

 

Стратегия №3. Стратегия торговли с использованием полос Боллинджера

Общая идея:

Когда цена приближается к нижней полосе Боллинджера, это хорошее время для покупки. Обратное верно для продажи.

 

Вход:

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

 

Если цена закрытия опускается ниже 10%-го уровня диапазона полос Боллинджера с периодом 2 бара, открывайте длинную позицию.

Если цена закрытия поднимается выше 90%-го уровня диапазона полос Боллинджера с периодом 2 бара, открывайте короткую позицию.

 

Выход:

Если цена закрытия выше 40%-го уровня диапазона полос Боллинджера, то закрывайте длинную позицию.

Если цена закрытия ниже 60%-го уровня диапазона полос Боллинджера, то закрывайте короткую позицию.

 

Код для Tradestation

InputVar33=.0666667*InputVar3-.666667;

UpBB=BollingerBand(close,InputVar2,InputVar33);

DnBB=BollingerBand(close,InputVar2,-InputVar33);

if UpBB-DnBB<>0 then PercentB=(close-DnBB)/(UpBB-DnBB);

If PercentB<.1 and PercentB[1]<.1 then begin

buy next bar at market;

end;

If PercentB>.9 and PercentB[1]>.9 then begin

sellshort next bar at market;

end;

If Inputvar4=1 then begin

If marketposition=1 and PercentB>.4 then sell next bar at market;

If marketposition=-1 and PercentB<.6 then buytocover next bar at market;

end;

 

Стратегия №4. Стратегия торговли отклонения от скользящей средней

Общая идея:

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

 

Вход:

Если разница между ценой закрытия и значением InputVar2 от скользящей средней больше указанной величины (то есть цена закрытия находится ниже скользящей средней на большу́ю величину), открывайте длинную позицию. 

 

Если разница между ценой закрытия и значением InputVar2 от скользящей средней меньше указанной величины (то есть цена закрытия находится выше скользящей средней на большу́ю величину), открывайте короткую позицию. 

 

Выход:

Если цена закрытия выше значения InputVar2 от скользящей средней, то закрывайте длинную позицию.

Если цена закрытия ниже значения InputVar2 от скользящей средней, то закрывайте короткую позицию.

 

Код для Tradestation

InputVar33=.5*(.004667*InputVar3-.08667);

If -close + average(close,InputVar2) > InputVar33*average(close,InputVar2) then begin

buy next bar at market;

end;

If close -average(close,InputVar2) > InputVar33*average(close,InputVar2) then begin

sellshort next bar at market;

end;

If Inputvar4=1 then begin

If marketposition=1 and close>average(close,InputVar2) then sell next bar at market;

If marketposition=-1 and close<average(close,InputVar2) then buytocover next bar at market;

end;

 

Стратегия №5. Стратегия с использованием роста/падения цены в процентах

Общая идея:

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

 

Вход:

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

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

 

Выход:

Если цена закрытия, деленная на цену закрытия InputVar22 предыдущих баров, больше 1, то закрывайте длинную позицию.

Если цена закрытия, деленная на цену закрытия InputVar22 предыдущих баров, меньше 1, то закрывайте короткую позицию.

 

Код для Tradestation

InputVar22=.466667*InputVar2+.666667;

InputVar33=.0066667*InputVar3+.68333;

If (close/(close[InputVar22]+.00001)) < InputVar33 then begin

buy next bar at market;

end;

If (close/(close[InputVar22]+.00001)) > 1-InputVar33 then begin

sellshort next bar at market;

end;

If Inputvar4=1 then begin

If marketposition=1 and (close/(close[InputVar22]+.00001))>1 then sell next bar at market;

If marketposition=-1 and (close/(close[InputVar22]+.00001))<1 then buytocover next bar at market;

end;

 

Стратегия 6. Стратегия торговли с использованием растущих баров/падающих баров

Общая идея:

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

 

Вход:

Если 3, 4, 5 или 6 баров подряд (в зависимости от настроек) имеют более низкие цены закрытия, открывайте длинную позицию на следующем баре.

Если 3, 4, 5 или 6 баров подряд (в зависимости от настроек) имеют более высокие цены закрытия, открывайте короткую позицию на следующем баре.

 

Выход:

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

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

 

Код для Tradestation

CanGoLong2=False;

CanGoShort2=False;

If InputVar2=5 and close<close[1] and close[1]<close[2] then CanGoLong2=True;

If InputVar2=5 and close>close[1] and close[1]>close[2] then CanGoShort2=True;

If InputVar2=10 and close<close[1] and close[1]<close[2] and close[2]<close[3] then CanGoLong2=True;

If InputVar2=10 and close>close[1] and close[1]>close[2] and close[2]>close[3] then CanGoShort2=True;

If InputVar2=15 and close<close[1] and close[1]<close[2] and close[2]<close[3] and close[3]<close[4] then CanGoLong2=True;

If InputVar2=15 and close>close[1] and close[1]>close[2] and close[2]>close[3] and close[3]>close[4] then CanGoShort2=True;

If InputVar2=20 and close<close[1] and close[1]<close[2] and close[2]<close[3] and close[3]<close[4] and close[4]<close[5] then CanGoLong2=True;

If InputVar2=20 and close>close[1] and close[1]>close[2] and close[2]>close[3] and close[3]>close[4] and close[4]>close[5] then CanGoShort2=True;

If CanGoLong2=True then begin

buy next bar at market;

end;

If CanGoShort2=True then begin

sellshort next bar at market;

end;

If Inputvar4=1 then begin

If marketposition=1 and CanGoLong2=False then sell next bar at market;

If marketposition=-1 and CanGoShort2=False then buytocover next bar at market;

end;

 

Стратегия №7. Стратегия торговли противоположных сделок на пробое

Общая идея:

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

 

Вход:

Если цена закрытия является самой низкой ценой закрытия среди последних InputVar2 баров, то открывайте длинную позицию на следующем баре по рыночной цене.

Если цена закрытия является самой высокой ценой закрытия среди последних InputVar2 баров, то открывайте короткую позицию на следующем баре по рыночной цене.

 

Выход:

Если цена закрытия является самой высокой ценой закрытия среди последних InputVar3 баров, то закрывайте длинную позицию на следующем баре по рыночной цене.

Если цена закрытия является самой низкой ценой закрытия среди последних InputVar3 баров, то закрывайте короткую позицию на следующем баре по рыночной цене.

 

Код для Tradestation

If close=lowest(close,InputVar2) then begin

buy next bar at market;

end;

If close=highest(close,InputVar2) then begin

sellshort next bar at market;

end;

If Inputvar4=1 then begin

If marketposition=1 and close=highest(close,InputVar3) then sell next bar at market;

If marketposition=-1 and close=lowest(close,InputVar3) then buytocover next bar at market;

end;

 

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

Общая идея:

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

 

Вход:

Рассчитайте, где находится цена закрытия относительно диапазона последних InputVar2 баров. В результате получается crange (цена закрытия относительно диапазона предыдущих баров).

Если crange меньше InputVar33, то покупайте на следующем баре по рыночной цене.

Если crange больше 1-InputVar33, то продавайте на следующем баре по рыночной цене.

 

Выход:

Если crange больше InputVar33, то закрывайте длинную позицию на следующем баре по рыночной цене.

Если crange меньше 1-InputVar33, то закрывайте короткую позицию на следующем баре по рыночной цене.

 

Код для Tradestation

Inputvar33=.01*InputVar3-.15;

if (highest(high,InputVar2)-lowest(low,InputVar2))<>0 then crange=(close-lowest(low,InputVar2))/(highest(high,InputVar2)-lowest(low,InputVar2));

If crange<InputVar33 then begin

buy next bar at market;

end;

If crange>1-InputVar33 then begin 

sellshort next bar at market;

end;

If Inputvar4=1 then begin

If marketposition=1 and crange>InputVar33 then sell next bar at market;

If marketposition=-1 and crange<1-InputVar33 then buytocover next bar at market;

end;

 

Стратегия №9. Стратегия с использованием линейной регрессии

Общая идея:

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

 

Вход:

Если цена закрытия ниже значения линейной регрессии за последние InputVar2 баров, открывайте длинную позицию.

Если цена закрытия выше значения линейной регрессии за последние InputVar2 баров, открывайте короткую позицию.

 

Выход:

Если цена закрытия выше значения линейной регрессии за последние InputVar3 баров, закрывайте длинную позицию.

Если цена закрытия ниже значения линейной регрессии за последние InputVar3 баров, закрывайте короткую позицию.

 

Код для Tradestation

If close <LinearRegValue(close,InputVar2,0) then begin

buy next bar at market;

end;

If close >LinearRegValue(close,InputVar2,0) then begin

sellshort next bar at market;

end;

If Inputvar4=1 then begin

If marketposition=1 and close >LinearRegValue(close,InputVar3,0) then sell next bar at market;

If marketposition=-1 and close <LinearRegValue(close,InputVar3,0) then buytocover next bar at market;

end;

 

Стратегия №10. Простая стратегия торговли противоположных сделок на импульсе

Общая идея:

Когда недавний импульс слабеет, самое время покупать. Обратное верно для продажи.

 

Вход:

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

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

 

Выход:

Если цена закрытия выше цены закрытия InputVar3 предыдущих баров, то закрывайте длинную позицию.

Если цена закрытия ниже цены закрытия InputVar3 предыдущих баров, то закрывайте короткую позицию.

 

Код для Tradestation

If close <close[InputVar2] then begin

buy next bar at market;

end;

If close >close[InputVar2] then begin

sellshort next bar at market;

end;

If Inputvar4=1 then begin

If marketposition=1 and close >close[InputVar3] then sell next bar at market;

If marketposition=-1 and close <close[InputVar3] then buytocover next bar at market;

end;

 

Результаты исследования стратегий торговли возврата к среднему значению

 

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

 

Возможно, вы спросите: «Какая польза от них?» Ну, во-первых, поймите, что практически невозможно, чтобы стратегия работала на 40 различных рынках, на 5 таймфреймах и с различными настройками параметров. Было бы неплохо разработать такую стратегию, но это случается редко, если вообще случается.

 

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

 

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

 

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

 

Предлагаю вам общие результаты по номеру каждой стратегии:

 

1 – простая стратегия с использованием RSI с коротким периодом

2 – простая стратегия с использованием индикатора Connors RSI 

3 – стратегия с использованием полос Боллинджера

4 – стратегия торговли отклонения от скользящей средней

5 – стратегия с использованием роста/падения цены в процентах

6 – стратегия с использованием растущих баров/падающих баров

7 – стратегия торговли противоположных сделок на пробое

8 – стратегия, основанная на цене закрытия относительно диапазона недавних баров

9 – стратегия с использованием линейной регрессии

10 – простая стратегия торговли противоположных сделок на импульсе

 

image.png.411c2e9f79b4b46e56021adf434d2df5.png

Рисунок 11. Результаты исследования стратегий торговли возврата к среднему значению

 

Как и ожидалось, в среднем все стратегии убыточны. Тем не менее, стратегия №4 (стратегия торговли отклонения от скользящей средней) является лучшей, а стратегии №5 (стратегия с использованием роста/падения цены в процентах) и №9 (стратегия с использованием линейной регрессии) показали худшие результаты.

 

Еще один способ оценить общие результаты – это рассмотреть количество прибыльных сделок с чистой прибылью, превышающей $ 10 000 за 10-летний период. Наилучшие стратегии будут иметь наибольшее количество прибыльных сделок.

 

Анализ данных показывает, что стратегии №3 (стратегия с использованием полос Боллинджера), №7 (стратегия торговли противоположных сделок на пробое) и №4 (стратегия торговли отклонения от скользящей средней) показали лучшие результаты, в то время как стратегия №9 (стратегия с использованием линейной регрессии) показала худшие результаты.

 

image.png.aabad6ef7a7be3baa4ae48a6b8a500b7.png

Рисунок 12. Стратегия торговли возврата к среднему, прибыльные сделки

 

Третий способ оценки результатов – посмотреть на среднюю чистую прибыль. Снова стратегия №4 (стратегия торговли отклонения от скользящей средней) оказывается лучшей с большим отрывом. И снова стратегия №9 (стратегия с использованием линейной регрессии) демонстрирует худшие результаты.

 

image.png.63b3c6bd39c3a80e15d466e8747c1008.png

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

 

Проанализировав три вышепредставленные таблицы, можно увидеть, что относительно «лучшими» являются следующие стратегии: 

 

2 – простая стратегия с использованием индикатора Connors RSI 

3 – стратегия с использованием полос Боллинджера

4 – стратегия торговли отклонения от скользящей средней

6 – стратегия с использованием растущих баров/падающих баров

7 – стратегия торговли противоположных сделок на пробое

 

Позже мы объединим эти 5 стратегий в различные конфигурации «и/или» для создания новых стратегий.

 

Итак, если бы мы остановились прямо на этом этапе, я бы пришел к выводу, что стратегия торговли отклонения от скользящей средней, вероятно, является наиболее достойной для дальнейшего изучения. А также я держался бы  подальше от стратегии с использованием линейной регрессии.

 

Если копнуть немного глубже, то, возможно, на результаты повлияли тестируемые нами «переключатели». Первым переключателем был выход после 7 баров. Он либо не был задействован (=0), либо был задействован (=1). Почему именно 7 баров? Я выбрал это значение, потому что это было небольшое значение, поскольку в рамках стратегии торговли возврата к среднему сделки, как правило, являются краткосрочными, а не долгосрочными. Вполне возможно, что вы получите иные результаты, протестировав этот параметр с 3 барами или 30 барами. Предоставляю вам, читатель, проверить это самостоятельно.

 

Придерживаясь значения 7 баров между входом и выходом, можно сделать вывод, что отсутствие  выхода (BSE Exit=0) лучше, чем его наличие.

image.png.bd1d799c0ad969c10301c91ff2531860.png

Рисунок 14. Влияние выхода после 7 баров

 

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

 

image.png.cc58b55920d1f12953493c2de3d55c61.png

Рисунок 15. Влияние быстрых выходов

 

Результаты очевидны: быстрый выход (value=1) не является хорошей идеей.

 

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

 

В данном исследовании то, что работает в одном секторе, как правило, так же хорошо работает и в других секторах. Например, вы можете видеть, что стратегия №4 является лучшей в большинстве секторов и демонстрирует хорошую прибыль в с/х секторе, энергетике и фондовых индексах. Скорее всего, она будет стабильно прибыльной во всех секторах рынка.

 

image.png.ec78cc69ed1d89cf9e611cab40bcb7d6.png

Рисунок 16. Результаты стратегии торговли возврата к среднему по секторам

 

Предварительные выводы

  • Лучшими стратегиями торговли возврата к среднему являются стратегии 2, 3, 4, 6 и 7

  • Автоматический выход после 7 баров не показал хороших результатов

  • Быстрые выходы в рамках стратегии торговли возврата к среднему не принесли прибыли

Было бы упущением не указать, что лучший вход может быть частично или даже в первую очередь результатом значений параметров, которые я использовал в данном анализе. Например, стратегия №4 (стратегия торговли отклонения от скользящей средней) может быть лучшей из-за выбранного мной периода скользящей средней или пороговых значений отклонения, которые я использовал. Я пытался использовать разумные значения для параметров во всех случаях, но разные диапазоны для переменных могут приводить к разным выводам.

 

Последующий анализ

 

На этом этапе мы могли бы остановиться и протестировать несколько прибыльных методов торговли возврата к среднему значению. Но я собираюсь пойти еще дальше. Одним из подходов, предложенных Сезаром Альваресом, была комбинация стратегий. Например, вы можете комбинировать стратегии №3 и №4.

 

Комбинировать стратегии можно двумя способами. Первый: комбинировать стратегии с условием «И». Это означает, что для получения действительного сигнала обе стратегии – стратегия №3 и стратегия №4 – должны быть истинными. Это приведет к меньшему количеству сделок, но они будут предположительно более высокого качества, поскольку сигналы будут генерироваться одновременно двумя методами возврата к среднему.

 

Второй подход: комбинировать стратегии с условием «ИЛИ». Т.е. для получения сигнала к совершению сделки может быть истинной стратегия №3 или стратегия №4. Такая комбинация генерирует на несколько сделок больше, чем с условием «И».

 

И раз уж мы заговорили о комбинировании, зачем ограничиваться комбинацией только двух стратегий? Почему бы нам не протестировать комбинации стратегий №3, №4 или №5 с различными условиями «И» и «ИЛИ»?

 

Давайте сначала рассмотрим комбинирование с условием «И». Чтобы упростить задачу, я показываю результаты только пяти лучших комбинаций:

 

image.png.203c9958c99c105b0114321ac863c782.png

Рисунок 17. Лучшие комбинации стратегий с условием «И»

 

По сравнению с одиночной стратегией №4 комбинирование стратегий с условием «И» может в значительной степени улучшить производительность. Но как насчет комбинирования с условием «ИЛИ»? К сожалению, комбинирования с условием «ИЛИ» показали не очень полезные результаты:

 

image.png.bc99b7289cee241eb16a0af4d93517a3.png

Рисунок 18. Лучшие комбинации стратегий с условием «ИЛИ»

 

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

 

Чит-коды для алгоритмической торговли

  • Стратегии торговли возврата к среднему значению определенно стоит протестировать

  • Наилучшие подходы с использованием одиночной стратегии торговли возврата к среднему:

2 – простая стратегия с использованием индикатора Connors RSI 

3 – стратегия с использованием полос Боллинджера

4 – стратегия торговли отклонения от скользящей средней

6 – стратегия с использованием растущих баров/падающих баров

7 – стратегия торговли противоположных сделок на пробое

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

Стратегия №2 И стратегия №3 И стратегия №4

Стратегия №2 И стратегия №3 И стратегия №4 И стратегия №7

Стратегия №2 И стратегия №4 И стратегия №7

Стратегия №2 И стратегия №4

Стратегия №2 И стратегия №3 И стратегия №4 И стратегия №6 И стратегия №7

  • Комбинация стратегий торговли возврата к среднему значению с условием «ИЛИ» не улучшает общую производительность

  • Временны́е выходы (по крайней мере, выходы после 7 баров) ухудшают производительность стратегий торговли возврата к среднему

  • «Быстрые» выходы в стратегиях торговли возврата к среднему снижают их производительность

  • В целом наилучшие результаты стратегии торговли возврата к среднему демонстрируют в секторах процентных ставок, фондовых индексов и энергетики

  • Худшие результаты стратегии торговли возврата к среднему демонстрируют в с/х секторе и секторе мягких товаров 

  • Как всегда, чтобы подтвердить мои выводы, протестируйте всё самостоятельно

 

 

Изменено 29 мая, 2025 пользователем ju.vskv

Автор#7

image.thumb.png.4db79f34bfabbd219e2bd61418778486.png

 

ГЛАВА 6

МЕТОДЫ ЗАЩИТЫ ОТ РИСКОВ

 

90% алготрейдеров создают свои стратегии неправильно. Откуда мне это известно? Это отражается в статистике: большинство трейдеров проигрывают!

 

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

 

Более осведомленные трейдеры понимают, что ключевым показателем хорошей стратегии является риск (просадка), и учитывают это в своем процессе создания стратегии. Большинству людей не понравится алгоритмическая стратегия, которая приносит $ 50 000 прибыли, но при этом имеет $ 100 000 просадки. Согласны?

 

Вам нужно иметь хорошее соотношение между прибылью и просадками. Тысячи трейдеров по всему миру используют мои наработки, которые я публикую в Strategy Factory® («Фабрике стратегий»), и они находят стратегии с хорошим балансом между прибылью и просадками.

 

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

 

Достаточно взглянуть на несколько рынков, начиная с конца февраля 2020 года:

 

image.png.93d64e0db0acc6d9975212cdb3b00def.png

Рисунок 19. Большие ценовые движения во время турбулентности

 

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

 

Ограничители внутридневных убытков

Задержка исполнения следующей сделки

Принцип не оставлять открытые сделки на выходные дни

Аварийный выключатель, срабатывающий при высокой волатильности.

 

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

 

Базовая стратегия

 

Для целей данного исследования я разработал простую стратегию входа на откате и применил ее к 120-минутному графику сырой нефти за последние 5 лет.

 

ПРИМЕЧАНИЕ: данная стратегия предназначена исключительно для целей исследования. Я не утверждаю, что это хорошая стратегия для торговли. 

image.png.bf47a80ffe9690f42de71fdd576d3d7f.png

Рисунок 20. Пример стратегии для этого исследования

 

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

 

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

 

Стратегия также включает в себя стоп-лосс на основе ATR и с максимальной суммой убытка $ 3 000 за контракт. Этот вид стопа рассматривался в бонусной статье о стоп-лоссах, которую вы можете найти на моем сайте.

 

Ниже приведен код для Tradestation и инструкции «на простом языке».

 

Код простыми словами

 

Если цена закрытия выше цены закрытия Х предыдущих баров и ниже цены закрытия 0,5 * Х предыдущих баров, открывайте длинную позицию. Для открытия короткой позиции ждите появления на рынке обратной ситуации.

 

Стоп-лосс должен размещаться на расстоянии, кратном среднему истинному диапазону, и составлять максимум $ 3 000 долларов за контракт.

 

Для этого исследования значение ретроспективного периода составляло 10, а коэффициент ATR – 2. 

 

НАПОМИНАНИЕ: данная стратегия предназначена только для целей исследования. Я не утверждаю, что это хорошая стратегия для торговли. 

 

Код для Tradestation

//*************************************************

//

//www.kjtradingsystems.com

//Risk Protection Study

//Kevin Davey - STRATEGY #1 - Baseline Strategy

//kdavey@kjtradingsystems.com

//

//*************************************************

//

input: lookback(10),stopATR(2);

If close crosses above close[lookback] and close crosses below close[.5*lookback] then buy next bar at market;

If close crosses below close[lookback] and close crosses above close[.5*lookback] then sellshort next bar at market;

var:NewStop(3000);

NewStop=StopATR*AvgTrueRange(14)*BigPointValue;

If NewStop>3000 then NewStop=3000;

If StopATR<>0 then SetStopLoss(NewStop);

 

Некоторые важные статистические данные базовой стратегии:

 

Показатель производительности

Исходный результат

Чистая прибыль

$ 40 030

Количество сделок

92

Средняя доходность на счете

280,7%

Процент времени пребывания в рынке

34,1%

Макс. просадка (в закрытых сделках)

-$ 14 260

Рисунок 21. Статистические данные базовой стратегии

 

Защита от рисков №1. Ограничитель внутридневных убытков

 

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

 

Версия, созданная для этого исследования, рассчитывает убыток с полуночи (время на графике), закрывает все сделки и не открывает новые сделки, если убыток превышает определенный порог. Это хорошо работает на X-минутном таймфрейме.

 

Код простыми словами

 

Каждый день рассчитывайте общий открытый капитал и закрытый капитал для стратегии на последнем баре перед полуночью. Если на следующий день разница между текущим общим капиталом и «полуночным» (“midnight”) капиталом будет меньше значения «предел убытка по капиталу» (“equitylosslimit”), закрывайте все текущие позиции и не открывайте новые сделки.

 

Код для Tradestation

//**************************************************

//

//www.kjtradingsystems.com

//Risk Protection Study

//Kevin Davey – Risk Protection #1 – Daily Loss Limiter

//kdavey@kjtradingsystems.com

//

//**************************************************

//

input: lookback(10),stopATR(2),EquityLossLimit(1000);

var:EndDayEquity(0),CanTrade(True),CurrentEquity(0);

CurrentEquity=NetProfit+OpenPositionProfit;

If date<>date[1] then begin

EndDayEquity=CurrentEquity[1];

end;

CanTrade=True;

If NetProfit+OpenPositionProfit-EndDayEquity<-EquityLossLimit then CanTrade=False;

If CanTrade=True then begin

If close crosses above close[lookback] and close crosses below close[.5*lookback] then buy next bar at market;

If close crosses below close[lookback] and close crosses above close[.5*lookback] then sellshort next bar at market;

var:NewStop(3000);

NewStop=StopATR*AvgTrueRange(14)*BigPointValue;

If NewStop>3000 then NewStop=3000;

If StopATR<>0 then SetStopLoss(NewStop);

end;

If CanTrade=False then begin

Sell (“DLL-L Exit”) next bar at market;

BuyToCover (“DLL-S Exit”) next bar at market;

end;

 

Если вы используете дневной таймфрейм, вместо этого можно применить условие для стоп-лосса:

Sell next bar at close – xxx stop; //xxx is the price where daily loss limit would be hit

 

Результаты

 

Чтобы увидеть влияние внутридневного лимита убытков, я изменил внутридневной лимит убытков с $ 500 до $ 10 000. При небольших дневных убытках производительность стратегии определенно хуже базовой прибыли в $ 40 000. Это имеет смысл, так как при небольших лимитах убытков рыночная волатильность часто будет приводить к отключению системы.

 

image.png.8bf545df9392dd564832830b2399afc4.png

Рисунок 22. Результаты исследования дневного лимита убытков

 

Внутридневной лимит убытков в диапазоне приблизительно от $ 2 000 до $ 4 000 несколько улучшает производительность стратегии, хотя и не очень сильно. При превышении значения $ 4 000 внутридневной лимит убытков никогда не активируется. Таким образом, оптимальный результат для внутридневного лимита убытков показан ниже:

 

Показатель производительности

Исходный результат

Дневной лимит убытков (оптимальное значение = $ 2500)

Чистая прибыль

$ 40 030

$ 47 675

Количество сделок

92

95

Средняя доходность на счете

280,7%

344,7%

Процент времени пребывания в рынке

34,1%

32,0%

Макс. просадка (в закрытых сделках)

-$ 14 260

-$ 13 830

Рисунок 23. Результаты дневного лимита убытков (зеленый цвет означает улучшение)

 

Глядя на результаты, вы можете сделать вывод, что ограничитель внутридневных убытков работает хорошо. Но БУДЬТЕ ОСТОРОЖНЫ! Это оптимизированный результат. Лимит в $ 2 500, вероятно, НЕ будет лучшим внутридневным лимитом в будущем.

 

Рекомендации

 

Если вы хотите использовать внутридневной лимит убытков, прежде всего решите, какое его значение будете использовать, И ТОЛЬКО ПОСЛЕ ЭТОГО запускайте бэктестирование. Не ждите обязательного улучшения производительности своей стратегии, а просто используйте его, поскольку он даст вам психологический комфорт от ограничения внутридневных убытков. Любое улучшение производительности следует рассматривать как бонус.

 

Защита от рисков №2. Задержка входа в рынок после убыточной сделки

 

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

 

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

 

Код простыми словами

 

После убыточной сделки подождите NextTradeDelay баров, прежде чем открывать следующую сделку.

 

Код для Tradestation

//***********************************************

//

//www.kjtradingsystems.com

//Risk Protection Study

//Kevin Davey - Risk Protection #2 - Delayed Signal After Loss

//kdavey@kjtradingsystems.com

//

//***********************************************

//

input: lookback(10),stopATR(2),NextTradeDelay(1);

var:CanTrade(True);

CanTrade=True;

If (positionprofit(1)<0 and barssinceexit(1)<NextTradeDelay) then CanTrade=False;

If CanTrade=True then begin

If close crosses above close[lookback] and close crosses below close[.5*lookback] then buy next bar at market;

If close crosses below close[lookback] and close crosses above close[.5*lookback] then sellshort next bar at market;

var:NewStop(3000);

NewStop=StopATR*AvgTrueRange(14)*BigPointValue;

If NewStop>3000 then NewStop=3000;

If StopATR<>0 then SetStopLoss(NewStop);

end;

 

Результаты

 

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

 

image.png.a073776a727702fb8dc29aec5222166e.png

Рисунок 24. Влияние задержки открытия последующих сделок после убытка

 

Показатель производительности

Исходный результат

Задержка входа (оптимальное значение = 10 баров)

Чистая прибыль

$ 40 030

$ 39 445

Количество сделок

92

89

Средняя доходность на счете

280,7%

256%

Процент времени пребывания в рынке

34,1%

32,0%

Макс. просадка (в закрытых сделках)

-$ 14 260

-$ 15 400

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

 

Рекомендации

 

Этот вид защиты от рисков действительно подходит для стратегий, где существует вероятность получения многих последовательных убытков. Хорошим примером может служить стратегия контртрендовой торговли. Как и в случае любого метода защиты от рисков, лучше включить это правило в стратегию ПЕРЕД ТЕМ, как проводить бэктестирование. Добавление данного правила после того, как вы увидите первоначальные результаты, по сути, является обманом бэктеста.

 

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

 

Защита от рисков №3. Не оставлять открытые сделки на выходные дни

 

Представьте, что одна из ваших алгоритмических стратегий торгует на рынке сырой нефти. В пятницу, 6 марта 2020 года, ближе к концу дня вы открываете длинную позицию по цене примерно 41,57. Несмотря на то, что в тот день нефть упала примерно на $ 5 за баррель, вы чувствуете себя хорошо, потому что в выходные дни с нефтью могут произойти всевозможные бычьи события.

 

Но эти выходные стали исключением из правила. Коронавирус (Covid-19) становится гораздо более заметной новостной темой, а Россия и Саудовская Аравия вступают в своего рода ценовую войну за нефть, удешевляя ее. В ночь на воскресенье цена на нефть обваливается, и в понедельник рынок открывается на уровне 32,87, падает более чем на 20%, или на $ 8 700 за контракт.

 

Вы говорите себе: «Больше никогда не буду оставлять открытые позиции на выходные дни!» Этот код поможет вам закрывать все открытые позиции перед выходными днями.

 

Код простыми словами

 

Закрывайте все свои позиции в 16:00 по восточному времени в пятницу. И не открывайте никаких новых сделок.

 

Код для Tradestation

//**************************************************

//

//www.kjtradingsystems.com

//Risk Protection Study

//Kevin Davey - Risk Protection #3 - No Weekends

//kdavey@kjtradingsystems.com

//

//*************************************************

//

input: lookback(10),stopATR(2),FridayStoptime(1600);

var:CanTrade(True);

CanTrade=True;

If dayofweek(date)=5 and time>=1600 then CanTrade=False;

If CanTrade=True then begin

If close crosses above close[lookback] and close crosses below close[.5*lookback] then buy next bar at market;

If close crosses below close[lookback] and close crosses above close[.5*lookback] then sellshort next bar at market;

var:NewStop(3000);

NewStop=StopATR*AvgTrueRange(14)*BigPointValue;

If NewStop>3000 then NewStop=3000;

If StopATR<>0 then SetStopLoss(NewStop);

end;

If CanTrade=False then begin

Sell ("Friday-L Exit") next bar at market;

BuyToCover ("FridayL-S Exit") next bar at market;

end;

 

Это позволит вам выйти из рынка (закрыть все свои открытые позиции) в пятницу днем, если только пятница не является праздничным днем, укороченной сессией или если вы используете внутридневной таймфрейм или такой таймфрейм, бары которого не имеют времени окончания в 16:00. В этих случаях вам придется внести корректировки в код.

 

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

 

Результаты

Ужас! 

image.png.d4d780ff29a79c5c720b343d5a299ba7.png

Рисунок 26. Закрытие всех сделок перед выходными

 

Закрытие всех сделок перед выходными оказывает негативное влияние на производительность торговли на сырой нефти:

 

Показатель производительности

Исходный результат

Без удержания позиций в выходные (выход в 16:00 в Пт)

Чистая прибыль

$ 40 030

$ 10 585

Количество сделок

92

107

Средняя доходность на счете

280,7%

82,1%

Процент времени пребывания в рынке

34,1%

8,2%

Макс. просадка (в закрытых сделках)

-$ 14 260

-$ 12 860

Рисунок 27. Влияние закрытия всех сделок перед выходными (зеленый цвет означает улучшение)

 

Максимальная просадка уменьшилась, и вы намного меньше времени находитесь в рынке (что само по себе хорошо), но при этом теряете почти 75% прибыли. Очевидно, что для этой стратегии/рынка торговая идея «не оставлять открытые сделки на выходные дни» является финансово невыгодной.

 

Рекомендации

 

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

 

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

 

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

 

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

 

Защита от рисков №4. Если вы не выдерживаете жар, выйдите из кухни

 

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

 

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

 

image.png.ae567e7bcc1f17c52222a0f23bba3ca0.png

 

image.png.97fccfb9f9077b29c3b556cfc5bef970.png

Рисунок 28. Влияние включения/выключения переключателя волатильности на результаты

 

image.png.12d27a8226479c4b0cc82e470f34643b.png

Рисунок 29. Кривые капитала при выключении и включении переключателя волатильности 

 

Так что этот аварийный выключатель высокой волатильности стоит протестировать. Давайте посмотрим, как он работает на стратегии торговли на сырой нефти.

 

Код простыми словами

 

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

 

Код для Tradestation

//**************************************************

//

//www.kjtradingsystems.com

//Risk Protection Study

//Kevin Davey - Risk Protection #4 - High Volatility "Kill" Switch

//kdavey@kjtradingsystems.com

//

//**************************************************

//

input: lookback(10),stopATR(2),ATRMult(1600);

var:CanTrade(True);

//switch criteria

CANTRADE=TRUE;

If TrueRange>ATRMult*AvgTrueRange(5) then CANTRADE=FALSE;

If CanTrade=True then begin

If close crosses above close[lookback] and close crosses below close[.5*lookback] then buy next bar at market;

If close crosses below close[lookback] and close crosses above close[.5*lookback] then sellshort next bar at market;

var:NewStop(3000);

NewStop=StopATR*AvgTrueRange(14)*BigPointValue;

If NewStop>3000 then NewStop=3000;

If StopATR<>0 then SetStopLoss(NewStop);

end;

If CanTrade=False then begin

Sell ("Vol-L Exit") next bar at market;

BuyToCover ("Vol-S Exit") next bar at market;

end; 

 

Результаты

 

Я оптимизировал результаты для разных коэффициентов ATR, и оптимальный вариант оказался лучше базового.

 

image.png.611f5c12c2eb43742a541fbc98e3af04.png

Рисунок 30. Переключатель волатильности: оптимальный вариант лучше базового

 

Показатель производительности

Исходный результат

Результат с аварийным выключателем (оптимизирован с ATR Mult=3)

Чистая прибыль

$ 40 030

$ 44 125

Количество сделок

92

99

Средняя доходность на счете

280,7%

319,1%

Процент времени пребывания в рынке

34,1%

29,1%

Макс. просадка (в закрытых сделках)

-$ 14 260

-$ 13 830

Рисунок 31. Переключатель волатильности (зеленый цвет означает улучшение)

 

Но если коэффициент ATR слишком мал (это означает, что аварийный выключатель более активный/чувствительный), то производительность может быстро ухудшиться. Таким образом, как и всё остальное, что вы оптимизируете, это говорит о наличии тонкой грани между успехом и неудачей.

 

Рекомендации

 

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

 

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

 

Чит-коды для алгоритмической торговли

  • 4 уникальные идеи, которые могут снизить риск системы алгоритмической торговли:

  1. Ограничитель внутридневных убытков

  2. Задержка входа в рынок после убыточной сделки

  3. Не оставлять открытые позиции на выходные дни

  4. Аварийный выключатель, срабатывающий при высокой волатильности

  • Эти 4 идеи можно использовать по отдельности или вместе, в зависимости от ваших целей

  • Не ждите, что они сами по себе улучшат прибыльность ваших стратегий, но они могут улучшить прибыльность ваших стратегий с учетом риска

  • Эти методы помогут вам психологически, и это само по себе делает их стоящими

  • Если вы хотите добавить их в свою стратегию, помните:

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

 

Б. Убедитесь, что вы правильно разработали и протестировали свою стратегию (процесс Strategy Factory [«Фабрики стратегий»] идеально подходит для этого)

 

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

 

Изменено 29 мая, 2025 пользователем ju.vskv

Автор#8

image.thumb.png.97675f2fd1db96b59fd768f49a4af98a.png

 

ГЛАВА 7

ТОРГОВЛЯ НА БЫЧЬЕМ/МЕДВЕЖЬЕМ РЫНКЕ

 

Когда дело доходит до вечеринок, у нас с женой Эми разная философия. Если хозяин говорит, что вечеринка с 18:00 до 23:00, я предпочитаю приходить к 18:00 и уходить перед 23:00. Эми же обычно приходит к 19:00 и остается там до полуночи.

 

Я боюсь пропустить нечто раннее – она боится пропустить более позднее веселье. Вот такая мы пара! Недавно я думал об этом, размышляя над алгоритмом касательно тайминга рынка (выбора времени входа в рынок).

 

Все хотят запрыгнуть в бычий тренд в самом начале и прокатиться на нем до конца. Когда вы смотрите на график постфактум, это выглядит ТАК ЛЕГКО. Просто покупайте в начале бычьего тренда и продавайте в конце. Или продавайте в начале медвежьего тренда и покупайте в конце. Проще простого!!!

 

image.png.fa055574dc34495f43593a5511fc5932.png

Рисунок 32. Торговать этот тренд легко, не так ли?

 

Маг рынка доктор Ван Тарп (у которого я многому научился и с которым обычно соглашаюсь во многих вопросах) делит рынки на 3 вида:

  • Бычий рынок

  • Медвежий рынок

  • Плоский рынок

И в рамках каждого вида рынка он определяет 2 основные характеристики:

  • Волатильный рынок

  • Неволатильный рынок

 

image.png.3daeb0f02885d760363b5de78ca5b468.png

Рисунок 33. Волатильные и неволатильные периоды рынка

 

Таким образом, когда вы учитываете все комбинации, то получаете 6 уникальных видов рынка. Это вполне логично.

 

В основе всех этих видов лежит следующая теория:

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

 

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

 

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

 

image.png.7c6badd78fdb016d2c8bf359ac382470.png

Рисунок 34. Они вошли в тренд слишком рано или опоздали на него?

 

Именно здесь заключается вся сложность торговли в «бычьем/медвежьем» рынке. Успешная торговля в рыночном режиме зависит от наличия надежного плана/метода идентификации рыночного режима в реальном времени.

 

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

 

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

 

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

 

Часть 1. Торговля на бычьем, медвежьем и плоском рынке

Часть 2. Улучшенная торговля на бычьем, медвежьем и плоском рынке

Часть 3. Торговля на волатильном и неволатильном рынке

Часть 4. Торговля на бычьем, медвежьем и плоском рынке, а также на волатильном и неволатильном рынке – на всех 6 комбинациях

 

Часть 1. Торговля на бычьем, медвежьем и плоском рынке

 

Цель этого исследования состоит не в том, чтобы создать завершенную, готовую к торговле стратегию, а в том, чтобы выяснить, стоит ли рассматривать только длинные сделки на бычьем рынке и только короткие сделки на медвежьем.

 

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

 

Другими словами, вы должны будете провести ГОРАЗДО больше тестов! Но это хорошо: не верьте мне на слово, протестируйте и проверьте всё сами – именно так делают хорошие алготрейдеры.

 

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

 

Итак, почему бы не создать несколько разных стратегий для каждого рынка? Бычью стратегию для бычьих рынков, медвежью стратегию для медвежьих рынков и стратегию «оставаться вне рынка» для плоских рынков?

 

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

 

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

 

image.png.1b830bb62daeca48b8c1dcf15c0e081f.png

Рисунок 35. Является ли сплошная кривая лучшей моделью или это просто подгонка данных?

 

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

 

Но как насчет следующих нескольких точек данных, которые не показаны на кривой? Какая кривая будет лучше «прогнозировать» эти точки? Если бы я только начал разрабатывать торговые стратегии, я бы сказал, что лучшей является сплошная кривая. Но после многих лет наблюдений и создания алгоритмических торговых систем с подгонкой данных я предпочту более простую пунктирную кривую.

 

Простые модели работают лучше, чем сложные, по крайней мере, в трейдинге.

 

Итак, приступая к этому исследованию, должен сказать, что я не являюсь большим поклонником торговли в бычьих/медвежьих рыночных режимах – это добавляет сложности в торговые модели и может принести больше вреда, чем пользы. Быть может, по мере проведения этого исследования я изменю свою точку зрения.

 

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

 

Основные стратегии для этого исследования

 

Для этого проекта я буду использовать 4 основные стратегии, а также изменю логику каждой из них на противоположную, что в общей сложности даст 8 стратегий. Это просто «тестовые» стратегии, они не обязательно будут хорошими или плохими.

 

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

 

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

 

Стратегия №3 – это стратегия торговли по индикатору RSI. Если RSI пересекает сверху вниз 30-й уровень (актив перекуплен), то покупайте рыночным ордером по цене открытия следующего бара. Если RSI пересекает снизу вверх 70-й уровень (перепродан), то продавайте рыночным ордером по цене открытия следующего бара. 

 

Стратегия №4 – это обратная стратегия торговли по индикатору RSI. Если RSI пересекает сверху вниз 30-й уровень (актив перекуплен), то продавайте рыночным ордером по цене открытия следующего бара. Если RSI пересекает снизу вверх 70-й уровень (перепродан), то покупайте рыночным ордером по цене открытия следующего бара. Пример кода для Tradestation представлен ниже.

 

image.png.43a96eb39a5986e0ac608c0e3cd7ba08.png

Рисунок 36. Тестовая стратегия №4

 

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

 

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

 

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

 

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

 

Обратите внимание, что каждая из этих основных стратегий является довольно распространенным торговым подходом. Я выбрал их, потому что они являются простыми и достаточно известными. Каждая из этих стратегий имеет один параметр, который можно оптимизировать – период ретроспективного анализа X. Для оптимизации я буду использовать значения 10, 30 или 50 баров.

 

Фильтры для определения бычьего/медвежьего/плоского рынка, применяемые в этом исследовании

 

Есть огромное количество различных фильтров для определения бычьего/медвежьего рынка, которые можно протестировать. Я выбрал 6 (один из них – «торгую всегда» [“always trading”]).

 

Фильтр №1. Фильтр «торгую всегда». Разрешает открывать длинные и короткие сделки без ограничений.

 

Фильтр №2. Фильтр, основанный на скользящей средней. Разрешает открывать длинные сделки только тогда, когда цена закрытия текущего бара выше среднего значения цен закрытия последних InputVar4 баров. Для открытия коротких сделок применяйте противоположные условия. Это фильтр для определения бычьего или медвежьего рынка. Ниже в качестве примера показан код для Tradestation.

 

image.png.64cd6a014f07fe8b85647c3c6234496b.png

Рисунок 37. Пример фильтра

 

Фильтр №3. Фильтр, основанный на импульсе. Разрешает открывать длинные сделки только тогда, когда цена закрытия текущего бара находится выше цены закрытия последних InputVar4 баров. Для открытия коротких сделок применяйте противоположные условия. Это фильтр для определения бычьего или медвежьего рынка. 

 

Фильтр №4. Фильтр, определяющий, что появилось первым: максимум или минимум. Появился ли самыйвысокий максимум среди последних InputVar4 баров позже, чем самый низкий минимум? Если это так, то открывайте только длинные сделки. Для открытия коротких сделок применяйте противоположные условия. Это фильтр для определения бычьего или медвежьего рынка. 

 

Фильтр №5. Фильтр, основанный на индикаторе ADX. Разрешает совершать сделки только в том случае, если в течение последних InputVar4 баров ADX выше 15. Это значение говорит о слабом тренде. Если ADX ниже 15, то рынок торгуется во флэте. Это фильтр для определения направленного и плоского рынка.

 

Фильтр №6. Фильтр, основанный на индикаторе RSI. Если в течение последних InputVar4 баров индикатор RSI находится ниже 70-го уровня, разрешается открывать только длинные сделки. Если в течение последних InputVar4 баров индикатор RSI находится выше 30-го уровня, разрешается открывать только короткие сделки. Это фильтр для определения бычьего или медвежьего рынка. 

 

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

 

В рамках этого исследования я протестирую разные значения переменной InputVar4. Поскольку сигналы основной стратегии используют краткосрочные значения (от 10 до 50 баров), для данных фильтров я буду использовать более долгосрочные значения переменной InputVar4: 100, 150 и 200 баров.

 

Рынки и таймфреймы для этого исследования

 

Я протестирую эти стратегии на 40 различных фьючерсных рынках с непрерывными контрактами:

@AD, @BO, @BP, @C, @CC, @CD, @CL, @CT, @DX, @EC, @EMD, @ES, @FC, @FV, @GC, @HG, @HO, @JY, @KC, @KW, @LC, @LH, @NG, @NK, @NQ, @O, @OJ, @PL, @RB, @RR, @S, @SB, @SF, @SI, @SM, @RTY, @TY, @US, @W, @YM

 

Я также протестирую их на 5 таймфреймах:

дневном, 720-минутном, 360-минутном, 120-минутном и 60-минутном таймфреймах.

 

Дополнительная информация об исследовании

 

Данное исследование будет проведено в диапазоне 10-летнего периода: с января 2009 года по декабрь 2018 года.

 

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

 

Итого мы имеем:

40 рынков

5 таймфреймов

8 стратегий

3 значения параметра X для каждой стратегии

6 фильтров для определения бычьего/медвежьего рынка

3 значения периода ретроспективного анализа InputVar4 для каждого фильтра

 

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

 

На помощь придет Multi-Opt, специальный программный инструмент, разработанный исключительно для платформы Tradestation. Он доступен только для моих учеников воркшопа Strategy Factory («Фабрика стратегий») и был создан одним из моих учеников. Этот софт позволяет быстро тестировать и создавать прототипы стратегий – и это лишь один из многих вариантов экономии времени, которые он выполняет. 

 

В этом проекте Multi-Opt будет моим виртуальным помощником. В противном случае данное исследование займет дни или недели! С помощью софта Multi-Opt, платформы Tradestation 9.5 и ноутбука 2-летней давности каждая часть исследования занимает около 7 часов.

 

Результаты

 

Во-первых, прилагаю наглядный пример того, что фильтр делает со стратегией. На верхнем графике представлена стратегия без применения фильтра определения режима тренда – она может открывать как длинные, так и короткие сделки в любое время, без ограничений.

 

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

 

image.png.4703c253de21abcca0b4cc7effbd1996.png

 

image.png.1a4957deb8df4e72efd3266c4f2ab2c9.png

Рисунок 38. Сделки с фильтром определения режима тренда и без него

 

При таком большом количестве рынков, таймфреймов и т.д., очевидно, что даже анализ результатов может быть крайне трудоемким.

 

Следовательно, я рассматриваю только 2 показателя производительности:

Общая чистая прибыль

Максимальная внутридневная просадка

 

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

 

Итак, начнем анализ результатов.

 

Во-первых, давайте посмотрим, какое влияние оказали фильтры определения режима рынка:

 

image.png.83550c3fb940c1ee7cea82d6ddff7616.png

Рисунок 39. Результаты, полученные с применением фильтров определения режима рынка

 

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

 

Фильтр №1 – это результаты торговли базовой стратегии, когда фильтр вообще не применялся и в рамках торговой стратегии совершались все сделки. В целом результат плохой.

 

Фильтры №2–№5 показывают резкое улучшение средней чистой прибыли по сравнению с базовым уровнем, а также значительное снижение максимальной просадки. Это говорит о том, что фильтры работают в некоторых ситуациях.

 

Фильтр №6 показывает в основном отсутствие изменений по сравнению с исходным уровнем. Предполагаю, что он практически не выполняет своей функции фильтра.

 

Возможно, средние значения обманчивы и, вероятнее всего, искажаются несколькими стратегиями. Давайте посмотрим на результаты каждой стратегии:

 

image.png.7878d33d7df158e444bef5e24dd2786a.png

image.png.ae989d7aab255fce37700350b01e8b2c.png

Рисунок 40. Результаты по каждой стратегии

 

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

 

Результаты очевидны: фильтры №2–№5 снижают чистую прибыль и уменьшают максимальную просадку для каждой из 8 стратегий. В некоторых стратегиях это влияние незначительное (например, в стратегии №4) – в других стратегиях оно очень сильное (например, в стратегии №8).

 

Это говорит нам о том, что применение фильтров для определения бычьего/медвежьего режима рынка является хорошей идеей!

 

Используя фильтры №2, №3 и №4, открывайте длинные трендовые сделки только тогда, когда индикатор долгосрочного тренда указывает на бычий рынок. Используйте фильтр №5 в качестве индикатора наличия/отсутствия тренда на рынке.

 

Самое удивительное то, что не имеет большого значения, какой фильтр используется – их результаты более или менее одинаковы. Может быть, все эти фильтры улавливают одни и те же большие тренды?

 

А что насчет периода ретроспективного анализа фильтра, значения которого в тесте устанавливались от 100 до 200 баров? Играет ли роль значение этой переменной?

 

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

 

image.png.dab37ceae1bfafe6a6e37518aa6fccd6.png

Рисунок 41. Выделенные результаты показывают лучшую производительность

 

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

 

Обратите внимание, что это не 200 «дней», за исключением дневного таймфрейма. Например, для 60-минутного графика это означает 200 60-минутных баров.

 

Какие выводы мы можем сделать на этом этапе?

 

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

 

Общие выводы на этом этапе таковы:

  • Фильтры для определения бычьего/медвежьего рынка на основе тренда в среднем улучшают чистую прибыль и уменьшают просадку

  • Для фильтров, которые работают, нет большой степени вариации между лучшими и худшими фильтрами

  • Чем длиннее период ретроспективного анализа фильтра, тем лучше результаты

Итак, если бы я включил фильтр определения бычьего/медвежьего тренда в свое тестирование, я бы кодировал его так (на примере фильтра №3, основанного на импульсе):

 

Variables: CanTradeLong(False), CanTradeShort(False);

CanTradeLong = False;

CanTradeShort = False;

If close> close [200] Then CanTradeLong = True;

If close <close [200] Then CanTradeShort = True;

if CanTradeLong = True and {my long entry rule} then buy next bar at market;

if CanTradeShort = True and {my short entry rule} then sellshort next bar at market;

 

Небольшое вдохновение для вас

 

В качестве примера возможного улучшения стратегии с помощью фильтра определения режима тренда предлагаю вашему вниманию стратегию №4 на 120-минутном графике серебра с включенным фильтром №3 и без него.

 

image.png.151ed9b7fafc3f7ea5d607fd0def8684.png

Рисунок 42. Улучшение результатов торговой стратегии с применением фильтра определения режимов рынка

 

Разница существенная! После проведения этого первоначального исследования у меня остались некоторые вопросы, которые немного меня беспокоили. Какое влияние оказывает добавление флэт-режима, чтобы вместо определения только бычьих/медвежьих режимов рынка определять бычий/медвежий/флэт режимы? И почему фильтр №6 (фильтр, основанный на индикаторе RSI) не дал никаких результатов?

 

Ниже мы обсудим эти вопросы.

 

Часть 2. Улучшенная торговля на бычьем, медвежьем и плоском рынках

 

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

 

Второй темой, которую я хотел изучить, был фильтр для определения трендов, основанный на индикаторе RSI. В Части 1 я обнаружил, что этот фильтр – фильтр №6 – не дал никаких результатов. Этот вопрос требует дальнейшего изучения.

 

Поэтому сначала я займусь второй темой. В Части 1 у меня был фильтр №6 – простой фильтр, основанный на индикаторе RSI. Он практически не показал никаких изменений. Почему?

 

Вот его определение: 

 

Фильтр №6. Фильтр, основанный на индикаторе RSI. Если в течение последних Y баров индикатор RSI находится ниже 70-го уровня, разрешается открывать только длинные сделки. Если в течение последних Y баров индикатор RSI находится выше 30-го уровня, разрешается открывать только короткие сделки. Это фильтр для определения бычьего или медвежьего рынка. 

 

Когда я добавлял его, я особо не вникал в детали и просто использовал уровни перекупленности и перепроданности – 30-й и 70-й, полагая, что это сработает.

 

Но не так быстро, друг мой!

 

Оказывается, когда вы рассчитываете RSI с периодом от 100 до 200 баров, его значение редко, если вообще когда-либо, поднимается выше 70-го или опускается ниже 30-го уровня. Рассмотрим пример ниже:

 

image.png.33b0ad253c6b60e24368f15ac6529fba.png

Рисунок 43. RSI со значением периода от 100 до 200 баров редко поднимается выше 70-го или опускается ниже 30-го уровня

 

Таким образом, это объясняет, почему данный фильтр оказался бесполезным. И самое плохое, что для Части 2 данного исследования я изначально использовал такие вариации RSI для новых фильтров №5 и №6. И они либо не фильтруют сигналы, либо полностью отфильтровывают их (вообще не генерируют сделки!).

 

Следовательно, я исключаю фильтр для определения трендов, основанный на RSI. Я, вероятно, мог бы поиграть с ним и заставить его работать, но я всегда опасаюсь заставлять что-либо работать. Излишние усилия обычно приводят к подгонке и переподгонке кривой.

 

В Части 1 достаточно хорошо работали фильтр, основанный на скользящей средней (№2); фильтр, основанный на импульсе (№3); фильтр, определяющий, что появилось первым: максимум или минимум (№4); и фильтр, основанный на индикаторе ADX (№5); при этом фильтр, основанный на индикаторе ADX, продемонстрировал лучшие результаты.

 

Для этой части исследования я буду использовать фильтр, основанный на импульсе (№3), который показал среднюю производительность среди всех фильтров.

 

Почему бы просто не использовать лучший фильтр (фильтр №5, основанный на индикаторе ADX)? Ну, помните, что цель данного исследования состоит не в том, чтобы найти лучший фильтр для определения рыночных трендов, а в том, чтобы посмотреть, как эта концепция работает в целом на многих рынках и на многих таймфреймах. Думаю, что использование фильтра средней производительности может дать мне более глубокое представление о будущей производительности. Естественно, я могу ошибаться! 

 

При этом мы рассмотрим фильтры-кандидаты для исследования в Части 2. У нас будет 4 фильтра, которые мы условно назовем «импульсными» фильтрами:

 

Импульсный фильтр №1. Фильтр «торгую всегда». Разрешает открывать длинные и короткие сделки без ограничений. Он эквивалентен (или очень близок) фильтру №1 в Части 1.

 

Импульсный фильтр №2. Фильтр, основанный на импульсе. Разрешает открывать длинные сделки только тогда, когда цена закрытия текущего бара находится выше цены закрытия последних Y баров. Для открытия коротких сделок применяйте противоположное условие. Это фильтр для определения бычьего или медвежьего рынка. Он эквивалентен (или очень близок) фильтру №3 в Части 1.

 

Импульсный фильтр №3. Двойной фильтр, основанный на импульсе. Разрешает открывать длинные сделки только тогда, когда цена закрытия текущего бара находится выше цены закрытия последних Y баров И если цена закрытия текущего бара находится выше цены закрытия последних Y/2 баров. Для открытия коротких сделок применяйте противоположные условия. Этот фильтр будет нейтральным при наличии противоречий между краткосрочным и долгосрочным импульсом.

 

Фильтр №4. Фильтр, основанный на индикаторе ADX. Разрешает открывать длинные сделки только тогда, когда цена закрытия текущего бара находится выше цены закрытия последних Y баров И если ADX выше 15 (что означает наличие тренда). Для открытия коротких сделок применяйте противоположные условия. Этот фильтр будет нейтральным, когда ADX будет ниже 15 (отсутствие тренда на рынке).

 

На рисунках ниже показаны примеры всех 4 случаев. Это дает представление о том, насколько избирательны эти фильтры. 

 

image.png.3bc6c844471d1cb6e85ca0fd218e44e0.png

 

image.png.e4e221aec7667f4b11259575be386762.png

image.png.69e7f0e2e4f7ceec9f197602cb68824f.png

 

image.png.2ac527e95d43ced44361f21f4ae4bc29.png

 

image.png.b1178d29873816e581ffac19c3644514.png

Рисунок 44. Импульсные фильтры

 

Вот результаты торговли для разных импульсных фильтров:

 

image.png.9b5ec6e9aeff90ca07abc0328bd9e982.png

 

Рисунок 45. Влияние импульсных фильтров

 

Импульсные фильтры №3 и №4 (которые помимо бычьих и медвежьих рынков также распознают «плоский» рынок) демонстрируют лучшую производительность. Как чистая прибыль, так и максимальная просадка улучшились примерно на 60%. Это довольно хорошее значение улучшения производительности.

 

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

 

image.png.f7e9e598536de5612220557eec225445.png

Рисунок 46. Импульсные фильтры для всех стратегий

 

Если копнуть немного глубже, то влияние различных фильтров лучше всего можно увидеть по среднему количеству сделок. По сравнению с выключенным фильтром (импульсным фильтром №1) многие сделки отфильтровываются с помощью импульсного фильтра №4. Пример приведен ниже. 

 

При отсутствии фильтрации сделок данная стратегия открывает 1153 сделки. Довольно много!

 

image.png.7b95e11dafaee71f49969786d73275d7.png

Рисунок 47. Количество сделок без применения фильтра

 

После фильтрации сделок с помощью импульсного фильтра №4 количество сделок падает до 18: 

 

image.png.c1544dbdb866816a08121ff4887793b2.png

Рисунок 48. Количество сделок после применения фильтра

 

Это довольно типично. Фильтры удаляют многие сделки, особенно импульсный фильтр №4.

 

image.png.044d2848750567143445cd9cfe8201d8.png

Рисунок 49. Влияние фильтров на количество сделок

 

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

 

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

 

Общие результаты 

 

Я был немного удивлен тем, что добавление «плоского» рыночного периода к бычьему/медвежьему периоду ненамного улучшило результаты. Импульсный фильтр №4 принес довольно много улучшений, но малое количество сделок заставляет меня задуматься. Я был склонен использовать импульсный фильтр №3: он снижает количество сделок, но также оставляет многие из них.

 

Должен отметить, что я «всегда был в рынке», даже при включении фильтра для определения плоского режима рынка. Вот объяснение:

 

На бычьем рынке можно открывать только длинные сделки и одновременно закрывать короткие

На медвежьем рынке можно открывать только короткие сделки и одновременно закрывать длинные

На плоском (флэтовом) рынке система не открывает и не закрывает сделки в течение периода флэта

 

Такой подход не мешает совершать сделки во флэте, просто в эти периоды ограничивается открытие новых сделок. Это своего рода «наполовину флэт»!

 

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

 

image.png.f6e049f50e2b60ae0a89088087cdf477.png

 

image.png.fd1aab586c91d0dc3ee8bea596109007.png

Рисунок 50. Сравнение старых и новых фильтров

 

Для фильтра №2 результаты получились практически одинаковыми, для фильтра №3 – смешанными (более низкая прибыль, но также более низкая просадка), а для фильтра №4 – лучшими (но после фильтра №4 было не так много сделок). Таким образом, ничего определенного здесь нет – результаты, похоже, зависят от фильтра, а не являются однозначно хорошими или плохими.

 

Заключение по Части 2 

 

Если посмотреть на чистую прибыль, то оба фильтра №4 демонстрируют лучшие результаты.

 

image.png.50ac45cc3130fbb55f81547511b974ce.png

Рисунок 51. Комбинации с импульсным фильтром №4 работают лучше всего

 

Но они генерируют мало сделок, поэтому считаются подозрительными. Таким образом, мы получаем следующее:

 

image.png.779becf16581c3e30088ee08b20be2f6.png

 

image.png.ee7d2af05e88eb34746d95684af4fedc.png

Рисунок 52. Лучшими являются комбинации фильтра №3

 

Эти данные не окончательные, поскольку фильтр, дающий лучшие показатели чистой прибыли, не даёт самых низких просадок. Если вы хотите получить лучшую чистую прибыль, то для этого больше подойдет импульсный фильтр №3 (двойной импульсный фильтр), а если вашей целью является низкая просадка, то, вероятно, лучше подойдет тот же фильтр с закрытием всех сделок в периоды флэтового рынка.

 

Ключевые выводы данного исследования на этом этапе

 

1. Торговая стратегия с фильтрами для определения бычьего/медвежьего/плоского рынка работает лучше, чем без фильтров.

2. При таких различных результатах работы фильтров важно тестировать их в контексте конкретной стратегии.

 

Лучший способ верификации моей работы – это взять мои идеи, добавить их в свои стратегии и протестировать их. И далее посмотреть, какие из них работают у вас, а какие нет. Данное исследование не предназначено для «использования XXXX в качестве фильтра» или чего-либо подобного. Скорее, оно заключается в том, чтобы дать вам идеи и концепции, которые вы могли бы включить в ваш собственный алгоритм торговли. Именно в этом заключается их реальная польза.

 

Теперь мы сделаем небольшое отступление и вместо фильтров для определения бычьих/медвежьих периодов рынка применим фильтры для определения волатильных/неволатильных периодов рынка. Существует несколько подходов к анализу объема и волатильности.

 

Некоторые трейдеры считают, что если объем превышает нормальные значения, это указывает на то, что на рынке происходит нечто значимое. Логика такова: если торгует очень много людей, значит, ожидается какое-то значительное ценовое движение. И это отличное время для совершения сделок!

 

Естественно, есть и противоположная точка зрения. Объем ниже среднего может сигнализировать о нерешительности и неопределенности на рынке. Это может быть перед взрывным движением. Итак, является ли низкий объем лучшим временем для торговли?

 

Я не знаю ответа, хотя скажу, что исходя из моего опыта, «торговля на сетапах с низкими объемами» обычно приносит лучшие результаты. Но, возможно, это просто результаты именно моего тестирования, я не знаю. Итак, я протестирую подходы как с высоким, так и с низким объемом.

 

Подобная дилемма существует и в отношении волатильности, которую я буду измерять с помощью среднего истинного диапазона (ATR).

 

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

 

Я собираюсь протестировать 9 различных фильтров (буду называть их фильтрами волатильности и объема):

 

Фильтр волатильности и объема №1

Всегда разрешает открывать все сделки (отсутствие фильтра, применяемого к базовой стратегии)

 

Фильтр волатильности и объема №2

Разрешает открывать сделки только в том случае, если ATR (средний истинный диапазон) с периодом 1 бар ВЫШЕ среднего значения ATR за последние 100, 150 или 200 баров

 

Фильтр волатильности и объема №3

Разрешает открывать сделки только в том случае, если ATR (средний истинный диапазон) с периодом 1 бар НИЖЕ среднего значения ATR за последние 100, 150 или 200 баров

 

Фильтр волатильности и объема №4

Разрешает открывать сделки только в том случае, если объем на текущем баре ВЫШЕ среднего объема за последние 100, 150 или 200 баров

 

Фильтр волатильности и объема №5

Разрешает открывать сделки только в том случае, если объем на текущем баре НИЖЕ среднего объема за последние 100, 150 или 200 баров

 

Фильтры №6–№9 представляют собой комбинированные фильтры, включающие как объем, так и волатильность:

 

Фильтр волатильности и объема №6

Разрешает открывать сделки только в том случае, если ATR (средний истинный диапазон) с периодом 1 бар ВЫШЕ среднего значения ATR за последние 100, 150 или 200 баров И если объем на текущем баре ВЫШЕ среднего объема за последние 100, 150 или 200 баров

 

Фильтр волатильности и объема №7

Разрешает открывать сделки только в том случае, если ATR (средний истинный диапазон) с периодом 1 бар ВЫШЕ среднего значения ATR за последние 100, 150 или 200 баров И если объем на текущем баре НИЖЕ среднего объема за последние 100, 150 или 200 баров

 

Фильтр волатильности и объема №8

Разрешает открывать сделки только в том случае, если ATR (средний истинный диапазон) с периодом 1 бар НИЖЕ среднего значения ATR за последние 100, 150 или 200 баров И если объем на текущем баре ВЫШЕ среднего объема за последние 100, 150 или 200 баров

 

Фильтр волатильности и объема №9

Разрешает открывать сделки только в том случае, если ATR (средний истинный диапазон) с периодом 1 бар НИЖЕ среднего значения ATR за последние 100, 150 или 200 баров И если объем на текущем баре НИЖЕ среднего объема за последние 100, 150 или 200 баров

В общей сложности мы откроем 129 600 уникальных сделок.

 

Результаты

image.png.f46719db9e2e7ab4f3e1254ac753051a.png

Рисунок 53. Результаты применения фильтров волатильности и объема (зеленый/серый цвет означает лучшие показатели)

 

Для большинства фильтров данные результаты являются немного ошеломляющими.

 

Для фильтров №2 и №3 и фильтров, основанных на среднем истинном диапазоне, чистая прибыль ухудшилась, а максимальная просадка мало изменилась.

 

Для фильтров №4 и №5 и фильтров, основанных на объеме, чистая прибыль ухудшилась, но максимальная просадка несколько уменьшилась.

 

Для всех 4 фильтров недостаточно доказательств, чтобы можно было сказать, что мы нашли Святой Грааль. :( :(

 

Что же касается комбинированных фильтров №6–№9, фильтры №7 и №8 повысили чистую прибыль и уменьшили максимальную просадку. Эти фильтры также генерируют гораздо меньше сделок по сравнению с базовой стратегией. Это говорит о том, что данные фильтры делают свою работу и уменьшают количество плохих сделок.

 

image.png.4643dcf95c489cfa28f227d64d4de677.png

Рисунок 54. Влияние фильтров волатильности и объема на количество сделок

 

Самым интересным в фильтрах №7 и №8 является то, что они противоположны друг другу, но при этом оба хорошо работают. Фильтр №7 разрешает открывать сделки в условиях высокой волатильности и низких объемов. Фильтр №8 разрешает открывать сделки в условиях более низкой волатильности и более высоких объемов. 

 

Вот результаты выборки с включенными фильтрами №7 и №8:

 

image.png.d2c48340cc66881e396636306cf5b95e.png

 

image.png.8166fda54eee1b75dcc7ab20cb9fb3b7.png

 

image.png.b427e3516b592457886d40b706cd8142.png

 

image.png.6b18967a2c06030f938476b81ef7ee64.png

Рисунок 55. Результаты выборки с применением фильтров волатильности и объема

 

Естественно, бывают случаи, когда фильтры ухудшают ситуацию, но, основываясь на общих цифрах, в БОЛЬШИНСТВЕ случаев применение фильтров №7 или №8 должно повышать производительность.

 

Что бы я протестировал, основываясь на тестах волатильности и объема?

 

Я бы протестировал стратегии со следующими фильтрами:

 

Фильтр волатильности и объема №7

Разрешает открывать сделки только в том случае, если ATR (средний истинный диапазон) с периодом 1 бар ВЫШЕ среднего значения ATR за последние 100, 150 или 200 баров И если объем на текущем баре НИЖЕ среднего объема за последние 100, 150 или 200 баров.

 

Фильтр волатильности и объема №8

Разрешает открывать сделки только в том случае, если ATR (средний истинный диапазон) с периодом 1 бар НИЖЕ среднего значения ATR за последние 100, 150 или 200 баров И если объем на текущем баре ВЫШЕ среднего объема за последние 100, 150 или 200 баров.

 

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

 

Подведем итоги

 

В качестве финальной оценки я проведу следующее сравнительное тестирование:

 

Фильтр №1. Отсутствие фильтра

 

Фильтр №2. Часть 2. Простой фильтр для определения бычьего или медвежьего рынка, основанный на импульсе

 

Фильтр №3. Часть 2. Простой фильтр для определения бычьего или медвежьего рынка, основанный на импульсе, с фильтром волатильности и объема №7

 

Фильтр №4. Часть 2. Простой фильтр для определения бычьего или медвежьего рынка, основанный на импульсе, с фильтром волатильности и объема №8

 

Фильтр №5. Последний раздел Части 2. Простой фильтр для определения бычьего/медвежьего/плоского рынка, основанный на импульсе

 

Фильтр №6. Последний раздел Части 2. Простой фильтр для определения бычьего/медвежьего/плоского рынка, основанный на импульсе, с фильтром волатильности и объема №7

 

Фильтр №7. Последний раздел Части 2. Простой фильтр для определения бычьего/медвежьего/плоского рынка, основанный на импульсе, с фильтром волатильности и объема №8

 

Исходя из предыдущих разделов, эти условия были лучшими. 

 

Результаты

image.png.f3e62964f2af2bc67f81e5721cf547ec.png

Рисунок 56. Итоговые сводные результаты

 

При анализе всех 40 инструментов, 5 таймфреймов и 8 различных стратегий данные показывают следующее:

 

Фильтр для определения бычьего/медвежьего/плоского рынка демонстрирует лучшие результаты, чем простой фильтр для определения бычьего/медвежьего рынка (в плане просадки, а не прибыли – сравните фильтры №2 и №5)

 

В комбинации с фильтром для определения бычьего/медвежьего рынка фильтр волатильности и объема №8 демонстрирует лучшие результаты, чем фильтр волатильности и объема №7

 

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

 

Этот фильтр значительно уменьшает количество сделок и, следовательно, отфильтровывает много плохих сделок (очень хорошая вещь!)

 

image.png.b41c7bd73e02241842825c7a4c35589d.png

Рисунок 57. Фильтр №7 значительно уменьшает количество сделок

 

На данном этапе назревает вопрос: «Да, чистая прибыль увеличивается, а максимальная просадка снижается, но откуда вы знаете, что это не результат применения фильтров? Другими словами, возможно, фильтры просто сокращают общее количество сделок – как хороших, так и плохих – необязательно только плохих!»

 

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

 

Средняя чистая прибыль в сделке – это отличный способ узнать, отфильтровываются ли в основном плохие сделки или все сделки подряд:

 

image.png.c662f59859984ff679e6ec3e2ed59567.png

Рисунок 58. Средняя прибыль в сделке

 

Это показывает, что фильтры №5 и №7 являются лучшими. Фильтр №5 – это простой фильтр для определения бычьего/медвежьего/плоского рынка, основанный на импульсе. А фильтр №7 – это просто фильтр №5, в который добавлен фильтр волатильности и объема.

 

Таким образом, показатель средней сделки предполагает, что фильтр №5 на самом деле является лучшим.

 

Еще один способ взглянуть на эти данные – это сделать шаг назад и посмотреть на общую картину. Что мы пытаемся сделать с помощью этих фильтров? Верно, мы пытаемся избавиться от плохих результатов, сохраняя при этом хорошие.

 

Один из способов увидеть это – классифицировать результаты для каждой итерации относительно чистой прибыли. Например, «хорошим» результатом может считаться наличие итерации с общей чистой прибылью выше $ 25 000 в рамках всего периода тестирования. И наоборот, плохим результатом может считаться чистая прибыль менее -$ 25 000 (крупный убыток!).

 

Итак, давайте посмотрим на этот необычный параметр:

 

Если посмотреть на количество сделок с чистой прибылью более $ 25 000, то фильтр №2 будет явно лучшим, а если удалить плохие сделки, то лучшим будет фильтр №7:

 

image.png.84294ed5c690576cb34f66312e8b677f.png

 

image.png.4d4f6556e732848665aceb0a1f78ad23.png

Рисунок 59. Влияние фильтров на «хорошие» и «плохие» результаты

 

Но у обоих фильтров есть недостатки. Например, хотя фильтр №7 удаляет много плохих сделок, он также удаляет и много хороших, оставляя только 22 «очень прибыльных» сделки!

 

Так что, возможно, стоит использовать параметр соотношения — соотношение количества очень прибыльных сделок к количеству очень убыточных сделок:

 

image.png.b26f2004a3066fb3e07a57053653b7da.png

Рисунок 60. Соотношение хороших и плохих результатов

 

Теперь лучшим из них является фильтр №2, поскольку у него очень много хороших результатов по сравнению с плохими.

 

Это говорит о том, что выбор фильтра действительно зависит от того, что для вас важнее всего:

 

Максимизация чистой прибыли

Минимизация максимальной просадки

Максимизация средней прибыли в сделке

Максимизация соотношения хороших и плохих результатов

 

То, что является лучшим для меня, может не быть лучшим для вас!

 

В любом случае, вот пример прогресса, которого мы достигли в этой главе.

 

Мы начнем с простой стратегии (стратегии №5 в данном примере). Выглядит не очень хорошо...

 

CanTradeLong=True; //no filter

CanTradeShort=True; //no filter

if CanTradeLong = True and close> close [inputvar2] then buy next bar at market;

if CanTradeShort = True and close <close [inputvar2] then sellshort next bar at market;

 

image.png.e9fe37ba49981de1e97ca81234952857.png

Рисунок 61. Первоначальные результаты стратегии

 

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

 

CanTradeLong = False;

CanTradeShort = False;

If close> close [InputVar4] Then CanTradeLong = True;

If close <close [InputVar4] Then CanTradeShort = True;

if CanTradeLong = True and close> close [inputvar2] then buy next bar at market;

if CanTradeShort = True and close <close [inputvar2] then sellshort next bar at market;

 

Ужас! Похоже, мы движемся не в ту сторону...

 

image.png.e50a95815f863e6551e8e3ad37693595.png

Рисунок 62. Простой импульсный фильтр не дал улучшений

 

Обратите внимание на приведенный выше график: за 10-летний период была совершена только 31 сделка. Следите за этим – небольшим количеством сделок после фильтрации – при проведении любого тестирования. Чем меньше сделок, тем менее надежными будут результаты.

 

Далее мы добавили в эту стратегию фильтр волатильности и объема.

 

// momentum with volvol filter 8

CanTradeLong = False;

CanTradeShort = False;

If close> close [InputVar4] and Volume>averagefc(volume,InputVar4) and AvgTrueRange(1)<AvgTrueRange(InputVar4) Then CanTradeLong = True;

If close <close [InputVar4] and Volume>averagefc(volume,InputVar4) and AvgTrueRange(1)<AvgTrueRange(InputVar4)Then CanTradeShort = True;

if CanTradeLong = True and close> close [inputvar2] then buy next bar at market;

if CanTradeShort = True and close <close [inputvar2] then sellshort next bar at market;

 

Теперь выглядит лучше! 

 

image.png.ec8bf95bb0fd268b88f498d14c748957.png

Рисунок 63. Улучшенная производительность, достигнутая с помощью фильтра волатильности и объема

 

Наконец, мы меняем фильтр определения бычьего/медвежьего рынка на фильтр определения бычьего/медвежьего/плоского рынка. По сравнению с первоначальной стратегией мы увеличили чистую прибыль на $ 34 730 и уменьшили максимальную просадку на $ 32 595.

 

// momentum with flat period and volvol filter 8

CanTradeLong = False;

CanTradeShort = False;

If close> close [InputVar4] and close> close [InputVar4/2] and Volume>averagefc(volume,InputVar4) and AvgTrueRange(1)<AvgTrueRange(InputVar4) Then CanTradeLong = True;

If close <close [InputVar4] and close <close [InputVar4/2] and Volume>averagefc(volume,InputVar4) and AvgTrueRange(1)<AvgTrueRange(InputVar4) Then CanTradeShort = True;

if CanTradeLong = True and close> close [inputvar2] then buy next bar at market;

if CanTradeShort = True and close <close [inputvar2] then sellshort next bar at market;

 

image.png.fbd90ead7481061a4a30afe99fada624.png

Рисунок 64. Добавление фильтра определения плоского рынка

 

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

 

И помните, что это всего лишь пример – вы ДОЛЖНЫ протестировать эту стратегию в своей ситуации. Возможно, применение всех этих фильтров улучшит вашу стратегию, но есть шанс, что не улучшит.

 

Чит-коды для алгоритмической торговли

  • Что бы я протестировал, основываясь на этом исследовании. Вариант №1

// momentum with flat period and volvol filter 8

CanTradeLong = False;

CanTradeShort = False;

//Set InputVar4 to between 100 and 200 (not much difference from 100 to 200)

If close> close [InputVar4] and close> close [InputVar4/2] and Volume>averagefc(volume,InputVar4) and AvgTrueRange(1)<AvgTrueRange(InputVar4) Then CanTradeLong = True;

If close <close [InputVar4] and close <close [InputVar4/2] and Volume>averagefc(volume,InputVar4) and AvgTrueRange(1)<AvgTrueRange(InputVar4) Then CanTradeShort = True;

if CanTradeLong = True and YOUR LONG ENTRY then buy next bar at market;

if CanTradeShort = True and YOUR SHORT ENTRY then sellshort next bar at market;

 

  • Что бы я протестировал, основываясь на этом исследовании. Вариант №2

// momentum buy/bear filter only

CanTradeLong = False;

CanTradeShort = False;

//Set InputVar4 to between 100 and 200 (not much difference from 100 to 200)

If close> close [InputVar4] Then CanTradeLong = True;

If close <close [InputVar4] Then CanTradeShort = True;

if CanTradeLong = True and YOUR LONG ENTRY then buy next bar at market;

if CanTradeShort = True and YOUR SHORT ENTRY then sellshort next bar at market;

 

  • Фильтры для определения бычьего/медвежьего рынка на основе тренда в среднем повышают чистую прибыль и уменьшают просадку

  • Фильтры на основе волатильности и объема могут улучшить результаты торговой стратегии

  • Как и со всеми другими фильтрами, рекомендуется добавлять фильтры в свою стратегию ПЕРЕД ее полным тестированием 

 

 

 

 

Изменено 27 апреля, 2025 пользователем ju.vskv

Автор#9

image.thumb.png.8b4892a2ee39987ec0fdc107af8a1616.png

 

ГЛАВА 8

ТЕСТИРОВАНИЕ ВЫХОДОВ ИЗ РЫНКА

 

Спросите любого трейдера, как он торгует, и в 8 случаях из 10 он в ответ будет рассказывать о своих точках входа:

«Когда линия тренда подтверждается, я вхожу в рынок».

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

«Когда поток ордеров указывает на нисходящее движение, я открываю короткую позицию».

 

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

 

Но входы – это только часть дела. Управление капиталом, психология и определение размера позиции – всё это тоже играет определенную роль. И, конечно же, выходы. Во многих случаях выходы даже важнее, чем входы!

 

Чтобы наконец-то отдать выходам должное, я покажу их разнообразие, используя несколько стандартных входов. Какой выход будет лучшим? Именно это мы и разберем в этой главе.

 

Какие выходы выбрать?

 

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

 

Простые выходы

1. Выход «стоп и разворот»

2. Выход, основанный на времени

3. Стоп-лосс, основанный на заданной сумме в долларах

4. Тейк-профит, основанный на заданной сумме в долларах

5. Стоп-лосс и тейк-профит, основанные на заданной сумме в долларах

6. Стоп-лосс, основанный на ATR (среднем истинном диапазоне)

7. Тейк-профит, основанный на ATR

8. Стоп-лосс и тейк-профит, основанные на ATR

 

Выходы средней сложности

9. Трейлинг-стоп

10. Стоп-лосс на уровне безубыточности

 

Сложные выходы

11. Выход, основанный на индикаторе Parabolic SAR

12. Выход, основанный на индикаторе Chandelier Exit

13. Стоп-лосс йо-йо

14. Выход, основанный на канале

15. Выход, основанный на скользящей средней

 

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

 

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

 

Входы, рынки и всё остальное

Я протестирую каждый из 15 выходов с 5 уникальными входами (с представленным кодом для Tradestation):

 

1. Простой входоснованный на импульсе

If close>close[InputVar2] then buy next bar at market;

If close<close[InputVar2] then sell short next bar at market;

 

2. Вход на пробое следующего бара

If high=highest(high,InputVar2) then buy next bar at market;

If low=lowest(low,InputVar2) then sell short next bar at market;

 

3. Вход на однократном пересечении скользящей средней

If close crosses above average(close,InputVar2) then buy next bar at market;

If close crosses below average(close,InputVar2) then sell short next bar at market;

 

4. Вход с использованием полос Боллинджера

If close crosses above BollingerBand( close, InputVar2, -2) then buy next bar at market;

If close crosses below BollingerBand( close, InputVar2, +2) then sell short next bar at market;

 

5. Вход с использованием волатильности

If Close> close[1] + AvgTrueRange( InputVar2 ) * 1.5 then buy next bar at market;

If Close< close[1] - AvgTrueRange( InputVar2 ) * 1.5 then sellshort next bar at market;

 

Обратите внимание, что в каждом варианте есть только один параметр для оптимизации входа в рынок – “InputVar2”. Это период ретроспективного анализа, и для данного исследования я буду менять его в диапазоне от 15 до 35 с шагом 10.

 

Рынки

Я собираюсь протестировать выходы на 40 фьючерсных рынках (показаны символы непрерывных контрактов, представленных на платформе Tradestation).

 

Валюты

@AD, @BP, @CD, @DX, @EC, @JY, @SF

 

С/х сектор и мягкие товары

@BO, @C, @CC, @CT, @FC, @KC, @KW, @LC, @LH, @O, @OJ, @RR, @S, @SB, @SM, @W

 

Металлы

@GC, @HG, @PL, @SI

 

Энергетика

@CL, @HO, @NG, @RB

 

Процентные ставки

@FV, @TY, @US

 

Фондовые индексы

@ES.D (дневная сессия), @ES, @NK, @NQ, @RTY, @YM

 

Таймфреймы

Поскольку результаты могут сильно различаться в зависимости от исследуемого таймфрейма, я протестирую выходы на 5 различных таймфреймах:

60-минутном

120-минутном

360-минутном

720-минутном

1440-минутном (дневном)

 

Период тестирования

Я протестирую все варианты за 10-летний период исторических данных, с 1 января 2010 года по 1 января 2020 года.

 

Другие критерии тестирования

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

 

В некоторых выходах для получения точных результатов необходимо использовать функцию “Look Inside Bar Backtesting  LIBB” («бэктестирование сделок, исполняемых внутри одного бара»). Если вы не знаете, что такое LIBB или почему это важно, посмотрите данное видео, начиная с 08:02: https://youtu.be/tNWdJeHRZNE?t=482

 

Как сравнивать результаты

Естественно, при сравнении 567 000 тестов возникает вопрос: «Как определить, что лучше?»

 

Я собираюсь рассмотреть 2 разных показателя:

Доходность на счете = Общая чистая прибыль / Максимальная просадка (в таблицах и на графиках отображается как «средняя доходность на счете»)

Количество сделок с чистой прибылью > $ 25 000 = варианты с высокой чистой прибылью (в таблицах и на графиках отображается как «количество сделок с чистой прибылью > $ 25 000»)

 

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

 

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

 

Результаты тестирования:

40 рынков x 5 таймфреймов x 5 входов x 3 периода ретроспективного анализа для каждого входа x 15 выходов x 9 настроек для каждого выхода = 405 000 уникальных тестов (позже я добавлю в это исследование еще выходы, что увеличит общее количество тестов до 567 000).

 

Если вы работаете с платформой Tradestation, то знаете, что тестирование очень утомительное и трудоемкое! Чтобы ускорить процесс тестирования, я буду использовать специализированное программное обеспечение Multi-Opt, которое использует OOEL Tradestation (объектно-ориентированный язык Easy Language) и API (интерфейс прикладного программирования) Tradestation Optimization. Tradestation API бесплатно для всех пользователей платформы, поэтому вы можете создать свой собственный инструмент «ускоренного тестирования».

 

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

 

ВАЖНОЕ ПРИМЕЧАНИЕ:

 

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

 

И тот факт, что выход А в среднем показывает лучшие результаты, чем выход B, вовсе не означает, что он всегда будет лучшим. Может быть, некоторые рынки или таймфреймы работают лучше с выходом B, чем с выходом A.

 

Вы, естественно, можете использовать результаты, к которым пришел я, но ВСЕГДА проверяйте эти результаты своим тестированием/анализом. В конце концов, это ваш счет, и вы будете торговать именно на своем счете, поэтому вы должны протестировать свои собственные стратегии.

 

Тем не менее, данное исследование может сэкономить вам огромное количество времени. Например, зачем тестировать системы с худшим выходом из рынка? Сосредоточьтесь на хороших результатах!

 

Базовые результаты выхода «стоп и разворот» и выхода, основанного на времени

 

Выход «стоп и разворот»

If close>close[InputVar2] then buy next bar at market;

If close<close[InputVar2] then sell short next bar at market;

 

Может показаться, что код для Tradestation на языке Easy Language вообще не имеет выхода, но это не так. В Tradestation комментарий «купить» означает две вещи. Во-первых, закрывается любая короткая позиция. И второе: открывается длинная позиция. Для продажи выполняются противоположные действия. Таким образом, стандартные короткие ключевые слова «покупай» и «продавай» являются стоп-командами и командами для открытия противоположных сделок.

 

Для выхода «стоп и разворот» единственным выходом будет открытие противоположной позиции. Эти стратегии всегда находятся в рынке.

 

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

 

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

If mp=0 and close>close[InputVar2] then buy next bar at market;

If mp=0 close<close[InputVar2] then sell short next bar at market;

 

“mp” означает рыночная позиция, поэтому с приведенным выше кодом входы активируются только в том случае, если текущая позиция флэтовая (mp = 0). Для этого кода нет выхода «стоп и разворот».

 

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

 

Выход, основанный на времени

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

 

В Tradestation данный код выглядит следующим образом: 

If MP=1 and BarsSinceEntry>InputVar4*5 then sell next bar market; //exit long trades

If MP=-1 and BarsSinceEntry>InputVar4*5 then buytocover next bar market; //exit short trades

 

Я установил переменную InputVar4 в диапазоне от 1 до 9, поэтому с таким выходом сделка закроется в течение от 5 до 45 баров после входа.

 

Теперь о результатах... Со всеми данными результаты довольно очевидны: выходы «стоп и разворот» намного лучше, чем выходы, основанные на времени.

 

image.png.449a43b1260699dd409b9adefe4bf100.png

 

image.png.bfaa73e682c3b1cf56aaf4bd7122328f.png

Рисунок 65. Выходы «стоп и разворот» в сравнении с выходами, основанными на времени

 

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

 

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

 

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

 

По секторам рынка

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

 

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

 

image.png.d4290b2d0a5e07da48b383ff88781901.png

 

image.png.9817283876f369b5279d4c9e59502838.png

Рисунок 66. Результаты по секторам рынка

 

По таймфреймам

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

 

Как показано в таблицах ниже, худшие результаты демонстрируют стратегии на самом коротком – 60-минутном – таймфрейме. Лучшие результаты демонстрируют стратегии на 720-минутном (12-часовом) и 1440-минутном таймфрейме. 

 

image.png.785c0ddcc4ec4d36b8783ff798fb0208.png

 

image.png.cff9b3028cafc51bdfcd4c0f5ab75f75.png

 

image.png.6a2dacd323ad736cc0a47da42ecd4d17.png

Рисунок 67. Результаты стратегий на различных таймфреймах

 

Вид входа

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

 

Результаты данного исследования подтверждают эти более ранние результаты.

 

Лучшие входы для выхода «стоп и разворот»:

1. Вход на пробое

2. Вход, основанный на полосах Боллинджера

3. Вход на пробое в период высокой волатильности

4. Вход на импульсе

5. Вход на пересечении скользящей средней

 

Лучшие входы для выхода, основанного на времени:

1. Вход, основанный на полосах Боллинджера

2. Вход на пробое в период высокой волатильности 

3. Вход на пробое

4. Вход на пересечении скользящей средней

5. Вход на импульсе

 

Для обоих вариантов выхода в топ-3 входов можно включить вход, основанный на полосах Боллинджера; вход на пробое в период высокой волатильности; вход на пробое. И для 4 из 5 входов выход «стоп и разворот» дал лучшие результаты, чем выход, основанный на времени.

 

image.png.f74af136e5a8f1677dc42c80b2638f4f.png

 

image.png.11b59378a188e6eb275b04fa3d4c8c16.png

Рисунок 68. Результаты для разных входов

 

Заключение по выходам «стоп и разворот» в сравнении с выходами, основанными на времени

 

Из этого исследования очевидно, что выход «стоп и разворот» работает лучше, чем выход, основанный на времени, независимо от сектора рынка, таймфрейма или практически любого другого параметра.

 

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

 

Чит-коды для алгоритмической торговли:

  • При разработке стратегии сначала протестируйте выход «стоп и разворот», прежде чем добавлять выходы, основанные на времени

 

Часть 2. Другие простые выходы

 

В этом разделе мы рассмотрим 6 относительно простых выходов: может ли какой-то из них дать лучшие результаты, чем выход «стоп и разворот»?

 

Начнём со стоп-лоссов и тейк-профитов, основанных на заданной сумме в долларах. В ранее проведенном исследовании я показал, что в некоторых ситуациях стопы, основанные на ATR, давали лучшие результаты, чем основанные на сумме в долларах. Но сейчас мы проведем другое исследование и посмотрим, придем ли мы к иным выводам.

 

Мы протестируем входной параметр “InputVar4” в диапазоне значений от 1 до 9. Таким образом, значения стоп-лоссов, основанных на сумме в долларах на контракт, составят от $ 500 до $ 4 500. Значения тейк-профитов будут варьировать от $ 1 000 до $ 9 000. В завершение мы протестируем значение InputVar = 9 без стопов и тейков.

 

Стоп-лосс, основанный на заданной сумме в долларах

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

SetStopLoss(InputVar4*500); //Dollar Stop Exit

 

Тейк-профит, основанный на заданной сумме в долларах

Для этой цели по прибыли используется лимитный ордер, поэтому убедитесь, что ваша платформа исполняет лимитные ордера только в случае превышения лимитной цены.

 

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

SetProfitTarget(InputVar4*1000); //Dollar Target Exit

 

Стоп-лосс и тейк-профит, основанные на заданной сумме в долларах

Этот выход имеет как стоп-лосс, так и тейк-профит. Я произвольно выбрал тейк-профит, в 2 раза превышающий стоп-лосс. Очевидно, что такое соотношение может быть в какой-то степени оптимизированным, но я решил не участвовать в этом исследовании.

SetStopLoss(InputVar4*500); //Dollar Stop Exit

SetProfitTarget(InputVar4*1000); //Dollar Target Exit (2 times stop level)

 

Выходы, основанные на ATR

Стоп-лосс, основанный на ATR

Выходы, основанные на ATR, рассчитываются с использованием индикатора средний истинный диапазон с периодом 14 баров. Мы не устанавливаем лимит на потенциальную прибыль.

SetStopLoss(BigPointValue*InputVar4*AvgTrueRange(14)/3);

 

Тейк-профит, основанный на ATR

Эта цель по прибыли использует лимитный ордер, основанный на индикаторе средний истинный диапазон. Он имеет те же недостатки, что и тейк-профит, основанный на заданной сумме в долларах.

SetProfitTarget(BigPointValue*InputVar4*AvgTrueRange(14)/1.5);

 

Стоп-лосс, основанный на ATR, и тейк-профит, основанный на заданной сумме в долларах

Этот выход имеет как стоп-лосс, так и тейк-профит. Я произвольно выбрал тейк-профит, в 2 раза превышающий стоп-лосс – возможно, в будущем я проведу исследование, которое оптимизирует это значение...

SetStopLoss(BigPointValue*InputVar4*AvgTrueRange(14)/3);

SetProfitTarget(BigPointValue*InputVar4*AvgTrueRange(14)/1.5);

 

Общие результаты 

 

image.png.c3a42d68d65d67ceda57f9684e5f3d97.png

 

image.png.c804ec1aa8ebe87985638a734355a709.png

Рисунок 69. Результаты, полученные при использовании простых выходов

 

Ниже представлено резюме полученных совокупных результатов:

  • По-прежнему лучшим является выход «стоп и разворот».

  • Стоп-лосс, основанный на заданной сумме в долларах, как правило, лучше выхода, основанного на ATR.

  • Выходы с использованием тейков, как правило, демонстрируют лучшие результаты, чем выходы с использованием стопов.

  • Из всех трех комбинаций (использование стоп-лосса, тейк-профита или стоп-лосса/тейк-профита) выход с одновременным использованием стоп-лосса и тейк-профита всегда показывает худшие результаты.

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

 

Думаю, что главный вывод здесь заключается в том, что выход «стоп и разворот» по-прежнему превосходит по результатам все остальные варианты!

 

image.png.a210bd2fed3ec7be4d83f2821ae6c345.png

Рисунок 70. Лучшие и худшие виды выходов

 

По секторам рынка, таймфреймам и видам входа

Практически в каждом секторе рынка лучшие результаты показывает выход «стоп и разворот». На втором месте после него находится выход по тейк-профиту, основанному на заданной сумме в долларах. Это противоречит общепринятой рыночной поговорке «позвольте вашей прибыли расти». Возможно, стоит позволять своей прибыли расти только до определенного уровня. Интересно!

 

Анализ таймфреймов показывает, что лучшими являются выходы «стоп и разворот» на 1440-минутном таймфрейме.

 

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

 

Ниже приведены сводные таблицы по секторам рынка, тайфреймам и видам входа.

 

 

image.png.b7988b2bed648e07158339a3252d731c.png

 

image.png.66d7b456ac969467469f4acdb9401737.png

 

image.png.5c3ee5965be631a3dabd92c4c89532ce.png

 

image.png.fdc290788433594d4bc415d0c340f839.png

 

image.png.612109c2abd7dc4ae817802264baa04a.png

 

image.png.998966012379424c2cd870f6e5b7ff57.png

 

Рисунок 71. Результаты выходов по секторам рынка, таймфреймам и видам входа

 

Чит-коды для алгоритмической торговли:

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

 

Часть 3. Сложные выходы

 

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

 

Выход по трейлинг-стопу

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

 

image.png.2919a2229654de9a4a21b6194bdaf917.png

Рисунок 72. Выход по трейлинг-стопу

 

//trailing stop

If marketposition=1 and openpositionprofit<maxpositionprofit-InputVar4*500 then sell next bar at market;

If marketposition=-1 and openpositionprofit<maxpositionprofit-InputVar4*500 then buytocover next bar at market;

 

InputVar4*500 – это сумма в долларах, которую вы будете использовать для трейлинга. Это не стоп-ордер, а, скорее, рыночный ордер, который размещается по цене открытия следующего бара.

 

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

 

При желании вы можете преобразовать этот выход в стоп-ордер.

 

Итак, предположим, что у вас есть InputVar4 = 5. Это означает, что уровень трейлинга составляет 5 * 500 = $ 2 500 за контракт. Если maxpositionprofit никогда не поднимается выше $ 0, то когда openpositionprofit (другое ключевое слово для платформы Tradestation) опустится ниже -$ 2 500, вы получите сигнал для выхода. Если maxpositionprofit достигнет значения $ 4 000, то когда openpositionprofit опустится ниже $ 1 500, вы получите сигнал для выхода.

 

Выход на уровне безубыточности

Выход на уровне безубыточности довольно прост: когда прибыль достигает определенной точки, а затем падает до $ 0, позиция закрывается. Это выполняется с помощью простого ключевого слова в Tradestation:

SetBreakEven(InputVar4*500);

 

Выход, основанный на индикаторе Parabolic SAR

Выход, основанный на индикаторе Chandelier Exit

Выход, основанный на стоп-лоссе йо-йо

 

Выходы, основанные на Parabolic SAR, Chandelier Exit и стоп-лоссе йо-йо, являются довольно сложными. Я не буду объяснять их здесь – есть масса хороших ресурсов, которые подробно описывают их:

Parabolic SAR

https://www.investopedia.com/terms/p/parabolicindicator.asp 

Chandelier Exit

https://corporatefinanceinstitute.com/resources/knowledge/tradinginvesting/chandelier-exit/

 

Выход, основанный на стоп-лоссе йо-йо

Вот хорошее описание выхода йо-йо:

Выход йо-йо устанавливается примерно на 2 ATR ниже цены закрытия последнего бара.

По мере того, как цена движется вверх и вниз, стоп-лосс движется за ценой вверх и вниз – отсюда и название.

Логика: выход йо-йо выявляет аномальную волатильность в неправильном направлении.

 

Выход йо-йо является дополнительным выходом. Он не может быть вашим основным выходом. Он не защищает капитал – он лишь говорит вам, когда вы находитесь на неправильной стороне рынка. 

 

image.png.164d9d6a9bb821c43a3b5ec16c3ab95c.png

Рисунок 73. Стоп-лосс йо-йо в действии

 

Общие результаты 

 

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

 

image.png.9c4410a04589e72c0432be04d050509e.png

 

image.png.900a04017ba49308f21397c3179dd63c.png

Рисунок 74. Результаты сложных выходов

 

Результаты для сложных выходов сгруппированы в 3 категории. Во-первых, есть «хорошая» группа, которая имеет одну составляющую – выход на уровне безубыточности. Он ненамного хуже, чем выход «стоп и разворот». Следующая группа содержит трейлинг-стоп и выход, основанный на индикаторе Parabolic SAR, с производительностью, безусловно, на шаг ниже выхода на уровне безубыточности.

 

Выходы, основанные на индикаторе Chandelier Exit и стоп-лоссе йо-йо, находятся в третьей группе с худшими результатами производительности.

 

Эти различные уровни производительности (хороший, средний и плохой) можно увидеть на графике сравнения всех выходов, изученных нами на этом этапе:

 

image.png.a6de27eab950b57eaa1e9842656bca98.png

Рисунок 75. Средняя доходность при применении сложных выходов

 

Ниже представлено резюме полученных совокупных результатов:

 

По-прежнему лучшим является выход «стоп и разворот».

 

Стоп-лоссы на уровне безубыточности демонстрируют почти такие же хорошие результаты, как и выход «стоп и разворот».

 

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

 

Еще одно интересное примечание: ме́ньшие пороги стоп-лосса на уровне безубыточности ($ 500 - $ 1 000), как правило, работают лучше. Но в целом выход «стоп и разворот» всё равно работает лучше, чем стоп-лосс на уровне безубыточности.

 

Чит-коды для алгоритмической торговли:

 

  • При разработке стратегии сначала протестируйте выход «стоп и разворот», а затем тестируйте выходы на уровне безубыточности

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

 

А как насчет выходов, которые не зависят от цены входа в сделку? Другими словами, выходов, основанных на собственных расчетах. Смогут ли они превзойти выход «стоп и разворот»? Этот вопрос я рассмотрю в Части 4.

 

Часть 4. 2 выхода, основанных на технических индикаторах

 

До сих пор все выходы (за исключением выхода «стоп и разворот» и выхода, основанного на стоп-лоссе йо-йо) были каким-то образом привязаны к цене входа. Например, стоп-лосс на уровне безубыточности устанавливается на основе цены входа, а также прибыли и убытка от этой точки. То же самое касается всех стопов и тейков, основанных на заданных суммах в долларах и ATR. Выходы по индикаторам Parabolic SAR и Chandelier Exit, хотя и включают в себя ценовое движение, но основаны на условиях, когда начинается сделка.

 

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

 

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

 

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

 

Основываясь на этих выводах продвинутых трейдеров, в этом разделе я протестирую 2 простых и популярных, но эффективных выхода, основанных на технических индикаторах/ценовом движении:

 

Выход, основанный на канале

Просто выходите из длинных позиций на следующем баре, если будет достигнут самый низкий минимум из последних X баров. И выходите из коротких позиций на следующем баре, если будет достигнут самый высокий максимум из последних X баров. 

 

Выход, основанный на скользящей средней

Если вы находитесь в длинной позиции и текущий бар пересекает скользящую среднюю с периодом X баров сверху вниз и закрывается под ней, выходите из длинной позиции. Если вы находитесь в короткой позиции и текущий бар пересекает скользящую среднюю с периодом X баров снизу вверх и закрывается над ней, выходите из короткой позиции. 

 

Я выбрал эти 2 «входа, используемые в качестве выходов», потому что они довольно распространенные и простые в реализации. Очевидно, я только поверхностно затронул эту концепцию, поэтому оставляю читателю возможность поработать над развитием этой идеи.

 

Общие результаты 

 

image.png.d9a91c7404249a56275674566549d46a.png

Рисунок 76. Выходы, основанные на стандартных технических индикаторах

 

Тьфу!

 

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

 

Вот результаты средней доходности на счете и количества сделок с чистой прибылью > $ 25 000 за сделку для всех 15 протестированных выходов. 

image.png.d0b3b4ae53abea584d52d1d048dbc7b4.png

 

image.png.1ef44cab47bdffb0c765b3f33c0c5b4e.png

Рисунок 77. Использование технических индикаторов для выхода

 

До сих пор это исследование было интересным, но немного удручающим. Я думал, что наверняка что-то – да что угодно! – даст лучшие результаты, чем выход «стоп и разворот». Тем не менее, ничто из всего этого не оказалось лучшим!

 

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

 

Чит-коды для алгоритмической торговли:

 

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

 

 

 

 

Изменено 9 мая, 2025 пользователем ju.vskv

Автор#10

image.thumb.png.7603bb71820bf34b29316dc6ff11ad06.png

 

ГЛАВА 9

ИССЛЕДОВАНИЕ СООТНОШЕНИЯ ПРИБЫЛИ К РИСКУ 

 

Существует ли оптимальное соотношение прибыли к риску? 

 

Интернет – отличное место поспорить с совершенно незнакомыми людьми, не так ли? Ненавижу, когда такое происходит! Хотя я стараюсь избегать конфликтов, должен признать, что за эти годы в интернете у меня было несколько споров. Обычно споры не украшают их участников, поэтому в настоящее время я стараюсь изо всех сил избегать их.

 

На днях я вспомнил свои прошлые интернет-дискуссии (все из которых я выиграл, ха-ха), когда увидел провокационную тему на торговом форуме: «Оптимальное соотношение риска к прибыли».

 

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

 

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

 

Нет лучшего способа обрести уверенность в том, как вы торгуете, чем протестировать и проверить всё это самостоятельно.

 

Итак, вернемся к теме торгового форума...

 

Топикстартер пришел к выводу, что соотношение прибыли к риску 3-4/1 является лучшим. Это означает, что если стоп-лосс составляет $ 1 000, то ваша цель по прибыли должна быть от $ 3 000 до $ 4 000. Он подкрепил свое утверждение очень красивым и хорошо продуманным исследованием. Я обнаружил, что самая большая проблема в его исследовании заключалась в том, что он использовал смоделированные, а не фактические рыночные данные.

 

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

 

«Существует ли „лучшее” соотношение прибыли к риску при случайном входе, но при выходе с прибылью в X ATR или стопом в Y ATR?»

 

Задача исследования

 

Я решил протестировать подход со случайным входом и стоп-лоссами и тейк-профитами на дневном таймфрейме на данных с 2011 по 2021 год на 7 фьючерсных рынках:

Сырой нефти (энергетика) – CL

Хлопке (мягкие товары) – CT

Валюте евро (валюты) – EC

Mini S&P (фондовые индексы) – ES

Золоте (металлы) – GC

10-летних казначейских облигациях (процентные ставки) – TY

Соевых бобах (с/х сектор) – S

 

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

 

Я буду первым, кто скажет, что разные рынки могут давать разные результаты (вероятно, так и есть), и разные таймфреймы тоже могут давать разные результаты. Поскольку я представляю весь код в формате языка Easy Language для платформы Tradestation, читатель сможет легко адаптировать эту стратегию к своему торговому подходу.

 

Код простыми словами:

 

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

 

Если на следующий день вы запланируете сделку, подбросьте монету еще раз. Если выпадет орел, вы откроете длинную сделку. Если выпадет решка – короткую.

 

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

 

Когда вы откроете сделку, поставьте стоп-лосс и тейк-профит, основанные на среднем истинном диапазоне (ATR) с периодом 15, умноженном на коэффициент, который можно регулировать. Предполагается, что тейк-профиты будут считаться достигнутыми только в том случае, если цена превысит их на один тик. В этом случае не будет неточных «ложных касаний».

 

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

 

Код для Tradestation

Strategy: KJD2021-02 ExitRandom 01

Workspace: 2020-02 Random

input:

outputfile("C:\Users\Trader\Documents\Futures\FinalTYfast.txt"),iter(1),PT(2),SL(4),percentlong(.500),oddstradetoday(.5);

var:posstradetoday(0),NProf(0),NLoss(0),markpos(0),FFAOK(True);

posstradetoday=random(1); //random number for today's trade

If posstradetoday<=oddstradetoday and marketposition=0 then begin //trade will occur today

//enter trade

If random(1)<percentlong then buy next bar at open

Else sellshort next bar at open;

end;

setStopLoss(SL*AvgTrueRange(15)*BigPointValue);

setProfitTarget(PT*AvgTrueRange(15)*BigPointValue);

If LastBarOnChart then begin

Sell this bar at close;

BuyToCover this bar at close;

End;

//print out statistics to file (could modify to print to print log)

//IMPORTANT: Use compatibility mode for FastFileAppend

if LastBaronChart and GetAppInfo( aiOptimizing ) = 1 then

begin

FFAOK = FastFileAppend( OutPutFile, NumToStr( PT, 1 ) + "," + NumToStr( SL, 1 ) + "," + NumToStr( NetProfit, 2 ) + ","

+ NumToStr( 100*NumWinTrades/TotalTrades, 2 ) + ","+

NumToStr( TotalTrades, 2)+ ","+ NumToStr(

NetProfit/(TotalTrades+.000001),2 )+ ","

+NumToStr( -5-((-.125*(100*NumWinTrades/TotalTrades))+25), 3)+ ","

+NumToStr( (NetProfit/(TotalTrades+.000001))-5-((-.125*(100*NumWinTrades/TotalTrades))+25), 3 )+ ","

+NumToStr( TotalTrades*((NetProfit/(TotalTrades+.000001))-5-((-.125*(100*NumWinTrades/TotalTrades))+25)), 3 )+ ","

+NumToStr( PT/SL, 3 )

+ newLine );

end;

 

Чтобы получить достаточное количество данных, я выполняю каждую комбинацию стоп-лосса (SL) и тейк-профита (PT) 5 000 раз. Я использую 14 различных значений PT от 0,5 до 7,0 с шагом 0,5. Это же я делаю и со стоп-лоссами.

 

В общей сложности для каждого символа выполняется 980 000 случайных бэктестов, или всего 6 860 000 бэктестов.

iters = от 1 до 5 000

PT = от 0,5 до 7 с шагом 0,5

SL = от 0,5 до 7 с шагом 0,5

 

С выбранными мною значениями PT и SL различные комбинации выдают соотношение прибыли к риску от 0,071 до 14,0, что является широким диапазоном для изучения. Для небольших значений PT и SL я использовал функцию “Look Inside Bar Backtesting – LIBB” («бэктестирование сделок, исполняемых внутри одного бара») для получения точных результатов.

 

Я должен отметить одну из своих «больных тем» касательно соотношения прибыли к риску. Я многократно слышал, как кто-нибудь (обычно трейдер-новичок) говорил: «Моё соотношение риска к прибыли равно 3. Я получаю $ 3 прибыли и $ 11 убытка».

 

Это совершенно неправильно! Соотношение риска к прибыли в этом случае должно составлять 1:3. Таким образом, для устранения путаницы я использую соотношение прибыли к риску (Reward:Risk, или Re:Ri). Просто поставьте сумму прибыли на первое место, и «соотношение прибыли к риску» будет правильным.

 

Результаты – проверка здравого смысла

 

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

 

Если этот случайный вход действительно работает без проскальзывания и комиссий, при соотношении прибыли к риску, равном 1, то мой процент прибыльных сделок должен быть 50%. Если же соотношение прибыли к риску составляет 3:1, то процент прибыльных сделок должен составлять 25%, а если, наоборот, соотношение прибыли к риску составляет 0,333, то процент прибыльных сделок должен составлять 75%. 

 

Когда я смотрю на результаты (опять же, без проскальзывания и комиссий), эти значения соответствуют результатам случайного моделирования. Поэтому «проверка здравого смысла» пройдена!

 

image.png.c707e0cbf6616434b6ea4f967dad13c4.png

Рисунок 78. Проверка здравого смысла при исследовании соотношения прибыли к риску

 

Подробные результаты

 

Давайте посмотрим, какие результаты мы получили при торговле на фьючерсе ES, включая проскальзывание и комиссии:

 

image.png.ad928e81e1d8082dbd4cd853a132d0e3.png

Рисунок 79. Результаты исследования соотношения прибыли к риску по фьючерсу ES (фьючерсу на E-mini S&P 500)

 

Эти результаты интересны! Они говорят нам, что лучшими будут небольшие цели по прибыли с большими стоп-лоссами. Фактически лучшей общей целью по прибыли является 1,0 ATR, а лучшим стоп-лоссом – 7,0 ATR. Очевидно, что здесь нет лучшего соотношения прибыли к риску, равного 3, что считается «общепринятой мудростью»! 

 

image.png.18c6d5ec4471e1f541ed379dfba8f209.png

 

image.png.5714442eeb74dc3a95bc745d5c693643.png

Рисунок 80. Результаты исследования соотношения прибыли к риску по фьючерсу ES

 

Подробные результаты по фьючерсам GC, TY, CT и EC

 

Посмотрим на результаты тестирования соотношения прибыли к риску на фьючерсах GC (золото), TY (10-летние казначейские облигации), CT (хлопок) и EC (валюта евро). Я объединяю все эти фьючерсы, потому что их профили соотношения прибыли к риску в основном одинаковы. Лучшее соотношение прибыли к риску всегда ниже 1.

 

image.png.14bae046d7d4ad5331fcd0f97b01ead2.png

Рисунок 81. Результаты исследования соотношения прибыли к риску по фьючерсу на золото

 

Опять же, из 980 000 бэктестов лучшие результаты показывает соотношение прибыли к риску намного меньше 1,0. 

 

image.png.68cbcfc9206895691efb1a51bb7d9923.png

 

image.png.6941217562811f522d847d8533ec272c.png

Рисунок 82. Результаты исследования соотношения прибыли к риску по фьючерсу на золото 

image.png.7bc6b300feb7c1297e3534f96cb2c6e5.png

 

image.png.1f1f3122927a80d8ecc499ae33dec8b9.png

 

image.png.136d7717d16d500e019dd7392e5db397.png

Рисунок 83. Результаты исследования соотношения прибыли к риску по фьючерсу TY 

 

image.png.40087f9dfbe8bab84a1aa96dadb0371e.png

 

image.png.e6bd103db006f10eda02b8870af49116.png

 

image.png.3119f977a15e5b07a929b158931583fc.png

Рисунок 84. Результаты исследования соотношения прибыли к риску по фьючерсу на хлопок 

 

image.png.5cfa0db50b52e311c8aab74d54ab53bb.png

 

image.png.1fdbd7e3eb29a3bc498b8af6eb075215.png

 

image.png.f689581e801fdb5b9234b28b7b788a9f.png

Рисунок 85. Результаты исследования соотношения прибыли к риску по фьючерсу на валюту евро

 

Подробные результаты по фьючерсам S и CL

 

На данный момент у нас есть пять рынков и рыночных секторов, каждый из которых показывает, что для теста со случайными входами оптимальным является соотношение прибыли к риску ниже 1. Это не то, что я ожидал, но, как я уже говорил много раз: «Вы должны это протестировать!» Возможно, вы остановитесь на этом и сделаете вывод, что «оптимальным является соотношение прибыли к риску ниже 1». Но зачем останавливаться именно на этом?

 

Теперь усложним анализ и посмотрим на результаты тестирования соотношения прибыли к риску на фьючерсах S (соевые бобы) и CL (нефть). Результаты, показанные на следующих графиках, имеют оптимальное соотношение прибыли к риску от 3 до 4. То есть они демонстрируют совершенно иное соотношение, чем на 5 других рынках!

 

image.png.cf745a902347425765c936edede39c9e.png

 

image.png.0fa6ed38a0b041a1fd4913bd68dff1ad.png

 

image.png.237f7d66f5020205fa191f3fb9c28d5e.png

Рисунок 86. Результаты исследования соотношения прибыли к риску по фьючерсу на соевые бобы 

 

image.png.e2c3b525000d76fd09fc0d7a89b12d0f.png

 

image.png.7227c842a9cd706d1f44118b9425e7ff.png

 

image.png.9edd369f9a436731e51371117e61a97f.png

Рисунок 87. Результаты исследования соотношения прибыли к риску по фьючерсу на сырую нефть

 

Краткое заключение

 

Рынок

Лучшее соотношение прибыли к риску

Лучшее значение ATR для тейк-профита

Лучшее значение ATR для стоп-лосса

Вероятность получения прибыли с лучшими значениями ATR для тейк-профита и стоп-лосса

ES

0,3

2

7

89,4%

GC

0,5

2-5

6-5

78,1%

TY

0,4

7 (убыточный)

6,5 (убыточный)

48,6%

CT

0,5

3

6,5

31,6%

EC

0,1

0,5

7

78,9%

S

3-7

5-5

1,5

79,0%

CL

2,75

5

1

69,1%

 

Лучшее соотношение прибыли к риску для большинства рынков, которые я тестировал, было значительно ниже 1. Но на двух рынках оптимальным было соотношение прибыли к риску в районе 3-4. Вот вам и избитые рыночные поговорки!

 

Должен напомнить, что данное исследование проводилось только на дневном таймфрейме. Вполне возможно, что другие таймфреймы дадут совершенно иные результаты.

 

Чит-коды для алгоритмической торговли

  • Универсального оптимального соотношения прибыли к риску не существует

  • Если в своей стратегии вы используете уровни тейк-профит и стоп-лосс, сначала проведите исследование со случайными входами, подобное этому, которое поможет вам определить оптимальное соотношение прибыли к риску

  • Если вы тестируете небольшие тейк-профиты и стоп-лоссы, которые могут быть достигнуты на одном и том же баре, то для получения точных результатов необходимо использовать функцию “проскальзывание Backtesting - LIBB” («бэктестирование сделок, исполняемых внутри одного бара») или “Bar Magnifier”, в зависимости от вашего программного обеспечения. В противном случае результаты могут оказаться неправильными

  • Данное исследование показывает, что, ПО ВСЕЙ ВЕРОЯТНОСТИ, можно зарабатывать деньги, используя торговую стратегию со случайными входами! Посмотрите на крайнюю правую колонку в представленной выше таблице. В ней говорится, что если вы запустите стратегию со случайными входами на фьючерсе ES со значениями 2,0 ATR для PT и 7,0 ATR для SL, то у вас будет шанс 89,4% на то, что данная стратегия принесет прибыль! Не обязательно рекомендую вам применять такую стратегию, но это пища для размышлений...

 

 

 

Изменено 2 мая, 2025 пользователем ju.vskv

Автор#11

image.thumb.png.dc75655fa1dc8998a44f2760d826d678.png

 

ГЛАВА 10

ИССЛЕДОВАНИЕ ВЫХОДА ПОСЛЕ ПРИБЫЛЬНЫХ (ИЛИ УБЫТОЧНЫХ) БАРОВ

 

Будет ли хорошей идеей выход после “X” прибыльных баров?

 

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

 

Эту концепцию выдвинул легендарный трейдер Ларри Уильямс. Он закрывал позицию по цене открытия следующего бара после закрытия первого прибыльного бара.

 

Я расширил это исследование, рассмотрев от 1 до 10 прибыльных баров перед закрытием позиции, а также от 1 до 10 убыточных баров перед закрытием позиции.

 

Обратите внимание, что это не означает, что прибыльные бары будут последовательными или прибыль будет увеличиваться на каждом баре. Например, если вы хотите выйти после второго прибыльного бара и прибыль на первом баре составляет +$ 100, а на втором баре убыток -$ 5, вы всё равно выходите, так как сделка столкнулась со 2-м прибыльным баром после его закрытия (поскольку после закрытия 2-го бара у вас всё равно остаётся $ 95 прибыли).

 

Читатель может рассмотреть и другие варианты:

  • выход после X последовательных прибыльных баров

  • выход после X прибыльных баров с увеличением прибыли на каждом баре

  • выход после X последовательных прибыльных баров с увеличением прибыли на каждом баре

Таким образом, это исследование фокусируется на одном вопросе: существует ли «лучшее» значение закрытия NProfitable баров при случайном входе и выходе либо после закрытия X прибыльных баров, либо после закрытия Y убыточных баров?

 

Задача исследования

 

Я протестировал подход с использованием случайного входа со стоп-лоссами и тейк-профитами на дневном таймфрейме на 10-летних данных с 2011 по 2021 год на 7 фьючерсных рынках:

 

Сырой нефти (энергетика) – CL

Хлопке (мягкие товары) – CT

Валюте евро (валюты) – EC

Mini S&P (фондовые индексы) – ES

Золоте (металлы) – GC

10-летних казначейских облигациях (процентные ставки) – TY

Соевых бобах (с/х сектор) – S

 

Я буду первым, кто скажет, что разные рынки могут давать разные результаты (вероятно, так и есть), и разные таймфреймы тоже могут давать разные результаты. Поскольку весь код представлен в формате языка Easy Language для платформы Tradestation, читатель может легко адаптировать эту стратегию для своих исследований.

 

Код простыми словами:

 

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

 

Если на следующий день вы запланируете сделку, подбросьте монету еще раз. Если выпадет орел, вы откроете длинную сделку. Если выпадет решка – короткую.

 

При желании вы можете изменить эти случайные проценты, и вам не потребуется монета, дающая шанс 50/50!

 

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

 

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

 

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

 

Код для Tradestation

input:

OutPutFile("C:\Users\Trader\Documents\Futures\NProfES.txt"),iter(1),NNProf(2),NNLoss(4),percentlong(.500),oddstradetoday(.5);

var:posstradetoday(0),NProf(0),NLoss(0),markpos(0) ,FFAOK(True);

posstradetoday=random(1); //random number for today's trade

If posstradetoday<=oddstradetoday and marketposition=0 then begin //trade will occur today

//enter trade

If random(1)<percentlong then buy next bar at open

Else sellshort next bar at open;

NProf=0;

NLoss=0;

end;

markpos=marketposition;

//exit after NProf profitable closes, or NLoss losing closes

If marketposition=1 and markpos[1]=1 and openpositionprofit>0 then NProf=NProf+1;

If marketposition=1 and markpos[1]=1 and openpositionprofit<0 then NLoss=NLoss+1;

If marketposition=-1 and markpos[1]=-1 and openpositionprofit>0 then NProf=NProf+1;

If marketposition=-1 and markpos[1]=-1 and openpositionprofit<0 then NLoss=NLoss+1;

If (NProf>=NNProf or NLoss>=NNLoss) and marketposition=1 then sell next bar at market;

If (NProf>=NNProf or NLoss>=NNLoss) and marketposition=-1 then buytocover next bar at market;

If marketposition=0 then begin

NProf=0;

NLoss=0;

End;

If LastBarOnChart then begin

Sell this bar at close;

BuyToCover this bar at close;

End;

//print(date," ",marketposition," ",NProf," ",NLoss);

var:FFAOK(True);

//IMPORTANT: Use compatibility mode for FastFileAppend

if LastBaronChart and GetAppInfo( aiOptimizing ) = 1 then begin

FFAOK = FastFileAppend( OutputFile, NumToStr( NNProf, 1 ) + "," + NumToStr( NNLoss, 1 ) + "," + NumToStr( NetProfit, 2 ) + ","

+ NumToStr( 100*NumWinTrades/TotalTrades, 2 ) + ","+

NumToStr( TotalTrades, 2)+ ","+ NumToStr( NetProfit/(TotalTrades+.000001),2 )+ ","

+NumToStr( (NetProfit/(TotalTrades+.000001))-25, 3 )+ ","

+NumToStr( TotalTrades*((NetProfit/(TotalTrades+.000001))-25),3 )+ ","

+NumToStr( NNProf/NNLoss, 2 )

+ newLine ) ;

end ;

 

Для этого исследования я буду запускать каждое моделирование 5000 раз. Я буду изменять переменную NProf – количество баров, закрытых с прибылью – от 1 до 10 с шагом 1, и буду делать то же самое с переменной NLoss – количеством баров, закрытых с убытком.

 

Таким образом, по каждому символу получается 500 000 бэктестов, и поскольку тестирование проводится на 7 фьючерсных рынках, в общей сложности у меня получится 3,5 миллиона бэктестов.

 

iters = от 1 до 5000

NProf = от 1 до 10

NLoss = от 1 до 10

7 тестируемых рынков на дневном таймфрейме: ES, S, GC, CT, TY, CL и EC

10-летний период тестирования: с 2011 по 2021 гг.

 

Результаты

 

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

 

Подумайте о проскальзывании следующим образом: если вы войдете в рынок и сразу выйдете из него, каким будет ваш убыток? Скорее всего, вы потеряете как минимум 1 тик вместе с комиссиями.

 

Предположим, что фьючерс ES торговался по цене bid 3930,00 и ask 3930,25, и последняя его цена составила 3930,25. Если бы вы вошли в покупки рыночным ордером, вы, вероятно, купили бы по цене ask 3930,25. И если бы немедленно закрыли эту сделку, вы, вероятно, получили бы цену bid 3930,00. Таким образом, эта сделка принесла бы вам убыток в 0,25 пункта, или 1 тик.

 

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

 

Для фьючерса ES (фьючерса на E-mini S&P 500) подход NProf/NLoss со стратегией случайного входа является не очень прибыльным. Его результаты немного хуже, чем результаты, полученные в исследовании тейк-профитов и стоп-лоссов, показанном ранее.

 

Но, как и в предыдущем исследовании, стремление к небольшой прибыли и большим убыткам, похоже, работает лучше всего на этом рынке.

 

image.png.cb72c18a972e258af8ee81f9d94a0327.png

 

image.png.e45ef7babd5001d88fbb22c9a3a3fe2b.png

 

image.png.1488c0087ea1a0ccdb0042f1a7fa829b.png

Рисунок 88. Результаты выхода после определенного количества прибыльных/убыточных баров на фьючерсе ES (фьючерсе на E-mini S&P 500)

 

Результаты торговли фьючерсом на золото показывают пик около 2,0 для соотношения NProf/NLoss (количества баров, закрытых с прибылью, к количеству баров, закрытых с убытком). Это означает, что в идеале следует выходить после каждых 2 баров, закрытых с прибылью, на каждый 1 бар, закрытый с убытком. Но если разбить результаты исключительно по NProf (количеству баров, закрытых с прибылью) или NLoss (количеству баров, закрытых с убытком), то лучшими значениями будут NProf = 9 и NLoss = 1.

 

image.png.eeea6689bec6d7539c18edecceeeea82.png

 

image.png.474535f0c8c948cacc7a820e31b71b03.png

 

image.png.4aca4ca4764ebb221ba846e68f2a77a3.png

Рисунок 89. Результаты выхода после определенного количества прибыльных/убыточных баров на фьючерсе на золото

 

Что бы вы ни делали с фьючерсами на 10-летние казначейские облигации (TY), торговля на них не будет прибыльной. Наилучшие результаты – но всё еще отрицательные – это когда значение NProf маленькое, а NLoss – большое.

 

image.png.dabbddf6fff3d01e50f5a1971e01dc3d.png

 

image.png.0f16b0cfa4b2fdf81795b6f2464fc3e1.png

 

image.png.b1853535eebdf6f9d6359900968de089.png

Рисунок 90. Результаты выхода после определенного количества прибыльных/убыточных баров на фьючерсе на 10-летние казначейские облигации

 

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

 

image.png.e4daa0dd9cdf128130661e8b5b24cce2.png

 

image.png.47df76522599d83c8b66413f38a0a1f5.png

 

image.png.3c29b36881301f56b103322c19a34bab.png

Рисунок 91. Результаты выхода после определенного количества прибыльных/убыточных баров на фьючерсе на хлопок

 

image.png.ad39d85b7ad4ebe924d47c699d7067bc.png

 

image.png.871b28724171947e9b901664172895a1.png

 

image.png.6e3e33d2e847f2657eda5c0c383d9ce5.png

Рисунок 92. Результаты выхода после определенного количества прибыльных/убыточных баров на фьючерсе на евро

 

Последние 2 рынка – фьючерсы на соевые бобы и сырую нефть – показывают лучшие результаты при выходах после бо́льшего количества прибыльных баров и меньшего количества убыточных баров. Особенно это касается фьючерса на сырую нефть.

image.png.508e96b62f6d84b14355bf5b33b24e9f.png

 

image.png.fcd74f6fbe0af285a9f9ed4807e9e54c.png

 

image.png.637e1bc49ea8de45f6473a4eacad503d.png

Рисунок 93. Результаты выхода после определенного количества прибыльных/убыточных баров на фьючерсе на соевые бобы

 

image.png.41032bbc0b3f9bcbf14213b2ed1987ee.png

 

image.png.665bbe4dc3c49f89e38421924294e4cb.png

 

image.png.d621a1b07ec751f036143c775462767b.png

Рисунок 94. Результаты выхода после определенного количества прибыльных/убыточных баров на фьючерсе на сырую нефть

 

Краткий обзор результатов

 

В приведенной ниже таблице мы видим, что для большинства рынков лучше подходит небольшое значение NProfitable (количество баров, закрывающихся с прибылью) и большое значение NLoss (количество баров, закрывающихся с убытком). Но для фьючерсов на золото, сырую нефть и соевые бобы верно обратное: лучшими являются выходы после бо́льшего количества прибыльных баров и меньшего количества убыточных баров.

 

Рынок

Наилучшее соотношение NProf/NLoss

Лучшее значение NProf

Лучшее значение NLoss

Вероятность получения прибыли с лучшими значениями NProf/NLoss

ES

0,57

4 (убыточный)

7 (убыточный)

53,3%

GC

1,8

9

1

54,8%

TY

0,3

3 (убыточный)

9 (убыточный)

44,2%

CT

0,3

5 (убыточный)

10 (убыточный)

53,3%

EC

0,3

3 (убыточный)

10

57,3%

S

1,43

10

6

61,5%

CL

10

10

1

72,5%

 

Чит-коды для алгоритмической торговли

  • Не существует универсального оптимального выхода ни после N прибыльных баров, ни после N убыточных баров и, следовательно, идеального соотношения этих двух значений

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

  • В данном исследовании я не протестировал одну вещь – выход после определенного количества прибыльных баров сам по себе, что изначально и делал Ларри Уильямс. Возможно, выход из рынка после определенного количества прибыльных баров вместе со стоп-лоссом или выходом «стоп и разворот» показал бы хорошие результаты

  • За исключением фьючерса CL, данная стратегия не показала прибыль при использовании случайных входов. Интересно, что для фьючерса CL были прибыльными более 70% сделок с NProf =10 и NLoss =1. Принцип «позвольте прибыли расти и сокращайте убытки», похоже, лучше всего работает на сырой нефти, чем на других рынках

Изменено 5 мая, 2025 пользователем ju.vskv

Автор#12

image.thumb.png.9c1bc2ba69501090b9c8f09205224011.png

 

ЗАКЛЮЧЕНИЕ

 

Алгоритмитческая торговля, без сомнения, сложна. Но есть и другие виды торговли. Алгоритмическая торговля часто заводит в тупик, и в большинстве случаев разработчик стратегий впустую тратит время на работу над бесплодными идеями.

 

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

 

Вот список всех 57 чит-кодов:

 

Глава 1. Становится ли алготрейдинг сложнее?

  • Используйте процесс разработки стратегии, который, как было доказано, работает в режиме реального времени

  • Старайтесь быть уникальными в своих стратегиях, таймфреймах и т. д.

  • Не почивайте на лаврах – постоянно совершенствуйте свою торговлю

  • Ожидайте, что стратегии в конечном итоге перестанут работать, и будьте готовы к тому, что их место займут новые стратегии

Глава 2. Алгоритмическая торговля на полный рабочий день

  • Мечта стать трейдером на полный рабочий день значительно отличается от реальности

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

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

Глава 3. Общие советы по алгоритмической торговле

  • Рассмотрите стратегии без стопов, если вы психологически можете справиться со стрессом

  • Не ждите, что стратегия будет работать на всех рынках

  • Тестируйте свою стратегию на различных таймфреймах

  • Всегда учитывайте проскальзывание и комиссии

  • Тестирование – это больше, чем просто оптимизация; чтобы правильно оценить стратегию, выполняйте большое количество тестирований

  • Даже хороший процесс разработки стратегии не гарантирует успеха

  • Не забывайте о риске. Не сосредотачивайтесь только на прибыли

  • Больше оптимизации – НЕ значит ЛУЧШЕ

  • Паттерны и общие наблюдения являются лишь строительными блоками в стратегии. Они не являются окончательными стратегиями

  • Всегда тестируйте данные вне выборки (я использую форвардное тестирование)

  • Миллионы итераций не приведут к повышению производительности в реальном времени

  • Хорошие алготрейдеры используют индикаторы, паттерны и другие методы, которые приносят прибыль в ходе тестирования

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

  • Психология является более важной для алготрейдинга, чем вы думаете

  • В трейдинге нет никаких гарантий

Глава 4. Исследование таймфреймов

  • Проскальзывание и комиссии могут быть убийственным фактором для стратегий на коротких таймфреймах

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

  1. Используйте лимитные ордера, где это возможно (просто имейте в виду, что у них есть недостатки как в бэктестах, так и в реальной торговле, особенно в случаях с «касательным исполнением» (“touch fills”))

  2. Совершайте меньше сделок! Данное замечание всегда актуально: лучшим подходом к торговле на коротких таймфреймах будет более избирательная стратегия в отношении сделок

  • Стратегии торговли пробоев на высоких таймфреймах могут быть прибыльными даже с учетом проскальзывания и комиссий. Однако они могут быть не очень привлекательными с точки зрения соотношения риска к прибыли

  • Используйте мои исследования в качестве отправной точки для своей собственной работы. Например, если бы я разрабатывал новую стратегию, я бы сосредоточился на высоких таймфреймах, таких как 1440-минутный

Глава 5. Исследование возврата к среднему значению

  • Методики торговли возврата к среднему могут стать отличным способом диверсификации ваших стратегий

  • Наилучшие подходы с использованием одиночной стратегии торговли возврата к среднему:

2 – простая стратегия с использованием индикатора Connors RSI 

3 – стратегия с использованием полос Боллинджера

4 – стратегия торговли отклонения от скользящей средней

6 – стратегия с использованием растущих баров/снижающихся баров

7 – стратегия торговли противоположных сделок на пробое

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

Стратегия №2 И стратегия №3 И стратегия №4

Стратегия №2 И стратегия №3 И стратегия №4 И стратегия №7

Стратегия №2 И стратегия №4 И стратегия №7

Стратегия №2 И стратегия №4

Стратегия №2 И стратегия №3 И стратегия №4 И стратегия №6 И стратегия №7

  • Комбинация стратегий торговли возврата к среднему значению с условием «ИЛИ» не улучшает общую производительность

  • Временны́е выходы (по крайней мере, выходы после 7 баров) ухудшают производительность стратегий торговли возврата к среднему

  • «Быстрые» выходы в стратегиях торговли возврата к среднему снижают их производительность

  • В целом наилучшие результаты стратегии торговли возврата к среднему демонстрируют в секторах процентных ставок, акций и энергетики

  • Худшие результаты были получены в с/х секторе и секторе мягких товаров 

  • Как всегда, чтобы подтвердить мои выводы, протестируйте всё самостоятельно

Глава 6. Методы защиты от рисков

  • 4 уникальные идеи, которые могут снизить риск системы алгоритмической торговли:

  1. Ограничитель внутридневных убытков

  2. Задержка входа в рынок после убыточной сделки

  3. Не оставлять открытые позиции на выходные дни

  4. Аварийный выключатель, срабатывающий при высокой волатильности

  • Эти 4 идеи можно использовать по отдельности или вместе, в зависимости от ваших целей

  • Не ждите, что они сами по себе улучшат прибыльность ваших стратегий, но они могут улучшить прибыльность ваших стратегий путем снижения риска

  • Данные методы помогут вам психологически, и уже это делает их полезными

  • Если вы хотите добавить их в свою стратегию, помните:

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

Б. Убедитесь, что вы правильно разработали и протестировали свою стратегию (процесс Strategy Factory [«Фабрики стратегий»] идеально подходит для этого)

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

 

Глава 7. Торговля на бычьем/медвежьем рынке

  • Для определения бычьего/медвежьего/плоского рынка лучше всего подходит основанный на импульсе фильтр волатильности и объема №8

  • Вторым лучшим по производительности является фильтр для определения только бычьего/медвежьего рынка, основанный на импульсе

  • Фильтры для определения бычьего/медвежьего рынка на основе тренда в среднем улучшают чистую прибыль и снижают просадку

  • Фильтры на основе волатильности и объема могут улучшить результаты торговой стратегии

  • Как и все другие фильтры, рекомендуется добавлять их в свою стратегию ПЕРЕД ее полным тестированием

Глава 8. Тестирование выходов из рынка

  • При разработке стратегии сначала протестируйте выход «стоп и разворот», прежде чем добавлять выходы, основанные на времени

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

  • Стоп-лоссы на уровне безубыточности демонстрируют почти такие же хорошие результаты, как и выход «стоп и разворот»

  • Выходы, основанные на технических индикаторах, которые не зависят от входа или текущей прибыли/убытка в позиции, стоят того, чтобы их протестировать

Глава 9. Исследование соотношения прибыли к риску 

  • Универсального оптимального соотношения прибыли к риску не существует

  • Если в своей стратегии вы используете тейк-профиты и стоп-лоссы, сначала проведите исследование со случайными входами, подобное этому, которое поможет вам определить оптимальное соотношение прибыли к риску

  • Если вы тестируете очень близкие уровни тейк-профит и стоп-лосс, которые могут быть достигнуты в течение одного бара, то для получения точных результатов необходимо использовать функцию “Look Inside Bar Backtesting - LIBB” («бэктестирование сделок, исполняемых внутри одного бара») или “Bar Magnifier”, в зависимости от вашего программного обеспечения. В противном случае результаты могут оказаться неправильными

  • Данное исследование показывает, что, ПО ВСЕЙ ВЕРОЯТНОСТИ, можно зарабатывать деньги, используя торговую стратегию со случайными входами! Посмотрите на крайнюю правую колонку в представленной выше таблице. В ней говорится, что если вы запустите стратегию со случайными входами на фьючерсе ES со значениями 2,0 ATR для PT и 7,0 ATR для SL, у вас будет шанс 89,4% получить прибыль! Не обязательно рекомендую вам применять такую стратегию, но это пища для размышлений...

Глава 10. Исследование выхода после прибыльных (или убыточных) баров

  • Не существует ни универсального оптимального выхода после N прибыльных баров, ни оптимального выхода после N убыточных баров и, следовательно, идеального соотношения этих двух значений

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

  • В данном исследовании я не протестировал одну вещь – выход после определенного количества прибыльных баров сам по себе, что изначально и делал Ларри Уильямс. Возможно, выход из рынка после определенного количества прибыльных баров вместе со стоп-лоссом или даже выходом «стоп и разворот» показал бы хорошие результаты

  • За исключением фьючерса CL, данная стратегия не принесла прибыль при использовании случайных входов. Интересно, что для фьючерса CL прибыльными стали более 70% сделок с NProf =10 и NLoss =1. Принцип «позвольте прибыли расти и сокращайте убытки», похоже, лучше всего работает на сырой нефти, чем на других рынках

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

 

Удачи!

 

 

 

ОБ АВТОРЕ

КЕВИН Дж. ДЭЙВИ

 

image.png.ed12d52f1db19007d9078e52c78f36c0.png

 

 

Кевин Дж. Дейви — отмеченный наградами профессиональный трейдер и автор бестселлеров, уже несколько десятилетий считающийся экспертом в мире алгоритмической торговли. Кевин участвовал в Чемпионате мира по торговле фьючерсами, где один раз занял первое место и дважды – второе, получив более 100% годовой прибыли.

 

Кевин разрабатывает, анализирует и тестирует торговые стратегии на каждом фьючерсном рынке. В настоящее время он торгует полный рабочий день на своем личном счете. Он также помогает трейдерам совершенствовать свое торговое мастерство с помощью курса по алгоритмической торговле “Strategy Factory®” («Фабрика стратегий®»). Проводимый Кевином воркшоп Strategy Factory («Фабрика стратегий») получил награду «Торговый курс года» в 2016 году от престижного торгового вебсайта. Более подробная информация доступна на сайте kjtradingsystems.com.

 

Кевин является автором ежемесячной рубрики “Algo Q & A” («Вопросы и ответы по алгоритмической торговле») в журнале “Technical Analysis of Stocks and Commodities Magazine” («Технический анализ акций и сырьевых товаров») и завоевал многочисленные отраслевые награды за свои книги и онлайн-курсы.

 

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

 

До того, как полностью посвятить себя трейдингу, Кевин занимал должность вице-президента по качеству и инженерным разработкам в авиакосмической компании, которая занималась проектированием и производством критически важных компонентов для полетов, управляя инженерами, аудиторами и сотрудниками вспомогательного персонала. За свои заслуги он был удостоен престижной награды “40 Under 40” («40 до 40») от журнала “Crain’s Cleveland Business”.

 

В настоящее время Кевин проживает недалеко от Кливленда, штат Огайо, вместе с женой и тремя детьми.

 

 

Переведено специально для TLAP

Изменено 25 июля, 2025 пользователем ju.vskv

#17
В 21.02.2026 в 12:57, Buvie сказал:

Не работает ссылка 

Работает, не торопитесь 

Для публикации сообщений создайте учётную запись или авторизуйтесь

Перейти к списку тем
Форум · 2.0.20260627.0025