Вступление.
За последние десять лет мне приходилось создавать и тестировать большое число торговых систем. За это время был выработан ряд правил, которые очень сильно помогали во время написания, отладки и настройки торговой системы. Так же мне приходилось наблюдать много случаев крушения необоснованных надежд, которые возникали у начинающих трейдеров в отношении очередной сверхприбыльной торговой системы. Чтобы сэкономить время и деньги начинающим трейдерам, далее на примере будет показан процесс создания и настройки торговой системы.
Настройка торговой системы.
Настройка параметров торговой системы может преследовать две различные цели:
1. Поиск закономерностей или расчет статистики.
2. Оптимизации параметров.
Для облегчения поиска закономерностей или получения определенной статистики, можно использовать запрограммированную торговую систему. Такой исследовательский инструмент облегчает процесс поиска и проверки гипотез. Позволяет с оптимальными трудозатратами получить необходимую для принятия дальнейших решений статистику.
Начинающие трейдеры делают большую ошибку, решая, что поиск закономерностей с помощью оптимизации – это и есть процесс создания системы. Как правило, новички берут ряд индикаторов, отфильтровывают с их помощью схожие участки истории на небольшом периоде истории (один-два года). Получают красивую подгонку параметров системы под кривую и думают, что на этом работа по созданию системы закончена, можно приступать к реальной торговле. Как бы не так. После того как выполнен поиск закономерностей и определен потенциал возможной доходности, необходимо распечатать графики, проверить сделку за сделкой и объяснить себе любимому, почему основные участники рынка поступали в схожих условиях именно таким образом. Либо найти причину, по которой на рынке в данных условиях раз за разом происходили именно эти события.
Только после того как трейдер поймет, что реально влияло на изменение цен, можно приступать к построению системы. После обретения понимания, добавляются новые правила, которые позволяют более точно идентифицировать целевой рыночный контекст. Дополнительные правила могут ухудшать результат работы системы, если сравнивать его с первоначальной настройкой в период поиска закономерности. Однако более точное описание требуемого рыночного контекста увеличивает вероятность прибыльности системы и в будущем может принести гораздо больше прибыли, чем бумажные убытки на истории котировок.
Настройка параметров системы выполняется тогда, когда определены базовые закономерности, по которым работает система. То есть, моменты открытия/закрытия позиций определены и требуется более точно настроить параметры согласно контексту рыночной динамики.
Интервалы настройки и проверки.
Если взять небольшой участок истории котировок и настроить параметры системы так, чтобы прибыль была максимальна, произойдет подгонка параметров системы под те данные, которые мы взяли. Если же затем рассмотреть результат работы такой подогнанной системы на большем интервале истории котировок, будет видно, что максимальная прибыль была только на отрезке подгонки. В остальное же время, как правило, такая система убыточна.
Мошенники используют такой подход для создания сверх прибыльных систем, которые прекрасно работают на небольших участках истории. Доверчивые трейдеры, покупают такие системы, пробуют торговать с их помощью и теряют свои деньги.
Чтобы не попасть впросак, надо понимать, что рынок постоянно меняется. Торговая система, устойчивая к изменениям рынка, должна настраиваться на достаточно большом временном отрезке. В противном случае будет происходить подгонка под кривую истории котировок со всеми вытекающими из этого последствиями.
Для проверки того, что система не подогнана под кривую, применяется следующая методика. История котировок разбивается на два интервала: интервал настройки и интервал проверки. На интервале настройки параметры системы оптимизируются. Затем проверяется устойчивость полученного результата на интервале проверки. С точки зрения статистики, результат считается достоверным, если работа системы остается стабильной в течение 30% времени от интервала настройки. Таким образом, интервал настройки должен быть в три раза больше, чем интервал проверки.
Минимально достаточный интервал проверки должен содержать все рыночные фазы. А именно: долгосрочные и среднесрочные большие/средние тренды, боковые тренды разного порядка, периоды с низкой и высокой волатильностью. Только в этом случае мы можем получить статистически достоверный результат работы системы на интервале проверки.
Рассмотрим динамику волатильности GBPUSD за последние девять лет:
На рисунке красными прямоугольниками отмечены области схожей динамики. Так в период 2002-2004 и 2006-2007 на рынке преобладали долгосрочные большие тренды. В период 2000-2001, 2004-2005, начало 2008, преобладали среднесрочные тренды с периодами высокой волатильности. Из этого следует, что для интервала проверки должны быть выделены два года с различной динамикой. Например, если система настраивается сейчас, то для интервала проверки можно выделить 2007 и 2008 год. Поскольку два года интервала проверки – это 30% от интервала настройки, то минимальный интервал настройки составляет шесть лет!
Этими правилом пренебрегают начинающие система строители. Они берут маленькие отрезки истории, настраивают на них свои системы, теряют деньги и сетуют на то, что рынок изменился. Рынок не изменился, он просто перешел в очередную фазу, которая уже была в прошлом. Просто кто-то ленится сделать хорошую систему и провести правильную настройку. Например, системы, созданные для работы с долгосрочными большими трендами, прекрасно работали в совершенно новых для рынка кризисных условиях конца 2008 года. Надо было просто быть готовым к тому, что уже было.
Учет издержек.
Каждый успешный предприниматель, планируя свое дело, учитывает не только возможные доходы, но и предстоящие издержки. Если вовремя не учесть размер издержек, то в итоге вместо прибыли можно получить убыток. Для трейдеров это правило так же актуально. Однако мне приходилось наблюдать умельцев, которые отказывались учитывать спрэд и средние отрицательные свопы во время создания и тестирования своих систем. Результат был непредсказуем для них, но предсказуем для меня. За пару месяцев рынок расставлял точки над и. Система показывала прибыль, а на счету были убытки. Достаточно было внести в параметры системы спрэд и своп, как все сходилось тютелька в тютельку.
Чтобы учесть потерю спрэда и средний отрицательный своп, необходимо указать их сумму в параметрах системы в качестве комиссии. Для этого в ProSuite надо установить значение поля Comission/Amount, в окне свойств стратегии, в папке Costs:

