Как создавать торговые системы с уверенностью: только значимые параметры, рабастность торговой системы: устойчивость и чувствительность, часть 4
Только значимые параметры
Но какие же вещи тогда дают преимущество? На самом деле, если вы добавили несколько правил и фильтров к своей системе, вам стоит сделать шаг назад, посмотреть на все это и подумать, что в реальности создает преимущество для вашей системы, а что можно убрать, чтобы сохранить простоту и чтобы каждый компонент был значимым. Важно, чтобы каждый параметр был значим, в противном случае он создаст вам проблемы в будущем. Если некое правило в вашей системе ни для чего не нужно, это будет иметь непредвиденные последствия, которые вы пока не осознаете.
Я хочу избавиться от ненужных вещей, потому что хочу торговать только с теми параметрами, которые показали свою значимость на бэктестинге. Но как это сделать? Предположим, у меня есть готовая система. Как обычно я поступаю: я беру правила по одному и убираю их из системы, и сравниваю работу до и после по целому ряду показателей. Я смотрю на количество сделок с этим правилом и без. Я смотрю на прибыльность с этим правилом и без. А также на надежность, на процент выигрышей и на кривую капитала.
А после этого я переворачиваю правило. Например, это неравенство, где одно должно быть больше другого. Я проверяю, что будет в обратном случае — если одно станет меньше другого. Мне нужно убедиться, что я действительно провожу различие между хорошими сделками и плохими. Я хочу, чтобы было строгое и явное различие, тогда да, это правило имеет значение.
И так я проверяю по одному каждое правило. И убираю те из них, которые оказываются незначимыми. Затем я повторяю весь процесс с оставшимися правилами. Так постепенно я добираюсь до ключевых правил, которые действительно влияют на работу системы. Это устойчивые и значимые правила, в которых я полностью уверен. И здесь мы опять возвращаемся к первоначальной теме уверенности.»
Рабастность торговой системы: устойчивость и чувствительность
Затем речь заходит о понятии робастности системы. Что это означает, если система робастна. Адриан считает, что робастность системы тесно связана с устойчивостью и чувствительностью: «У нас есть система и мы сузили ее до небольшого количества правил, которые действительно имеют значение, и мы оптимизировали ее, и выбрали нужные параметры. Так что же такое робастность? Это способность системы работать и не ломаться под воздействием целого ряда условий. Есть пара способов, как можно это проверить.
Во-первых, я тестирую свои системы на множестве рынков. Например, я создал систему для торговли на австралийском фондовом рынке. У меня есть данные out-of-sample с австралийского фондового рынка, на которых я буду тестировать свою систему. Это все хорошо, но это по-прежнему очень похоже на другие данные, на которых я строил систему для австралийского фондового рынка. Это, конечно, дает мне дополнительную уверенность, но не абсолютную. Следующий шаг, который я сделаю — пойду на другие похожие рынки. Я провел достаточную работу, проанализировал достаточно графиков, чтобы найти несколько других рынков, которые похожи на австралийский. Поэтому я протестирую свою систему на этих рынках, и если она выживет и останется торгуемой, поставлю еще одну галочку. Это даст мне дополнительную уверенность.
Тестирование на разных рынках
То есть первый шаг - данные out-of-sample на существующем рынке. Второй шаг — взять другой рынок, торговля на котором схожа с вашим рынком. Третий шаг — взять абсолютно не связанный рынок. И если результат приемлем, я понимаю, что система достаточно робастна. Следующий шаг — проверить робастность параметров. Мы уже добились устойчивости. Но обычно, когда вы тестируете параметры на устойчивость, вы берете их по одному.
Конечно, вы можете проводить оптимизацию «в лоб», сразу тестируя пять параметров, но это очень тяжело визуализировать. Поэтому я стараюсь идти гораздо более простым путем, оптимизируя один-два параметра за раз, так, чтобы я мог визуализировать пространство параметров. Но для тестирования робастности я предпочитаю изменять значение каждого отдельного параметра одновременно.
Менять значения параметров
Я хочу убедиться, что не имеет значения, как я перетряхиваю систему, она все равно остается прибыльной. Поэтому если я беру параметры по одному и меняю их значение, например, плюс-минус 20% или плюс-минус 30%, и затем выполняю оптимизацию, которая проверяет каждую отдельную комбинацию плюсовых и минусовых значений для каждого параметра, я могу получить несколько сотен комбинаций наборов параметров для этой системы.
Я хочу, чтобы практически каждая отдельная комбинация была прибыльной. И желательно торгуемой. Если я сильно перетряхнул значения параметров, и они торгуемые, тогда я вполне доволен робастностью системы.
Значение 20-30% взялось неслучайно. Я использовал его для своих лучших систем, по которым торговал долгое время, зная, насколько они устойчивы. За эти годы я протестировал очень много систем, думаю счет идет на сотни, и большинство из них я выкинул, потому что они недостаточно робастны. И что я сделал за годы создания и тестирования систем — это постепенно заменял их на более и более робастные модели. Поэтому теперь я знаю, что система, по которой я торгую, может справиться с таким уровнем изменения значений параметров, и выжить.
Смоделировать изменение поведения рынка
В реальной торговле важно понимать, что будет с выживаемостью системы, если на рынках произойдет сдвиг и поведение рынков поменяется. Вы можете смоделировать эту ситуацию, проводя тестирование на разных рынках в разных рыночных условиях, но также вы можете смоделировать эту ситуацию, изменяя значение параметров и проверяя, как поведет себя система. И я знаю, что моя нынешняя система справится с этим.»
Предыдушая часть статьи - https://www.i-tt.ru/articles/torgovye-sistemys-3
Материал переведен и подготовлен из открытых источников на основе подкаста "Better System Trader".