Блог им. Russor

Как измерить предсказательную силу торгового алгоритма?

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

Методика тестирования выглядит так:

Как измерить предсказательную силу торгового алгоритма?

Описание словами:

1. Скачиваете исторические данные по инструменту
2. Выбираете период оптимизации параметров алгоритма (например: 3 месяца)
3. Отъезжаете от текущей даты назад на несколько месяцев (например на 1 Июля 2018)
4. Находите (подбираете) оптимальные параметры алгоритма при тестировании за 3 месяца.
5. Тестируете стратегию с оптимальными параметрами на Июле 2018
6. Повторяете цикл, начиная с пункта 4, со сдвигом на 1 месяц (или 1 неделю или 2 недели или 2 месяца — по вкусу).

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

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

Удачи в торгах!))
★18
46 комментариев
Когда же вы поймёте что на рынке ничего предсказывать не нужно, нужно считать риски и прибыль к профиту в конкретной точке входа.
avatar
Евгений, чёчёчё?.. считать прибыль к… профиту??.. считать риски?.. обнажите методику, пожалуйста))
avatar
Сергей Симонов, это ты, автор, нихрена не шаришь, а Евгейний крут, у него цена на кухне чуть стоп проскочила, он целый пост с кпртинками состряпал))
avatar
Treydun, тоесть я не должен показывать мошеннические действия когда в течение 6 минут стоп не закрывается? Это все равно что вы тормозите на красный на машине а она едет вперёд ещё 6 минут. Может мне начать реф ссылки размещать и пиарить кухни, как это делают большинство тут присутствующих? Если прочитав мой пост хоть кто-то откажется от торговли в этой кухне, я уже считаю что принёс пользу людям. В отличие от вас.
avatar
Сергей Симонов, могу только сказать одно, есть консолидация в которой заходят обе стороны Bay/Sell, есть границы консолидации(уровни) в которых можно просчитать риски, и выставить ордера. По выходу практически всегда идёт импульс в сторону выхода, при отбое идёт движение к противоположной границе. Задача робота выставить взаимоисключающие ордера, с минимально возможным стопом, и рассчитанным по ATR профитом. Вопрос в том, способен ваш робот делать ТА на хорошем уровн. 
avatar
>>тестирование на 10 циклах (с последовательным сдвигом периодов или выборочно)

** именно так и делаю в своей астро программе, заточенной на mt4



под любые графики (SP500  в данном примере)
avatar
Astrolog, да-да… расскажите мне про астрологию))

avatar
Сергей Симонов, расскажу, конечно…
идите на мой сайт: astro777.com
там и видео классные, и отчеты. 
Все для вас.
avatar
Astrolog, на сайт не ходил!
так ведь НЕ КОМИЛЬФО иметь цифры в доменном имени)
на народе чтоле мутил свою поделку…
avatar
Александр, глупости не пиши. Сам зайди, и посмотри.
Тебе не комильфо, а мне то, что надо.
avatar
Термин «тест на предсказательную силу» раньше не встречал.
Обычно это называют Walk Forward Optimization.
Есть мнение, что это всего лишь добавление еще одного измерения для подгонки.
avatar
Jame Bonds, у кого есть такое мнение? И следствием каких умозаключений оно является? Поясните, плз.

Имхо, если тестирование производится честно, то данная методика полностью исключает фактор подбора параметров. Где честно — означает не подгонять параметры в тестовом периоде с целью получения наибольшей прибыльности в «будущем» периоде.
avatar
Сергей Симонов, очень просто — если WFO делается один раз и показывает норм результаты — то это возможно не подгонка, если же делается много раз и выбирается лучший алго оптимизации, а куча других отбрасывается — то подгонка ) а уж требовать у продавца результаты теста — чего они только не нарисуют, чтобы продать )
Пафос Респектыч, так я про то и говорю… тест нужно проводить честно — без подгонки параметров. Иначе смысл теряется.