Средний отрицательный своп вычисляется следующим образом:
Средний отрицательный своп = ([отрицательный своп] - положительный своп) * (время системы в рынке / среднее число сделок в год)
Рассмотрим пример для GBPUSD.
Отрицательный своп: -0.6
пункта Forexite. Положительный своп: +0.1 пункта. Система находится в рынке: 30% времени – это 365 * 0.3 = 110 дней. Среднее число сделок в год: 40. Средний отрицательный своп = (0.6 – 0.1) * (110 / 40) = 0.5 * 2.75 = 1.375
Если спрэд для GBPUSD равен 5
пунктов Forexite, то в параметрах этой системы в качестве комиссии необходимо указать 5 + 1.375 = 6.375. Только в этом случае будет произведен правильный расчет прибыли.
Средний отрицательный своп мы имеем право игнорировать только для внутридневных систем, в которых позиция не переносится на следующий день. Во всех остальных случаях средний отрицательный своп обязательно должен учитываться.
В течение торгового года процентные ставки меняются, поэтому лучше брать средний отрицательный своп за год. Для основных валют я использую средний отрицательный своп -0.4 пункта за день. Для остальных инструментов средний отрицательный своп лучше вычислять индивидуально.
В нашей системе, для учета спреда и среднего отрицательного ролловера, зададим в параметрах комиссию для каждой сделки 5 пунктов. После определения того, как именно будет работать система, этот параметр можно будет скорректировать. Если сделки будут удерживаться только внутри дня, зададим размер спреда. Если сделки будут удерживаться несколько дней, пересчитаем комиссию с учетом среднего отрицательного ролловера.
Методика управления капиталом.
Одна из ошибок начинающих трейдеров – отдельная настройка группы параметров системы, отвечающих за управление капиталом. Как правило, сначала настраиваются параметры системы, которые отвечают за логику принятия торговых решений. Затем оптимизируются параметры, отвечающие за управление капиталом. Такой подход является в корне неправильным, так как прибыльность системы зависит от объема капитала, участвующего в сделке. А параметры, влияющие на процесс принятия торгового решения, в свою очередь, зависят от итога совершаемой операции, который напрямую связан с объемом сделки.
Для примера, рассмотрим вариант настройки системы с и без методов управления капиталом. Во время настройки параметров стопа без методики управления капиталом, оптимальный размер стопа для системы был равен 87 пунктов. Повторная настройка системы с использованием метода управления капиталом, показала оптимальный размер стопа 45 пунктов. При этом общее число сделок увеличилось. Так же увеличился процент убыточных сделок. Однако прибыльность системы в итоге возросла в два раза. Что интереснее получить – 70% в год или 140% при одинаковом уровне риска?
Существует много вариаций методик управления капиталом, которые, в сущности, базируются на двух базовых принципах: торговля долей от текущего объема торгового капитала и торговля долей от первоначального объема капитала. Ральф Винс привел математическое обоснование наибольшей эффективности методики торговли оптимальной долей (Optimal F) от текущего торгового капитала.
Не все трейдеры находят время разобраться в сути торговли оптимальной долей. Неумейки, которые обожглись, используя неправильные расчеты оптимальной доли, запугивают новичков, утверждая, что Optimal F - опасная методика. Скальпель тоже опасен в руках бандита или ребенка, но в руках хирурга он спасает жизнь.
Довольно забавен довод хулителей Optimal F: возможны большие просадки и если, к примеру, получена просадка в 50%, то восстановить счет будет очень трудно, так как потребуется заработать 100% от торгового депозита. Этот довод похож на догмат веры. Если человек верует в фиксированную долю, то ему для наполнения полупустого стакана нужно всего лишь 50% от его объема. А если человек верует в Optimal F, то ему для наполнения полупустого стакана, нужно 100% от имеющегося объема воды.
Вот хороший пример критики Optimal F в статье "
Заблуждения, Часть 1: Управление капиталом вторично и не слишком важно". Позволю себе ее прокомментировать:
- При тестировании системы, с использованием Optimal F, доходность по годам должна разделяться. В начале каждого года начальный капитал должен инициализироваться заново. Автор же берет общую доходность за 8 лет, как будто инвестиции делаются только на такие периоды и динамика рынка должна повторяться из года в год.
- Эта формула не правильная:
RF (Recovery Factor) = Total Net Profit / Maximal Drawdown
Правильная формула:
RF (Recovery Factor) = Year Net Profit / Maximal Drawdown Percent
Нельзя тупо брать и делить всю прибыль за восемь лет на максимальный убыток, который был получен ближе к концу торгового интервала. Правильный расчет должен учитывать текущую прибыль конкретного года и убыток в процентах относительно этой прибыли.
- Далее автор делает изящный финт ушами. Оптимизирует систему, используя торговлю фиксированной долей (0.1 лота), применяет к полученным параметрам управление капиталом оптимальной долей (Optimal F) и пишет, что Optimal F работает плохо. Конечно же, результат будет плохой, так как настройка делается для одной методики управления капиталом, а оценивается в итоге другая методика.
- Корень из депозита – это тот же Optimal F, только коэффициент значительно меньше. Если автор этого не понимает и считает это отдельной методикой управления капиталом, то о чем это говорит?
- Автор замечает просадку в 30% при применении Optimal F. Даже ролик прилагает. Однако он не замечает, что доходность системы возрастает с 9911$ до 1989938$.
Готовы вы перетерпеть просадку в 30% ради увеличения доходности в 200 раз?
Какую выбрать методику управления капиталом, решать вам. Мой опыт свидетельствует, что торговля оптимальной долей (Optimal F), эффективный и надежный метод управления капиталом.
Оптимизация параметров торговой системы.
Целью настройки и оптимизации параметров торговой системы является получение стабильной максимальной прибыли. Было бы глупо настраивать систему так, чтобы ее эффективность была низкой? Однако именно так поступают трейдеры, когда выполняют настройку параметров системы с целью получения максимального числа прибыльных сделок, минимальной просадки, хорошего профит фактора и т.п. Делается это из-за иллюзии, суть которой заключается в том, что трейдер считает: "если система имеет большое число прибыльных сделок и маленькую просадку на истории, то в будущем она имеет максимальные шансы на успех". Лично я в корне не согласен с таким подходом. Крупные участники рынка придерживаются универсальной цели - получение максимальной прибыли на рисковый капитал и не имеют в своем представлении тех критериев, которым придерживается тот или иной трейдер. Такой подход обусловлен понимание того факта, что нет никаких гарантий прибыльности той или иной системы в будущем. Вообще никаких.
Любая система, даже самая хорошая, с 90% прибыльных сделок и просадкой в 5%, в реальной торговле может показать просадку в 100% рискового капитала, вместо ожидаемой прибыли в 50% годовых. А система с 20% прибыльных сделок и просадкой в 50% от депозита может принести 300% прибыли. Так какая из двух систем более надежна? Можно предположить, что первая система имеет больше шансов на успех. На самом деле это не так. Обе системы имеют равное число шансов на успех. Каждая из них может потерять весь рисковый капитал. Вспомним, что гарантии успеха вообще нет. Рынок может измениться таким образом, что система станет 100% убыточной. Если бы гарантия успеха была, то можно было бы просто работать по первой системе с максимальным плечом и вместо 50% в год, иметь 50000%.
Очень часто трейдеры идут на поводу своих страхов и стараются защитить свой рисковый капитал, уменьшая потенциальную прибыльность торговой системы. Для избавления от подобного рода страхов и заблуждений, очень хорошо помогает оптимизация параметров торговой системы в конце торгового года. Естественно без данных последнего торгового года. Когда трейдер может сравнить то, что он получил в итоге реальной торговли с одними параметрами системы и то, чтобы он мог получить, если бы правильно настроил свою систему и не предавался бесполезным страхам, описанное выше становится очевидным.
Оптимизируя параметры системы, с целью найти значения параметров, которые обеспечивают максимальный процент прибыльных сделок, лучший PF, максимальную доходность и так далее, искомые значения будут найдены. Однако в процессе оптимизации произойдет подгонка под тот или иной участок истории, который обеспечит искомый результат. Но стабильную и максимальную прибыль из года в год мы не получим. Так же будет обстоять дело и с другими стандартными целями оптимизации.
Что же делать? Ведь нас интересует стабильная прибыль из года в год. Желательно максимальная.
Моё решение: целью оптимизации должна быть максимальная прибыль в самый худший торговый год. В этом случае прибыль всех остальных лет будет выше самого худшего года. Стандартные средства торговых платформ не позволяют производить оптимизацию такого рода. Поэтому для оптимизации параметров необходимо использовать генетический алгоритм. Генетический алгоритм позволит не только выполнить нужный нам поиск, но и позволит одновременно прооптимизировать большое число взаимно влияющих друг на друга параметров. Перебрать десятки миллионов вариантов простым перебором просто не реально. А вот генетический алгоритм справляется с такой задачей.
После получения искомых значений параметров, необходимо провести анализ работы системы. Проверить все сделки. Сделку за сделкой. Не лениться. Если результат удовлетворяет, можно приступать к торговле. Не удовлетворяет, возвращаемся к этапам доработки логики системы. Далее, на примере, будет рассмотрен процесс создания и настройки торговой системы.
Тестовая торговля на платформе Forex-дилера.
Прежде чем начинать реальную торговлю желательно хотя бы три месяца поторговать на данных того Forex-дилера, с которым планируется торговля по системе. За это время могут быть выявлены те ошибки, которые не были найдены во время тестирования и настройки системы.
У каждой компании торговля имеет свои нюансы, которые лучше и ЗНАЧИТЕЛЬНО ДЕШЕВЛЕ выявлять во время виртуальной торговли или реальной торговли с малым депозитом. Многие Forex-дилеры пишут, что демо-трейдинг ничем не отличается от реальной торговли. Может быть, для какой-то компании дела так и обстоят. Однако за десять лет мне не встретился ни один Forex-дилер, торговля с которым не имела бы свои уникальные нюансы, выяснившиеся только после начала виртуальной или реальной торговли по конкретной системе.
Пример создания и настройки торговой системы.
Первоначальная тестовая система будет максимально проста. Искажающие индикаторы в ней использоваться не будут. Это даст основания считать, что аналогичные методы могут использовать основные участники рынка, действия которых оказывают влияние на изменение цен.
Для создания тестовой системы рассмотрим ценовые графики GBPUSD и обратим внимание на то, что происходило с ценой в моменты преодоления уровней поддержки/сопротивления. Под уровнями поддержки/сопротивления будем подразумевать ценовые экстремумы, которых цена не достигала определенный интервал времени:

На рисунке выше красными и синими точками отмечены уровни поддержки/сопротивления (индикатор gp_SupRes). Кружками отмечены моменты пробития уровней поддержки сопротивления. Как вы видите, в моменты преодоления уровней поддержки/сопротивления цена быстро движется в направлении пробития. На истории котировок достаточно много таких моментов.
Чтобы двигаться дальше в направлении создания торговой системы, необходимо понять, результат каких повторяющихся действий участников рынка обеспечивает повторение одного и того же сценария развития событий. В данном случае можно предположить следующее. Во-первых, ниже уровней поддержки/сопротивления, как правило, определенная часть участников рынка размещает стопы для открытых позиций. Во-вторых, часть участников рынка, которая хочет открыть позиции, разместит стоп-приказы на открытие ниже уровней поддержки или выше уровней сопротивления. Одновременное исполнение приказов одного рода приведет к возникновению повышенного спроса и окажет влияние на цену.
Если предложенная гипотеза верна, то размещая стоп-ордера на открытие позиций ниже/выше уровней поддержки/сопротивления, мы должны получить стабильно прибыльную торговую систему. Стабильно прибыльной будем считать систему, которая приносит прибыль каждый год.
Итак, у нас есть рабочая гипотеза. Оформляю логику открытия позиций в виде кода и провожу первоначальную оптимизацию параметров системы. Код системы в этой редакции статьи приводить не буду, так как чужой код вызывает у читателей больше затруднений, чем написание своего собственного.
На первом этапе оптимизации, целью будет сбор первоначальной статистики, которая позволит оценить потенциал торговой системы. Если потенциал будет достаточно хороший, будет проведен анализ всех сделок. После этого, возможно, будут внесены дополнения в логику системы. Далее выполняется повторная настройка либо для сбора статистики и повторного анализа, либо для настройки параметров перед использованием системы в реальной торговле.
Настройка тестовой системы будет проводиться на дневных данных. Для интервала настройки будут использоваться данные за период [2001-2007]. Интервалом проверки будут данные за период [2008-2010]. Данные за 2000 год не берутся, так как для этого года нет качественной истории Forexite, а внутридневная волатильность одного года может существенно повлиять на результат работы всей системы, так как для тестовой системы будет весьма актуален размер стопа.
Чтобы результат работы системы на дневных барах был адекватный, надо включить использование 10-минутного интервала для проверки срабатывания ордеров внутри дневного бара. Необходимо точно знать, какой ордер будет исполнен первым: стоп или лимит. Только в этом случае результат работы системы будет соответствовать реальным событиям.

