
«Техника MVS» для ускорения алгоритмических стратегий
Уникальная торговая идея, принесшая прибыль в размере +$ 23 005 в этом году (с полным кодом включительно)
Находить новые, свежие, оригинальные торговые идеи бывает сложно.
Очень СЛОЖНО.
И, даже если вам улыбнется удача и такие идеи найдутся... к сожалению, это еще ничего не гарантирует.
Потому что любая торговая идея бесполезна, если вы не знаете, как превратить ее в стратегию, готовую к внедрению на реальном рынке.
И это тоже совсем не просто.
На самом деле, взять «сырую» идею и превратить ее в жизнеспособную торговую стратегию зачастую гораздо сложнее, чем найти саму идею.
Для этого нужен немалый торговый опыт и понимание разработки стратегии.
Но не волнуйтесь.
В этом выпуске клуба “Empowered Trader” [«Вдохновленный трейдер»] я ПОКАЖУ ВАМ, КАК ЭТО СДЕЛАТЬ, используя свой 4-этапный процесс создания «минимально жизнеспособной стратегии» (МЖС).
Плюс, я поделюсь с вами простой, но глубокой торговой идеей, которую обнаружил много лет назад и которая уже принесла мне немало денег.
Таким образом, вы не только получите лучшее понимание процесса разработки МЖС, лежащего в основе уникальных торговых идей (несмотря на то, что 99% моего торгового процесса сейчас осуществляется с помощью генетического интеллекта, я всё же иногда разрабатываю некоторые стратегии «вручную»), но, как я и обещал, вы также получите мощное торговое преимущество, которое может принести вам значительную прибыль.
Я никогда не слышал, чтобы кто-то когда-то упоминал об этом торговом преимуществе. (И, как вы уже знаете, мы всегда относимся к членам клуба “Empowered Trader” с исключительным уважением).
Плюс я включу весь код в бонусный пакет, добавив к нему еще один продвинутый «трюк». Так что, приступим.
ЭТАП РАЗРАБОТКИ МЖС №1
Идея
Как я уже говорил, находить уникальные и оригинальные торговые идеи бывает непросто.
Но определенно существуют способы, повышающие вероятность нахождения хороших идей.
Для меня лучшим всегда было НАБЛЮДЕНИЕ.
Я просто смотрю на торговые графики и наблюдаю за их поведением.
Эта привычка пришла ко мне в период, когда более 10 лет назад я был увлечен дискреционной торговлей. На самом деле я уверен, что именно этому опыту дискреционной торговли я обязан многим своим текущим успехам в трейдинге.
И, честно говоря, это дало мне правильное вдохновение и основу для большинства моих лучших торговых идей. (Включая фильтры без параметров, которыми я поделился с вами в прошлом месяце в выпуске “Empowered Trader”).
Одним из самых больших преимуществ дискреционной торговли является то, что вы в буквальном смысле «вступаете в контакт» с рынками каждый день. Вы живете и дышите с рынками. Вы отслеживаете каждый их тик. Вы «настраиваетесь» на рынки и, как результат, многому учитесь.
И, конечно же, после того как вы уделяете изучению и наблюдению за рынками такое количество времени, торговые идеи начинают возникать естественным образом.
Идея, которой я собираюсь поделиться сегодня, пришла мне в голову, когда я занимался дискреционной внутридневной торговлей на фьючерсах на индекс E-Mini Russell 2000, возможно, моем любимом рынке E-Mini (должен признать, что я очень сентиментально отношусь к этому рынку).
Во время дискреционной внутридневной торговли я уделял много внимания уровням ПОДДЕРЖКИ и СОПРОТИВЛЕНИЯ (что довольно стандартно для внутридневной торговли).
И я всегда искал новые и лучшие способы их интерпретации, чтобы при возможности преобразовывать их в недискреционные индикаторы.
Однажды я просматривал свои торговые графики и вручную рисовал задним числом все важные уровни поддержки и сопротивления, которые возникали во время моих последних сделок, чтобы глубже понять рыночную «игру». (Это было частью моих рутинных еженедельных процедур в период моей дискреционной торговли). Я просто пытался лучше понять то, что «еще не вижу», и найти новые способы структурировать рынок. Как всегда, это была довольно утомительная работа. Я просиживал над ней долгие ночи. Фактически я не находил ничего нового, вдохновляющего или значимого, кроме множества случайностей и шума, и это всегда разочаровывало и подавляло меня. Но однажды я, наконец-то, наткнулся на НЕЧТО.
Нечто, что позволило значительно улучшить мою торговлю в то время.
Нечто НАСТОЛЬКО очевидное, что я не мог понять, как же я раньше не замечал этого.
И нечто настолько ГЛУБОКО укорененное в человеческой психологии, что его обоснованность была для меня неоспоримой с самого момента открытия.
Если бы мне нужно было нарисовать это на текущем рыночном графике, это выглядело бы так:

Да, именно так! Видите этот паттерн?
Это не что иное, как... КРУГЛЫЕ ЧИСЛА!
Да, именно они!
Никаких сложных вычислений. Никаких замысловатых гибридов точек разворота и откатов. Просто обычные, банальные КРУГЛЫЕ ЧИСЛА.
Итак, позвольте мне объяснить в одном предложении:
В ту ночь я обнаружил, что КРУГЛЫЕ ЧИСЛА на рынке E-Mini Russell 2000, вероятно, являются самыми значимыми, очевидными и надежными уровнями поддержки и сопротивления, которые только могут прийти на ум.
И я полностью в этом уверен.
Подумайте о следующем:
Задумывались ли вы когда-нибудь, насколько люди ЛЮБЯТ круглые числа?
Мы обычно не говорим: «Этот свитер стоит 19,99» – мы говорим: «Он стоит 20 баксов».
Мы не говорим: «Это в 87 милях отсюда» – мы говорим: «Это около 90 миль».
И вряд ли мы скажем: «Температура воздуха 29,3 градуса по Цельсию» – мы просто скажем: «29».
Округление чисел заложено в нашей природе, и мы делаем это автоматически, не задумываясь.
И, к счастью, ТАКОЕ ЖЕ ЧЕЛОВЕЧЕСКОЕ ПОВЕДЕНИЕ ПРИМЕНИМО И К ТРЕЙДИНГУ!
Как я уже сказал, раньше мне это не приходило в голову, но именно в ту ночь я увидел это так четко.
На протяжении многих лет я пытался использовать сложные инструменты технического анализа, в то время как никто не говорил о чем-то до простоты очевидном и мощном, как КРУГЛЫЕ ЧИСЛА.
И они ОТЛИЧНО работают.
Настроены скептически?
Тогда взгляните на график, которым я только что поделился, и посмотрите, где я нарисовал линии (это 15-минутный график фьючерсов на индекс E-Mini Russell 2000):