WFO я не упоминаю потому, что эта методика ассоциируется с подгонкой. Не даром в названии есть слово Optimization. Если слово Optimization заменить на Test (WFT), то это и будет тест предсказательной силы.
avatar
Сергей Симонов, если не перебирать параметры теста, а перебирать стратегии, то тоже получится оптимизация. Если тестировать много стратегий, то некоторые будут показывать хороший результат на «тесте на предсказательную силу». Но является ли это значимым показателем или это было просто совпадение? Вот в чем вопрос.
avatar
Jame Bonds, если в тесте 10 и более циклов (10  или более смещений на 1 или более месяцев), охватывающих в целом достаточно большую дистанцию (например,  один или два года), то вероятность случайного совпадения будет ничтожно мала, т.к. на большой дистанции поведение инструмента и рынка наверняка изменились (и не раз).
avatar
Сергей Симонов, 10 месяцев — это ни о чем (если речь не о десятках сделок в день как минимум). Я обычно считаю бэктест от 10 лет и более. 
Существует еще такой метод. Для каждого года считаете результат по данным, оптимизированным вне этого года. И считаете, что результат — прогноз свободный от подгонки. Не на 100%, конечно, но тоже обнадеживает.
avatar
SergeyJu, год — слишком большая дистанция… поведение инструментов сильно меняется… например, сбер в первой половины 2018 года совсем не похож на сбер второй половины 2018 и совсем на похож на сбер 2017 года

с сишкой такая же беда… а причина — в нефти… ее характер сильно изменился в середине 2018 года
avatar
Сергей Симонов, в масштабах лет все это повторяется и не по разу. Устойчивые системы должны переживать плохие периоды с ограниченными потерями. А перестраивать системы каждые несколько месяцев — путь к неконтролируемым потерям.
avatar
SergeyJu, не согласен. Мы — часть большого и сложного мира, который постоянно меняется. В первую очередь, меняются люди, играющие на бирже. они меняются физически (ротация тушек) и ментально (опыт, обучение, прозрения, наваждения, новые подходы и т.д.). Это — не циклический процесс. Следовательно, изменения динамики инструментов не носят циклический характер. Это эволюционный процесс. К нему нужно постоянно приспосабливаться.
avatar
Сергей Симонов, предположим, что это эволюционный процесс. Тогда вы должны иметь некий параметр, индикатор, способ оценки, который на каждом новом такте отражает стадию эволюции. Как — не понимаю. 
avatar
SergeyJu, например в первой половине 2018 года на сбере хорошо работает один алгоритм… но летом начинает вафлить… тюнинг параметров не помогает… приходится менять алгоритм (не кардинально). Естественно, этакое изменение торговой стратегии чревато риском убытка, т.к. алгоритм новый и с коротким периодом тестирования. Приходится снижать количество контрактов в работе. Но через пару недель ситуация выправляется (за счет внимательного наблюдения за происходящим и корректирующих воздействий).

Через какое-то количество месяцев снова требуются изменения в алгоритме. И так — до бесконечности. Если игнорировать изменения, то слив — вопрос времени.
avatar
Сергей Симонов, я видел сливы как следствие слишком частой подгонки. И применения алго с малым сроком бэктестинга. Можно войти в антирезонанс со сменой фаз на рынке.
avatar
SergeyJu, можно… именно поэтому, переходить на алготрейдинг имеет смысл только после нескольких лет ручной торговли в разных режимах и с разными стратегиям. Ну и мозги, естественно нужны. Иначе с роботрейдером может случиться беда))
avatar
Jame Bonds, тут ещё что считать хорошим результатом )
Пафос Респектыч, ну как что… общий размер профита за тестируемый период — в первую очередь… во вторую — отсутствие отрицательных результатов в каком-либо цикле.