В качестве метода управления капиталом, будет использоваться алгоритмом риска оптимальной долей (Optimal F). Метод управления капиталом будет использоваться как на этапе поиска закономерностей, так и на этапе оптимизации параметров. Очень важно всегда применять методику управления капиталом, так как она напрямую влияет на результат поиска закономерностей. Система, кажущаяся слабой при беглом просмотре распечаток с графиками, может принести приличный доход при правильном управлении капиталом.
Важно помнить, что прибыль, полученная в течение одного года, не должна учитываться в следующем году. Для каждого нового года значение стартового депозита должно быть снова инициализировано. Таким образом, можно получать адекватную оценку доходности системы в каждом отдельном рыночной цикле (один год).
Оптимизироваться будут параметры, отвечающие за выбор экстремумов, размер стопа и лимита в пунктах, процент риска от текущего остатка для каждой сделки. Размер торгового капитала - 10000$ на начало каждого года.
Если просто прооптимизировать параметры системы с целью найти значения, обеспечивающие максимальную прибыль, то будет получен такой результат:
В 2005 году была получена максимальная прибыль. На интервале проверки система убыточна. Совсем не интересно ждать еще 10 лет, чтобы терять деньги из года в год в надежде получить однажды сверхприбыль.
Теперь выполним поиск параметров с целью получить максимальный доход в самый худший торговый год:

Кривая доходности торговой системы:
Кривая доходности достаточно гладкая. Относительно большие красные выбросы обусловлены тем, что объем открываемых позиций по мере получения прибыли увеличивается. Поэтому размер убыточных сделок, оставаясь фиксированным в пунктах, увеличивается в объеме.
Максимальная просадка рассматриваемой системы, рассчитываемая относительно максимального дохода в течение года, составляет 48%. Для системы, торгующей оптимальной долей (Optimal F), значение просадки имеет второстепенное значение. По-моему мнению, даже просадка в 80% не имеет никакого значения, если система способна при этом приносить стабильный доход из года в год.
Распределение прибыли по сделкам, важный параметр. Его необходимо контролировать, так как может быть вариант настроек, показывающий хорошую доходность, но доходность эту будут обеспечивать всего несколько сделок. Желательно, чтобы основной доход приносило большое число сделок, а не две-три очень крупных. Тут не надо впадать в крайности и избавляться от систем, которые улавливают большие тренды. Золотую середину позволяет сохранить анализ сделок.
На рисунке выше показано распределение доходов и убытков для нашей тестовой системы. Поскольку используются фиксированные стопы и лимиты, эти показатели, в данном случае, не актуальны. Различия, в доходности и убыточности сделок, обеспечиваются за счет изменения объема капитала. Поэтому проверять распределение прибыли/убытка по сделкам желательно без применения методов управления капиталом, чтобы видеть вес той или иной сделки в пунктах.

