Поиск сообщества
Показаны результаты для тегов 'тестирование'.
Найдено: 13 результатов
-
[Обсуждение] Тестирование/оптимизация советников: общие вопросы Небольшая разработка для тестирования мультивалютных советников. Сразу оговорюсь, это не панацея, требуется понимать код советника чтоб подружить его с этим механизмом тестирования. Как это работает: Для тестирования эксперта на нескольких валютах потребуется подготовить несколько терминалов, то есть например для тестирования корзины USD советника BacketFX Mod потребуется 7 отдельных копий МТ4. Так же потребуется модифицировать код советника что бы обеспечить передачу общих данных между всеми копиями терминала, таких как глобальные переменные, количество ордеров, профит по всем ордерам, баланс, экваити и т.д. - в общем все что необходимо для полноценно работы советника. Дальше технические детали как это реализовать. Содержимое архива: SmartDev.MultiCurrencyTester.Connect.dll - дллка обеспечивающая взаимодействие SmartDev.MultiCurrencyTester.Connect.mqh - заголовочный файл к этой длл SmartDev.MultiCurrencyTester.ExpertExample.mq4 - пример мультивалютного експерта EquityInTesting.mq4 - пример индикатора отображающего баланс и экваити сумарно по всем валютам тестируемого експерта Как установить: Для работы потребуется MS .NET 4.0 http://www.microsoft.com/en-us/download/details.aspx?id=17851 Распаковываем архив в корень папки МТ4. Описание функций из заголовочного файла SmartDev.MultiCurrencyTester.Connect.mqh void InitializeTestAPI(int instanceId, int instancesCount, int syncSeconds, string logFilePath); Функция инициализации API. Должна вызываться один раз из функции init() эксперта, параметры: instanceId - номер экземпляра тестируемого советника. должен быть уникальным для каждой тестируемой валютной пары. должен быть в диапазоне от 0 до instancesCount-1 например если вы тестируете советник на трех валютных парах то в тестере первой пары указываете instanceId = 0, второй = 1 и третьей соответственно 2 instancesCount - количество экземпляров советника в тесте, в примере выше соответственно instancesCount = 3 syncSeconds - количество секунд по истории, на которое разрешается разным экземплярам советника обгонять друг друга при тестировании. 0 - соответственно тестирование тик в тик без опережения. не-нулевые значения существенно ускоряют тест при уменьшении достоверности logFilePath - полный путь к файлу куда писать информацию о балансе и экваити каждого отдельно взятого экземпляра тестируемого советника. должен быть разным для каждого экземпляра. если вывод в файл не нужен - передаем пустую строку "" void DeinitializeTestAPI(); Функция деинициализации, должна быть вызвана из функции deinit() эксперта void NextTick(int tick, double balance, double equity); Функция должна вызываться на каждый тик тестируемого советника, параметры: tick - время текущего тика (для синхронизации тестируемых экземпляров), передавать TimeCurrent() balance и equity - исключительно для вывода в файл истории изменения баланса и экваити. если logFilePath в InitializeTestAPI не задан - не используются void DeclareVariable(string variableName, int variableOperation); Функция декларации переменной, доступной во всех экземплярах эксперта. По умолчанию переменная не нуждается в декларации. При первом использовании переменная декларируется автоматически. Ручная декларация требуеться если необходимо задать математическую операцию над переменной. Примеры будут ниже при разборе тестового эксперта. Параметры: variableName - имя переменной variableOperation - математическая операция (пока доступно две опции VariableOperation_Nothing = 0 и VariableOperation_Sum = 1) double GetVariable(string variableName); Функция получения значения общедоступной переменной, параметры: variableName - имя переменной void SetVariable(string variableName, double variableValue); Функция установки значения общедоступной переменной. Параметры: variableName - имя переменной variableValue - значение переменной Типы операция над переменными: int VariableOperation_Nothing = 0; int VariableOperation_Sum = 1; Удобные обертки подменяющие в тестинге операции с глобальными переменными на операции с API Просто добавь воды заменить вызов стандартных функций GlobalVariableGet и GlobalVariableSet на эти double GlobalVariableGetExt(string name) double GlobalVariableSetExt(string name, double value) Как пользоваться: Разберем пример эксперта из архива: InitializeTestAPI(0, 1, 60, ""); Инициализируем тестирование советника из одной валюты, погрешность синхронизации 60 секунд (одна минутная свеча), лог файл не пишем. Другой пример: InitializeTestAPI(2, 5, 0, "d:\testlogs\balance_2.log"); Инициализируем третий из пяти экземпляров советника, без погрешности синхронизации (тик в тик), выводим баланс и экваити в лог файл. Соответсвенно функции инициализации для всех пяти валют этого советника будут выглядеть так: InitializeTestAPI(0, 5, 0, "d:\testlogs\balance_0.log"); InitializeTestAPI(1, 5, 0, "d:\testlogs\balance_1.log"); InitializeTestAPI(2, 5, 0, "d:\testlogs\balance_2.log"); InitializeTestAPI(3, 5, 0, "d:\testlogs\balance_3.log"); InitializeTestAPI(4, 5, 0, "d:\testlogs\balance_4.log"); Кому не привычна нумерация с нуля - простите, так заведено в практически всех языках программирования в том числе и в MQL Функция InitializeTestAPI поставит терминал в ожидание инициализации остальных экземпляров советника. Тест начнется только после того как все экземпляры будут проиницализированны. Выглядеть это будет как подвисший МТ4. После того как стартанет последний экземпляр - все остальные тоже начнут тест. Лог файл баланса пишется в csv-формате: tickTime;balance;equaity; В будущем придумаем покошернее аналитику :) Идем дальше: DeclareVariable("TotalProfitVariableName", VariableOperation_Sum); DeclareVariable("OrdersCountVariableName", VariableOperation_Sum); DeclareVariable("vGrafBalance", VariableOperation_Sum); DeclareVariable("vGrafEquity", VariableOperation_Sum); Декларируем несколько переменных для передачи между экспертами. Несколько слов о VariableOperation: VariableOperation_Nothing - значение по умолчанию и в ручной декларации нет необходимости, GetVariable возвращает последние значение которое установили любой из экземпляров для переменной функцией SetVariable. VariableOperation_Sum - в этом случае GetVariable возвращает сумму значений установленных каждым экземпляром. Например если нам нужно получить суммарный экваити или баланс по всему советнику по всем валютам. Идем дальше: в функции старт NextTick(TimeCurrent(), AccountBalance(), AccountEquity()); передаем информацию о текущем времени экземпляра, балансе и экваити. Без вызова этой фунции каждый тик не будут корректно работать GetVariable и SetVariable SetVariable("vGrafBalance", AccountBalance()); SetVariable("vGrafEquity", AccountEquity()); Устанавливаем текущее значение баланса и экваити в общедоступных переменных GlobalVariableSet("vGrafBalance", GetVariable("vGrafBalance")); GlobalVariableSet("vGrafEquity", GetVariable("vGrafEquity")); Получаем суммарные значения баланса и экваити и запихуем в глобальную переменную - там их поиспользует индикатор EquityInTesting.mq4. Суммарные значения по переменным возвращаются поскольку выше мы их задекларировали как VariableOperation_Sum. double varValue = GlobalVariableGetExt("VarName"); GlobalVariableSetExt("VarName", 10); Устанавливаем и получаем значение общедоступной переменной. Суммирования происходить не будет так как переменная задекларирована автоматически как VariableOperation_Nothing Функции SetVariable и GetVariable являються синхронизируемыми. Тоесть к примеру если какой либо терминал отстал от остальных на значение секунд более чем syncSeconds из InitializeTestAPI - остальные терминалы при попытке прочитать или установить общую переменную будут ждать отставшего. Таким образом обеспечивается мультивалютная консистентность тестирования по всем парам. Ниже примеры реализации функций, возвращающих общий профит по всем валютам эксперта и общее количество ордеров. double GetTotalProfit() и int GetOrdersCount() Для того что бы следить за изменением баланса и экваити запускаем тестирование в визуальном режиме и кидаем на график индикатор EquityInTesting.mq4. не забываем перенести из примера работу с глобальными переменными vGrafBalance и vGrafEquity. Проблемы использования: syncSeconds = 0 сильно снижает быстродействие, предлагаеться использовать только для советников которым критична синхронизация тик в тик, например для мультивалютных хеджеров-скальперов работающих на несоответсвии спредов разных ДЦ. Для остальных можно делать быстрый проход с ненулевым значением и отдельно тестировать спорные участки с syncSeconds = 0. В случае исключительных ситуаций в корне папки МТ4 появиться файл SmartDev.MultiCurrencyTester.Connect.log Его можно почитать самому и если не понятно - прислать мне, все починим :) Если есть вопросы - велкам.MultiCurrencyTester_1.0.0.0.zip
-
Обзор программы Бесплатная версия этого продукта стёрлась с сайта производителя. Теперь там триал на 14 дней, который имеет иное название. Но старая версия пока ещё есть тут [EA_Analyzer_v3.0.0_64.exe] и [EA_Analyzer_v3.0.0_32.exe]: _https://cloud.mail.ru/public/6RQz/DqXwp8u5d
-
19 ошибок бэктестирования у новичков Бэктестирование является очень ценным процессом, ибо оно позволяет увидеть, имеет ли ваша торговая стратегия преимущество, прежде чем вы будете торговать на ней на реальном рынке и рисковать своими деньгами. Но существует множество ошибок при бэктестировании. Если вы допустите любую из перечисленных ниже, вы не получите точных данных. Наличие неправильных данных может привести к тому, что вы начнёте торговать по стратегии, которая фактически не имеет преимущества. Это обычно приводит к разочарованию, убыткам и убеждению в том, что бэктестирование не работает. Избегайте этой головной боли, научившись правильно выполнять бэктестирование. Наиболее распространённые ошибки при бэктестировании 1. Отсутствие письменного плана Чётко изложенный на бумаге план имеет важное значение для успешного бэктестирования. Будут моменты, когда вы увязнете в бэктестировании и забудете правила своей торговой стратегии. Это особенно верно, если стратегия, которую вы тестируете, имеет массу движущихся компонентов. Итак, запишите их все. Вот несколько вещей, которые вы должны определить: Правила для сигналов на вход Процентный размер риска в сделке Где следует размещать ордер стоп-лосс Где следует размещать ордер тейк-профит Как управлять своей сделкой Используемые индикаторы с их настройками В зависимости от стратегии, которую вы тестируете, могут быть и другие моменты, которые вам нужно определить. Уделите некоторое время на выяснение каждого параметра, чтобы провести точное бэктестирование. Можно использовать шаблоны с нужными параметрами, чтобы ничего не упустить. Подробно запишите свой торговый план и следуйте ему. 2. Внесение корректировок в свои сделки в ходе бэктестирования для получения более 90% прибыльных позиций Это интересно. Некоторые трейдеры хотят иметь высокий процент прибыльных позиций и делают всё возможное, чтобы получить его. Таким образом, при бэктестировании они вносят глупые корректировки, чтобы удовлетворить своё эго. Они прокручивают график назад и совершают сделки, зная о том, что произойдёт на графике в будущем. На самом же деле большинство торговых стратегий не будут иметь высокого процента прибыльных позиций, и вы не сможете каждый раз ловить идеальную точку входа. Лучшие стратегии являются надёжными. В долгосрочной перспективе они постоянно зарабатывают деньги. Таким образом, попытка иметь высокий процент прибыльных позиций при бэктестировании не поможет вам разработать надёжную торговую стратегию. Вы просто обманываете себя, думая, что данная стратегия лучше, чем она есть на самом деле. Придерживайтесь своего плана при тестировании, и вы получите честный результат. Чем больше бэктестирование будет имитировать торговлю в режиме реального времени, тем выше ваши шансы на успех. 3. Совершение недостаточного количества сделок при тестировании Я видел, как несколько трейдеров тестировали свою стратегию на дневном графике, имея всего 6-месячные исторические данные, и заявляли, что у этой стратегии есть преимущество. Да, у неё есть преимущество в рамках этих 6 месяцев, но как насчёт остального времени? Протестируйте свою стратегию на как можно бо́льшем количестве исторических данных и совершайте как можно бо́льше сделок. Ваша цель – иметь надёжную торговую стратегию, которая будет зарабатывать деньги в разных рыночных условиях. Оптимизация стратегии для определённого периода времени называется подгонкой, а это приведёт вас к катастрофе. 4. Игнорирование своего эмоционального состояния У каждого из нас порой бывают плохие дни. По крайней мере, у нас бывают дни, когда мы действительно сильно устали. Как и в реальной торговле, на результаты бэктестирования будет влиять ваше настроение и эмоциональное состояние. Вы просто не будете столь быстрыми и будете пропускать сделки. Учитывайте, в каком эмоциональном состоянии вы проводите бэктестирование, и не выполняйте тестирование, если чувствуете, что не готовы к нему. Также многократно протестируйте свою стратегию в разные дни, чтобы учесть влияние на неё потенциальных отвлекающих факторов или дней, когда вы находитесь далеко не в лучшей форме. 5. Вы непременно отказываетесь от своей стратегии, если сразу же не получаете впечатляющих результатов Некоторые трейдеры бросают бэктестирование, если оно не приносит прибыли в течение первых нескольких сделок. Это бессмысленно, потому что, возможно, в начале теста ваша стратегия просто имеет нормальную просадку. Поэтому продолжайте тестировать её дальше, пока не столкнётесь с катастрофической просадкой, которая будет неприемлемой в реальной торговле. Серия из 7 убыточных сделок подряд и 7% убытка не является катастрофической. Это не очень приятно, но любая хорошая торговая стратегия может преодолеть такой уровень просадки. 6. Внесение корректировок в свою стратегию в середине теста Это очень распространённая ошибка... «Я просто внесу здесь одну небольшую корректировку». «О, данная правка может принести лучшие результаты». Когда вы вносите правки в стратегию в середине тестирования, вы портите свои данные. Это как если бы кто-то смешал яблочный сок с апельсиновым, а затем дал вам его выпить и спросил, какой из них вкуснее. Очевидно, это невозможно сказать, потому что вы пробуете их оба одновременно. Аналогичным образом, когда вы меняете правила торговой стратегии, вы не знаете, как ваши новые правила работали бы в прошлом, равно как вы не знаете, как ваши первоначальные правила работали бы после внесения правок. Протестируйте каждую торговую стратегию отдельно и оцените каждую из них на полном наборе исторических данных. 7. Несоблюдение правил своей торговой стратегии Некоторые трейдеры записывают правила торговой стратегии, а затем вообще не соблюдают их... Я не знаю, почему это происходит. Возможно, у них проблемы с дисциплиной или что-то в этом роде. Но это почти само собой разумеется... почти. Запишите правила, а затем, когда они будут записаны на бумаге, протестируйте их. Большинство трейдеров могут это сделать. Но если вы склонны отходить от своих правил, найдите способ напоминать себе о необходимости оставаться на правильном пути. 8. Недостаточный анализ после тестирования и отсутствие хорошей системы отчётности Недостаточно знать процент прибыльных сделок и доходность своей торговой стратегии. Вы должны знать такие вещи, как: Максимальная просадка Максимальное количество убыточных сделок подряд Максимальное благоприятное отклонение цены (MAE) и максимальное неблагоприятное отклонение цены (MFE) Годовая доходность Результаты моделирования методом Монте-Карло И многое другое! Вы можете получить всё это с помощью программного обеспечения для бэктестирования, которое предоставляет данную информацию, или можете импортировать результаты бэктестирования в Excel или Google-таблицы. Эти дополнительные статистические данные покажут вам, как улучшить стратегию и чего ожидать от неё в торговле на реальном рынке. 9. Представлять себе, что результаты торговли на реальном рынке будут точно такими же, как и при бэктестировании Для успешной торговли необходимо, чтобы мы мыслили вероятностно, а не определённо. Торговая система, которая хорошо выглядит при бэктестировании, на реальном рынке может работать совсем не так, как мы ожидаем. На то может быть несколько причин. Будучи новичками, вы, вероятно, будете нервничать, когда на кону стоят реальные деньги, и, скорее всего, будете совершать некие вещи, каких вы не делали при бэктестировании. Возможно, вы будете перемещать стоп-лосс, увеличивая свой риск, или сокращать потенциальную прибыль. Некоторые трейдеры сталкиваются с просадкой, когда впервые начинают торговать по своей стратегии на реальном рынке, и сразу же думают, что их стратегия не работает. Но если бы они проанализировали результаты своего бэктестирования, они бы поняли, что это была нормальная просадка. В-третьих, возможно, в реальном рынке будут появляться некоторые факторы, которые вы не учитывали при бэктестировании. Например, спред, торговля в неподходящее время суток или нечто ещё. Реальный рынок может отличаться от того, что вы тестировали на истории. Могут выходить необычные новостные события или, возможно, рынки кардинально изменились. Ваши результаты торговли в реальном времени должны быть похожими, но не точно такими же, как результаты бэктестирования. Используйте свое бэктестирование в качестве ориентира, но имейте в виду, что необходимо учитывать и определённую степень случайных рыночных колебаний. 10. Игнорирование портфельного риска и корреляционного риска Вы должны понимать, что стратегии не торгуются в вакууме. Даже если стратегия хорошо работает на 2 валютных парах по отдельности, торговля этой стратегией на обеих валютных парах одновременно может не дать таких же хороших результатов. Возможно, вам придётся снизить свой риск по каждой сделке или учитывать только те сигналы, которые выглядят лучше всего. Торговля на нескольких рынках с применением одной и той же торговой стратегии может значительно усилить ваши просадки, поэтому не забывайте учитывать это в своём бэктестировании. Как максимально просто это сделать? Объединить результаты обоих тестов в одну электронную таблицу и проанализировать их совместно. 11. Тестирование стратегии только на 1 валютной паре/акции/товаре с последующим предположением, что она будет работать на всех рынках Я считаю, что в этом главным образом виноваты преподаватели трейдинга. Есть ряд преподавателей, которые утверждают, что их торговые системы работают на любом рынке. Возможно. Но я пока не обнаружил ни одной, которая подтвердила бы их слова. Каждый рынок и каждая отдельная акция, валютная пара или фьючерсный контракт имеют свои индивидуальные особенности. Они находятся под влиянием различных фундаментальных факторов и динамики рынка. Поэтому думать, что вы можете протестировать стратегию на одном рынке и далее применять её ко всем мировым рынкам – это просто проявление лени. Прежде чем рисковать реальными деньгами, протестируйте её на каждом рынке. 12. Рассеянность и пропуск сделок Да, я понимаю. Иногда бэктестирование может быть утомительным процессом. Раньше во время бэктестирования я просматривал фильмы в фоновом режиме или слушал музыку. Теперь же я больше фокусируюсь на том, что делаю, когда выполняю бэктестирование. Просмотр фильмов – это плохая идея. Что касается музыки, вы должны знать, какую музыку слушать. Выключите телефон и устраните как можно больше отвлекающих факторов. Если вы хотите послушать музыку, вы должны понимать, что она будет влиять на вашу концентрацию внимания и настроение. Возможно, во время поездки в своём автомобиле вы любите слушать Metallica, но этот музыкальный жанр, вероятно, является не самым лучшим, когда нужно сосредоточиться на чём-то. ...или, возможно, я ошибаюсь. Делайте то, что считаете нужным. Осведомлённость всегда является ключевым фактором совершенствования. Вы должны осознавать, как различные стимулы влияют на ваше психическое состояние, и устранять те, которые не помогают вам. И параллельно подумайте, как добавить вещи, которые действительно помогают вам. Откройте окно, чтобы подышать свежим воздухом, украсьте комнату или послушайте музыку. 13. Осуществление оптимального, а не честного открытия/закрытия сделок Это может дать как положительный, так и отрицательный эффект. В отношении тестирования системы с оптимальным входом в рынок тут есть что сказать. Под этим я подразумеваю открытие сделки в точке, где она принесёт максимальную прибыль и будет согласовываться с вашим планом, по сравнению с тем, где вы, вероятно, совершили бы её в реальных рыночных условиях. Открытие сделки в соответствии с вашим планом может показаться тем, что имеет чёткие границы. Но когда вы тестируете дискреционную стратегию, могут быть большие промежуточные (серые) зоны. Многие трейдеры устанавливают максимальную скорость воспроизведения бэктестирования, чтобы получить как можно больше данных. Затем они прокручивают график вперёд и принимают торговые решения о точке входа на основе данных, которые они уже видели в будущем. Во время торговли на реальном рынке вы, естественно, не будете видеть будущей информации, поэтому не используйте её в своём бэктестировании. Единственный способ, который может помочь вам определить оптимальную точку входа – это наличие очень точных механических правил для входа в рынок. Если в ваших правилах входа есть какая-либо свобода усмотрения, например, поиск уровня поддержки/сопротивления, тогда у вас будет соблазн прокрутить график назад к идеальной точке входа. Чтобы предотвратить это действие, найдите программное обеспечение для бэктестирования, которое даст вам возможность продвигаться на графиках только вперёд. Это поможет вам оставаться честными. 14. Соблюдение чужих правил без предварительной проверки их эффективности в вашей торговле Готовые торговые стратегии обычно хорошо работают только у какого-то одного трейдера. …и этот трейдер – не вы. Каждый успешный трейдер, с которым я когда-либо общался или о котором слышал, вынужден был адаптировать чужую стратегию под свои индивидуальные особенности. И я в том числе. Таким образом, учитесь торговым стратегиям у успешных трейдеров. Но рассматривайте их как отправную точку. Когда вы найдёте стратегию, которая вам понравится, будьте готовы настроить её, чтобы она соответствовала вашим индивидуальным качествам и стилю жизни. Внедряйте разные идеи и наслаждайтесь этим процессом. Как только вы подключите своё мышление, ваши шансы на успех резко возрастут. 15. Отказ от стратегии, потому что она не приносит X% прибыли в месяц Месячная цель доходности – это ожидание, которого можно достичь, а можно и не достичь с помощью вашей торговой стратегии. Для внутридневных торговых стратегий можно ставить ежемесячные цели. Но для торговли на более высоких таймфреймах это практически невозможно. Думаю, гораздо лучше иметь годовую цель, потому что она даёт вашей торговой стратегии возможность пройти через несколько полос прибыльных и убыточных сделок. Поэтому не пытайтесь втиснуть каждую торговую стратегию в свои ожидания. Ваши ожидания в любом случае являются произвольным числом. Сначала выясните, является ли данная стратегия прибыльной в рамках вашего плана. Если она пройдёт этот первый тест, вы можете поэкспериментировать с версиями входов и выходов, чтобы попытаться увеличить свою доходность. Также помните, что вы можете использовать эту стратегию для торговли на других таймфреймах и на других рынках, чтобы ещё больше увеличить доходность. Просто не забудьте сначала протестировать её. 16. Попытка чрезмерной оптимизации путём добавления дополнительных индикаторов/условий Эта проблема является самой распространённой. По своей природе люди, естественно, хотят создавать лучшие версии своих творений. Таким образом, в поисках совершенства мы пытаемся улучшить процент прибыльных сделок в рамках торговых стратегий, добавляя в них больше правил, чтобы отфильтровать убыточные сделки. Добавление бо́льшего количества индикаторов или условий обычно ухудшает торговую стратегию. При разработке торговой стратегии ваша цель состоит в поиске чего-то максимально простого, что приносило бы прибыль в течение длительного периода времени. Потому что вы никогда не разработаете чего-то идеального. 17. Попытка создания автоматизированной торговой стратегии тогда, когда она должна быть ручной, и наоборот Некоторые люди лучше торгуют вручную. У других лучше получается писать программные коды, и они с большей вероятностью будут успешными при использовании автоматизированных торговых программ. Подумайте о своих навыках и преимуществах. Я бы сказал, что большинству людей лучше быть дискреционными трейдерами. Когда они находят прибыльную стратегию, они могут сделать инкрементную автоматизацию и нанять программиста для автоматизации всей стратегии или какой-то её части. Однако, если вы программист или инженер, то вашим кредо, скорее всего, будет полностью автоматизированная торговля. Эти типы людей преуспевают в структуре и могут переводить торговые идеи в код. 18. Пренебрежение изучением правил тестируемой стратегии (которую вы узнали от других) Это то, что часто упускается из виду. Я несколько раз ловил себя на том, что испытывал сильное желание протестировать стратегию и окунался в тестирование, даже внимательно не изучив правил этой стратегии. После дальнейшего анализа я обнаруживал, что упустил несколько ключевых моментов, которые могли сделать эту стратегию прибыльной в моих бэктестах. Так что не торопитесь, когда изучаете ту или иную торговую стратегию. Просмотрите данный материал несколько раз, чтобы убедиться, что не пропустили ни единой детали. Затем начните тестирование. 19. Изначальная предвзятость в отношении подтверждения или опровержения данной стратегии Наконец, у некоторых трейдеров бывает предвзятое представление о торговой стратегии ещё до того, как они начнут её тестировать. Например, трейдер может полагать, что большинство пробоев обречены на провал. Таким образом, если он тестирует систему торговли на пробоях, он может сократить количество прибыльных позиций, потому что будет стремиться как можно скорее зафиксировать прибыль. Вы должны избавляться от своих предубеждений. Точно следуйте своему плану и не думайте, что знаете лучше. Заключительные мысли об ошибках бэктестирования Даже опытные трейдеры иногда могут совершать такие ошибки, поэтому при выполнении бэктестирования всегда знайте о них и старайтесь подходить к ним с более научной точки зрения. Соблюдение этих рекомендаций поможет вам получить качественные данные, которые могут улучшить ваши торговые показатели. Но если вы начнёте нарушать правила, вы будете годами крутить колеса на торговом силодроме. Выбор за вами. Переведено специально для Tlap.com, Хью Кимура
-
- 7
-
- тестирование
- новичкам
-
(и ещё 4 )
C тегом:
-
Я заинтересовался количественной торговлей после того, как обнаружил книгу Перри Кауфмана «Системы и методы биржевой торговли». Как внутридневной трейдер я изо всех сил пытался контролировать свои эмоции, и мне нужен был способ торговать более разумно. Вводная книга Кауфмана открыла мне глаза на перспективу превращения моих торговых идей в конкретные правила. Вместо торговли без подготовки и навыков я мог превратить свои идеи в правила и дожидаться, когда на рынке будут происходить нужные мне сетапы. Вместо занятий торговлей я потратил время на исследование и построение эффективных торговых систем. Прилив адреналина от выяснения того, является ли та или иная торговая система прибыльной, сменил шум от заключения сделки с высоким риском. Однако всё шло не так гладко. Для быстрого освоения новых прибыльных торговых стратегий нужно было многому научиться, и я сильно недооценивал усилия, которые требовались для создания только одной системы. Спустя много лет я в результате ощущаю, что у меня есть твердое понимание того, как создавать профессиональные торговые стратегии. Недостаточно просто следовать инструкциям: собирать данные, программировать те или иные правила, проводить стресс-тестирование, выполнять проверку и т. д. Все эти шаги являются крайне важными, но сами по себе они не обеспечивают успеха. Успех приходит от глубокого познания того, как работает рынок, а также от понимания правильной конструкции системы. Опыт построения множества неудачных систем и размещения огромного количества сделок означает, что я лучше понимаю, какие стратегии могут сработать, а какие нет. Возможность сконцентрироваться на идеях, которые, как мне кажется, будут работать, – это и есть великое преимущество. Предлагаю вашему вниманию три урока по самостоятельному построению профессиональных торговых стратегий. Надеюсь, они помогут вам стать успешным трейдером. 1) Погрузитесь в трейдинг Глубокое понимание рынка имеет решающее значение для вашего успеха как системного трейдера. Лучший способ обрести такое понимание – это погрузиться в трейдинг. Вам необходимо размещать сделки. Вам нужно придумывать идеи. Вам нужно разрабатывать множество стратегий. Большинство ваших торговых стратегий потерпят неудачу, и это нормально (если, конечно, вы не потратите все свои деньги). Каждая неудача говорит вам что-то о рынке и приближает вас на шаг к тому уровню понимания, который необходим для достижения успеха. Некоторые трейдеры, занимающиеся количественным анализом, погружаются в академическую теорию и сложную математику. Но многие из этих трейдеров сливают свои счета, потому что они не разбираются в рынке. Рынок как вирус. Он всегда видоизменяется, вытесняя менее приспособленных участников, даже специалистов по количественному анализу. Вы можете прочитать столько книг и провести столько тестов на исторических данных, сколько захотите. Но интуиция и торговое чутье могут появиться только в результате применения ваших профессиональных торговых стратегий на реальном рынке. Через некоторое время вы поймете, на каких торговых стратегиях вам следует сосредоточить свое внимание, а от каких следует быстро отказаться. Это высвобождает время для охоты за серьезной суперприбылью. 2) Найдите свой секретный соус В наши дни легко читать об известных инвестиционных стратегиях, таких как импульсная стратегия или стратегия возврата к среднему. В открытом доступе имеется масса хороших работ, и масса хороших трейдеров успешно применяют эти методы на практике. Обучение никогда не было таким простым. Однако я заметил, что лучшие трейдеры привносят в свои стратегии нечто уникальное и новое. Возможно, они сочетают стратегию возврата к среднему с их личной интуицией. Возможно, они включают в свои системы неожиданные источники данных. С другой стороны, я заметил, что есть большое количество трейдеров, которые не вносят в торговую игру ничего нового. Многим системным трейдерам не хватает креативности, что является одной из основных причин их неудач. Джим Саймонс однажды сказал, что многие из старых преимуществ ушли в небытие, но тут же добавил, что на рынке постоянно появляются всё новые и новые преимущества. Именно так и должно быть. Меняются экономические условия, меняются политические режимы, меняются сами участники рынка. По мере развития событий некоторые области рынка становятся более эффективными, в то время как на свет появляются всё новые и новые. Тем не менее, многие трейдеры, вероятнее всего, цепляются за старые рыночные стереотипы. Ваша цель как системного трейдера заключается в поиске новых возможностей. Если вы достаточно хорошо изучите данные и динамику рынка, вы найдете эти преимущества. Эти преимущества могут стать основой для совершенно новой торговой системы. Или же они могут просто привнести нечто дополнительное в вашу исходную торговую стратегию. На мой взгляд, ключ к успеху состоит в том, чтобы начать с простой стратегии, которая последовательно приносит прибыль. Затем используйте свой личный опыт и навыки, чтобы вывести эту систему на новый уровень. Это и будет вашим секретным соусом, который принесет успех только вам. 3) Рискуйте в разумных пределах Это может показаться нелогичным, но системные трейдеры могут быть весьма склонны к риску. В конце концов, мы используем системы, потому что хотим иметь больше уверенности в том, что мы будем зарабатывать деньги. Мы хотим видеть доказательства прибыли, прежде чем пожертвовать своими с трудом заработанными деньгами. Я тоже отнес бы себя к этой категории. В прошлом я упустил много прибыльных сделок, потому что результаты тестирования на исторических данных выглядели недостаточно идеальными. Но наступает момент, когда вам нужно принять некоторый риск. Тот факт, что система имеет небольшой размер выборки или нестабильную кривую капитала, не означает, что вы должны ее игнорировать. Комбинируя другие факторы или преимущества, можно превратить не очень хорошую торговую стратегию в хорошую. Точно так же самые прибыльные торговые идеи по своей природе имеют небольшой размер выборки. Почему? Потому что большинство крупных торговых преимуществ являются новыми, и большинство трейдеров еще не открыли их для себя. Жизненно важно использовать надежные методы для исследования, тестирования и верификации профессиональных торговых стратегий. Только не бойтесь снова и снова рисковать. Не каждая сделка, которую вы совершаете, должна подкрепляться огромной массой данных. Джо Марвуд, Переведено специально для Tlap.com
- 6 ответов
-
- 10
-
- джо марвуд
- стратегия
-
(и ещё 2 )
C тегом:
-
Торговля на валютной паре GBPUSD Предлагаю вашему вниманию пример наблюдения за закономерностью на рынке, программирование ее в алгоритм, анализ результатов и получение прибыли из этого на вашем торговом счете – короче говоря, все то, к чему мы, технические трейдеры, стремимся. Лука Джусти Трейдеры обычно ищут торговые идеи в паттернах. Когда мы анализируем исторические данные ценового движения валютной пары GBPUSD (обычно называемой «кабелем»), то наблюдаем, что в последние несколько дней месяца кабель имеет тенденцию расти, а в первые дни следующего месяца имеет тенденцию к снижению (см. рисунок 1). Горизонтальная ось на рисунке 1 показывает дни месяца (от 1 до 31), и можно увидеть, что в последние несколько дней месяца цена поднимается вверх, а в первые 10 дней месяца опускается вниз. Я возглавляю исследовательский центр компании QTLab.it, и наша деятельность включает поиск паттернов и рыночных трендов, которые можно использовать в трейдинге, а также разработку алгоритмов для реализации этих идей. Для поиска подобных идей мы используем нашу платформу Strategy LABs Data Analyzer, специально разработанную для этих целей. Однако для поиска идей вы также можете использовать наблюдение за рынком. Мы хотели изучить данный паттерн, который наблюдали на кабеле, чтобы увидеть, можем ли мы воспользоваться его преимуществами для торговли. В данной статье я детально объясню наш процесс разработки стратегии и ее тестирования, а также покажу, удалось ли нам получить регулярный доход из этой наблюдаемой закономерности. Рисунок 1. Наблюдаемый в конце месяца тренд по валютной паре GBPUSD. Очевидно, что в последние несколько дней месяца цена поднимается вверх, а в первые 10 дней месяца опускается вниз. Рисунок 2. Кодирование стратегии. Здесь представлен код стратегии на языке программирования EasyLanguage. Рисунок 3. Данная стратегия в действии. Сводные показатели отображаются в печатной панели журнала, которая представляет собой строку текста в нижней части графика. Как мы видим, по данной стратегии в последние дни января 2020 года открывалась длинная позиция, а затем позиция менялась на противоположную, и до 10 февраля 2020 года удерживалась короткая позиция. Рисунок 4. Пример кривой капитала. Здесь представлена как подробная гипотетическая кривая капитала, так и с единичным значением, сгенерированная с помощью платформы TradeStation. Разработка алгоритма Вы можете кодировать и тестировать торговые идеи, подобные этой, даже если у вас нет большого опыта в программировании. В некоторых случаях может потребоваться всего несколько строк нового кода. Для этого примера вы можете увидеть на рисунке 2 составленный нами короткий листинг кода, который служит для превращения этой идеи в торговую стратегию для дальнейшего тестирования. На рисунке 3 вы можете увидеть эту стратегию в действии на графике. На этом графике показаны исторические данные для валютной пары GBPUSD на 60-минутном таймфрейме (данная стратегия тестировалась на исторических данных в течение 5 лет). Такой же анализ можно провести, используя вместо этого исторические данные для валютного фьючерса на CME (@BP) с учетом правильного часового пояса. (Для торговли на Форекс я использую Нью-Йоркский часовой пояс). Об использовании стоп-лосса я расскажу немного позже в этой статье, а пока я просто хотел указать, что на рисунке 2 вы можете увидеть, что в последних строках кода на языке программирования EasyLanguage используется стоп-лосс. Как мы видим на графике, представленном на рисунке 3, по данной стратегии в последние дни января 2020 года открывалась длинная позиция, а затем позиция менялась на противоположную, и до 10 февраля 2020 года удерживалась короткая позиция. Мы можем изучить некоторые показатели, отображаемые в печатной панели журнала, которая представляет собой строку текста в нижней части графика. Но мы также можем просто бегло взглянуть на кривую капитала, чтобы увидеть, стоит ли придерживаться этой стратегии. Поэтому в качестве простого наглядного изображения на рисунке 4 я показываю кривую капитала, полученную в результате бэктестирования нашей стратегии. Изучение кривой капитала и достижение положительного результата придаст нам уверенности в реализации стратегии. Тестирование этой стратегии на исторических данных содержит 130 сделок. Чтобы проверить жизнеспособность стратегии, нам следует сделать одно из двух: 1. Расширить анализ на несколько лет, предшествующих текущему тесту, в данном случае до 2014 года (то есть мы будем выполнять проверку стратегии как «в выборке», так и «вне выборки»), или 2. Искать подобные тренды на других валютных кроссах, содержащих GBP (то есть мы будем искать подтверждение для нескольких рынков). Это обеспечит некое подтверждение наличия сигнала, а не только шума. Для этого исследования мы выбрали сначала второй путь. Итак, для последующего валидационного анализа мы будем использовать предыдущие годы до 2014. Этот последующий анализ также поможет нам определить подходящее значение ордера стоп-лосс для использования данной стратегии на этом рынке. Рисунок 5. Валютная пара GBPAUD. На рисунках 5-10 мы смотрим на другие валютные кроссы, содержащие GBP, чтобы увидеть, является ли этот паттерн широко распространенным. Рисунок 6. Валютная пара GBPCAD Рисунок 7. Валютная пара GBPJPY Рисунок 8. Валютная пара GBPCHF Рисунок 9. Валютная пара GBPNZD Рисунок 10. Валютная пара EURGBP Проверка стратегии на нескольких рынках На рисунке 5 можно увидеть ту же стратегию, которая была закодирована на языке программирования EasyLanguage, что и на рисунке 2, но примененную в данном случае к графику валютной пары GBPAUD. Справа и под графиком показан пример кривой капитала. На рисунке 6 аналогичным образом показана данная стратегия, примененная к валютной паре GBPCAD, затем к валютной паре GBPJPY на рисунке 7 (здесь, пожалуй, самый интересный результат), далее к валютной паре GBPCHF на рисунке 8, к GBPNZD на рисунке 9, и, наконец, к EURGBP на рисунке 10. В последнем примере с валютной парой EURGBP мы должны помнить о том, что здесь нужно менять сигнал на противоположный, поскольку в этой валютной паре GBP является знаменателем. Сравнивая другие валютные кроссы, содержащие GBP, в поисках аналогичного эффекта, мы можем увидеть, что наличие тренда в конце месяца, по-видимому, широко распространено на всех валютные кроссах, содержащих GBP, а также очевидно и на кабеле (GBPUSD). Таким образом, с помощью этой проверки на нескольких рынках мы можем сделать вывод, что данный результат является не просто случайным поведением (результаты анализа скрытых закономерностей в данных означают, что вы должны копаться в данных до тех пор, пока не найдете взаимосвязь, которую ищете). Кроме того, дополнительный анализ, такой как проверка на нескольких рынках, помогает нам исключить тот факт, что положительные результаты тестирования на исторических данных были получены путем чрезмерно близкой подгонки данной модели. Определение соответствующего уровня стоп-лосс Далее мы можем перейти к поиску оптимального размещения уровня стоп-лосс для этой стратегии. Мы сделаем это отдельно для длинной и короткой позиций, поскольку время удержания коротких и длинных позиций будет сильно отличаться. Мы проводили оптимизацию на платформе TradeStation в период с 2014 по 2020 гг. Для длинных позиций мы протестировали уровни стоп-лосс в интервале от 50 до 300 пунктов (с шагом в 25 пунктов). Для коротких позиций мы протестировали уровни стоп-лосс в интервале от 50 до 700 пунктов (с шагом в 50 пунктов). Эта стратегия (особенно для коротких позиций) может оставаться в силе до 10 дней. На рисунке 11 вы можете увидеть наиболее стабильные области результатов наших тестов. Исходя из этого, мы решили использовать значения ордера стоп-лосс в 190 пунктов для длинной позиции и в 500 пунктов для короткой позиции. Используя эти значения для ордера стоп-лосс, на рисунке 12 вы можете увидеть гипотетически сгенерированную кривую капитала. В последние дни месяца цена имеет тенденцию подниматься, а в первые дни следующего месяца – опускаться. Рисунок 11. Поиск оптимальных уровней стоп-лосс. Тестируя различные возможные уровни стоп-лосс для данной стратегии и обращая внимание на то, какие области выглядят более стабильными в полученных результатах, мы можем определить наиболее подходящие уровни стоп-лосс как для длинной позиции, так и для короткой позиции в рамках данной стратегии. Рисунок 12. Влияние ордеров стоп-лосс на результаты данной стратегии. Используя значения стоп-лосс, определенные в процессе тестирования на рисунке 11, можно увидеть гипотетическую результирующую кривую капитала после применения ордеров стоп-лосс в данной стратегии. Рисунок 13. Расширение результатов тестирования. Здесь представлена гипотетическая результирующая кривая капитала, когда мы расширяем период тестирования данной стратегии на исторических данных до 2007 года. Рисунок 14. Параметры отчета о производительности данной стратегии. На рисунке приведен сводный результат тестирования, полученный на платформе TradeStation. Представлены показатели эффективности данной стратегии за 13-летний период. Рисунок 15. Результаты тестирования данной стратегии. Наше бэктестирование показывает, что данная стратегия год за годом регулярно приносит положительные результаты, за исключением 2009 года. Результат за 2009 год предполагает, что нам следует провести дополнительную оценку, чтобы рассмотреть возможность улучшения управления нашей позицией во избежание просадок, подобных той, что была в 2009 году. Тестирование «в выборке»/«вне выборки» Теперь мы расширим наш анализ на несколько лет глубже в историю, ранее 2014 года, чтобы проверить жизнеспособность данной стратегии и подтвердить окончательный результат в более широком временно́м интервале и на бо́льшем количестве транзакций. На рисунке 13 показан пример кривой капитала при тестировании на исторических данных, начиная с 2007 года. Красная вертикальная линия разграничивает данные «в выборке» и «вне выборки» и дает возможность сравнить их. Часть графика «в выборке» представляет собой анализ данных за 2014–2020 годы, выполненный ранее в этой статье; тестирование же данных «вне выборки» используется в целях проверки жизнеспособности данной стратегии. Сравнивая другие валютные кроссы, содержащие GBP, в поисках аналогичного эффекта, мы можем увидеть, что наличие тренда в конце месяца, по-видимому, является широко распространенным явлением. Результаты тестирования стратегии На рисунке 14 представлена сводная информация о производительности нашего тестирования, выполненного на платформе TradeStation. Она отображает показатели эффективности данной стратегии за последние 13 лет: количество транзакций выросло до 322, коэффициент прибыли составляет 1,77, а сделка в среднем приносит 359 $, что более чем достаточно для покрытия транзакционных издержек, которые не были включены в этот анализ. Важно учитывать просадку данной стратегии. Принятие в расчет просадки говорит о том, нужно ли нам улучшить управление позицией. Рисунок 15 демонстрирует результаты наших тестов, которые показывают, что данная стратегия год за годом регулярно приносит прибыль, за исключением 2009 года. Таким образом, нам следует уделить особое внимание 2009 году и провести дополнительный анализ, чтобы выяснить, как можно улучшить наше управление позициями во избежание отрицательной результативности, наблюдаемой в 2009 году. В завершение Начав с довольно простой торговой идеи, подобной той, которую мы определили на «кабеле», мы закодировали стратегию на языке программирования EasyLanguage и протестировали ее на платформе TradeStation. Затем мы выполнили несколько простых проверочных тестов, направленных на оценку жизнеспособности данной стратегии. Пример, приведенный в этой статье, пошагово иллюстрирует весь этот процесс. Впереди еще очень много торговых идей, которыми мы собираемся поделиться с вами. Просто нужно найти идею и протестировать ее. Хорошей торговли! Лука Джусти является количественным трейдером, торгующим на рынках фьючерсов и опционов. Он возглавляет исследовательский центр компании QTLab (QTLab.it), который он создал в 2010 году в целях предоставления анализа, подобного тому, который описан в этой статье, а также целого ряда услуг для трейдеров, включая индивидуальные программы обучения, инструменты для торговых идей, построение торговых систем, логику управления капиталом и инструменты для управления портфелем. Джусти является членом научного комитета SIAT. Он выступал с речью в Международной федерации технических аналитиков-2017, на выставках TOL EXPO на Итальянской фондовой бирже с 2008 года и в компании CME Group в Лондоне в 2019 году. Принимает активное участие в образовательных проектах в Италии и Швейцарии. Лука Джусти, Переведено специально для Tlap.com
-
После крупного движения в понедельник вы часто будете слышать, как трейдеры говорят о развороте во вторник. Всё гениальное просто. Когда рынки начинают неделю с большим размахом, зачастую во вторник они успокаиваются и совершают приличный разворот. Глядя на данные, мы обнаруживаем небольшое преимущество в развороте во вторник по S&P500. Мы также обнаружили, что это преимущество лучше всего проявляется в периоды волатильности. Настройка теста Чтобы протестировать стратегию разворота во вторник, мы будем использовать исторические данные, предоставленные компанией Norgate, для индексного фонда S&P500 SPY ETF. Мы включим комиссию в размере 0,01 $ за акцию и протестируем ее на исторических данных за период с января 2000 года по апрель 2020 года. Мы собираемся протестировать несколько различных вариаций. Мы будем входить в рынок во вторник после крупного движения в понедельник (и выходить из рынка по цене закрытия вторника). Мы также протестируем вход в рынок по цене закрытия понедельника с последующим выходом по цене закрытия вторника. Полные результаты тестирования представлены ниже: Лучшие короткие и лучшие длинные сетапы выделены желтым цветом. Как видно из таблицы, мы получили довольно интересные результаты данного теста, по которым я ниже попытаюсь подвести итоги. 1. Прежде всего следует отметить, что средняя доходность при условии открытия позиций во вторник составила всего 0,03%, а средняя доходность при условии входа в рынок по цене закрытия понедельника с последующим выходом по цене закрытия вторника составила всего 0,09%. Некоторые из наших тестов превзошли эту доходность (с приличным отрывом), что указывает на возможное преимущество. 2. Лучшая доходность для длинных позиций была получена от покупки SPY по цене закрытия понедельника после дня падения цены более чем на 1,0% с последующим выходом по цене закрытия вторника. Мы получили среднюю прибыль 0,60%, процент прибыльных позиций 60,95% и доходность с поправкой на риск 146,78%. На следующем графике показан пример этого торгового сетапа. SPY упал более чем на 1% в понедельник 5 августа 2019 года, поэтому мы открыли длинную позицию по цене закрытия понедельника (зеленая стрелка) и закрыли ее по цене закрытия вторника (красная стрелка) с прибылью 1,40%. 3. Лучшая доходность для коротких позиций была получена от продажи SPY во вторник после открытия позиции по цене закрытия понедельника после дня роста цены более чем на 1,0% с последующим выходом по цене закрытия вторника. В результате средняя прибыль составила 0,10%, а доходность с поправкой на риск 22,28%. На следующем графике показан пример от 05.07.2019: 4. В целом, данные говорят о том, что в рамках стратегии разворота цены лучше покупать в конце дня понедельника, чтобы воспользоваться преимуществом отскока цены ночью даже при условии дополнительного переноса позиции через ночь. Между тем, короткие сделки лучше работают без переноса через ночь. Наши выводы достаточно последовательны, чтобы предположить, что разворот во вторник действительно может иметь некоторое преимущество. Тестирование портфеля длинных и коротких позиций Хотя полезно видеть представленные в таблице данные, также необходимо просматривать результаты кривой капитала, чтобы мы могли быть уверены, что прибыль пришла не в один кластер. Поэтому в следующем тесте для симуляции портфеля длинных/коротких позиций мы объединим правила № 9 и № 14 из вышепредставленной таблицы: Мы будем покупать SPY по цене закрытия понедельника после дня падения цены с последующим выходом по цене закрытия вторника, и мы будем продавать SPY по цене закрытия понедельника после дня роста цены на 1,0%. Мы будем использовать размер стартовой позиции 25 000 $, комиссию 0,01 $ за акцию и не будем использовать маржу. Наши обобщенные результаты приведены ниже: • Общее количество сделок: 536 • Суммарная годовая доходность: 4,72% • Максимальная просадка: -12,96% • Процент прибыльных позиций: 55,97% • Доходность с поправкой на риск: 44,98% Данная стратегия принесла доходность в годовом исчислении 4,72% при максимальной просадке -12,96%. Она является более прибыльной по сравнению со стратегией «покупай и удерживай», доходность по которой составила 4,59%, максимальная просадка -55% и доходность с поправкой на риск 44,98%. Стратегия была прибыльной в течение последних 20 лет, а кривая капитала подтверждает, что прибыль была относительно стабильной в течение всего периода тестирования. Таблица прибылей показывает, что результаты, как правило, являются лучшими в волатильные годы, такие как 2008, 2011 и 2020. Стратегия разворота во вторник только на медвежьих рынках Как упоминалось выше, результаты показывают, что стратегия лучше всего работает в периоды волатильности. Поэтому в данном последнем тесте мы будем использовать ту же стратегию, что и выше, но ограничим наш тестовый период днями, когда S&P500 торгуется ниже скользящей средней с периодом 200 дней. Ниже представлено резюме полученных результатов. • Общее количество сделок: 206 • Суммарная годовая доходность: 4,12% • Максимальная просадка: -10,24% • Процент прибыльных позиций: 58,74% • Доходность с поправкой на риск: 102,08% Хотя размер нашей выборки и годовая доходность снизились, мы также зафиксировали более низкую просадку, что улучшило нашу доходность с поправкой на риск до 102,08%. Это довольно неплохой результат, и он может выступать в качестве хорошего фактора диверсификации во время волатильных рынков. Заключительные мысли В этой статье мы рассмотрели производительность стратегии разворота во вторник, который является традиционным торговым паттерном. Мы обнаружили небольшое преимущество у S&P500 ETF, которое было относительно стабильным и оказалось более сильным на медвежьих рынках. На это преимущество стоит обратить внимание, и его можно еще больше усилить за счет использования кредитного плеча или торговли на фьючерсах или контрактах на разницу. Мы также можем протестировать различные определения медвежьего рынка и посмотреть на другие рынки. Некоторое предварительное тестирование показало, что стратегия разворота во вторник тоже была прибыльной для акций QQQ и VNQ, однако она не принесла прибыли для акций GLD или IEF. Это является простым преимуществом, которое стоит изучить дополнительно, а затем объединить с другими небольшими преимуществами или стратегиями. Вероятнее всего, в старой торговой мудрости всё-таки есть доля правды. Гален Вудс, Переведено специально для Tlap.com
-
- 7
-
- тестирование
- стратегия
- (и ещё 3 )
-
Систематическая ошибка отбора при выборе торговой системы
!!NIKA!! опубликовал тема в В помощь трейдеру
Ранее я говорил об опасностях систематической ошибки выжившего и важности даты начала. Я также говорил о необходимости сберегать данные вне выборки и поддерживать как можно меньшее количество оптимизируемых параметров, чтобы избежать ошибки, связанной с интеллектуальным анализом данных. Кроме того, я упомянул, что единственными истинными данными вне выборки являются будущие данные, поскольку мы уже знаем, что рынок делал в прошлом. В этой статье я расскажу о другой важной теме, известной как систематическая ошибка отбора. При разработке торговой системы систематическая ошибка отбора может возникать, когда трейдер тестирует на истории столь большое количество торговых идей, что почти наверняка натолкнется на хорошие результаты бэктестирования, но обнаружит, что это всего лишь случайность и везение. Данную концепцию очень хорошо объяснил Майкл Харрис в блоге PAL. Систематическая ошибка отбора в торговых системах Рассмотрим процесс тестирования и оптимизации торговой системы. С помощью компьютера и торговой платформы можно протестировать сотни и тысячи различных комбинаций настроек. Если вы протестируете достаточное количество разных стратегий, то в конечном итоге найдете ту, которая будет обеспечивать высокую доходность и показывать очень привлекательную кривую капитала. Большинство трейдеров на этом этапе поймут, что если вы планируете рисковать своими с трудом заработанными деньгами на рынке, вы не можете полагаться только на одну красивую кривую капитала. Одна кривая капитала не дает достаточной уверенности для торговли и может возникнуть по чистой случайности. Проблема в том, что потенциальная прибыль системы может быть случайной и, следовательно, вряд ли повторится в будущем. Некоторые неопытные трейдеры могут подумать, что наткнулись на самую прибыльную торговую систему. Но на самом деле, если данная система случайна, она начнет работать неэффективно, как только будет запущена на реальном рынке. Экспертная визуальная оценка кривой капитала Майкл Харрис рассказывает об интересной аналогии с подбрасыванием монеты, которую мы можем использовать для объяснения этой проблемы. Допустим, вы занимаетесь построением торговых систем и ищете систему с низкими просадками, положительным ожиданием и плавной восходящей кривой капитала. Если да, то в вашем воображении всплывет нечто подобное приведенной ниже кривой капитала: Уверен, вы согласитесь, что это неплохая кривая капитала. Она определенно не похожа на случайный график. Если бы ваш торговый счет мог расти такими же темпами, как этот график, то с полной уверенностью могу сказать, что в течение ряда лет вы были бы просто счастливы. Но что, если я скажу вам, что приведенная выше кривая на самом деле является результатом 10 000 случайных подбрасываний монет? Верно, случайные результаты могут генерировать красивые кривые капитала. Даже при таком размере выборки, как 10 000. Таким образом, даже если результат подбрасывания монеты составляет 50/50 между орлом и решкой, запустите несколько симуляций, и вы можете натолкнуться на довольно жесткие последовательности прибылей/убытков и, следовательно, на некоторые возмутительно выглядящие графики капитала. Графики, которые выглядят совсем не рандомно. Итак, проблема в том, что привлекательная кривая капитала может обмануть трейдера, заставив его поверить, что у него есть прибыльная торговая система, которая не является случайной. Эта проблема может усугубиться, когда трейдер получает положительную кривую капитала для данных вне выборки, что также могло возникнуть по чистой случайности. Это может произойти по той же причине. Если вы протестируете достаточное количество стратегий, то в конечном итоге найдете ту, которая хорошо выглядит как для данных внутри выборки, так и для данных за ее пределами, но в целом результат может оказаться случайностью, которая вряд ли повторится в будущем, когда вы запустите эту же систему на реальном рынке. Эта проблема с еще большей вероятностью возникнет, когда трейдер использует только небольшой объем данных внутри выборки или вне выборки. Поскольку чем меньше размер выборки, тем легче возникают случайные результаты. См. закон малых чисел. Случайна ли ваша торговая система? Знать эту информации важно, но как трейдеры могут создавать торговые системы и быть уверенными в том, что они не являются случайными? Ответ не всегда прост и во многом связан со статистикой. Но для начала мы можем использовать несколько основных принципов: 1) Прежде чем приступить к разработке своей торговой системы, убедитесь, что она основана на теоретических принципах. Не ищите в данных прибыльные закономерности, поскольку вы обязательно найдете множество прибыльных паттернов, которые на самом деле случайны. Это простой способ найти случайности и увлечься результатами на экране. Если вы всё же решите пойти по этому пути, убедитесь, что у вас есть исчерпывающие методы для оценки надежности ваших паттернов. 2) Всегда имейте в запасе достаточно данных вне выборки для проверки своей системы. После того, как вы протестировали систему на данных внутри выборки, протестируйте ее один раз на данных вне выборки, чтобы увидеть, работает ли она аналогичным образом. Не возвращайтесь к данным внутри выборки и не настраивайте систему на основе результатов вне выборки, потому что это пагубно скажется на данных и в значительной степени будет способствовать их подстройке. По сути, вы обманываете себя, используя последние данные для формирования правил на этапе отбора внутривыборочных данных. Чем чаще вы тестируете свои данные, тем больше вероятность того, что вы обнаружите случайность, и тем сложнее вам будет ответить на этот вопрос. Кроме того, вы можете первоначально протестировать свою систему на данных вне выборки, прежде чем протестировать ее на данных в пределах выборки, а также после тестирования на данных в пределах выборки. Иными словами, вы можете сделать это в конце или в начале. Или и так, и так. Вы также можете запустить свою стратегию, используя разные даты начала и разные таймфреймы, чтобы лучше понять, был ли ваш первоначальный запуск случайным. Для логической автоматизации этого процесса можно настроить форвардный анализ. 3) Сохраняйте как можно меньшее количество параметров. Увеличение числа настраиваемых параметров увеличивает количество кривых капитала, которые могут быть сгенерированы, и экспоненциально увеличивает вероятность ошибки, связанной с интеллектуальным анализом данных. Существуют прибыльные торговые системы, которые состоят всего из одного или двух настраиваемых параметров. Такие стратегии легче проверить на значимость, следовательно, они с большей вероятностью будут надежными. 4) При оптимизации параметров не обязательно выбирать наиболее эффективную переменную. Найдите диапазон переменных, в котором система работает хорошо, а затем выберите переменную, находящуюся в этом диапазоне. Например, если система хорошо работает на пробое скользящей средней с периодом 100 дней, она должна также хорошо работать и на пробое скользящей средней с периодом 98 или 95 дней. Или на пробое скользящей средней с периодом 102 или 110 дней. Если ваша система приносит годовую прибыль в размере 20% на пробое скользящей средней с периодом 100 дней и в то же время приносит убыток на пробое скользящей средней с периодом 99 или 101 день, то, вероятнее всего, ваша система с использованием скользящей средней с периодом 100 дней выдала вам случайный результат. Небольшие изменения параметров не должны оказывать сильное влияние на конечный результат. Если ваша система не работает с очень похожими переменными, значит, велика вероятность того, что данный результат является случайным. 5) Протестируйте свою систему на других рынках. Аналогичным образом, как вы тестируете свою систему на данных вне выборки, для оценки ее надежности вы также можете протестировать свою систему и на других рынках. Система, которая хорошо работает на сырой нефти, не обязательно должна работать на золоте, но если она показывает хорошие результаты и там, то это добавляет дополнительный уровень уверенности в том, что вы, скорее всего, нашли преимущество. 6) Для подтверждения результатов вашей системы относительно базового случайного результата используйте тесты значимости, такие как тест Монте-Карло и тест Уайта. Вы должны иметь возможность опровергнуть гипотезу, согласно которой ваша система может быть случайной. Другими словами, вы должны иметь возможность сказать, что результаты вашей системы настолько хороши, что маловероятно, что ее положительная производительность будет случайным результатом. Например, вы могли бы отыскать уровень значимости, который позволит вам с 99%-ной уверенностью сказать, что ваша система не является случайной. Никогда нельзя быть полностью уверенным ни в одной сфере науки. Лучшее, что вы можете сделать – это доказать, что нечто является маловероятным. Систематическая ошибка отбора при выборе торговой системы: некоторые выводы В целом, важно понимать, что на рынке очень мало «преимуществ», которыми может воспользоваться средний трейдер. Основная цель системного трейдера должна заключаться в том, чтобы избегать аппроксимации (подстройки) данных, потому что это одна из самых распространенных и самых простых ошибок. Чем больше будет выполнено симуляций, тем больше вероятность возникновения этой ошибки. Торговые системы должны быть простыми, и их надежность должна быть предпочтительнее, чем получение невероятной прибыли. Таким образом, трейдеры должны с осторожностью подходить к аппроксимации данных на каждом этапе своего пути, а также постоянно обращаться к статистике в целях получения бо́льшей уверенности в своих результатах. Трейдеры должны знать, что систематическая ошибка отбора/аппроксимация данных может происходить как среди данных вне выборки, так и внутри выборки. Джо Марвуд, Переведено специально для Tlap.com- 4 ответа
-
- 14
-
- джо марвуд
- стратегия
-
(и ещё 1 )
C тегом:
-
К сожалению, трейдеры часто отказываются от торговых систем на раннем этапе их тестирования на исторических данных после получения нескольких плохих результатов. Тем не менее, иногда проще улучшить существующую торговую систему, чем начать разрабатывать новую. В этой статье я подробно расскажу о 21 способе улучшения существующей торговой системы. 1. Протестируйте ее на реальном рынке Один из лучших способов улучшить торговую систему – это торговать по ней на реальном рынке. Слишком большое количество трейдеров застревают в цикле обратной связи бектестирования, когда они тратят всё свое время на настройку и оптимизацию своих систем на исторических данных. Однако при тестировании на исторических данных вы всегда будете ограничиваться имеющимися у вас прошлыми данными. Вы также рискуете внедрить чрезмерную аппроксимацию. И наоборот, развернув свою систему на реальном рынке, вы узнаете о ней гораздо больше, чем на этапе бектестирования. Вы обнаружите мельчайшие нюансы – например, как работает ваша система в определенных условиях, как влияют на ее результаты различные виды ордеров и какое влияние на ее производительность оказывают новостные события. Затем эти данные можно использовать для обратной связи в системе и дальнейшего ее совершенствования. Я не призываю к тому, что вам следует сразу же начать торговать не до конца разработанной торговой системой на реальном рынке. Но вы можете узнать о своей торговой системе намного больше, если отведете несколько месяцев для торговли по ней на реальном рынке, по сравнению с демо-счетом. Если результат будет выглядеть достаточно многообещающе, вы можете выделить для этого небольшие суммы денег. 2. Конкурируйте с ней Имея некую торговую систему, вне зависимости от того, торгуете вы с ее помощью на реальном рынке или на демо-счете, найдите способ конкурировать с ней. Сможете ли вы превзойти свою модель, входя в рынок раньше, позже или торгуя более или менее часто? Возможно, ваша система не работает в определенных условиях или в определенное время суток. Данные, которые вы получаете в результате торговли, могут помочь вам в обнаружении недостатков вашей системы. Возможно, вы добьетесь бо́льшего успеха, если пропустите определенные опасные сценарии. Если ваша система торгует на закрытии, возможно, вы сможете торговать до закрытия, чтобы получить лучшую точку входа. Или, возможно, для определения лучших входов и выходов из рынка вы сможете использовать свои навыки чтения графиков. Можете ли вы атаковать свою стратегию? 3. Протестируйте свою систему на разных рынках Очевидный способ улучшить свою торговую систему – это протестировать ее на разных рынках. Развитые рынки более ликвидны и эффективны, чем развивающиеся. Акции S&P 500 более ликвидны и эффективны, чем акции с малой капитализацией. Товарные рынки чаще торгуются в трендах, чем валютные и фондовые рынки. Поскольку все рынки ведут себя по-разному, имеет смысл протестировать вашу систему на разных рынках. 4. Попробуйте применить ее на разных таймфреймах Другой очевидный выбор – это реализовать свою торговую систему на разных таймфреймах. Краткосрочные таймфреймы, такие как 5-минутные или 30-минутные, содержат больше рыночного шума, чем более долгосрочные таймфреймы, например, дневные или недельные. Дневные таймфреймы демонстрируют лучшие тренды, но они также приводят и к меньшим возможностям. Можно найти баланс, который лучше всего подходит вашей торговой системе. Также хорошей идеей может быть применение нескольких таймфреймов. Например, вы можете торговать только тогда, когда цена на часовом, дневном и недельном графиках идет в одном направлении. 5. Упростите ее Зачастую причина того, почему торговая система терпит неудачу при использовании ее на реальном рынке, заключается в ее чрезмерной сложности. Слишком много компонентов могут привести к аппроксимации данных на этапе бектестирования. Таким образом, очень хорошим способом улучшения вашей торговой системы является ее упрощение. Вернитесь к наиболее важным ее элементам и посмотрите, действительно ли это повлияет на ее производительность. 6. Используйте более точные данные Иногда причина, по которой торговая система плохо работает, не связана с самой системой, а связана с данными, которые использовались для ее построения. Если данные субъективны или содержат пробелы, вы получите необъективную систему. Вот почему так важно использовать высококачественные услуги передачи данных. 7. Используйте форвардный анализ Весь смысл тестирования на исторических данных состоит в том, чтобы как можно точнее имитировать реальную торговую среду, чтобы вы могли найти стабильное прибыльное преимущество. Проблема в том, что финансовые данные не являются постоянными. Бектест сам по себе не очень хорошо имитирует часто меняющуюся природу рынков. Лучшим решением является применение пошагового анализа, при котором вы запускаете систему на небольшом сегменте данных, а затем многократно продвигаетесь вперед в сегмент данных вне выборки. Это лучше имитирует реальный процесс перехода от тестирования на исторических данных к торговле в режиме реального времени. Пример форвардного анализа. 8. Уменьшите свои торговые издержки Поскольку финансовые рынки очень эффективны, успех торговой системы может зависеть даже от незначительной маржи. Модели высокочастотной торговли требуют более низких затрат по сделкам, чем низкочастотные модели. Поэтому постарайтесь найти способ снизить свои торговые издержки. Например, используя другого брокера, используя разные виды ордеров или торгуя в разное время. Еще один вопрос, который следует задать – правильно ли вы моделируете торговые издержки в своем бектесте. Эффективность вашей торговой системы можно улучшить за счет более точных значений. 9. Автоматизируйте ее Иногда торговая система терпит неудачу не потому, что она заурядна, а потому, что она не исполняется правильным образом. Это может повлечь за собой трудности при ее исполнении. Автоматизируя торговую систему, вы можете устранить человеческий фактор и гораздо точнее исполнять свои сделки. В этой статье показаны шаги по автоматизации торговой системы в Excel. 10. Используйте оптимизацию Излишняя оптимизация торговой системы может быть опасна, поскольку она очень быстро может привести к аппроксимации данных, например, если вы ищете систему Святого Грааля по сотням торговых параметров. Однако оптимизация имеет очень важное значение для наблюдения за надежностью торговых параметров. Чтобы проверить надежность, вам просто нужно посмотреть на производительность системы по близлежащим параметрам. Например, если ваша торговая система хорошо работает со скользящей средней с периодом 20, она также должна хорошо работать и со скользящими средними с периодами 18, 19, 21, 22. Таким образом, оптимизация может помочь вам найти более надежные настройки для вашей торговой системы. 11. Комбинируйте ее Как я подробно описал в другой статье, комбинация торговых систем является одним из самых простых и эффективных способов улучшить единую торговую систему. Если две торговые системы не коррелируют между собой, их объединение обычно приводит к меньшим просадкам и, следовательно, к более высокой доходности с поправкой на риск. 12. Сделайте ее более динамичной Проблема с вашей торговой системой может заключаться в том, что она слишком статична. Финансовые данные динамичны и постоянно меняются, поэтому лучшей системой является та, которая соответствует рынку. Форвардный анализ, оптимизация и машинное обучение – всё это является способами перенастроить систему в соответствии с текущими рыночными условиями. Есть ли другие способы сделать вашу систему более реактивной? 13. Усовершенствуйте свое управление капиталом Даже самая прибыльная торговая система приведет к сливу вашего счета, если вы будете слишком много ставить в каждой сделке. И наоборот, если вы поставите слишком мало, вы не заработаете достаточно денег, чтобы она дала результат. Как я писал в предыдущей статье, формула Келли дает математический ответ для расчета наилучшего размера сделки. 14. Внедрите фильтр Фильтры, как правило, представляют собой механизмы, предназначенные для удаления нежелательных или ненужных компонентов. Это можно применить и к проектированию торговой системы, однако это необходимо делать осторожно, чтобы это не привело к аппроксимации данных или ошибке, связанной с интеллектуальным анализом данных. Примерами фильтров могут быть межрыночный анализ или режимные фильтры, например, торговля только в определенных рыночных условиях, таких как бычий рынок, или медвежий рынок, или периоды волатильности. Фильтры также могут включать экономические показатели, такие как инфляция или уровень безработицы, или комбинированные показатели, состоящие из вместе взятых различных факторов. 15. Внедрите фундаментальные данные Аналогичным образом можно улучшить торговую систему путем внедрения фундаментальных данных. На фондовом рынке фундаментальные данные могут включать в себя отношение цен акций к доходу, прибыль на акцию, свободный денежный поток или инсайдерские операции. В качестве модели инвестирования, которая использует фундаментальные данные таким образом, может служить модель стоимости Марвуда. 16. Применяйте более сложные идеи Концепция бритвы Оккама предполагает, что простые торговые стратегии должны быть предпочтительнее сложных систем (если они дают аналогичные результаты). Однако устаревшие и чрезмерно упрощенные правила могут быть причиной того, что торговая система перестала работать. Поэтому ответом в плане получения прибыльного преимущества могут быть сложные идеи, недоступные для большинства обычных инвесторов. 17. Попытайтесь захватить движения непредсказуемого экстремального события Если ваша торговая система использует цели по прибыли, она может упустить потенциальную крупную прибыль во время непредсказуемых экстремальных событий. Таким образом, ваши цели по прибыли, вероятно, снижают потенциальную прибыль вашей стратегии. Если они не обеспечивают ценности, то будет лучше пересмотреть цели по прибыли и использовать другие критерии для закрытия позиций. 18. Отказаться от «финансовой астрологии» В книге «Количественный технический анализ» доктор Говард Бэнди советует отказаться от финансовой астрологии. Если ваша торговая система полагается на фазы Луны, Фибоначчи, волновую теорию или другие сомнительные схемы, отказ от них может быть лучшим шагом в правильном направлении для улучшения вашей торговой системы. 19. Внедрите человеческие факторы Усовершенствования технологий в значительной степени уравняли правила игры, когда дело доходит до количественного инвестирования и трейдинга. Теперь любой может легко провести бектестирование и посмотреть, что произойдет, если разыграется определенный сценарий. Поскольку так много трейдеров используют одни и те же методы, то вполне вероятно, что потенциальные прибыльные сделки будут одновременно выноситься на арбитраж. Однако, подобно тому, как команды, состоящие из компьютеров и людей, могут побеждать передовые компьютеры в шахматах и других играх, есть веские аргументы в пользу внедрения человеческих факторов в настройку торговой системы. Люди превосходят компьютеры в одном важном деле – в оценке поведения других людей. Именно поэтому дискреционные трейдеры по-прежнему могут добиваться успеха. Однако людям всё еще необходимо изучать множество ограничений и предубеждений человеческого мышления. В данном курсе моделей мышления рассматриваются самые важные из них. 20. Оцените влияние новостных событий Фондовые рынки очень восприимчивы к новостным событиям, таким как отчеты о прибылях и убытках. Этими событиями трудно управлять на этапе бектестирования, потому что обычно вы не знаете, когда они произойдут. Торговая система, которая может делать паузу во время выхода отчета о доходах, может работать лучше, чем та, которая продолжает функционировать в течение этого времени. Это еще один фактор, который можно оценить с помощью демо-трейдинга. 21. Дайте ей время Иногда торговую систему просто нужно принять такой, какая она есть, вместо того чтобы искать систему Святого Грааля и нереалистичные доходы. Если система имеет прибыльное преимущество, тогда она имеет ценность. Ценность, которую можно разблокировать в дальнейшем с помощью кредитного плеча, частоты сделок или в комбинации с другими торговыми системами. Таким образом, вы можете улучшить свою торговую систему, предоставив ей достаточно времени и пространства, необходимых для достижения успеха. Благодарю за прочтение! Джо Марвуд, Переведено специально для Tlap.com
- 3 ответа
-
- 10
-
- джо марвуд
- стратегия
-
(и ещё 1 )
C тегом:
-
Преимущества прибыльной торговой системы очевидны: создание богатства, свобода и низкий уровень стресса. Но есть и проблемы, о которых большинство разработчиков систем сознательно умалчивают. В этом посте мы рассмотрим некоторые недостатки торговых систем. 1. Торговые системы могут иметь длительные периоды просадок К сожалению, далеко не редкими являются случаи, когда в хорошей торговой системе наблюдается длительный период просадки. Такая просадка может длиться в течение нескольких месяцев. Некоторые хорошо известные системы следования за трендом претерпевали просадку даже в течение 60 месяцев. Системные трейдеры могут избегать длительных просадок с помощью комбинации нескольких стратегий и добавления краткосрочных систем, которые торгуют с большей частотой. Чем чаще вы будете торговать своим преимуществом, тем быстрее вы сможете отыграть свое ожидание и тем быстрее сможете восстановиться после любой просадки. Индекс SG CTA признан ключевым критерием эффективности управляемых фьючерсов. В период с 2011 по 2014 год у большинства фондов были плохие показатели, и некоторые фонды, использующие торговлю в направлении тренда, испытывали просадки в течение 60 месяцев. 2. Торговая система может в любой момент перестать работать Поскольку динамика финансовых рынков постоянно меняется, невозможно точно знать, продолжит ли система работать завтра так же хорошо, как она работала в прошлом. Любое необычное событие или даже незначительное изменение рыночных условий может в любой момент свести на нет всю актуальность данной торговой системы. Единственное решение – использовать вероятностный подход. Вы не можете быть на 100% уверены, что ваша торговая система будет работать завтра, но вы можете иметь определенную степень уверенности. 3. Торговые системы не избавляют от эмоций Популярный миф о системной торговле состоит в том, что она сглаживает эмоциональную сторону трейдинга, тем самым делая торговлю более профессиональной и безошибочной. К сожалению, это справедливо лишь частично. Трейдеры по-прежнему смотрят на свои прибыли и убытки в трейдинге, и, следовательно, получение убытка или прибыли по-прежнему оказывает на них эмоциональное воздействие. Вы можете перенести свои эмоции в торговую систему еще на этапе ее разработки. Например, вместо того чтобы слушать данные, вы программируете правила, которые соответствуют вашим предвзятым представлениям о рынке (необъективность восприятия). Тем не менее, системный трейдинг порождает стресс в гораздо меньшей степени, чем полностью дискреционный подход. 4. Нельзя полагаться только на результаты бэктестирования Тестирование на исторических данных – это лучший способ найти эффективную торговую стратегию. Но вы можете потратить очень много времени на тестирование своей торговой системы, не зная, принесет ли она вам реальную прибыль. Это связано с большим количеством ловушек и трудностей, которые мешают проверке результатов тестирования на исторических данных. В вашу деятельность могут легко закрасться подбор аппроксимирующей кривой и предвзятость в прогнозировании, а моделирование транзакционных издержек и влияния рынка, как известно, являются сложной задачей. Вот почему, прежде чем брать на себя слишком большой риск, я рекомендую системным трейдерам использовать цикл обратной связи, где вы создаете живую выборку сделок. Системные трейдеры знают силу тестирования на исторических данных, но они также знают, что никогда не могут быть полностью уверенными в своей системе, пока не увидят, что она приносит реальную прибыль. 5. Торговые системы могут увеличивать риск Еще одно часто рекламируемое преимущество системной торговли заключается в том, что она снижает риск. Это тоже верно, но это зависит от системы. Хорошие торговые системы обычно относительно просты – их легко протестировать, они легко программируются и их сложно взломать. Однако простота может привести к увеличению риска модели. Именно здесь торговая система не может идеально моделировать сложности финансовых рынков. Поэтому она подвержена негативным сюрпризам, которые не соответствуют данной модели. Вы также можете самостоятельно внести в нее риск, если плохо реализуете автоматизацию торговли. Или если вы дадите своей системе слишком много свободы действий. Одним из решений, которое используют системные трейдеры, является отключение своих систем при повышении рисков или неопределенности. Например, когда вы знаете, что вот-вот произойдет такое крупное событие, как Brexit. Непредсказуемые экстремальные события могут причинить ущерб торговым системам, использующим кредитное плечо. Именно это произошло с компанией Long Term Capital Management. 6. Торговые системы требуют больших усилий На создание прибыльных торговых систем требуется много времени и усилий. Для этого трейдеру необходимо разбираться во многих вещах, таких как написание программного кода, статистика, динамика финансовых рынков, проблемные моменты, связанные с бэктестированием и т. д. Этот процесс может занять много лет напряженной и упорной работы. К счастью, освоение этих навыков стоит всех усилий и может улучшить ваши карьерные перспективы. Как только вы научитесь торговать с помощью системы, время станет вашим другом, а не врагом. Вы можете сидеть сложа руки, пока ваши друзья, дискреционные трейдеры, весь день будут напряженно отслеживать ценовое движение, сидя перед экраном. 7. Торговые системы могут вызвать излишнюю самоуверенность Еще одна проблема – это когда вы слишком рано начинаете излишне доверять торговой системе. Это может иметь серьезные неприятные последствия, если ваша уверенность основана на ошибочном тестировании на исторических данных. Более того, сам факт, что вы нашли прибыльную торговую систему, вовсе не означает, что вы можете игнорировать правила контроля за своими позициями. Даже при наличии хорошей системы вы всё равно будете сталкиваться с длинными полосами неудач. И эти полосы неудач отправят ваш счет в свободное падение, если вы сделаете слишком большую ставку. 8. С большой долей вероятности вы не сможете следовать своей системе Часто трейдер создает торговую систему, а затем, когда дело доходит до торговли на реальном рынке, уклоняется от нее. Это связано с тем, что системы не устраняют всех эмоций, возникающих в процессе трейдинга. Шестимесячная просадка, в процессе которой вы теряете 30% своих средств, выглядит намного проще, если она происходит в рамках десятилетнего тестирования на исторических данных. В реальном же рынке она может быть очень болезненной, и многие трейдеры просто откажутся от своей системы, очутившись в подобной жесткой ситуации. Это может быть худшее время, чтобы прекратить торговать по своей системе. Чтобы решить эту проблему, вам нужно быть предельно честными с самим собой и разрабатывать только такие торговые системы, которым вы можете следовать. 9. Большинство торговых систем терпят неудачу Еще одна истина, о которой редко говорят разработчики систем, состоит в том, что большинство торговых систем терпят неудачу. Одни умирают медленной смертью по причине снижения производительности – другие феерически взрываются. Реальность такова, что финансовые рынки крайне эффективны, а конкуренция со стороны хорошо обеспеченных игроков и организаций огромна. Чтобы добиться успеха, вам нужно оставаться на высоте. Неудивительно, что все торговые системы рано или поздно теряют свою прибыльность. 10. Вы никогда не найдете идеальной торговой системы Если вы займетесь поисками идеальной торговой системы, то вы, скорее всего, столкнетесь с двумя серьезными проблемами: Вы никогда не будете удовлетворены тем, что у вас есть, и вы будете тратить всё свое время на тестирование стратегий и безрезультатную торговлю. Это то, что я называю «спиралью тестирования на исторических данных». Вы будете принимать только крайне эффективные системы, недостатками которых, вероятно, будет аппроксимация кривой или какие-то другие необъективные параметры. Поиск систем с явными преимуществами и последующее использование методов для повышения общей производительности является куда более важным, чем поиск иллюзорно идеальной системы. С уважением, Джо Марвуд, Переведено специально для Tlap.com
-
- 13
-
- стратегия
- тестирование
-
(и ещё 2 )
C тегом:
-
На этой неделе мы рассмотрим «лучший технический индикатор на Форекс», как утверждает статья от Babypips. В ней автор говорит, что лучшим индикатором является Ишимоку Кинко Хайо. Если вы не знакомы с Ишимоку: · Тенкан-Сен = среднее значение самого высокого максимума и самого низкого минимума за последние 9 периодов; · Кинджун-Сен = среднее значение самого высокого максимума и самого низкого минимума за последние 26 периодов. В этой статье автор провел бэк-тестирование пересечения линии Кинджун-Сен линией Тенкан-Сен на дневном графике валютной пары EURUSD в течение 5 лет, в результате чего было открыто 53 сделки с общей доходностью в 30,34% : На мой взгляд, 53 сделки – это слишком маленький размер выборки... и учитывая, что наибольшее количество тестовых сделок составляет 128 (для Parabolic SAR), я предполагаю, что эти бэк-тесты были проведены вручную. Если это так, то с высокой степенью вероятности в результаты заложена субъективность автора (его предубеждение). Итак, я создал робота для запуска собственного бэк-тестирования индикатора Ишимоку на часовом и 4-часовом графиках. Это даст мне большее количество тестовых сделок и в то же время значительно уменьшит смещение результатов, вносимое человеком. Критерии открытия сделок на покупку (обратное используется для открытия сделок на продажу): · Линия Тенкан-Сен пересекает линию Кинджун-Сен снизу вверх (после закрытия свечи); · Открываем сделку на покупку на открытии следующей свечи. Параметры сделки: · Стоп-лосс не устанавливаем; · Тейк-профит не устанавливаем; · Размер одной сделки устанавливаем равным 1 мини-лоту; · При открытии сделки на покупку закрывается предшествующая сделка на продажу (и наоборот при открытии сделки на продажу), т. е. всегда открыта одна сделка. Красная линия = Тенкан-Сен Синяя линия = Кинджун-Сен Линии Чикоу-Спен и Сенкоу-Спен не показаны. Настройки бэк-тестирования: · Период тестирования с 1 января 2009 года по 31 мая 2020 года; · Стартовый капитал 10 000 $; · Торговые издержки не учитываются. Результаты Представляю результаты бэк-тестирования (для просмотра увеличьте рисунок): Валютная пара EURUSD, часовой график Валютная пара EURUSD, 4-часовой график Валютная пара GBPUSD, часовой график Валютная пара GBPUSD, 4-часовой график Валютная пара AUDUSD, часовой график Валютная пара AUDUSD, 4-часовой график Валютная пара NZDUSD, часовой график Валютная пара NZDUSD, 4-часовой график Валютная пара USDJPY, часовой график Валютная пара USDJPY, 4-часовой график Валютная пара USDCAD, часовой график Валютная пара USDCAD, 4-часовой график Валютная пара USDCHF, часовой график Валютная пара USDCHF, 4-часовой график Валютная пара AUDCAD, часовой график Валютная пара AUDCAD, 4-часовой график Валютная пара AUDCHF, часовой график Валютная пара AUDCHF, 4-часовой график Валютная пара AUDJPY, часовой график Валютная пара AUDJPY, 4-часовой график Валютная пара AUDNZD, часовой график Валютная пара AUDNZD, 4-часовой график Валютная пара CADCHF, часовой график Валютная пара CADCHF, 4-часовой график Валютная пара CADJPY, часовой график Валютная пара CADJPY, 4-часовой график Валютная пара CHFJPY, часовой график Валютная пара CHFJPY, 4-часовой график Валютная пара EURAUD, часовой график Валютная пара EURAUD, 4-часовой график Валютная пара EURCAD, часовой график Валютная пара EURCAD, 4-часовой график Валютная пара EURCHF, часовой график Валютная пара EURCHF, 4-часовой график Валютная пара EURGBP, часовой график Валютная пара EURGBP, 4-часовой график Валютная пара EURJPY, часовой график Валютная пара EURJPY, 4-часовой график Валютная пара EURNZD, часовой график Валютная пара EURNZD, 4-часовой график Валютная пара GBPAUD, часовой график Валютная пара GBPAUD, 4-часовой график Валютная пара GBPCAD, часовой график Валютная пара GBPCAD, 4-часовой график Валютная пара GBPCHF, часовой график Валютная пара GBPCHF, 4-часовой график Валютная пара GBPJPY, часовой график Валютная пара GBPJPY, 4-часовой график Валютная пара GBPNZD, часовой график Валютная пара GBPNZD, 4-часовой график Валютная пара NZDCAD, часовой график Валютная пара NZDCAD, 4-часовой график Валютная пара NZDCHF, часовой график Валютная пара NZDCHF, 4-часовой график Валютная пара NZDJPY, часовой график Валютная пара NZDJPY, 4-часовой график Резюме проведенного бэк-тестирования: Неудивительно, что присутствует такой широкий разброс результатов по валютным парам и таймфреймам. Первое, что следует отметить – большинство результатов составляют менее +/- 60% и приблизительно дают +/- 5,5% в год. Я выделил результаты, которые превышают этот порог. Именно эти валютные пары и таймфреймы мне было бы интересно исследовать дальше (в случае отрицательных результатов я могу просто использовать обратные сделки на покупку и продажу и получить положительный результат). Хотел бы отметить одну вещь: автор в Babypips, вероятно, допустил одну распространенную ошибку – он использовал слишком маленький размер выборки сделок при бэк-тестировании. И вот почему. Возьмите, к примеру, вот эту кривую капитала при бэк-тестировании, которое я провел на часовом графике валютной пары EURUSD: Красная рамка выделяет прибыль, достигнутую примерно за 200 сделок. Если бы мы посмотрели только на эти сделки, то (ошибочно) пришли бы к выводу о том, что индикатор Ишимоку является крайне прибыльным на этой валютной паре и на данном таймфрейме. Но когда мы рассматриваем все 3000+ сделок, то видим, что на самом деле данная стратегия приносит лишь небольшую прибыль с доходностью 18,07% за 11 лет. И помните – мы еще не учли торговые издержки. Таким образом, главная причина, по которой нам необходимо иметь большой объем выборки тестируемых сделок, заключается в том, чтобы избегать преждевременных выводов, подобных этому. Хорошо, давайте двигаться дальше. Валютная пара, которая бросается в глаза – GBPJPY. Похоже, что здесь индикатор Ишимоку эффективен как на часовом, так и на 4-часовом графике. Чтобы получить более точное представление о его доходности по этой паре, я повторил тестирование со спредом в 1,5 пункта. Это снизит его чистую прибыль, но насколько? Давайте посмотрим (для просмотра увеличьте рисунок): Бэк-тестирование на часовом графике валютной пары GBPJPY (включая спред 1,5 пункта). Бэк-тестирование на 4-часовом графике валютной пары GBPJPY (включая спред 1,5 пункта). Таким образом, чистый доход снизился с · 123,1% до 79,7% (на часовом графике) и с · 62,0% до 51,9% (на 4-часовом графике). Это в среднем около 7,2% и 4,7% в год соответственно. Неплохой результат, учитывая, что никакая оптимизация производительности вообще не проводилась. С этого момента я бы хотел добавить/слегка изменить некоторые параметры для повышения производительности. Я мог бы добавить стоп-лосс для каждой сделки и/или включить некоторые торговые фильтры. Также я хотел бы уменьшить период просадки и/или размер. Похоже, после внесения некоторых изменений данный торговый подход может стать претендентом на форвард-тестирование. Напомню результаты торговли по валютной паре GBPJPY (включая стоимость спреда) за последние 11 лет: · часовой график – прибыль 79,7% · 4-часовой график – прибыль 51,9%. После того, как мы установили базовый уровень прибыльности, следующим шагом будет более внимательное отношение к совершаемым сделкам. Одно из предложений в разделе комментариев заключалось в том, чтобы добавить квалификатор Кумо, при котором сделка на покупку осуществляется, только если он находится над облаком Ишимоку, а сделка на продажу – только если он находится под ним. · Пурпурный круг: линия Тенкан-Сен пересекает линию Кинджун-Сен · Синяя прямая линия: сделка на покупку от открытия до закрытия · Красная прямая линия: сделка на продажу от открытия до закрытия Я протестировал это, и результат был следующим... Смотрите! Результаты Представляю результаты бэк-тестирования (для просмотра увеличьте рисунок): Бэк-тестирование на валютной паре GBPJPY, часовой график (включая спред 1,5 пункта) Бэк-тестирование на валютной паре GBPJPY, 4-часовой график (включая спред 1,5 пункта) А вот резюме проведенного бэк-тестирования по сравнению с оригиналом: При применении квалификатора Kumo (облако) было совершено на 56% меньше сделок на обоих таймфреймах. Это значительное сокращение числа сделок! Результаты существенно улучшились на часовом графике, но, что самое интересное – на 4-часовом графике они не изменились. Похоже, что по большей части облако Кумо действительно является важным аспектом торговли с использованием Ишимоку Кинко Хайо. Что же дальше? Осталось сделать еще одну вещь. Напомним, что в первом бэктесте Ишимоку я использовал фиксированный размер лота в виде 1 мини-лота в сделке. Теперь же я могу начать масштабировать размер лота в зависимости от размера капитала моего счета. По мере того, как мой счет будет расти, я буду торговать, используя пропорционально бо́льший размер лота (а если размер моего счета будет уменьшаться, то буду уменьшать размер лота в сделке). Для простоты я начну с 1x эффективного/фактического кредитного плеча. Результаты Представляю результаты бэк-тестирования (для просмотра увеличьте рисунок): Бэк-тестирование на валютной паре GBPJPY, часовой график (1x кредитное плечо) Бэк-тестирование на валютной паре GBPJPY, 4-часовой график (1x кредитное плечо) Подведем итоги: Просадка -20,16% находится на границе моего уровня комфорта, поэтому я решил не увеличивать торговое плечо, поскольку это также увеличит и просадку. Итак, похоже, что мы подошли к концу этого бэктеста! Заключение · Индикатор Ишимоку Кинко Хайо может быть эффективным при применении к определенным валютным парам, в частности, к паре GBPJPY. · На паре GBPJPY он лучше работает на часовом, чем на 4-часовом графике. · При применении облачного квалификатора с кредитным плечом 1x на часовом графике бэктест дает в среднем доходность 17,1% в год при максимальной просадке -20,2% за последние 11 лет. Это замечательный результат, учитывая, что мы не проводили оптимизацию параметров и не использовали каких-либо специальных фильтров. Но я должен сказать, что торговать по этой системе непросто. Учитывайте продолжительность просадок: · С 3 июня 2010 года по 4 июня 2012 года (24 месяца); · С 13 июня 2012 года по 1 февраля 2013 года (8 месяцев); · С 12 марта 2013 года по 7 января 2015 года (22 месяца); · С 20 февраля 2015 года по 18 февраля 2016 года (12 месяцев); · Со 2 сентября 2016 года по 16 августа 2018 года (23 месяца); · С 4 июня 2019 года по настоящее время (14 месяцев, и это число продолжает расти). Для успешной торговли с помощью этого индикатора вам придется терпеть до двух лет «убыточности». Таким образом, хотя Ишимоку Кинко Хайо может иметь место в портфеле из нескольких торговых систем, данный индикатор, вероятно, не является одним из тех, который можно применять для торговли отдельно. Каковы ваши мысли? Что вы думаете по этому поводу? Не пропустил ли я случайно что-либо? Стоит ли подойти к бэктестированию как-то иначе? ==> НАБОР Ichimoku Kinko Hyo для MetaTrader 4 (over 100 indicators) ==> Обзор индикатора Ишимоку на сайте Кристофер Ли,Переведено специально для Tlap.com
-
Цикл обратной связи системных трейдеров – не застревайте в спирали бэктестирования Каким бы ни было ваше мнение о концепции бэктестирования, есть несколько лучших способов построить торговую систему, чем тестирование на исторических данных. Бэктестирование позволяет нам ответить на такие важные вопросы, как «сколько открытых позиций я должен удерживать в своем портфеле?», «какую степень риска я должен на себя брать?» или «насколько эффективной была эта стратегия в прошлом?». Очевидно, что тестирование на исторических данных является неотъемлемой и важной частью становления систематического трейдера. Проблема с бэктестированием Проблема в том, что бэктестирование представляет собой крайне сложный процесс. Когда дело доходит до моделирования на исторических данных, трейдеры сталкиваются с множеством предубеждений и ограничений, которые могут доставить массу головной боли даже самым опытным из них. Такие проблемы, как систематическая ошибка, связанная с трендом выживаемости, систематическая ошибка прогнозирования, систематическая ошибка интеллектуального анализа данных и чрезмерная аппроксимация – всё это может закрасться в процесс разработки. Как узнать, не применялась ли аппроксимация при построении кривой эффективности вашей системы? Как узнать, являются ли ваши данные точными? И... Как вы можете знать то, чего не знаете? Несомненно, самые богатые трейдеры, работающие в хедж-фондах и банках, имеют доступ к лучшим данным и лучшим инструментам, в то время как большинству из нас приходится довольствоваться более дешевыми альтернативами. Стоимость терминала Bloomberg, например, составляет около 2000 $ в месяц, что выходит далеко за рамки бюджета большинства розничных инвесторов. Получение наиболее точных данных не всегда является большой проблемой, но она становится таковой при высокочастотном трейдинге. Учтите, что данные внутридневного фондового рынка обычно компилируются из сети различных бирж. Получение точных внутридневных данных редко возможно без перехода на более детализированный уровень. Читатели книги Майкла Льюиса «Flash Boys. Высокочастотная революция на Уолл-стрит» слишком хорошо осведомлены о махинациях, происходящих на тех высоких частотах, которые сводят на нет любую симуляцию. Всё это означает, что к любому тестированию на исторических данных следует относиться с осторожностью, потому что в конечном счете мы никогда не можем быть уверены на 100% в точности наших расчетов. Бэктестирование – настолько сложный процесс, что мы должны относиться к нему особым образом. Мы должны всегда оставаться скептичными и осознавать его ограничения. Наибольшему риску подвержены трейдеры-новички Бэктестирование также является наиболее проблемным для начинающих трейдеров. Если вы новичок в системном трейдинге и не знаете об опасностях бэктестирования, вы, вероятно, наделаете на своем пути массу ошибок. Это даже может привести к худшему опыту торговли, чем если бы вы торговали случайным образом без какого-либо тестирования. Такое может произойти по той причине, что располагая результатами бэктестирования, вы будете более уверены в своей торговле, не осознавая, что оно изначально было ошибочным! Таким образом, те, кто не имеют опыта бэктестирования, больше всего рискуют потерять деньги из-за некачественных систем. Спираль обратного тестирования Трейдеры-новички также будут застревать в том, что я называю спиралью бэктестирования. Именно этому вы отводите основную массу своего времени, проводя бэктесты, дорабатывая, оптимизируя и выполняя тонкую настройку своей торговой системы, пока не найдете нечто, что выглядит впечатляюще, но на самом деле будет просто чрезмерно близко подогнано под ваши данные. В этой ситуации вы можете запустить сотни или тысячи тестов в поисках идеальной системы. Но затем, когда вы, наконец, начнете торговать на реальном рынке, вы сразу же потеряете деньги, потому что ваша система была всего-навсего адаптирована под ваши данные, а не имела повышенной надежности и живучести в отношении этих данных. Тонкая грань Другими словами, вы потратили все свое время на создание торговой системы, которая отлично работала в прошлом, но вряд ли будет работать в будущем. Как видите, тестирование на исторических данных является крайне полезной вещью, но только до определенного момента. Переступите эту грань и бэктестирование станет неэффективным и даже опасным. Более того, поскольку будущее никогда не известно, бектестирование всегда будет иметь некоторые ограничения. Решение Решением этой проблемы является цикл обратной связи системного трейдера, где мы объединяем две фазы: тестирование на исторических данных и демо-трейдинг для обеспечения более плавного перехода от нашей первоначальной идеи к торговле на реальном рынке. Цикл обратной связи системного трейдера: 1. Исследование; 2. Бэктестирование; 3. Демо-трейдинг; 4. Трейдинг на реальном рынке; 5. Оценка. Не застревайте в спирали бэктестирования! Суть в том, что мы не застреваем в спирали бэктестирования. Мы не тратим слишком много времени на корректировку наших правил и не слишком полагаемся на результаты бэктеста, который может иметь некоторые недостатки. Это означает, что мы делаем всё возможное, чтобы наши бэктесты были как можно более точными, и как только мы нашли торговую идею, которая кажется достаточно хорошей в рамках бэктестирования, мы быстро переходим к демо-трейдингу, чтобы смоделировать эту стратегию в реальном рынке и увидеть ее истинные возможности. Затем результаты, которые мы получаем от демо-трейдинга, мы используем для обратной связи в нашем анализе. Как только у нас будет достаточно приличный размер выборки, мы можем сравнить наши данные по демо-трейдингу с результатами тестирования на исторических данных. (Информацию, полученную на этом этапе, мы также можем использовать для улучшения наших процессов бэктестирования в целях оптимизации наших бэктестов в будущем). Это даст нам более реалистичное представление о нашей торговой идее. И это также даст нам гораздо больше информации, чем мы могли бы получить с помощью простого бэктеста. Например, когда мы торгуем данной системой на рынке, мы узнаем еще более тонкие нюансы, например, как наша система реагирует на новостные события, как она работает в определенные периоды или время суток и как данная система реагирует на различные типы ордеров. Ценная обратная связь К сожалению, мы не можем получить всю эту ценную информацию только в результате тестирования на исторических данных. Поэтому важно отслеживать как можно больше этой информации и, основываясь на ней, оптимизировать свой процесс. Как только у нас будет идея в отношении разработки системы, которая одинаково хорошо работает в нашем тестировании на исторических данных и на нашем демо-счете (и у нас будет достаточно большая выборка – в районе 30, 50, 100 сделок), мы можем переходить к торговле на реальном рынке. Торговля на реальном рынке снова будет давать несколько иные результаты, ведь отныне мы совершаем реальные сделки на реальных деньгах. Таким образом, мы всё время должны анализировать каждый вход и выход из рынка, осуществляемые с помощью данной системы. И по мере получения дополнительной информации мы каждый раз пополняем ею цикл обратной связи в целях возможного улучшения, оптимизации и оценки нашей стратегии. Это гораздо более эффективный подход к созданию торговой системы, ибо мы не застреваем на этапе тестирования на исторических данных, которое может оказаться контрпродуктивным. И он обеспечивает лучшее понимание нашей торговой модели. Худшая альтернатива Альтернативой этому подходу является то, что делает большинство трейдеров. Они проводят сотни или тысячи тестов на исторических данных, пока не находят нечто, что хорошо работало в прошлом, а затем сразу же внедряют эту систему в торговлю на реальном рынке. Чаще всего они терпят неудачу вследствие наличия целой массы всевозможных опасностей, связанных с тестированием на исторических данных. Вместо этого в следующий раз, когда у вас возникнет некая торговая идея, подумайте сначала о том, как правильно перейти от анализа к демо-торговле и только после этого к торговле на реальном рынке, чтобы лучше понять ее возможности. Не полагайтесь исключительно на бэктестирование, которое может давать ложные результаты, а вместо этого подумайте о том, как вы можете сначала развернуть свою систему на демо-счете, чтобы можно было понять, как она работает и насколько жизнеспособной является. В этом и заключается весь смысл цикла обратной связи системных трейдеров. Это дает вам возможность формировать торговую стратегию и находить действительно эффективное решение. Решение, которое может идти в ногу с рынком и, возможно, со временем даже улучшать свою производительность. Благодарю за внимание! Джо Марвуд, Переведено специально для Tlap.com
-
- 9
-
- тестирование
- технический анализ
- (и ещё 3 )
-
Данный пост содержит подробное руководство по созданию торговой стратегии возврата к среднему. Вы узнаете, что такое возврат к среднему, как на нем торговать, 10 шагов для построения системы и подробный пример системы возврата к среднему. Итак, начнем! Введение Двумя самыми популярными видами торговых стратегий являются импульсная торговля и торговая стратегия возврата к среднему. Торговая стратегия возврата к среднему подразумевает, что цены вернутся к среднему значению. Стратегия же торговли на импульсе подразумевает, что цены продолжат движение в том же направлении. Рынки постоянно входят в фазы возврата к среднему или импульсного движения и выходят из них. Следовательно, для обеих фаз можно разработать соответствующие стратегии торговли. Упрощенным примером стратегии возврата к среднему является покупка акции после необычно сильного падения ее цены. Когда акция сильно упала в цене, обычно имеется большая вероятность того, что она вернется в норму. Что такое возврат к среднему? Идея возврата к среднему основана на хорошо известной концепции, называемой регрессией к среднему значению. Эта теория, впервые обнаруженная статистиком Фрэнсисом Гальтоном, объясняет, что после экстремальных явлений обычно следуют более нормальные явления. Другими словами, со временем все вещи склонны выравниваться. Например: · Если футбольная команда забивает необычное количество голов в матче, то в следующей игре, вероятно, число забитых голов будет ближе к их среднему результату; · Если первый человек, которого вы видите сегодня, необычно высокий, то следующий, вероятно, будет ниже ростом; · Если в этом месяце индекс Dow Jones Industrial Average падает на 20%, то в следующем месяце он, вероятно, упадет на меньшее значение. Способ применения этой стратегии на рынке заключается в поиске экстремальных событий с последующим расчетом на то, что всё вернется к среднему значению. Сложность заключается в том, что финансовые рынки обычно не распределяются по нормальному закону. Они формируют длинный хвост, и экстремальные явления могут группироваться вместе. Цепи обратной связи на рынке могут усиливать это и создавать импульс, который является врагом возврата к среднему. Другими словами, иногда, когда в один прекрасный день акция падает на 10%, то на следующий день она падает еще больше. Несмотря на это, возврат к среднему значению является мощной концепцией, которую трейдеры могут использовать для поиска преимущества и построения торговых стратегий. Позже в этой статье я покажу процесс, который я использую для построения торговых систем, основанных на возврате к среднему. Различные способы торговли на возврате к среднему Простая торговая стратегия возврата к среднему – это покупка акции после необычно большого падения цены в расчете на то, что акция восстановится до нормального уровня. Тем не менее, существует и масса других способов применения инвесторами и трейдерами теории возврата к среднему. Технические индикаторы Для поиска экстремальных уровней перепроданности или перекупленности могут использоваться технические индикаторы, такие как RSI. Они могут выступать в роли хороших уровней для входа и выхода из сделок, основанных на возврате к среднему значению. Стандартное отклонение, полосы Боллинджера, денежный поток, расстояние от скользящей средней – всё это можно использовать для определения экстремальных или необычных ценовых движений. Цена акции FOX закрылась ниже полосы Боллинджера. Чем дальше акция движется в направлении от своей скользящей средней, тем больше вероятность ее отката назад Финансовая информация/фундаментальные данные Некоторые инвесторы будут смотреть на финансовую информацию, такую как коэффициенты PE (отношение рыночной стоимости акции к годовой прибыли на акцию) или отчеты о прибылях и убытках. Если сообщается о высокой квартальной прибыли компании, намного превышающей ее долгосрочный средний показатель, то в следующем квартале отчет о прибыли компании, вероятно, будет ближе к ее среднему уровню. Экстремальные результаты могут провоцироваться множеством факторов. И многие из вещей имеют естественную склонность возвращаться к среднему значению. Например, погода. Аналогичным образом, если у акции необычно низкий коэффициент PE, инвестор может купить акцию данной компания в расчете на то, что она недооценена и PE вернется к среднему уровню. Экономические показатели Некоторые инвесторы будут искать возврат к среднему значению среди экономических показателей. Например, уровень безработицы, ВВП или коэффициент Шиллера (циклически скорректированное отношение цены к прибыли). Когда коэффициент Шиллера ниже/выше среднего значения, это означает, что цена акции находится на историческом минимуме/максимуме. В результате многие инвесторы сокращают свое присутствие на фондовом рынке. Коэффициент Шиллера. Среднее значение находится в районе 16 Индикаторы настроения Поскольку рынок является отражением толпы, то для поиска точек разворота некоторые инвесторы будут смотреть на индикаторы настроений, такие как индикатор уверенности инвесторов. Например, если 70% инвесторов имеют медвежьи настроения, это может быть сигналом слишком большого пессимизма на рынке. Традиционно инвесторы становятся более пессимистичными вблизи рыночных минимумов и более уверенными вблизи рыночных максимумов. На приведенном ниже графике представлен индекс настроений от Американской ассоциации индивидуальных инвесторов, который демонстрирует четкие характеристики возврата к среднему значению. Он наложен на график индекса S&P 500 (синий): Пики настроений инвесторов наблюдаются вблизи рыночных максимумов, например, в январе 2000 года. Также имеются и падения настроений инвесторов, которые имеют место вблизи рыночных минимумов, например, в марте 2009 года и мае 2016 года. Парный трейдинг Парный трейдинг является благоприятной почвой для сделок, выполненных в расчете на возврат к среднему значению – вы можете делать ставки на спред между двумя похожими продуктами, нежели пытаться получить прибыль от прямого движения, которое может быть более рискованным. Если два рынка коррелируют (например, золото и серебро или акции Apple и Microsoft) и внезапно эта корреляция исчезает, это может быть прекрасной возможностью сделать ставку на возобновление данной корреляции. Можно сказать, что существует множество других способов оценки возврата к среднему, поэтому вы ограничены только своим воображением. Аргументы против возврата к среднему На данный момент мы рассмотрели некоторые подходы инвесторов к возврату к среднему и то, как это основывается на концепции, называемой регрессией к среднему значению. Тем не менее, применительно к финансовым рынкам торговая стратегия возврата к среднему встречает массу критики. Критика, связанная с гипотезой эффективного рынка Сторонники гипотезы эффективного рынка, например, Кен Френч, считают, что рынки отражают всю доступную информацию. Поэтому, не имея какой-либо инсайдерской информации или незаконного преимущества, невозможно победить рынок с помощью возврата к среднему значению (или любой иной стратегии). Другими словами, если акция падает на 20% за день, то для этого падения есть вполне обоснованная причина. Акция упала в цене согласно последней имеющейся на рынке информации, и нет причин, по которым акция должна восстанавливаться только потому, что она перед этим претерпела сильное падение. Критика, связанная с плохой производительностью В отношении работы индикаторов возврата к среднему значению, таких как коэффициент Шиллера (CAPE), также существует критика. CAPE имеет хорошие показатели времени выхода на рынок за последние 100 лет, поэтому он и стал таким популярным инструментом. Но при внимательном рассмотрении выясняется, что бо́льшая часть прибыли приходилась на первые 50 лет. Последние 50 лет этот коэффициент был менее эффективным, чем принцип «покупай и удерживай». Существует возражение, что некоторые индикаторы возврата к среднему, такие как CAPE, основаны на недостаточном размере выборки. Сто или двести лет могут показаться достаточно длительным промежутком времени, но если за это время генерируется всего несколько сигналов, то размер выборки может быть слишком малым, чтобы сделать твердое суждение. Критика, связанная с нелогичной стратегией Один из недостатков стратегии возврата к среднему состоит в том, что теоретически, чем больше падает цена акции, тем весомее становится установка данной стратегии. Это может вызвать проблемы с управлением рисками. Например, представьте, что вы покупаете акцию после падения ее цены на 10%. И на следующий день вместо того, чтобы восстановиться, цена упала еще на 10%. Даже если вы теряете деньги, стратегия возврата к среднему, скорее всего, расценит данное падение как еще один сигнал к покупке. В этом сценарии возврат к среднему требует, чтобы вы удерживали свои убыточные позиции или даже добавлялись к ним. С точки зрения управления рисками, на данном этапе имеет смысл сократить свои убытки. Но это противоречит концепции возврата к среднему, что приводит к логической несогласованности. Если вы продолжаете добавлять свои позиции по акции, которая не восстанавливается в цене, вы в конечном итоге сольете свой счет. Однако в действительности все успешные трейдеры, использующие стратегию торговли возврата к среднему, знают об этой проблеме и разработали простые правила для ее решения. Например, они будут использовать основанные на времени выходы из сделок, фиксированные стоп-лоссы или методы для постепенного масштабирования своих сделок. Аргументы в пользу стратегии возврата к среднему Несмотря на некоторые возражения против торговых стратегий возврата к среднему, очевидно наличие огромного количества успешных инвесторов, которые приняли этот подход и добились успеха в трейдинге. · Джим Саймонс использовал стратегии возврата к среднему в своем хедж-фонде Renaissance Capital. · Многие трейдеры, представленные в «Магах рынка», использовали стратегии возврата к среднему. Например, Пол Тюдор Джонс. · Большинство HFT-фирм используют простые стратегии возврата к среднему. · Ценностные инвесторы, такие как Уоррен Баффетт, и макроинвесторы, такие как Джим Роджерс, используют стратегии, работающие против тренда, аналогичные принципу возврата к среднему. На своем личном уровне я обнаружил, что возврат к среднему значению является мощным способом торговли на рынках, и за последние несколько лет я разработал множество систем возврата к среднему значению. «Все говорят, что вы погибнете в попытке поймать максимумы или минимумы, и что вы должны зарабатывать все свои деньги, торгуя в средней части тренда. Что ж, в течение 12 лет у меня не получалось брать прибыль в середине тренда, но я заработал много денег, именно торгуя на максимумах и минимумах». – Пол Тюдор Джонс 10 шагов построения торговой стратегии возврата к среднему Итак, после того, как мы обсудили некоторую предысторию, я собираюсь подробнее рассказать о моем процессе построения торговых систем возврата к среднему. Полагаю, этот процесс можно разбить примерно на 10 шагов. Всё начинается с подготовки правильных инструментов для работы. Шаг первый: программное обеспечение Важной частью построения торговой стратегии является наличие возможности протестировать вашу стратегию на исторических данных. Тестирование на исторических данных не гарантирует, что вы найдете прибыльную стратегию, но это лучший инструмент, который у нас есть для поиска эффективных стратегий. Первый шаг – получить хорошую платформу для тестирования на исторических данных и научиться ее использовать. Я использую Amibroker, который работает быстро и очень хорошо подходит для тестирования стратегий на исторических данных на фондовом рынке и биржевых инвестиционных фондах. Я также использую и другое программное обеспечение в зависимости от поставленной задачи. В свободном доступе имеется множество других программ, каждая из которых имеет свои преимущества и недостатки. Анализ можно выполнять и с помощью приложения Microsoft Excel. Понимание программного обеспечения Ключевой частью обучения использованию программного обеспечения для бэк-тестирования является понимание любых слабых мест в самой программе, которые могут привести к ошибкам тестирования. Например, насколько легко запрограммировать правила, которые смотрят в будущее? Насколько легко проанализировать свои результаты и проверить их надежность? Одна из самых серьезных ошибок, которые может совершить системный разработчик – это программирование правил, основанных на будущих данных. Классический пример – использование цены закрытия для расчета точки входа в покупку, когда фактически открытие позиции по данной акции осуществляется на открытии следующего бара. Другими словами, вы торгуете до появления сигнала. Это называется будущей утечкой, и это можно удивительно легко сделать, если вы не будете соблюдать осторожность. Как правило, если ваш сигнал для входа в рынок основан на закрытии одного бара, то система совершит вход на следующем баре. Шаг второй: данные Следующим шагом будет получение качественных данных для тестирования ваших стратегий. Если у вас нет хороших данных, то любой выполняемый вами анализ будет ошибочным. В этой связи необходимо рассмотреть ряд следующих вопросов. Для акций: скорректированы ли данные с учетом корпоративных действий, дробления акций, дивидендов и т. д.? Если нет, то эти данные могут выдать искаженные результаты бэк-тестирования и дать вам ложное представление о том, что произошло на самом деле. Например, график, который не был скорректирован с учетом дробления акций из расчета 2:1, в 50% случаев будет показывать ночной гэп, хотя на самом деле никакого гэпа не было. Если ваша торговая система сократит этот гэп, она покажет огромную прибыль в 50%, чего на самом деле не было. На следующем графике вы увидите, как в 2014 году акции Apple подверглись дроблению из расчета 7:1. В 2014 году акции Apple подверглись дроблению из расчета 7:1. Наличие чистых данных, должным образом скорректированных с учетом дробления и т. п., приводит к более надежным системам торговли и большей уверенности в вашей торговле. Учет дивидендов также может добавить два или три процента к чистой прибыли вашей стратегии. Для акций: включают ли эти данные исторические составляющие? Ежегодно предприятия разоряются. Некоторые сливаются с другими компаниями или переводятся на другие рыночные индексы. Например, компания Urban Outfitters (URBN) раньше входила в индекс S&P500 – теперь же она входит в индекс средней капитализации. На заре своего формирования индекс Dow Jones Industrial Average включал такие компании, как American Cotton Oil и National Lead. Неудивительно, что этих акций уже давным-давно нет. Если вы не учитываете исторических участников и запускаете бэктест по акциям, составляющим определенный индекс, вы допускаете огромную систематическую ошибку по учету выживших компаний. Используя только последние составляющие данного индекса, ваша вселенная будет полностью состоять из недавних добавлений или акций, которые остались в индексе с момента его формирования. Как правило, это самые сильные акции, поэтому вы получите лучшие результаты, чем в реальной жизни. Для акций: правильная ли частота ваших данных? Также могут возникать трудности и при бэк-тестировании стратегий высокочастотной торговли на низкочастотных данных, о которых я говорил ранее. Это связано с тем, что цены на акции представляют собой совокупность цен, поступающих с нескольких разных бирж. Лучше всего использовать правильные данные о частоте для вашей стратегии. Если для создания внутридневных стратегий вы используете данные на конец дня, то высока вероятность получения нереалистичных результатов, поскольку вы не сможете достаточно точно смоделировать открытие и закрытие своих позиций. Для этих внутридневных систем вам потребуются более детализированные данные, например, данные минутного таймфрейма. Для акций: являются ли эти данные точными на определенный момент времени? Если в качестве части своей торговой стратегии вы используете фундаментальные данные, то очень важно, чтобы эти данные были точными на определенный момент времени. Другими словами, вы не хотите знать, каково отношение цены вашей акции к ее доходу сегодня – вы хотите знать, каким он был, когда проводился бэктест. Поиск точных данных на определенный момент времени для фундаментальных целей может быть трудным. Компьютеризированных отчетов по фундаментальным данным просто-напросто не было уже лет двадцать или тридцать. Тем не менее, поставщики Compustat и FactSet предлагают свои доступные варианты. Для фьючерсов: как воспроизводятся данные? Фьючерсные рынки состоят из отдельных контрактов с установленным сроком действия, который заканчивается в определенные месяцы поставки. Это означает, что не существует единого временного ряда, точно отражающего всю историю этого фьючерсного рынка. Это всегда совокупность контрактных месяцев. Некоторые поставщики данных воспроизводят эти данные «как есть» и просто объединяют эти контракты. Это может быть нормально для внутридневного трейдинга и для того, чтобы увидеть, где фьючерсный контракт торговался в прошлом. Но это означает, что когда контракты продлеваются, будут иметь место ценовые гэпы. Другие поставщики данных обходят это путем обратной корректировки данных и создания так называемых «непрерывных контрактов». Это дает реалистичное представление о рынке и обычно является лучшим вариантом для бэк-тестирования. Однако отрицательный аспект этого подхода заключается в неточности исторических уровней цен. Рынки в бэквордации могут закончить с отрицательными ценами из-за расчета обратной корректировки, и эти цены могут не отображаться должным образом на некоторых графиках. Например, приведенный ниже график цен на соевые бобы с обратной корректировкой показывает отрицательные цены в период с 1998 до конца 2003 года. График цен на соевые бобы показывает отрицательные значения цен в период с 1998 по 2003 год вследствие обратной корректировки. Системные вычисления, например, с использованием умножения и деления могут направить по ложному следу по причине отрицательных цен или цен, близких к нулю. Таким образом, при использовании этих вычислений в своих формулах вам следует соблюдать осторожность. Убедитесь, что цены с обратной корректировкой не дают ложных сигналов. Для валютного рынка: откуда взяты данные и что они показывают? На рынке Форекс нет централизованной биржи, поэтому исторические данные могут различаться у разных брокеров. Обычно это различие небольшое, но всё же оно может повлиять на результаты моделирования. Общее правило: используйте только исторические данные, предоставленные брокером, с которым вы собираетесь торговать. Это означает, что ваши результаты тестирования с большей вероятностью будут совпадать с вашими реальными результатами торговли. Кроме того, котировки валютного рынка часто отображаются в разных форматах. Некоторые провайдеры показывают цену спроса, некоторые цену предложения, а некоторые среднюю цену. Если вы намереваетесь тестировать на исторических данных, вам нужно знать, с чем вы имеете дело. Далее вы можете добавить пару пунктов на проскальзывание, чтобы отразить спред, который обычно получаете от своего брокера. Вы хотите, чтобы ваши протестированные на истории сделки как можно ближе совпадали с вашими реальными сделками. Помните, что спреды могут расширяться во время важных событий или высокой волатильности. Поддерживаются ли данные в "чистоте" и актуальны ли они? Ведение базы данных для сотен или тысяч акций, фьючерсных контрактов или валютных рынков является сложной задачей, и ошибки так или иначе будут присутствовать. Лучше всего тратить деньги на такие данные, которые поддерживаются в "чистоте" и обновляются опытной командой. Достаточно ли данных, чтобы сделать значимые выводы? Многие торговые ошибки могут быть вызваны в первую очередь нехваткой данных. Если вы намереваетесь протестировать торговую стратегию возврата к среднему значению на данных в конце дня, но у вас есть данные только за пару лет, то маловероятно, что из этих данных вы сможете сделать существенные выводы. Жестких правил нет, но в идеале вы хотите видеть хорошую выборку сделок. Для стратегии возврата к среднему, которая торгуется на внутридневных барах, вам потребуются данные по меньшей мере за восемь-десять лет, охватывающие различные рыночные циклы и торговые условия. Однако не забывайте, что хорошие торговые стратегии всё же можно разработать и с небольшими размерами выборки. Их просто сложнее доказать с помощью типичных доступных методов стресс-тестирования. Резюме Вам доступно множество бесплатных данных, но если вы хотите достичь хороших результатов, стоит заплатить немного денег. Я использую Norgate Premium для получения данных на конец дня и IQ Feed для получения внутридневных данных. Шаг третий: составьте план После того, как вы организовали свою среду тестирования на исторических данных, пора принять некоторые решения о том, что вы хотите протестировать и что надеетесь получить от своего тестирования. Чего вам не следует делать, так это запускать массу бессистемных симуляций, толком не зная, что именно вы ищете. Вы получите большую отдачу от процесса, если поставите перед собой четкие цели. И здесь некоторыми ключевыми вопросами являются следующие: · На каких рынках вы хотите сфокусироваться? · Какие таймфреймы вы хотите протестировать? · Какие идеи вы собираетесь проверить? · Какие именно тесты вы будете проводить? · Какие параметры вы будете тестировать? · Какие показатели вы будете использовать для оценки успеха? · Когда вы откажетесь от своей идеи? Когда я сажусь за анализ, то стараюсь сосредоточиться на рынках, которые больше подходят для моего стиля торговли. Я ищу рынки, которые достаточно ликвидны для торговли, но не те, на которых доминируют крупные игроки. Я хочу протестировать те рынки, которые позволят мне найти преимущество. Что касается таймфреймов, я обычно сосредотачиваюсь на торговле в конце дня и стараюсь начать с логической идеи или паттерна, которые я наблюдал на реальном рынке. Я сначала люблю тестировать только пару торговых правил, и я хочу увидеть большую выборку результатов – обычно это более 300 сделок. Моя самая большая забота – избежать результатов аппроксимации кривой и найти стратегии, у которых есть возможное объяснение или поведенческая причина того, почему они будут работать. Независимо от того, какой вид анализа я провожу, я всегда резервирую небольшой объем данных вне выборки, которые могу использовать позже, чтобы оценить идею. Если я располагаю небольшим объемом данных, мне нужно будет увидеть гораздо более сильные результаты, чтобы компенсировать это. При оценке успеха я прежде всего смотрю на кривую собственного капитала и соотношение суммарного ежегодного дохода к коэффициенту максимального снижения стоимости (CAR/MDD). Я всегда буду сравнивать это с таким простым критерием, как «покупай и удерживай», и мне нравится видеть некоторую согласованность между результатами, полученными внутри выборки и вне выборки. Позже я рассмотрю такие показатели, как удерживаемые бары, среднее соотношение прибыли к убыткам, процент прибыльных позиций, максимальная просадка и максимальное количество убыточных сделок подряд. Я знаю, что эти факторы будут психологически оказывать на меня влияние, когда я буду торговать по данной системе на реальном рынке, поэтому мне нужно быть уверенным в том, что́ они мне показывают. Когда дело доходит до тестирования торговой стратегии возврата к среднему на исторических данных, рынок и торговая идея часто диктуют мне метод тестирования, который я использую. Если идея основана на наблюдении за рынком, я часто просто тестирую как можно большее количество данных (оставляя 20 или 30% данных для тестирования вне выборки). Это позволяет мне видеть максимальное количество торговых результатов. Если же моя идея содержит настраиваемые параметры или я тестирую только один инструмент, то я обычно использую метод продвижения вперед. Метод продвижения вперед поможет преодолеть меньшую выборку сделок, которая возникает при торговле на единственном рынке. Как правило, я ограничиваю время тестирования своей идеи. Если я буду тестировать свою идею в течение часа и за это время не увижу никаких положительных результатов, я откажусь от данной идеи и перейду к тестированию какой-либо другой. Однако эти меры не так легко реализовать на практике, поэтому вам нужно соблюдать дисциплину. Шаг четвертый: правила открытия сделок на покупку и продажу Чтобы стратегия возврата к среднему срабатывала, вам нужно находить экстремальные события, которые имеют высокий шанс завершиться разворотом. Есть множество правил для открытия позиций на покупку и продажу на выбор: Стандартное отклонение Стандартное отклонение измеряет дисперсию в ряду́ данных, поэтому оно является хорошим выбором для использования в стратегии возврата к среднему для нахождения моментов экстремального отклонения. Для его эффективной реализации вы можете: 1. Рассчитать среднюю дневную доходность предполагаемого инструмента; 2. Распределить дневную доходность в регулярных интервалах (отсеках); 3. Разместить интервалы в виде гистограммы и вычислить распределение вероятностей; 4. Разработать торговые стратегии, которые торгуют, когда движение превышает среднее стандартное отклонение (сигму). Стандартное отклонение можно легко построить на большинстве графических платформ и, следовательно, применить к различным временным рядам и индикаторам. Подумайте, хотите ли вы рассчитать стандартное отклонение для всей генеральной совокупности или только для более позднего временно́го интервала. Важно помнить, что хотя стандартное отклонение является полезным инструментом, рынки нестабильны и обычно не распределяются по нормальному закону. Это означает, что рыночные условия не остаются неизменными в течение длительного времени, а события с высокой сигмой случаются чаще, чем можно было бы ожидать. Индекс относительной силы (RSI) Одним из лучших технических индикаторов для возврата к среднему является RSI (индекс относительной силы), и я часто использую RSI с маленькими периодами, такими как RSI (2), RSI (3) или RSI (4). Когда значение RSI с периодом 3 ниже 15 – это обычно хорошее место для открытия сделки с возвратом к среднему значению. Когда акция становится крайне перепроданной за короткий промежуток времени, продавцы будут фиксировать свою прибыль. Покупатели также будут признавать свое поражение или же у них сработают стопы. Это может вызвать быстрый отскок цены. Прибыль можно получить, когда индикатор пробивает снизу вверх уровни 50 или 60. Стратегии, основанные на этом индикаторе, в прошлом хорошо работали с акциями и биржевыми инвестиционными фондами. Полосы Боллинджера Полосы Боллинджера представляют собой стандартное отклонение от скользящей средней. Закрытие цены под нижней полосой Боллинджера или над верхней полосой Боллинджера может сигнализировать об экстремальном движении и, следовательно, является хорошей возможностью открыть позицию в противоположном направлении. %B, о котором я впервые узнал из журнала Connors Research, помогает количественно оценить расстояние между ценой и верхней или нижней полосой. Если %B выше 1 – значит, цена выше верхней полосы, а если %B ниже 0 – цена ниже нижней полосы. %B = (цена – нижняя полоса) / (верхняя полоса – нижняя полоса) Индикатор Internal Bar Range Этот индикатор отображает цену закрытия акции по отношению к ее дневному торговому диапазону. Значение больше 0,5 показывает, что цена акции закрылась в верхней половине дневного диапазона, а ниже 0,5 означает, что цена акции закрылась в нижней половине дневного диапазона. 1 означает, что цена акции закрылась на своих максимумах. Для стратегий возврата к среднему я часто ищу значение ниже 0,2 для покупки и выше 0,8 для продажи. Этот индикатор хорошо сочетается с другими техническими правилами торговли. IBR = (цена закрытия – минимальная цена) / (максимальная цена – минимальная цена) Индекс волатильности (VIX) Индекс волатильности VIX измеряет 30-дневную волатильность на фондовом рынке США и имеет сильную тенденцию к возврату к среднему значению. Это делает его полезным выбором для включения в торговую систему возврата к среднему. Сам по себе индекс VIX не дает сигналов для торговли, но может использоваться в качестве руководства для торговли на других инструментах. Например, когда индикатор VIX демонстрирует сильную перепроданность – это значит, что рыночная волатильность низкая, а иногда это может указывать на самоудовлетворенность. Это может быть хорошее время для коротких продаж, поскольку инвесторы не готовы к скачку волатильности. Когда индикатор VIX находится у максимумов – это значит, что на рынке много опасений, и может указывать на возможность открытия длинной позиции. Исторически сложилось так, что большие скачки значений VIX совпадали с привлекательными возможностями для открытия позиций на покупку. В нашей программе есть система, которая с помощью данного метода демонстрирует очень высокий процент прибыльных позиций. Однако имейте в виду, что волатильность (особенно низкая) может продолжаться в течение длительного периода времени. Коэффициенты PE (отношение рыночной стоимости акции к годовой прибыли на акцию) Другим подходом к торговой стратегии возврата к среднему является анализ финансовых коэффициентов. Покупать акции, когда коэффициент PE падает очень низко, и продавать их, когда он растет, может являться хорошей стратегией для инвестирования в стоимость. Известно, что некоторые инвесторы, использующие стратегию стоимости, обращают внимание на коэффициенты PE ниже 10, ниже 5 и даже ниже 1. Это работает до тех пор, пока вы избегаете «ловушек со стоимостью». Индикатор настроений инвесторов Как уже упоминалось ранее, индикаторы настроений также могут определять точки разворота. Когда слишком большое количество инвесторов на рынке настроены пессимистично, это может быть хорошим временем для покупок. Это может быть частью долгосрочной стратегии или же использоваться в комбинации с другими правилами, например, с техническими индикаторами. Стоп-лоссы Чем больше рынок движется против вас, тем сильнее становится сигнал возврата к среднему. Следовательно, стоп-лоссы могут быть логически несовместимыми для систем возврата к среднему и отрицательно сказываться на производительности при ее тестировании на исторических данных. Тем не менее, стоп-лоссы по-прежнему следует использовать для защиты от значительных неблагоприятных движений цен, особенно при использовании кредитного плеча, в случае когда риск разорения является гораздо более высоким. Статистика, такая как максимальное неблагоприятное отклонение, может показать лучшее размещение фиксированных стоп-лоссов для систем возврата к среднему. Фиксированные стоп-лоссы обычно снижают производительность при тестировании на истории, но они уберегут вас от разорения в реальном трейдинге. Плавающие стоп-лоссы и цели по прибыли Плавающие стоп-лоссы хорошо работают для импульсных систем, но их бывает сложно правильно установить для стратегий возврата к среднему. Я никогда не обнаруживал, чтобы плавающие стоп-лоссы работали лучше, чем фиксированные стопы, но они могут быть эффективными при работе на более частотных графиках. Точно так же цели по прибыли могут использоваться для выхода из сделок и захвата быстрых движений на более благоприятных ценовых уровнях. При использовании цели по прибыли рекомендуется иметь цель, которая подстраивается под волатильность базового инструмента. Например, если цель основана на 2- или 3-кратном значении ATR (среднего истинного диапазона). В целом, я обнаружил, что цели по прибыли отрабатывают себя лучше, чем плавающие стоп-лоссы, но обычно лучшими считаются выходы, которые основываются на логике системных параметров. Например, если правило покупки основано на RSI, то обычно хорошо работает и правило выхода, тоже основанное на RSI. Стоп-лоссы, основанные на времени Время от времени у вас будут сделки, основанные на возврате к среднему значению, цена в которых не будет восстанавливаться. Вместо быстрого разворота акция продолжает идти все ниже и ниже. Это худший вид сделок в торговых стратегиях возврата к среднему, потому что вы можете застрять в убыточной сделке, которая будет казаться вечностью. В этих случаях на помощь придет основанный на времени стоп-лосс, который поможет выйти из вашей убыточной позиции и высвободить ваш капитал для другой сделки. Я обнаружил, что 10 или 12 дней может быть достаточно, чтобы выйти из позиции, которая продолжает дрейфовать против вас. Цена на акции GE продолжала падать всё ниже и ниже и не давала ни малейшего шанса на возврат к среднему значению. Шаг пятый: начальное тестирование После того, как вы установили некоторые базовые правила торговли, вам необходимо запрограммировать их, чтобы вы могли провести начальное тестирование в небольшом временном интервале данных в пределах выборки. Вы должны соблюдать осторожность и не использовать слишком много данных – запускать более сложные тесты следует на поздних этапах. На данном же этапе вы просто проводите несколько предварительных тестов, чтобы увидеть, имеются ли у вашей идеи какие-либо достоинства. Это делается до того, как вы добавите в нее какие-либо другие причудливые правила или будете изменять размер позиций. На этом этапе я просто проведу несколько «отмеченных точками» бэктестов на данных, взятых за пару лет. Никакого управления капиталом, изменения размера позиции, никаких комиссий. Я лишь хочу посмотреть, насколько хороша данная идея и стоит ли ее продолжать развивать. Если данная идея не выглядит хорошо изначально, вы можете сэкономить массу времени, отказавшись от нее сейчас и переключившись на что-либо иное. Так что проведите несколько начальных тестов и посмотрите, есть ли у вашей идеи какие-либо достоинства. Излишне не привязывайтесь к стратегии, которая не подает положительных признаков. Шаг шестой: определение размера позиции Если ваша система пройдет некоторое начальное тестирование, вы можете отнестись к ней более серьезно и добавлять компоненты, которые помогут преобразовать ее в более сильную модель. Одним из таких важнейших компонентов торговой системы является определение размера позиции, и для этого существуют различные варианты. Скорректированная волатильность Определение размера позиции на основе волатильности обычно достигается с помощью индикатора ATR или стандартного отклонения. Идея состоит в том, что вы покупаете большее количество акций в период низкой волатильности и меньшее количество акций в период высокой волатильности. Это имеет логический смысл, поскольку волатильность определяет торговый диапазон и потенциал прибыли вашего торгового правила. Я обнаружил, что этот метод хорошо работает на фьючерсных контрактах, но я никогда не добивался больших успехов с ним при торговле на акциях. Волатильность акций может резко измениться в одночасье. Например, после выхода важной новости. Равновесность Равновесность – это просто разделение доступного капитала поровну между вашими предполагаемыми позициями. Например, если вы хотите инвестировать 10% своего капитала в акции, то просто разделите 10% своего капитала на цену акции и получите количество акций, которое вам нужно купить. Это простой метод определения размера позиции, который, как я считаю, хорошо работает с акциями и который я часто использую. Фиксированное количество акций или контрактов Этот подход предполагает торговлю фиксированным количеством акций или контрактов каждый раз, когда вы открываете позицию. Такой подход не допускает капитализации – это означает, что вы можете получить меньшие просадки и больше прибыли. Этот метод хорошо работает при торговле только на одном инструменте и при использовании кредитного плеча. Это позволяет сохранять риск на одном уровне. По мере того, как вы обретете уверенность, вы можете увеличить количество контрактов и тем самым значительно улучшить свой потенциал для заработка. Процент риска Чтобы торговать с использованием процента риска, сначала решите, где вы будете размещать свой стоп-лосс. Затем рассчитайте размер позиции, при которой ваш убыток будет ограничен этим процентом от вашего торгового капитала – это и будет местом размещения вашего стоп-лосса. Обычно этот процент равен 0,5 или 1. Имейте в виду, что рынки иногда могут пройти через ваш уровень стоп-лосса, поэтому вы должны быть готовы к некоторому проскальзыванию при закрытии позиции. Формула Келли Для расчета оптимального риска в каждой сделке можно использовать формулу Келли. Поскольку это оптимальная сумма, она также может привести к большим просадкам и сильным колебаниям кривой капитала. Именно поэтому многие трейдеры используют только половину или даже четверть величины, полученной с помощью формулы Келли. Простой подсчет величины Келли поможет вам определить хороший размер позиции, который вы можете применять в своих сделках, поэтому стоит изучить данную формулу. Во избежание недооценки вашего риска при вычислении формулы Келли всегда используйте консервативные исходные данные. Это особенно актуально, если ваши оценки основаны на моделировании, а не на реальной торговле. Формула Келли для определения размера позиции Факторное взвешивание Факторное взвешивание означает применение бо́льшего риска в сделках, которые в бо́льшей степени соответствуют вашим правилам покупки. Например, если у вас есть торговая стратегия возврата к среднему, основанная на RSI, то вы можете покупать бо́льшее количество акций по мере снижения значения RSI. Или если вы торгуете с помощью коэффициентов PE, то вы можете покупать бо́льшее количество акций при значении коэффициента PE 5 и меньшее количество акций при значении коэффициента PE 10. Идея состоит в том, что вы покупаете бо́льшее количество чего-либо, когда это в бо́льшей степени соответствует логике вашей торговой системы. Более детально о динамическом, взвешенном по факторам размере позиции я писал здесь. Шаг седьмой: добавление дополнительных правил После того, как вы отсортировали свои правила покупки и продажи, вы, вероятно, захотите добавить некоторые дополнительные правила в целях улучшения производительности и логики системы. Элементы времени рынка Хорошее место для начала – определить некоторые среды, в которых ваша система возврата к среднему не работает, чтобы вы могли избегать торговли в таких рыночных условиях. О скользящей средней с периодом 200 дней в качестве метода фильтрации сделок было написано много полезной информации. Ее можно применять как к отдельной акции, так и к любому другому рынку. Существует множество других способов использования фильтров или элементов рыночного времени. Я обнаружил, что для фильтрации акций могут хорошо работать некоторые из следующих правил: · Открывайте длинные позиции, только если цена акции находится выше скользящей средней с периодом 200 дней; · Открывайте длинные позиции, только если S&P 500 находится выше скользящей средней с периодом 200 дней; · Открывайте длинные позиции, только если VIX вчера вырос; · Открывайте короткие позиции, только если VIX вчера упал; · Открывайте длинные позиции, только если спред по акциям TED меньше 1; · Открывайте длинные позиции, только если S&P 500 не перепродан; · Для определения периодов импульса или возврата к среднему используйте фильтры, такие как фильтры Эйлерса и Кальмана. Ранжирование Часто торговая стратегия с возвратом к среднему нуждается в методе ранжирования более чем одного торгового сигнала. Наиболее распространенной является методика, когда вы торгуете на множестве акций и получаете множество торговых сигналов в один и тот же день. Ранжирование стратегии торговли с возвратом к среднему может быть связано с вашими правилами покупки. Например, если ваша торговая система основана на RSI, вы можете также ранжировать сигналы по RSI и сначала выбирать акции с самыми низкими показателями RSI. Это гарантирует согласованность логики вашей системы. Однако не удивляйтесь, если тестирование на исторических данных будет противоречить логике. Хорошие торговые системы зачастую можно определить совершенно случайно или применяя правила, о которых вы даже не думали. В целом, я обнаружил, что ранжирование, основанное на RSI, ATR и IBR, работает хорошо. Важно помнить, что ранжирование является дополнительным параметром в правилах вашей торговой системы. Хороший результат тестирования на исторических данных может быть полностью обусловлен вашим методом ранжирования, а не правилами покупки и продажи. Следовательно, вы должны проявлять осторожность в том плане, чтобы ранжирование не повлияло на результаты аппроксимации кривой. Вот почему я также часто использую рандомное ранжирование. Запустите свою систему 100 раз, используя рандомное ранжирование, и вы получите хорошее представление о ее потенциале без необходимости применения дополнительного правила ранжирования. Другие правила выбора времени Опять же, существуют тысячи различных правил и идей, которые можно применить к вашей торговой стратегии возврата к среднему. Мы же возвращаемся к важности творческого подхода и придумывания уникальных идей, которые не используются другими. Возможно, это будет вашим лучшим выбором для поиска работающей стратегии. Шаг восьмой: оптимизация и дальнейший анализ Чем дальше вы следуете этим шагам и чем больше правил добавляете в свою торговую систему, тем больше вам нужно беспокоиться об опасностях аппроксимации кривой и ошибке выборки. Чем больше правил имеет ваша торговая система, тем легче она будет реагировать на случайный шум в ваших данных. И если она будет реагировать на случайный шум в прошлом, то вряд ли она будет хорошо работать на появляющихся данных в будущем. Будущие данные будут новыми и будут иметь свои особенности и шумность. Кроме того, чем больше бэктестов вы проведете, тем больше вероятность того, что вы встретите систему, которая будет аппроксимировать данные как внутри выборки, так и вне выборки. Тот факт, что система хорошо себя показала в сегменте данных вне выборки, не обязательно означает, что данная стратегия не будет иметь аппроксимации кривой. Вы также можете случайно увидеть хороший результат и среди данных вне выборки. Оптимизация Несмотря на эти недостатки, всё еще есть веские основания использовать оптимизацию при тестировании на исторических данных, поскольку это ускоряет поиск правил прибыльной торговли. Путем оптимизации своих торговых правил вы можете быстро определить, какие настройки работают лучше всего, а затем вы можете подробнее рассмотреть эти области, создавая более совершенную систему по мере своего продвижения. Ключевым моментом является осознание ограничений оптимизации и наличие процессов, которые можно использовать для оценки того, использует ли данная стратегия аппроксимацию кривой или же она является жесткой стратегией. Одно из простейших правил оптимизации – избегать параметров, где высокая производительность существует изолированно. Вместо этого поищите диапазон настроек, в которых ваша система работает хорошо. Например, если у вас есть торговая стратегия возврата к среднему, при которой покупка осуществляется на 30-дневных минимумах, то она должна также хорошо работать на 29-дневных минимумах, 28-дневных минимумах, 31-дневных минимумах, 32-дневных минимумах и т. п. И наоборот: если ваша система приносит прибыль 40% в год при выполнении покупок на 30-дневных минимумах, но теряет деньги при изменении настроек на 31-дневные минимумы, то это явный сигнал о том, что данная система аппроксимирует кривую к 30-дневным минимумам. Пошаговый форвардный анализ Еще один интересный метод, который можно использовать для оптимизации торговой стратегии – это пошаговый форвардный анализ, впервые представленный Робертом Пардо. Здесь вы разделяете свои данные на разные сегменты данных внутри выборки и вне выборки, с помощью которых вы обучаете и оцениваете вашу модель. Ваша система обучается на данных внутри выборки, чтобы найти наилучшие настройки, затем вы продвигаете ее вперед и тестируете однократно на сегменте вне выборки. Далее вы переходите к следующему сегменту данных внутри выборки и повторяете этот же процесс. Пример форвардного анализа. В конце вы соединяете вместе все сегменты вне выборки, чтобы увидеть истинную производительность вашей системы. По сути, этот метод повторяет процесс демо-трейдинга, только с ускорением. Вы неоднократно тестируете свои правила на имеющихся данных, а затем применяете их к новым данным. Преимущество форвардного анализа состоит в том, что вы можете оптимизировать свои правила, не прибегая к аппроксимации кривой. Важно использовать достаточное количество данных, чтобы ваша система могла устанавливать значимые связи и выяснять, что в ней работает. Также важно не использовать необъективную выборку. Дайте системе достаточно времени и достаточно места для параметров, чтобы она могла воспроизводить значимые результаты. Шаг девятый: стресс-тестирование и оценка Когда вы запускаете бэктест, в зависимости от вашей программной платформы вам будет представлен целый ряд количественных показателей, статистических параметров и графиков, с помощью которых вы сможете оценить вашу ТС. Как я упоминал в третьем шаге, вы уже должны знать, какие показатели ищете на данном этапе и как хотите оценивать свою торговую систему. Первое, на что я всегда буду обращать внимание – это общая кривая капитала, поскольку это самый быстрый и лучший способ увидеть, как работает ваша система на всей генеральной совокупности данных. Также я буду проверять таблицу ежемесячных результатов и смотреть на ключевые показатели, такие как годовая доходность, максимальная просадка, соотношение суммарного годового дохода к максимальной просадке (CAR/MDD), коэффициент прибыльных позиций, средняя прибыль в сделке, среднее количество удерживаемых баров, коэффициент прибыли и т. д. Каждый показатель отражает разную картину, поэтому важно рассматривать их в целом, а не сосредотачиваться только на одном. Один из моих любимых показателей – CAR/MDD (иногда называемый MAR), который представляет собой соотношение суммарного годового дохода к максимальной просадке. Этот показатель дает хорошее представление о плавности кривой капитала. Одним из преимуществ данного соотношения является то, что оно позволяет легко сравнивать различные стратегии, а когда вы объединяете две стратегии вместе, то можете использовать соотношение CAR/MDD – это поможет вам легко увидеть любое положительное изменение. Учитывайте размер выборки Большим преимуществом торговых стратегий с возвратом к среднему является то, что большинство из них имеют высокую частоту и сделки удерживаются в течение коротких промежутков времени. Это является идеальным, потому что означает, что вы можете генерировать большую выборку сделок для тестирования значимости и стресс-тестирования. В целом, я считаю, что чем больше стресс-тестов вы проведете в своей стратегии, тем лучше, и существует масса методик, которые можно использовать для этой цели. Данные для тестирования вне выборки Как уже ранее упоминалось, распространенной практикой является тестирование вашей системы на данных внутри выборки и сохранение некоторых данных свободными, чтобы вы могли однократно протестировать ее на чистых данных. Это просто имитирует процесс тестирования системы на исторических данных, а затем выводит ее на реальный рынок без необходимости торговать на реальных деньгах. Применение данных вне выборки можно считать хорошим первым тестом, позволяющим увидеть, есть ли у вашей стратегии какие-либо достоинства. Вам необходимо иметь достаточное количество данных, чтобы увидеть хорошую выборку сделок. Данные вне выборки можно зарезервировать до и после периода выборки, либо использовать и то, и другое. Тестирование данных на различных временны́х периодах Также рекомендуется сегментировать данные и тестировать их на разных временны́х периодах. Это позволит вам тестировать разные рыночные условия и разные даты начала. Некоторые стратегии страдают от смещения даты начала – это означает, что на их эффективность сильное влияние оказывает день, когда вы начинаете бэк-тестирование. Системы с низкой оборачиваемостью, например, импульсные портфели, удерживают позиции по акциям в течение нескольких месяцев. Если вы начнете тестирование на истории первого января, вы, скорее всего, получите другой портфель, чем если бы начали его тестирование несколькими днями позже. Это может привести к значительной погрешности. Чтобы получить представление о худшем и лучшем сценарии, протестируйте свою систему в разные даты. Посмотрите, как она себя проявит во время краха 2008 года или взлета в 2017 году. Подлежащий тренд будет одним из основных факторов, оказывающих влияние на доходность вашей системы как внутри выборки, так и за ее пределами. Еще одним способом пошагового тестирования данных в различных временны́х периодах является форвардный анализ. Сохраняйте небольшое количество тестируемых параметров Чем больше параметров (торговых правил) имеет ваша система, тем больше кривых эквити можно построить, и тем выше ваши шансы получить хороший результат тестирования на исторических данных. Однако за это приходится платить, потому что чем больше у вас параметров, тем легче система будет реагировать на случайный шум – то есть происходит аппроксимация кривой. Стратегии с меньшим количеством торговых правил требуют меньшего размера выборки для доказательства их значимости. При бэк-тестировании данные всегда имеют приоритетное значение, поэтому лучше строить стратегии, используя как можно меньшее количество правил. Обычно это компромиссный вариант. Ищите диапазон параметров Как я упоминал ранее в разделе оптимизации, не принимайте торговых правил, которые существуют изолированно. Если система хорошо работает с 30-дневными минимумами, она также должна хорошо работать и с 29-дневными минимумами. Небольшие изменения переменных и параметров вашей системы не должны сильно влиять на ее производительность. Протестируйте другие рынки Вы можете протестировать свою систему на разных таймфреймах, в разных временных интервалах, а также на разных рынках. Торговая система возврата к среднему, которая работает на акциях компании Apple, не обязательно должна эффективно работать на акциях компании Microsoft. Тем не менее, если это так, это дает дополнительный уровень уверенности в том, что вы нашли достойное торговое преимущество. Используйте анализ методом Монте-Карло Метод Монте-Карло может относиться к любому методу, который добавляет случайности. Осторожное использование случайности можно применять для повторного проектирования вашей системы и в целях содействия ее комплексной оценки. Например, метод Монте-Карло можно использовать для следующих целей: 1. Рандомизация последовательности сделок Это позволяет увидеть, как бы работала ваша система, если бы результаты торговли приходили в другом порядке. Возможно, ваша система работала хорошо только потому, что сделки выстроились в идеальной последовательности. Маловероятно, что вы получите такую же последовательность в будущем, поэтому вам нужно быть уверенным, что ваша система работает на основе своего преимущества, а не очередности сделок. Чтобы реализовать это, возьмите исходный список сделок, рандомизируйте порядок 1000 раз, затем проследите за различными кривыми капитала и статистикой. Это даст вам лучшее представление о просадках и доходах, которые вы можете ожидать в будущем. Вот результат этого процесса у Amibroker: 2. Добавление случайного шума к данным или параметрам системы Вы также можете получить представление, настроена ли ваша система слишком близко к данным, добавив некоторый случайный шум к вашим данным или параметрам вашей системы. Что касается параметров, вы можете протестировать свою систему и оптимизировать различные входные параметры аналогично оптимизации индикатора. Один из методов рандомизации данных – экспортировать данные в приложение Excel и добавить вариации к точкам данных. Например, с помощью функции RAND () или RANDBETWEEN () в приложении Excel измените 30% ваших цен открытия, максимальных цен, минимальных цен и цен закрытия на 30% от среднего диапазона (ATR). Вот один из способов, как можно сделать это: С помощью приложения Excel добавьте случайный шум к рыночным данным. Затем экспортируйте эти данные обратно в свою программу и запустите систему на новом источнике данных. По возможности проделайте это многократно и наблюдайте за кривыми капитала, которые создаются на новых наборах зашумленных данных. Посмотрите, продолжает ли ваша система работать или терпит фиаско. Ваша система вряд ли будет работать так же хорошо, как в вашем предыдущем тесте, но если она даст сбой, то это еще один признак того, что ваша система использует аппроксимацию при работе с исходными данными. Как упоминалось ранее, небольшие изменения данных или параметров не должны приводить к слишком большим изменениям производительности системы. Сравните кривые капитала Точно так же есть всевозможные способы сравнения статистических параметров и кривых капитала. Самый простой способ – это сравнить вашу систему с эталоном, например, с принципом «купить и удерживать». Если с помощью метода поправки на риск вы не можете получить лучшей доходности по сравнению с методом «купить и удерживать», то нет смысла торговать по этой конкретной системе. Однако ваш эталон должен быть действительным, и это не обязательно каждый раз должен быть S&P 500. Важно учитывать подлежащий тренд. Если вы тестируете свою систему на исторических данных только для длинных позиций во время крупного бычьего рынка, то неудивительно, что она будет работать хорошо. Один из вариантов, подробно описанный Дэвидом Аронсоном, состоит в том, чтобы не принимать во внимание тренд в исходных источниках данных, вычислить среднюю дневную доходность на основе этих данных и отнять от нее доходность вашей системы, и вы увидите, какое влияние оказывает подлежащий тренд на вашу систему. Вы также можете сравнить свою систему со случайными кривыми капитала. Возьмите исходные данные и запустите 1000 случайных стратегий на этих данных (с правилами случайного открытия и закрытия позиций), затем сравните эти случайные кривые с вашей кривой капитала. Обычно то, что вы видите на 1000 случайных кривых капитала, является представлением подлежащего тренда. Если ваша система не может превзойти эти случайные кривые капитала – значит, она не отличается от случайной стратегии и, следовательно, у нее нет преимущества. Оригинальная кривая капитала в сравнении со случайными кривыми капитала, полученными с помощью программного обеспечения Build Alpha. Также можно построить кривые капитала, спроектированные с помощью форвардного метода, используя распределение доходности сделок в процессе бэк-тестирования. Это может дать вам еще одно представление о том, чего ожидать в будущем. Тестирование дисперсий с помощью программного обеспечения Build Alpha Эти методы не обойдутся без специального программного обеспечения. ПО Build Alpha, разработанное Дэйвом Бергстромом – одна из программ, предлагающих эти функции. Тестирование на наличие здравого смысла Вы должны руководствоваться здравым смыслом, тестируя свою стратегию. Если она хорошо работает с 10-дневным закрытием позиций, протестируйте ее с 9-дневным и 11-дневным закрытием позиций, чтобы увидеть, как она работает на них. Слегка измените правила открытия и закрытия позиций и обратите внимание на разницу в результатах. Если она хорошо работает на бычьих рынках, посмотрите, как она работает на медвежьих рынках. Я часто буду тестировать стратегии открытия длинных позиций на медвежьих рынках (и наоборот – стратегии открытия коротких позиций на бычьих рынках), так как если они могут хорошо работать на медвежьих рынках, то они будут еще лучше работать на бычьих рынках. Пропустите систему через серьезные испытания. Вы должны узнать свою систему как можно лучше, прежде чем использовать ее в реальном рынке. Наконец, один из простейших способов построения более надежных торговых систем – это разработка стратегий, которые в первую очередь основаны на некоторой основопологающей истине о рынке. Например, эффект смены месяца существует по той причине, что пенсионные фонды и постоянные инвесторы вкладывают свои деньги в рынок в начале месяца. (Частные инвесторы часто имеют больше денег для инвестирования в начале месяца). Это фундаментальное объяснение торгового преимущества, основанного на поведении инвесторов. Это придаст вашей стратегии больше доверия. Не все торговые преимущества нужно объяснять. Тем не менее, закономерности, которые вы не можете объяснить, следует оценивать более тщательно, чтобы доказать, что они не случайны. Шаг десятый: торговля на реальном рынке и обратная связь Последний шаг при построении вашей торговой стратегии возврата к среднему заключается в настройке процесса для запуска вашей системы и последующего отслеживания ее дальнейшего развития. Важно отметить, что перед запуском вы должны знать ответы на некоторые ключевые вопросы, например: Как вы будете совершать свои сделки и какой тип ордеров будете использовать? Когда вы торгуете на реальном рынке, ваша цена должна быть как можно ближе к той, которую вы видели при тестировании на исторических данных. Ваши бэктесты должны компенсировать такие детали, как комиссии и проскальзывания, чтобы вы не получили слишком много неприятных сюрпризов при переходе к реальному трейдингу. Поскольку я использую платформу от Interactive Brokers, я обычно устанавливаю свои комиссионные в размере $0,01 или $0,005 за акцию – ваши же комиссионные будут зависеть от того, какого брокера вы используете. Для систем возврата к среднему обычно хорошо работают лимитные ордера, поскольку они могут обеспечить лучшее исполнение цены во время быстрого падения/роста рынка. Вы также должны осознавать возможности своей торговой стратегии. Если вы торгуете неликвидными копеечными акциями, то обычная покупка тысячи акций не может не повлиять на спред. Вы должны знать возможности своей торговой стратегии и учитывать их при тестировании своей стратегии на исторических данных, прежде чем запускать ее на реальном рынке. Что, если что-то пойдет не так? Как и во многих других сферах жизни, стоит иметь запасной план на случай, если что-то пойдет не так. Если ваша торговая стратегия выходит из-под контроля или рынок сходит с ума, у вас должен быть способ быстро отключить данную ситуацию. У некоторых брокеров, включая Interactive Brokers, есть команды, которые можно использовать для закрытия всех позиций на рынке. При использовании автоматических торговых стратегий они должны идеально работать на собственном выделенном сервере в облаке. Это же касается и услуги резервного копирования. Если они не являются облачными, вам следует подумать о наличии резервного компьютера, резервного сервера и резервного источника питания на случай выхода из строя одного из вышеперечисленных. Как вы будете отслеживать дальнейшее продвижение своей стратегии и анализировать свои торговые результаты? Одна из самых важных частей работы – это отслеживание ваших результатов и оценка дальнейшего продвижения вашей стратегии. Всякий раз, когда вы запускаете систему в реальном рынке, маловероятно, что все пойдет гладко и ваши результаты будут точно имитировать результаты моделирования. Первый вопрос, который следует задать: совпадают ли ваши торговые результаты с результатами моделирования? Если нет, вам нужно будет вернуться и разобраться, что происходит. Если дела идут относительно гладко, вы можете начать отслеживать дальнейшее продвижение вашей стратегии. Записывайте максимальную просадку и последовательность прибыльных/убыточных сделок и сравнивайте их с результатами моделирования. Если максимальное количество убыточных сделок во время вашего тестирования на исторических данных было восемь подряд и вы внезапно достигли этого числа всего через пару недель торговли на реальном рынке, то есть большая вероятность, что данная система не делает того, что вы от нее ожидали. То же самое касается и вашей просадки. Вы должны знать, какой результат заставит вас отключить вашу систему, а затем придерживаться его. Более разумный способ отслеживать дальнейшую работу вашей стратегии – это снова использовать метод Монте-Карло. Представьте, что кривые капитала, полученные при использовании метода Монте-Карло, которые мы рассматривали ранее, экстраполируются еще на 100 сделок. Если кривая вашего капитала начнет опускаться ниже этих кривых – это означает, что ваша система работает плохо. Если кривая вашего капитала опускается более чем на 5% по сравнению с рандомными кривыми (или перегруппированными кривыми) – это сильный сигнал для ее отключения. Убедитесь, что обратная связь является неотъемлемой частью исполнения вашей торговой системы. Используйте ее для улучшения своей торговой системы и процесса ее тестирования на исторических данных. Вы можете использовать опыт реального трейдинга – это в будущем поможет вам проводить более точные бэктесты. Пример торговой стратегии возврата к среднему Я не планировал, что эта статья будет такой длинной! Но я действительно хотел включить в нее пример торговой стратегии возврата к среднему. Итак, данная торговая стратегия предназначена для акций S&P 500. Она была протестирована на исторических данных с учетом компаний, ранее входящих в индекс S&P 500, и была скорректирована с учетом дивидендов и корпоративных сделок. Результаты также включают комиссию в размере $0,01 за акцию. Обратите внимание, что данная система не предназначена для торговли. Это всего лишь пример, который я придумал за пару часов тестирования на исторических данных. Правила данной стратегии следующие: Правила для покупки: · Значение RSI (3) < 15 в течение 3 дней подряд; · Значение IBR < 0,2; · Цена закрытия выше скользящей средней с периодом 200 дней. Правила для продажи: · Значение IBR > 0,7; · Стоп-лосс 5%. Дополнительные правила/информация: · Все совершаемые сделки открываются на следующий день; · Максимум пять открытых позиций; · Стартовый капитал 50 000 $; · Размер позиции 20% (равновесные позиции); · Комиссия $0,01 за акцию; · Ранжирование с помощью RSI (3); · Маржа отсутствует. Пример торгового сетапа Ниже приведен пример торгового сетапа, который мы ищем с помощью этой стратегии. 20 января 2017 года RSI (3) опустился ниже 15 в течение трех дней подряд, и акция закрылась около своих минимумов на значении IBR 0,07. Следовательно, мы открываем длинную позицию по следующей цене открытия 23 января (зеленая стрелка). 24 января цена достигла сильного закрытия, и сейчас значение IBR составляет 0,72. Поэтому мы закрываем нашу позицию по цене открытия рынка на следующий день. Наша прибыль составляет 3,15% после уплаты комиссий (красная стрелка). Пример торгового сетапа на акциях компании Citigroup Идея, лежащая в основе этой сделки, заключается в том, что акции, которые удерживаются в перепроданном состоянии в течение нескольких дней, скорее всего, быстро восстановятся. Мы не собираемся ждать длительное время, чтобы зафиксировать прибыль, поэтому стремимся закрыть позицию на первом же приличном подъеме цены. Мы ожидаем отката в рамках восходящего тренда, поэтому смотрим, чтобы акция находилась выше скользящей средней с периодом 200 дней. Результаты стратегии При тестировании этой стратегии на акциях S&P 500 в период с 2002 по 2018 год мы получили следующие результаты и кривую капитала. Наша кривая капитала включает два периода вне выборки: · Количество сделок 1579; · Чистая прибыль 121 296 $; · Суммарный годовой доход (CAR) 8,00%; · Максимальная просадка (MDD) -12,78%; · CAR/MDD 0,63; · Процент прибыльных позиций 64,34%; · Средняя прибыль в сделке 0,41%; · Доходность с поправкой на риск 36,92%. Ниже приведены таблица ежемесячных результатов и график просадки и перетасовки, полученный с помощью метода Монте-Карло: Системные наблюдения Эта стратегия представляет собой простой пример, тем не менее, она демонстрирует некоторые характеристики хорошей системы возврата к среднему. У нас имеется большое количество сделок, высокий процент прибыльных позиций и хорошая доходность с поправкой на риск. Данная система, вероятно, заслуживает дальнейшего изучения и может претендовать на последующее добавление кредитного плеча. Более продвинутые идеи в отношении стратегии возврата к среднему Если вы зациклились на идеях о том, как сделать вашу собственную торговую стратегию возврата к среднему более уникальной, рассмотрите следующие дополнительные идеи: Прочтите академические статьи Обычно бывает полезно почитать академические статьи для вдохновения; Попробуйте применить межрыночные фильтры Хотя для помощи в построении торговых сигналов я вкратце обсудил использование VIX и более широкого рынка, существует гораздо больше инструментов, которые можно использовать для классификации сделок с возвратом к среднему. Их обычно называют межрыночными фильтрами. Попробуйте использовать такие валюты, как USD и GBP. Сырьевые товары, такие как золото и нефть. Экономические показатели, такие как кривая доходности и ВВП. Возможно, измерить корреляции между ними. Эти виды правил не так часто используются, но могут предложить некоторые интересные преимущества для стратегий возврата к среднему; Попробуйте применить альтернативные данные Еще одним вариантом является рассмотрение альтернативных источников данных. Например: данные о событиях, данные новостных настроений, фундаментальные данные, данные, полученные с помощью искусственных спутников. На сайте Quandl можно приобрести целую массу различных источников данных. Одной из торговых идей в нашей программе является простая стратегия возврата к среднему значению для биржевых инвестиционных фондов, которая была усовершенствована дополнительным правилом, полученным из альтернативной базы данных; Поведенческие предубеждения/кризисы ликвидности Проведите мозговой штурм, как вы можете количественно оценить поведенческие эффекты или методы прогнозирования кризисов ликвидности. Например, в преддверии выхода крупных новостных событий. Небольшие детали могут дать вашей торговой системе преимущество и позволить задействовать ее в наиболее подходящие моменты. Заключительные выводы Касательно стратегии возврата к среднему я обнаружил одну важную вещь: для хорошей сделки в рамках данной стратегии необходимо, чтобы всё вокруг оставалось стабильным. Когда акции падают на 10 или 20% – на то есть причина, и обычно вы можете ее узнать. Если падение цены произошло по серьезной причине, например, структурные изменения или вследствие выхода реальной новости, которая коренным образом меняет правила игры, то шансы на то, что эта акция быстро откатится и это принесет вам прибыль, будут намного меньше. Когда такое происходит, вы получаете импульс, и он, очевидно, является врагом стратегии возврата к среднему. В других же случаях акция может резко упасть по менее очевидным причинам. На рынке может просто возникнуть дисбаланс, вызванный крупным ордером на продажу (возможно, исполненный неким инсайдером). Или же акции могут упасть вследствие чрезмерной реакции на краткосрочное событие (например, террористическую угрозу, результат выборов или разлив нефти). Зачастую такие случаи являются наиболее благоприятными моментами для сделок с возвратом к среднему. На рынке произошло большое движение, но на самом деле фундаментально мало что изменилось. Следовательно, возврат к среднему значению требует, чтобы все параметры оставались прежними. Совершая сделку с возвратом к среднему значению, вы не желаете каких-либо структурных внутренних изменений – вы всего лишь ищете острой реакции и нелогичных ценовых движений. Если вы можете найти способы количественного определения, то вы будете на пути к разработке надежной торговой стратегии возврата к среднему. Благодарю за внимание! Джо Марвуд,Переведено специально для Tlap.com
- 3 ответа
-
- 14
-
- стратегия
- тестирование
-
(и ещё 1 )
C тегом:
-
Добро пожаловать в новую серию публикаций, в которой я делюсь результатами последних исследуемых мною рыночных тенденций. На этой неделе мы рассмотрим классический отбой цены от полос Боллинджера. Идея заключается в том, что после отбоя от верхней или нижней полосы Боллинджера наблюдается тенденция к движению цены назад к середине канала Боллинджера. Цена достигла верхней полосы Боллинджера Цена отскочила к средней линии Действительно ли имеется такая тенденция? Чтобы протестировать это, я запрограммировал советник и провел бэк-тестирование на 28 валютных парах в период с января 2009 года по май 2020 года. Настройка полос Боллинджера: · Период скользящей средней 20; · Стандартное отклонение 2. Критерии сетапа на продажу (обратное используется для сетапа на покупку): · Свеча сетапа является свечой, верхняя тень которой пересекает верхнюю полосу Боллинджера; · Свеча сетапа должна закрыться ниже верхней полосы Боллинджера; · Диапазон свечи, предшествующей свече сетапа, должен быть полностью ниже верхней полосы Боллинджера. Параметры сделки на продажу (обратное используется для сделок на покупку): · После закрытия свечи сетапа открывайте сделку на продажу; · Стоп-лосс устанавливайте на 1 пункт выше свечи сетапа; · Тейк-профит устанавливайте равным размеру стоп-лосса (соотношение риска к прибыли 1:1). *Примечание: данная торговая стратегия не является стратегией как таковой. Для тестирования тенденции возврата цены к средней линии после отбоя от полос Боллинджера я использую только самые основные (грубые) параметры. Настройки бэк-тестирования: · Период тестирования с 1 января 2009 года по 31 мая 2020 года; · Сделки не совершаются в течение 1 часа с момента открытия рынка; · Максимум 1 сделка на одной валютной паре в день; · Торговые издержки не учитываются. Результаты Представляю результаты бэк-тестирования (для просмотра увеличьте рисунок): Валютная пара EURUSD, часовой график Валютная пара EURUSD, 4-часовой график Валютная пара GBPUSD, часовой график Валютная пара GBPUSD, 4-часовой график Валютная пара AUDUSD, часовой график Валютная пара AUDUSD, 4-часовой график Валютная пара NZDUSD, часовой график Валютная пара NZDUSD, 4-часовой график Валютная пара USDJPY, часовой график Валютная пара USDJPY, 4-часовой график Валютная пара USDCAD, часовой график Валютная пара USDCAD, 4-часовой график Валютная пара USDCHF, часовой график Валютная пара USDCHF, 4-часовой график Валютная пара AUDCAD, часовой график Валютная пара AUDCAD, 4-часовой график Валютная пара AUDCHF, часовой график Валютная пара AUDCHF, 4-часовой график Валютная пара AUDJPY, часовой график Валютная пара AUDJPY, 4-часовой график Валютная пара AUDNZD, часовой график Валютная пара AUDNZD, 4-часовой график Валютная пара CADCHF, часовой график Валютная пара CADCHF, 4-часовой график Валютная пара CADJPY, часовой график Валютная пара CADJPY, 4-часовой график Валютная пара CHFJPY, часовой график Валютная пара CHFJPY, 4-часовой график Валютная пара EURAUD, часовой график Валютная пара EURAUD, 4-часовой график Валютная пара EURCAD, часовой график Валютная пара EURCAD, 4-часовой график Валютная пара EURCHF, часовой график Валютная пара EURCHF, 4-часовой график Валютная пара EURGBP, часовой график Валютная пара EURGBP, 4-часовой график Валютная пара EURJPY, часовой график Валютная пара EURJPY, 4-часовой график Валютная пара EURNZD, часовой график Валютная пара EURNZD, 4-часовой график Валютная пара GBPAUD, часовой график Валютная пара GBPAUD, 4-часовой график Валютная пара GBPCAD, часовой график Валютная пара GBPCAD, 4-часовой график Валютная пара GBPCHF, часовой график Валютная пара GBPCHF, 4-часовой график Валютная пара GBPJPY, часовой график Валютная пара GBPJPY, 4-часовой график Валютная пара GBPNZD, часовой график Валютная пара GBPNZD, 4-часовой график Валютная пара NZDCAD, часовой график Валютная пара NZDCAD, 4-часовой график Валютная пара NZDCHF, часовой график Валютная пара NZDCHF, 4-часовой график Валютная пара NZDJPY, часовой график Валютная пара NZDJPY, 4-часовой график *Примечание: результаты не учитывают торговых издержек, поэтому следует игнорировать суммы чистой прибыли/убытка. Данные результаты бэк-тестирования предназначены исключительно для оценки тенденции отбоя цены от полос Боллинджера (т. е. для расчета процента прибыльных позиций). Резюме проведенного бэк-тестирования: Средний процент прибыльных позиций составляет примерно 50% как на часовом, так и на 4-часовом графиках. Таким образом, результат очевиден: данная стратегия торговли на отбое цены от полос Боллинджера не заслуживает особого внимания. После «отбоя» от полос Боллинджера цены могут двигаться с одинаковой вероятностью как вверх, так и вниз. Для меня это довольно неожиданный результат, ибо я видел, как многие люди в течение многих лет основывают свои торговые стратегии на подобных «отбоях» цены от полос Боллинджера. Тем не менее, данные показывают, что вероятность получения прибыли в них не превышает вероятности результата простого подбрасывания монеты! ==> НАБОР ИНДИКАТОРОВ Bollinger Bands для MetaTrader 4 Кристофер Ли,Переведено специально для Tlap.com