Все линии находятся на КРУГЛЫХ ЧИСЛАХ!
Если быть более конкретными, они находятся на уровнях цен 1540, 1550, 1560, 1570 и 1580.
Как видно на графике выше...
рынок (или, скорее, трейдеры, торгующие на этом рынке, если быть точным) буквально ПРИТЯГИВАЕТСЯ к круглым числам!
Конечно, это не относится ко всем рынкам, поэтому, к сожалению, я не могу назвать это «универсальным» законом трейдинга. Это определенно применимо к рынку E-Mini Russell 2000 и нескольким другим рынкам (чтобы узнать, к каким именно, вам нужно провести собственное исследование).
Итак, у нас есть базовая идея.
Теперь, когда у нас имеется основная концепция, следующий вопрос:
Как, после того как мы пришли к такому выводу (и я НИКОГДА не слышал, чтобы другие трейдеры основывали свою торговлю на круглых числах, так что считаю эту идею УНИКАЛЬНОЙ), мы можем потенциально превратить его в торговую стратегию?
Давайте перейдем ко второму шагу техники «минимально жизнеспособная стратегия» (МЖС):
ЭТАП РАЗРАБОТКИ МЖС №2
Создайте индикатор
Когда у меня появляется новая торговая идея, я сперва хочу ПРОТЕСТИРОВАТЬ ее визуально.
И чаще всего я делаю это, создавая ИНДИКАТОР.
Максимально быстрый и простой визуальный индикатор.
На то есть три ключевые причины:
1. Я визуал. Когда я что-то вижу, мне проще преобразовать это в структуру. Я могу лучше понять это или просто протестировать его на достоверность. И индикатор может мне в этом сильно помочь, так как это очень наглядный инструмент.
2. Если вы хотите создать индикатор на основе своей главной идеи, вы уже преобразовываете эту идею в точные ПРАВИЛА. Вы должны описать ее, выразить количественно и преобразовать в конкретный код. Это дает вам дальнейшее понимание и ясность относительно идеи, а также направление для ее преобразования в потенциальную алгоритмическую торговую стратегию.
3. Идея круглых чисел на графиках изначально визуальна, поэтому это, безусловно, является лучшим способом проверить ее достоверность.
Итак, следующий вопрос: как создать индикатор для этой идеи КРУГЛЫХ ЧИСЕЛ?
Ну, это зависит от рынка, его таймфрейма и того, какие «правильные» круглые числа должны быть. Но для рынка E-Mini Russell 2000 это крайне просто.
Мы знаем, что этот рынок движется с шагом в одну десятую пункта.
Например, он перемещается с 1 570,10 до 1 570,20, затем 1 570,30 и так далее.
А нас интересуют уровни, округленные до десятков, то есть уровни 1570, 1580, 1590 и так далее (это самые мощные уровни круглых чисел, которые я нашел на основе первых наблюдений).
Таким образом, мы рассчитываем их так:
1) Берем последнюю известную величину (мы хотим выполнять этот расчет ежедневно, поэтому берем последнюю известную нам цену закрытия дня);
2) «Смещаем запятую на один десятичный разряд влево» (умножая цену закрытия на 0,1);
3) Отбрасываем все цифры после запятой;
4) Число, которое остается, будет нашим «нижним» числом;
5) Добавляем к нему +1 – это будет нашим «верхним» числом;
6) Умножаем оба числа на 10 – получаем финальные уровни.
Возможно, это звучит немного запутанно, поэтому позвольте провести вам пример.
Допустим, последняя известная цена закрытия дня составляет 1 573,30.
Процесс расчета круглых уровней будет следующим:
1) Последнее известное значение цены закрытия дня: 1 573,30
2) Умножаем это число на 0,1 – «превращаем» 1 573,30 в 157,330
3) Отбрасываем все цифры после запятой – получаем число 157
4) После умножения его на 10 получаем наше «нижнее» круглое число
5) Но нам нужно и «верхнее» круглое число, поэтому добавляем к 157 +1 = 158
6) Теперь умножаем оба числа на 10 –получаем финальные уровни (1 570 и 1 580).
Таким образом, в результате у нас получается:
Верхнее круглое число на уровне 1 580,00.
Вчерашняя цена закрытия на уровне 1 573,30.
Нижнее круглое число на уровне 1 570,00.
Теперь нам нужно просто трансформировать этот процесс в код, что довольно просто.
Чтобы выполнить все эти вычисления, нам понадобятся всего 3 строки:
vars: round initial(0), round UP(0), round DOWN(0);
{Берем цену закрытия предыдущего дня и рассчитываем КРУГЛЫЕ уровни на ее основе}
round_initial = (CloseD(1) *0.1) - floor((CloseD(1) *0.1));
{РАСЧЕТ КРУГЛЫХ УРОВНЕЙ}
round_UP = 10*(1 + floor((CloseD(1) * 0.1)));
round_DOWN = 10*(floor((CloseD(1) * 0.1)));
Plot1(round UP);
Plot3(CloseD(1));
Plot2(round DOWN);Опять же, ничего сложного (и, возможно, существуют еще более быстрые и простые способы сделать это, о которых я не знаю; это просто лучший процесс, который я сам смог придумать).
Теперь, когда у нас есть индикатор, мы накладываем его на график и проверяем, делает ли он то, что должен (и, конечно же, вы можете скачать всё в бонусном разделе).