Максимальное число убыточных сделок подряд – 3 (параметр ConsecLoss). Если система во время реальной торговли заключит 12 убыточных сделок подряд, ее работоспособность будет поставлена под сомнение и торговля по ней, скорее всего, будет остановлена.
Параметры системного отчета, обведенные красными прямоугольниками, не имеют значения для рассматриваемой методики настройки системы, так как не учитывают методику управления капиталом и инициализацию стартового капитала в начале каждого года.
Рассмотрим сделки системы:


Анализ сделок показывает, что система зарабатывает на импульсах цены, которые возникают из-за срабатывания ордеров в момент пробития уровней поддержки/сопротивления. Размеры импульсов небольшие, но достаточные для получения стабильной прибыли. Кардинально изменить доходность системы можно, поставив своей целью захват больших трендов. Однако для этого надо изменить парадигму системы, добавив более эффективный метод закрытия позиций.
Далее я произвожу тюнинг параметров системы, используя всю имеющуюся историю. Тюнингом параметров я называю такую оптимизацию, которая не меняет кардинально логику принятия решений, но позволяет учитывать наиболее свежие ценовые данные, которые по логике должны иметь больший вес. Для тюнинга рассматриваемой системы мы будем использовать историю [2001-2009].
После тюнинговой оптимизации все сделки остались на своих местах. Оптимальные размеры стопа и лимита остались прежними. Если бы значения стопа и лимита изменились значительно, из-за влияния новой истории, необходимо было бы проверить, насколько сильно изменилась доходность за все предыдущие годы. Изменение доходности больше 10% в сторону уменьшения, для отдельного года, свидетельствовала бы о подгонке параметров под интервал проверки. В этом случае надо выполнить проверку всех сделок. И, скорее всего, игнорировать новые значения оптимальных параметров.
Для некоторых систем оптимальным параметром риска может быть значение больше 20%. В таких случаях я придерживаюсь следующего правила. В первый год реальной торговле по новой системе оптимальное значение риска делится на 3. Например, если для системы оптимальная доля 30%, то в первый год риск в одной сделке будет 10%. Во второй год значение оптимальной доли делится на 2, при условии сохранения системой стабильных показателей доходности. На третий год берется оптимальное значение.
Рассмотренная выше тестовая система, приносит доход за счет небольших импульсных изменений цены, которые возникают из-за пробития уровней поддержки/сопротивления. Большие тренды так же имеют импульсные участки и часто начинаются после пробития ключевых уровней. Попробуем изменить методику фиксации прибыли, чтобы проверить возможность захвата больших трендов и за одно проиллюстрировать эффективность методики расчета целевых уровней.
В логику тестовой системы вносятся следующие изменения:
- Фиксации прибыли с фиксированного лимита в пунктах меняется на лимит, базирующийся на методике расчета целевых уровней.
- Одиночный вход по сигналу заменяю на множественный, так как позиция может часто выбиваться из-за малого стопа.
Далее выполняю настройку параметров выделения экстремума (уровня поддержки/сопротивления) и размера стопа. Размер стопа не должен иметь значительных изменений, так как открытие позиций предполагает все те же импульсы цены.
Результат настройки параметров системы:

Кривая доходности:

Общая доходность возросла за счет использования методики расчета целевых уровней. Конечно рассматриваемая методика не самая эффективная для ловли больших трендов. Однако и такой простой алгоритм очень хорошо иллюстрирует эффективность методики.
Интересный момент. В 2003 году была получена прибыль 826% и максимальная просадка в 72% относительно максимальной прибыли в течение года. Рассмотрим этот момент более подробно, чтобы понять, как работает торговля оптимальной долей.
График доходности за 2003 год:

Как вы можете видеть, убыток в 80% был на протяжении семи месяцев. Далее на рынке начался тренд и вместо убытка был получен доход в 826%. Даже имея убыток в 80%, полностью потерять депозит крайне трудно, так как чем меньше остаток на счету, тем меньше объем открываемых позиций. Восстановление счета происходит с обратной логикой. Чем больше прибыль, тем больше объем следующей сделки. Поэтому, просадка при торговле оптимальной долей, не имеет значения для прибыльных систем. Главное - соблюдать и не нарушать правила торговой системы.
Для полноты обзора торговых технологий, осталось рассмотреть механизм реинвестирования получаемой во время торговли нереализованной прибыли. Согласитесь, глупо оставлять без дела прибыль, когда пойман тренд размерностью две-три тысячи пунктов и его развитие будет длиться ближайшие пару месяцев.
Добавляю к тестовой системе алгоритм реинвестирования части полученной прибыли, произвожу поиск параметров. Результат работы системы с использованием реинвестирования:

В целом доходность системы увеличилась, хотя для некоторых лет результат стал хуже. Доработка алгоритма реинвестирования может изменить такое положение дел, однако для тестовой системы достаточно и такого уровня расчетов. Ведь эта система создавалась не для того, чтобы торговать и выжимать из рынка все, что можно, а для иллюстрации процесс создания торговых систем. В ходе настройки доходность тестовой системы возросла с 67000$ до 476000$. Неплохой результат для тестовой системы.
Надеюсь, приведенная выше информация, поможет вам при построении собственной торговой системы.
Далее привожу вопросы читателей по теме статьи.
Как автоматизировать торговлю?
Для автоматизации торговли ProSuite/TradeStation/MultiCharts подойдет любой терминал, который может импортировать приказы из текстового файла. Например, MetaTrader. Сигналы экспортируются в текстовый файл и далее считываются торговым терминалом.
Для управления работой программ, использую
Automate 6.2.8.0. Это не самая новая версия, но работает она очень стабильно. С ее помощью можно делать практически все, что душе угодно, так как программа имеет мощный и в тоже время очень простой и удобный визуальный построитель задач, умеет запускать задачи на различные события.
Для трейдеров, которые хотят обеспечить автоматическую работу с MetaTrader 4, могу посоветовать обратить внимание на следующие моменты:
- Работу MetaTrader 4 необходимо контролировать с помощью внешней программы, так как терминал может считать, что находится в рабочем состоянии, в то время как котировки в него не поступают и, соответственно, советники не обрабатывают новые данные. Внешняя программа должна контролировать поступление новых данных в советник. Если данных нет долгое время, терминал надо автоматически перезапускать. С этой работой прекрасно справляется Automate.
- Бывали случаи, когда советник получал данные, но не мог корректно обрабатывать список ордеров, так как терминал имел устаревшие данные. Чтобы избежать проблем из-за такой ситуации, очень полезно иметь несколько терминалов, работающих на разных реальных/виртуальных компьютерах параллельно. Как показывает опыт, достаточно трех работающих параллельно компьютеров, чтобы обеспечить стабильный и правильный вывод ордеров в терминал.
- Работу MetaTrader 4 и Automate так же стоит контролировать внешней программой, которая в случае неработоспособности той или иной программы, будет их перезапускать.
- Планировщик задач Automate может сбиваться из-за неправильного перевода времени. Например, задание было выполнено. После этого время на компьютере было переведено на час назад. Следующее выполнения задания может быть выполнено через час от того времени, которое было сохранено с момента последнего выполнения задания. Чтобы избежать подобных проблем, надо синхронизировать время компьютера через интернет. В некоторых случаях можно использовать время сервера торгового терминала.
Комментарии
Имею в виду разницу процентных ставок:
www.forexite.com/.../
Например, сейчас в штатах ставка 0.25%. В Австралии - 4.25%. Если взять кредит в долларах США под 0.25% и затем разместить его в австралийских долларах под 4.25%, то можно получить прибыль в размере 4%. Такой вид операций называют carry trading.
Можно создавать просто линию. Смотрите в справке tl_new.
"Фиксации прибыли с фиксированного лимита в пунктах меняется на лимит, базирующийся на методике расчета целевых уровней".
Я пытаюсь представить себе, как это сделать, и мне приходит в голову следующий алгоритм.
Приведу только пример для покупок. Допустим, цена открытия позиции равна A. Расчитываем минимальное значение, которое цена достигла между моментом, когда ключевой уровень был сформирован (соответствующий фрактал индикатора gb_Supres), и моментом его пробитя, когда открылась позиция. Обозначим эту цену B.
Тогда D=(A-Spread)-B - это расстояние, которое цена прошла вверх. В таком случае лимитный ордер (тейкпрофит) следует установить на уровне A+D.
Это верно?
Второй вопрос. Если бы я захотел повозиться с модификацией этой системы для внутридневных таймфреймов (скажем, расчитывать ключевые уровни как точки индикатора gb_Supres на часовом графике, а не на дневном), вы все равно порекомендовали бы оптимизировать его на интервале в 7 лет и проверять на интервале в 2 года? Или в этом случае можно обойтись более короткими интервалами?
Разумеется, этот вопрос касается любой внутридневной системы, а не только подобной той, о которой вы рассказали в этой статье.
И заодно - примите отдельную благодарность за эту статью. Никогда не видел ничего столь же полезного по вопросу о тестировании и оптимизации МТС.
Верно. Можно использовать экстремумы gp_Supres или gp_Mount.
Цитата:
Если хотите получить надежную систему, то интервал надо брать в 7 лет. Хотите получить сверхприбыльную подгонку под небольшой участок истории, берите меньший интервал. Но потом не удивляйтесь, если система себя поведет во время торговли так, как в худшие годы всего доступного интервала истории.
Никто не запрещает вам сделать настройку на интервале в 2 года и посмотреть, чтобы было бы в остальные годы доступной истории.
Потом разбиваем Эквит по одному году и оптимизируем значения в наихудшем году (2001).
Исходя из полученных результатов применяем их на весь период 2001-2007?
Это имеется введу, если да то может имеет смысл подобрать опты на весь 2001-2007 г., зачем разбивать тестинг на годы?
Не это. Изначально геном ищется максимальный результат для худшего года.
RSS лента комментариев этой записи