Бактестинг - это самое различное место между количественной торговлей и традиционной торговлей. Согласно реальным данным рынка, которые произошли в истории, симуляционный сигнал стратегии быстро запускает и совпадает с транзакцией, а отчет о результатах и другие данные получаются в течение определенного периода времени.
В предыдущих главах мы изучили основы основного языка программирования и научили вас использовать эти основы программирования для написания некоторых простых торговых стратегий. Можно сказать, что путь прошел более чем наполовину. Однако, как только стратегия написана, она все еще находится на большом расстоянии от реальной рыночной среды. Она также требует постоянного бэкстестинга
С точки зрения количественной логики торговли, торговая стратегия на самом деле основана на ряде познаний и предположений о рынке.
Кроме того, с точки зрения количественных торговых операций, обратное тестирование может помочь обнаружить ошибки в логике стратегии, такие как будущие функции, скольжение цены, многоуровневое приспособление и т. Д. Предоставить достоверные доказательства того, что стратегия может быть использована для реальной торговли на рынке.
Проверьте точность торгового сигнала.
Убедитесь, что логика торговли и ваши идеи осуществимы.
Открыть недостатки в торговой системе и улучшить первоначальную стратегию.
Таким образом, смысл обратного тестирования заключается в выполнении как можно более верного процесса торговли, проверке достоверности исторических данных, избежании дорогостоящих ошибок для неправильной стратегии, помогает нам фильтровать, улучшать и оптимизировать торговые стратегии.
Стратегия торговли основана на статических исторических данных во время бэкстестинга, но данные реального трейдинга являются динамическими. Например: Если самая высокая цена больше, чем цена закрытия вчера, открыть длинную позицию. Это открытое положение условий на реальном рынке, если линия K не была завершена, то самая высокая цена является динамической, торговые сигналы, вероятно, будет мерцать вперед и назад. Во время бэкстестинга, двигатель бэкстестинга основан на статических исторических данных, которые могут быть смоделированы и синтезированы.
Функция будущего использует будущую цену, что означает, что текущие условия могут быть изменены в будущем, и та же функция будущего также может вызвать нестабильность торгового сигнала, например, индикатор
Как показано ниже: функция индикатора зигзага указывает на поворотную точку пиков и дно. Она может корректировать свое собственное значение в соответствии с последней ценой в режиме реального времени, но если текущая цена изменится, результат функции зигзага также изменится. Если вы используете этот индикатор с такой будущей функцией, текущий сигнал ордера может быть установлен и размещен, но этот сигнал может не быть количественно определен позже.
Так называемое поведение
Существует еще один случай, когда, если разрыв в ценах превышает фиксированную цену, установленную стратегией, в среде обратного тестирования торговый сигнал появится и может быть выполнен; но на реальном рынке он, очевидно, не может быть выполнен.
Первый тип: на реальном рынке некоторые биржи имеют ежедневный лимит максимального повышения и снижения цены.
Во-вторых, механизм сопоставления ордеров на бирже, который имеет приоритет цены и приоритет времени. Некоторые разновидности глубины ордера на рынке часто имеют огромное количество заказов, ожидающих исполнения. На реальном рынке вы должны ждать заказов, которые до вашего размещения для исполнения, иногда ваш заказ никогда не будет выполнен. Но в среде обратного тестирования ожидающий заказ будет выполнен по любой цене без ожидания.
Третье: для стратегий арбитража прибыль от обратного тестирования обычно очень высока, потому что каждый раз, когда операция обратного тестирования предполагается, что она захватила все эти цены спреда. При реальных обстоятельствах, большинство цен невозможно выполнить, или иногда выполняется только одно направление или одна торговая цель торгового действия, в целом, почти наверняка первым будет выполнено благоприятное направление или торговая цель, затем вы должны немедленно попытаться выполнить противоположное направление или разнообразие ордеров на арбитражные стратегии. даже при такой короткой задержке, спреды этой торговой возможности могут стоить вам более 1 или 2 ценовых пунктов, в то время как вся стратегия арбитражного спреда получила только очень мало ценных пунктов прибыли. Такой вид ситуации очень сложен для обратного тестирования в среде моделирования. Реальные прибыли далеки от результатов обратного тестирования.
Четвертое: событие
Каждый раз, когда я смотрю на следующую картинку, мое сердце и разум смеются. Эта картинка показывает нам истинное значение, смешную модель, достаточно сложную, идеально адаптированную к любым данным.
Для количественной торговли, обратное тестирование основывается на исторических данных, но выборка исторических данных ограничена. Если есть слишком много параметров торговой стратегии, или логика торговли слишком сложна, торговая стратегия будет слишком адаптироваться к историческим данным.
Процесс моделирования количественной стратегии по существу представляет собой процесс поиска локальных неслучайных данных из большого количества кажущихся случайными данных.
Так что не обманывайте себя. Если вы найдете плохие данные о производительности за пределами выборки, не жалейте или не желайте признавать, что модель не работает, и продолжайте оптимизировать ее до тех пор, пока данные выборки снаружи также работают так же хорошо, как внутри. это в конечном итоге повредит вашим реальным деньгам.
У Уолл-стрит есть популярная шутка: предположим, что на рынке есть 1000 обезьян, которые участвовали в инвестиции. В первый год 500 обезьян были потеряны на рынке. На полпути во второй год осталось 250 обезьян. К концу третьего года осталось 125 обезьян.
…
На девятом году осталась последняя обезьяна. И ты смотришь на нее, и чем больше ты смотришь на нее, тем больше ты чувствуешь, что ее лицо знакомо. Наконец, ты видишь обложку финансового журнала и кричишь: "Эй, это Уоррен Баффет?
Хотя это просто шутка, вы все равно можете отобразить это на реальную ситуацию. Например, если есть 1000 менеджеров фондов, через 10 лет, около 10 менеджеров фондов будут превосходить рынок в течение 10 лет подряд. Это может быть вызвано случайной удачей и решениями, эти менеджеры фондов
Как и в докладе о обратном тесте ниже, большинство инвесторов выберут фигуру слева, которая имеет очень солидную производительность без значительного ретраксера.
но, пожалуйста, подождите, как показано справа, что является реальной ситуацией. кривая слева является только лучшим из этих многих обратных тестов. то есть, есть много гораздо хуже, чем левая ситуация.
В реальной торговой среде цены всегда колеблются. Когда вы оптимистично относитесь к торговой возможности, цена может измениться в момент размещения заказа. Таким образом, проблема скольжения, будь то в субъективной торговле или в количественной торговле, неизбежна.
Но обратное тестирование основывается на статических данных, трудно имитировать реальную торговую среду. Например: цена заказа 1050 купить, но фактическая цена торговли может быть 1051. Существует много ситуаций для этого явления, таких как: вакуум ликвидности в экстремальном движении цен, задержка сети, задержка аппаратных и программных систем, задержка ответа сервера и т.д.
Обратное испытание без скольжения
Как показано выше, является отчет backtest без скольжения, кривая прибыли выглядит хорошо, но есть различия между backtest и фактической торговли на реальном рынке. Поэтому, чтобы уменьшить эту ошибку во время backtest, мы добавили две точки скольжения, чтобы увеличить или уменьшить покупку и продажу цены.
Обратное испытание со скольжением
Как показано выше, при добавлении одной и той же стратегии с 2 пунктами скольжения результаты бэкстестинга с скольжением и без него очень разные, что означает, что эта стратегия должна быть улучшена или отказана.
Некоторые люди могут спросить, поскольку может быть так много проблем в количественной торговле, как я могу доказать, что моя стратегия в порядке? ответ прост, мы должны сначала симуляции торговли по этой стратегии некоторое время до использования реальных денег, если цена торговли и торговли симуляции ситуация почти одинакова с логикой стратегии, то это по крайней мере доказывает, что логика стратегии не имеет проблем.
В любом случае, для опытного разработчика торговой системы, бэкстестинг является обязательным. Потому что он может сказать вам, может ли идея стратегии быть подтверждена в исторических данных. Но часто бэкстестинг не означает, что будущее будет прибыльным. Поскольку в бэкстестинг слишком много ям, после того, как вы заплатите
Что такое чрезмерное приспособление и как его избежать?
Каковы примеры "предвзятости выживших" в реальной жизни?