Как видите, всё работает прекрасно. И вы уже можете увидеть некоторые сильные уровни поддержки/сопротивления на основе этих круглых чисел, даже просто взглянув на произвольно выбранный скриншот.
Конечно, я рекомендую вам поэкспериментировать с этим и применить его к бо́льшему количеству примеров, чтобы визуально проверить его достоверность. Возможно, у вас даже будет иное мнение и взгляд на эту идею, что абсолютно нормально. Но для меня, при прокручивании графика E-mini Russell 2000 и наблюдении за уровнями круглых чисел, создаваемыми индикатором, это вызывает только улыбку.
С моей точки зрения, это работает ПРЕКРАСНО (не на 100%, конечно, так как НИЧЕГО не работает на 100% в трейдинге, но достаточно хорошо, чтобы продолжить далее эту идею).
Теперь, после этого визуального подтверждения, мы точно знаем, что в этой идее есть нечто стоящее, и пришло время двигаться дальше и попытаться создать первый черновой вариант торговой стратегии на основе этой ключевой идеи!
Именно этим мы и займемся дальше.
ЭТАП РАЗРАБОТКИ МЖС №3
Создание простой стратегии торговли на пробоях
Как вы видели выше, всякий раз, когда я начинаю воплощать торговую идею в реальную торговую стратегию, я начинаю с очень «сырого» варианта.
И я продолжаю в том же духе с первым прототипом стратегии.
Я имею в виду, что я просто беру ключевую идею в как можно более чистой и простой форме, без каких-либо добавлений, и превращаю ее в «примитивную» торговую стратегию.
Суть этой простоты в том, что я просто хочу увидеть, действительно ли данная ключевая идея содержит преимущество или нет. И мы можем это увидеть только в том случае, если оценим оригинальную идею без каких-либо добавлений, таких как рыночные фильтры, временные фильтры, стоп-лоссы, управление рисками или сделками и т. д.
Вам, по сути, нужно сделать всего лишь две вещи:
1) Преобразовать основную идею в конкретные условия для входа и
2) Добавить базовый выход.
Ничего больше, не усложняйте.
В случае нашей идеи с круглыми числами перевод основной идеи в конкретное условие для входа является крайне простым, потому что именно на уровнях круглых чисел мы хотим войти в сделку, так что нам просто нужно установить СТОП-ордер на этих уровнях.
Итак, всё, что нам действительно нужно сделать, это взять расчет из созданного нами выше индикатора и разместить СТОП-ордера на покупку и продажу, добавив несколько дополнительных строк к коду:
{РАСЧЕТ КРУГЛЫХ УРОВНЕЙ}
round initial = (CloseD(1) *0.1) - floor((CloseD(1) *0.1));
round UP = 10*(1 + floor((CloseD(1) * 0.1)));
round DOWN = 10*(floor((CloseD(1) * 0.1)));
{РАСЧЕТ УРОВНЯ ПРОБОЯ}
Breakout_Level_Long = round_up;
Breakout_Level_Short = round_down;
{ВХОД / ИСПОЛНЕНИЕ}
//Entry part LONG
buy next bar at Breakout_Level_Long stop;
//Entry part SHORT
sellshort next bar at Breakout_Level_Short stop;Кроме того, нам также нужно добавить и выход.
Конечно, существует множество различных техник для выхода, но самая простая и быстрая – просто использовать выход в конце дня. Это особенно хорошо работает для индексов, к тому же не содержит параметров оптимизации, поэтому вы снова можете протестировать свою главную идею без дальнейшей оптимизации.
Мы просто используем этот синтаксис:
{ВЫХОД}
Set exit on close;И наконец, я также хочу ограничить количество входов максимум одним в день.
Вы можете поэкспериментировать с этим позже и попробовать совершать больше входов в день, но, согласно моему опыту, большее количество входов в день обычно значительно снижает среднюю прибыль в сделке, поэтому в своих стратегиях внутридневной торговли я всегда совершаю максимум 1-2 сделки в день.
Когда мы соберем всё это вместе, наш окончательный код должен выглядеть примерно так:
vars:
EntryCondllong(false),EntryCondlshort(false),
Breakout Level Long(0), Breakout Level Short (0), round initial(l), round UP(1), round DOWN(1);
{РАСЧЕТ КРУГЛЫХ УРОВНЕЙ}
round initial = (CloseD(l) *0.1) - floor((CloseD(1) *0.1));
round UP = 10*(1 + floor((CloseD(1) * 0.1)));
round DOWN = 10*(floor((CloseD(1) * 0.1)));
{РАСЧЕТ УРОВНЯ ПРОБОЯ}
Breakout Level Long = round up;
Breakout Level Short = round down;
{ВХОД / ИСПОЛНЕНИЕ}
//Entry part LONG
if EntriesToday(Date) < 1 then
buy next bar at Breakout Level Long stop;
//Entry part SHORT
if EntriesToday(Date) < 1 then
sellshort next bar at Breakout Level Short stop;
{ВЫХОД}
Set exit on close;Видите, насколько всё просто. Никаких дополнительных деталей. Никаких фильтров. Никаких параметров оптимизации. Это максимально возможно «просто».
Теперь у нас есть первый черновой вариант нашей «минимально жизнеспособной стратегии», и мы, наконец, можем протестировать обоснованность всей идеи.
Для этого первого теста я решил использовать 15-минутный таймфрейм и обычные часы торговой сессии (вы также можете протестировать разные таймфреймы). Мои настройки в TradeStation выглядят так:

Теперь мы вставляем нашу стратегию и....
(волнующий момент.)
...получаем первый результат! :-)
Он выглядит следующим образом:

А вот самые важные параметры, которые нам нужны на данный момент:

Хорошо. Итак, это самый первый тест.
Но теперь, прежде чем продолжить, я попрошу вас о небольшой услуге...
>>В ЭТОМ МЕСТЕ СДЕЛАЙТЕ, ПОЖАЛУЙСТА, ПАУЗУ.<<
Прямо сейчас ничего не предпринимайте, просто вернитесь, снова посмотрите на кривую капитала и основные параметры и ответьте мне:
ЧТО ВЫ ДУМАЕТЕ ПО ЭТОМУ ПОВОДУ?
Нравится ли вам этот первый черновой вариант?
Считаете ли вы, что он содержит реальное преимущество?
Каковы ваши общие впечатления от этого первого проекта стратегии?
Вернитесь и взгляните на него еще раз.
Причина, почему я прошу вас сделать паузу, подумать глубже и оценить его более тщательно, заключается в следующем:
Из моего прошлого опыта я уже знаю, что...
...ИМЕННО в этом месте многие трейдеры сдаются.
СЕРЬЕЗНО!
Слишком много трейдеров просто думают, что эта стратегия «недостаточно хороша», и выбрасывают всю идею в мусор. Я на 100% уверен в этом, потому что за последние 15 лет я работал с тысячами трейдеров с разными уровнями опыта и знаю, что многие из них не считали бы результаты данной стратегии достаточно хорошими.
Что касается моего собственного мнения...
Я категорически НЕ СОГЛАСЕН с этим.
Потому что для меня такое начало является УДИВИТЕЛЬНЫМ.
Эта стратегия имеет КОЛОССАЛЬНЫЙ потенциал.
Просто посмотрите еще раз и подумайте о ней немного глубже:
Во-первых, в этом первом черновом варианте стратегии НЕТ параметров, которые можно было бы оптимизировать.
Нет параметров для оптимизации! Это означает, что данную стратегию действительно нельзя чрезмерно оптимизировать. (Разве это не удивительно? Сколько торговых стратегий без параметров оптимизации вы реально можете назвать????!!!!).
Этот первый черновой вариант торговой стратегии основан на чистой ИДЕЕ, чистом фундаментальном наблюдении и человеческой психологии, и кривая капитала подтверждает, что эта идея является ВЕРНОЙ. Данная идея работает и является реальным ПРЕИМУЩЕСТВОМ.
Во-вторых, посмотрите на распределение чистой прибыли:

В индексе с СИЛЬНЫМ долгосрочным трендом данная стратегия приносит прибыль при торговле на ОБЕИХ сторонах рынка: как от длинных, так и от КОРОТКИХ сделок. И соотношение тоже довольно хорошее, можно сказать, лучшее, что можно получить (из-за долгосрочного тренда) в индексах.
В-третьих, наш фактор прибыли > 1,0 в сделках на обеих сторонах рынка. Это еще один хороший знак.
И, наконец, кривая капитала в основном направлена вверх. Пока что игнорируйте дикие просадки, вам сначала нужно увидеть общую картину (над деталями мы поработаем позже). И общая картина в целом удовлетворительная.
Таким образом, хотя я согласен, что ПОКА эта стратегия выглядит «недостаточно хорошо», это очень захватывающее начало. Всё, что нам нужно сделать, это продвинуть нашу идею немного дальше и привести ее ко второму черновому варианту, внедрив в него несколько улучшений.
Но, прежде чем говорить об улучшениях, нам также нужно решить некоторые проблемы (чтобы мы знали, что именно нам нужно исправить).
На первый взгляд мы можем увидеть несколько потенциальных проблем, таких как:
1) Слишком большое количество сделок;
2) Довольно большие просадки;
3) Довольно длительные периоды стагнации;
4) Очень низкая средняя прибыль в сделке (чистая прибыль $ 54 000, деленная на примерно 2 450 сделок = $ 22).
Так что это определенно еще НЕ та торговая стратегия, которую бы мы могли применить в реальном рынке, и нам НУЖНО исправить эти четыре пункта.
На самом деле это сделать довольно легко.
Как?
Ну, фактически всё, что нам нужно, – это несколько простых, логичных и высоко релевантных ФИЛЬТРОВ.
ЭТАП РАЗРАБОТКИ МЖС №4
Добавьте фильтры
Хороший фильтр значительно сократит количество сделок.
И если большая часть отфильтрованных сделок является убыточными, то мы сразу же увеличим среднюю прибыль в сделке и, вероятно, снизим просадку и сократим длительный период стагнации.
Таким образом, мы потенциально можем решить сразу же все проблемы.
Теперь вопрос в том, как сделать это самым простым и наименее пагубным способом?
И как мы можем сделать это без риска чрезмерной аппроксимации или чрезмерной оптимизации?
Ну что ж, я расскажу вам, как это делаю лично я.
На протяжении своей торговой карьеры я разработал обширную базу данных, включающую проверенные рыночные фильтры. (Большинство из них включены в смарт-код, который я предоставляю в мастер-классе по пробойным стратегиям).
И что мне действительно нравится, так это использовать в этой базе фильтров ГЕНЕТИЧЕСКИЙ ИНТЕЛЛЕКТ, чтобы найти лучший, наиболее подходящий фильтр для этого конкретного прототипа стратегии. (Я также делюсь этим в мастер-классе по пробойным стратегиям, только в более сложной и продвинутой форме).
Я не трачу слишком много времени на это – всю работу я оставляю компьютеру.
Итак, я настраиваю компьютер на то, чтобы он перепробовал как можно больше фильтров на данных в пределах выборки, а затем проверяю их на данных вне выборки, и на этом, собственно, всё.
Но есть ОГРОМНОЕ ИСКЛЮЧЕНИЕ:
Каждый раз, когда я работаю с сильными и НЕПАРАМЕТРИЧЕСКИМИ преимуществами, такими как это, я также сначала стараюсь протестировать НЕПАРАМЕТРИЧЕСКИЕ индикаторы.
Преимущество непараметрических индикаторов и фильтров состоит в том, что у вас НУЛЕВОЙ риск чрезмерной аппроксимации и чрезмерной оптимизации (и я уже делился некоторыми крайне мощными непараметрическими фильтрами в прошлом ежемесячном выпуске клуба “Empowered Trader”, который вы можете получить на панели BTA, если пропустили его).
Другими словами, эти фильтры должны только улучшать вашу главную идею, но не ухудшать ее. И это «улучшение» должно происходить с почти нулевым риском чрезмерной аппроксимации и чрезмерной оптимизации (так как оптимизировать нечего).
Итак, в моей базе данных уже есть довольно много рыночных фильтров, которые не имеют параметров. Поэтому я протестировал их (а также их комбинации) на первом черновом варианте стратегии выше и через несколько минут получил кучу возможных кандидатов.
Затем я протестировал их на данных вне выборки, и из тех фильтров, которые прошли данное тестирование, я мог выбрать любой, но для целей данного выпуска я решил выбрать вот этот:
FilterLong = CloseD(1) < OpenD(1)and AvgTrueRange(14)> CloseD(1) - LowD(0);
FilterShort = OpenD(1)< CloseD(1)and AvgTrueRange(14)< CloseD(1) - HighD(0);На самом деле это комбинация двух фильтров (первый из них – один из моих самых любимых), так как генетическому интеллекту всегда разрешено тестировать различные комбинации при поиске лучшего решения (в этом нет ничего пагубного).
Важный момент заключается в том, что, когда вы тестируете любой из этих фильтров НЕЗАВИСИМО, оба они работают по отдельности, так что вам даже не нужно их комбинировать, но вы определенно можете использовать их комбинацию.
Второй фильтр содержит параметр (AvgTrueRange(14)), но он НИКОГДА не оптимизируется и значение его периода всегда остается 14, так что мы можем включить его как часть условий без оптимизации, что абсолютно разумно.
После того, как мы добавим этот новый фильтр в код, чтобы создать второй черновой вариант нашей стратегии, наш код теперь будет выглядеть следующим образом:
EntryCondllong(false), EntryCondlshort(false), Breakout Level Long(0), Breakout Level Short (0), round initial(l), round UP(1), round DOWN(l), FilterLong(false), FilterShort(false);
{РАСЧЕТ КРУГЛЫХ УРОВНЕЙ}
round initial = (CloseD(l) *0.1) - floor((CloseD(1) *0.1));
round UP = 10*(1 + floor((CloseD(1) * 0.1)));
round DOWN = 10*(floor((CloseD(1) * 0.1)));
{РАСЧЕТ УРОВНЯ ПРОБОЯ}
Breakout Level Long = round up;
Breakout Level Short = round down;
//Main Filter
FilterLong = CloseD(1) < OpenD(1) and AvgTrueRange(14)> CloseD(1) - LowD(0);
FilterShort = OpenD(1)< CloseD(1) and AvgTrueRange(14)< CloseD(1) - HighD(0);
{ВХОД / ИСПОЛНЕНИЕ}
//Entry part LONG
if FilterLong = true and EntriesToday(Date) < 1 then
buy next bar at Breakout Level Long stop;
//Entry part SHORT
if FilterShort = true and EntriesToday(Date) < 1 then
sellshort next bar at Breakout Level Short stop;
{ВЫХОД}
set exit on close;Всё по-прежнему очень просто и крайне НАДЕЖНО, так как на самом деле нечего оптимизировать (обратите внимание, что мы всё еще не добавили НИ ОДНОГО входного параметра оптимизации в стратегию).
И каковы результаты после добавления этого фильтра?
Что ж, всё становится значительно лучше.
Посмотрите сами:

А вот отчет о производительности:

Итак, чего же мы здесь достигли?
Не знаю, как насчет вас, но я уже считаю эту стратегию довольно жизнеспособной.
Ключевые причины:
1) Соотношение чистой прибыли к максимальной просадке приблизительно 7:1. Это еще не то, что мне хотелось бы видеть (10:1), но учитывая, что данная стратегия НЕ СОДЕРЖИТ ОПТИМИЗАЦИИ, этого достаточно. Я бы не стал использовать эту стратегию как самостоятельную, но с удовольствием бы включил ее в свой портфель.
2) Фактор прибыли составляет 1,43. Это больше, чем то, что я обычно считаю приемлемым.
3) Средняя прибыль в сделке составляет $ 75,38. Этого достаточно, чтобы покрыть транзакционные издержки.
4) Кривая капитала для меня выглядит удовлетворительно.
Опять же, это не тот вид стратегии, который бы я использовал для торговли в качестве самостоятельной стратегии, но она может быть очень хорошим дополнением к (небольшому) портфелю. Более того, хотя данная стратегия не приносит стабильной прибыли каждый год, годовое распределение прибыли также, скорее всего, не является слишком плохим.

Как я уже сказал в начале этого новостного выпуска, в этом году данная простая стратегия принесла прибыль размером в +$ 23 005 за 1 контракт (до вычета транзакционных издержек).
Конечно, нам нужно будет еще добавить стоп-лосс, а возможно, даже и тейк-профит.
Но это просто, вы можете сделать это на основе анализа максимального неблагоприятного отклонения и максимального благоприятного отклонения – я обучаю этому в своем мастер-классе по пробойным стратегиям. Или даже добавить некоторые из ваших любимых, проверенных выходов. Эти «детали» остаются на ваше усмотрение.
Вот так работает процесс «минимально жизнеспособной стратегии».
Именно так я обычно получаю оригинальные торговые идеи (посредством наблюдения).
Затем я подтверждаю их визуально, трансформирую в первый простой прототип стратегии, а затем превращаю этот прототип в реальную жизнеспособную стратегию.
Это увлекательный процесс.
Зачастую он также бывает разочаровывающим, но он определенно увлекательный.
Остальное я предоставлю вам проделать самостоятельно. Теперь у вас есть возможность использовать ваше собственное творчество, ваш собственный опыт, ваше собственное воображение и извлечь из этой основной идеи и чернового варианта стратегии нечто бо́льшее.
Вы определенно можете это сделать!
И, надеюсь, с помощью своей стратегии вы заработаете кучу денег.
Удачи!
ЗАКЛЮЧЕНИЕ И БОНУС
Как вы, надеюсь, уже поняли, цель этого выпуска клуба “Empowered Trader” не заключалась в том, чтобы предоставить вам окончательную стратегию.
Целью было предложить вам сильную и уникальную торговую идею и показать, как использовать процесс создания МЖС, чтобы пошагово трансформировать ключевые идеи в торговую стратегию.
Я хотел научить вас лучше «ловить рыбу», а не просто дать вам рыбу.
На основе этой проверенной, психологически обоснованной фундаментальной идеи я сам лично разработал несколько различных торговых стратегий.
Они используют разные фильтры и техники для выхода, а также проходят через мои уникальные и крайне строгие процедуры тестирования на надежность (которыми я снова делюсь в своем мастер-классе по пробойным стратегиям).
Кроме того, я также использовал эту ключевую идею в своей модели торговли на пробоях, чтобы создать более «продвинутые» стратегии.
На этом всё.
Как я уже сказал, остальное в ваших руках.
Удачи и успешной торговли!
Томас Неснидал / Переведено для TLAP