мне, кстати, только на днях удалось построить алгоритм, который не дает отрицательных результатов в циклах в описанном тесте… пришлось ооочень долго и оочень плотно этой темой заниматься… действующие роботы скоро отправятся на свалку историии, т.к. они не проходили тест на предсказательную силу… но в то время я ничего не мог придумать и потому просто смирился с этим гнусным фактом)
avatar
Сергей Симонов, вооон оно чё, михалыч! ))) построили значит, удалось таки! ))
А если входить рандомно для бэктеста, получится протестировать предсказательную силу?
avatar
Сергей Сергаев, поясните смысл выражения «входить рандомно».
avatar
Сергей Симонов, Это называется Метод Монте-Карло. Вход в позицию на участке графика производится случайно в разных точках — рандомно.
avatar
Сергей Сергаев, чудесно… но какое отношение этот метод имеет к топику?
avatar
Сергей Симонов, Я примерно на 5-й год понял, что по графику ничего предсказать не получится. Было это примерно в 2007 году… Потом познакомился с Random Walk, Монте-Карло, Stylized Facts of financial data и т.д. Метод ценообразования на биржах является двусторонним непрерывным аукционом. Предсказать движение цены можно лишь на очень коротких интервалах (порядка 10-20 минут, реже чуть подольше), в последующем автокорреляция разрушается и стремится к нулю. Это называется Мартингал (не путать с Мартингейлом).
avatar
Сергей Сергаев, ваша позиция понятна. Но я исхожу из своего понимания рынка, которое заключается в его инерционности, обусловленной составом игроков, их экономикой и мотивацией. Эта субстанция не меняется быстро. А значит, ее поведение (и, как следствие, поведение цены) вполне предсказуемо на небольшом расстоянии в несколько дней.
avatar
Сергей, простое замечание: предсказательную силу по вашей логике должны иметь входы, а стратегия — это входы и выходы. Так просто протестируйте раздельно входы — для чего входите по условию и выходите через фиксированное время. Затем собираете все результаты выраженные в %, нормируете их на глобальный тренд (если он имел место на данном участке графика), и анализируете плотность распределения полученных значений. Скорее всего окажется, что вся или почти вся сила вашей стратегии — это ее выходы . А как тестировать выходы без входов, думаю вы тоже знаете.
avatar
Сергей Сергаев, написанное в посте не должно вызывать желания поговорить о входах и выходах. Но у вас, по какой-то причине, такое желание возникло. Хотелось бы понять, что случилось? Откуда прорезалось такое желание?
avatar
Сергей Симонов, мой доолгий опыт говорит, что предсказательную силу весь алгоритм не имеет, соответственно я попытался Вам это передать. Алгоритм это входы, которые дают потенциальные возможности и выходы, которые реализуют предоставленные входами возможности в какой-то степени (зависит от качества моделей выходов). Максимум что можно протестировать на предсказательную силу — это входы. Удачных трейдов!
avatar
Сергей Сергаев, нам с вами слишком долго придется договариваться о терминологии, чтобы согласовать позиции. Скажу только, что описанный тест предназначен для активно торгующих трейдеров, у которых в тестируемый период укладываются десятки и сотни сделок. Не один-два входа, а много входов и выходов.
avatar

А почему вообще торговый алгоритм должен иметь предсказательный потенциал?

Разве в этом его задача?

avatar
Foudroyant, ответ на ваш вопрос зависит от вашего ответа на вопрос:

А зачем вообще нужен торговый алгоритм?
avatar
Сергей Симонов, для того, чтобы зарабатывать.
avatar
Foudroyant, правильно.

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

Использование алгоритма, показавшего на вышеприведенном тесте нулевую предсказательную силу делает трейдинг игрой «на удачу». Очевидно, такой алгоритм должен быть отброшен, если трейдер — не тупой лудоман.
avatar

Сергей Симонов, 

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

 

Насчёт моих предыдущих комментариев: я всегда думал, что предсказывает метод (ТА или ФА), а не алгоритм. А алгоритм просто берёт сигналы от метода и открывается. Вот я к чему веду разговор.

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

Сергей Симонов, может и так. 

Но как-то странно было бы сказать: «Мой алгоритм предсказывает будущее», когда он делает это согласно методам ТА. 

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

А все остальные составляющие моего алгоритма (то есть того, что делал лично я) — вообще предсказательной силой не обладают.

То же самое с ФА-системами.

avatar
Foudroyant, торговый алгоритм — это не рисование линий на графике… и он вполне может работать без линий на графике… понимаете?
avatar
Сергей Симонов, да, может. Если он не на ТА основан, а на ФА, математике или теории игр.
avatar

теги блога Сергей Симонов

....все тэги



UPDONW
Новый дизайн