Stanislav Gribanov
Stanislav Gribanov личный блог
26 марта 2024, 16:36

Перевод книги "Хакер фондового рынка". Измерение результативности.

Перевод книги "Хакер фондового рынка". Измерение результативности.
Ранее:
1. Предисловие.
2. Торговля деньгами.
3. Биржевая цена.
4. Золотоискатели и ломбарды.
5. Тики, бары, свечи.
6. Как работают торговые системы?
7. Технический анализ — смысл и бессмыслица.
8. Трехчасовой курс программирования.
9. Первый урок: Переменные.
10. Разновидность калькулятора.
11. Второй час: Функции. 
12. Функции с возвращаемым значением.
13. Третий час: ветвление.
14. Циклы.
15. Следуйте за тенденцией.
16. Торговля с помощью фильтра низких частот.
17. Покупка и продажа.
18. Тестирование стратегии.
19. Распределение прибыли.
20. Индекс подлости.

Некоторые из значений, отображаемых в окне Zorro, получаются непосредственно в результате моделирования, другие — такие как коэффициент Шарпа, кратко затронутый выше, — требуют более или менее сложных расчетов. Все эти значения на самом деле служат лишь для ответа на два вопроса: насколько прибыльной является стратегия? И насколько вероятно получить тот же результат при реальной торговле? Оба аспекта в совокупности дают эффективность — результативность стратегии. На первый вопрос ответить легко, но на второй и более важный вопрос, к сожалению, ответить сложно.

По этой причине стратегия анализируется с разных точек зрения, чтобы получить мозаичное впечатление о ее поведении. В результате получается ряд ключевых показателей, наиболее важные из которых отображаются в окне Zorro. Вы можете получить более подробный отчет, нажав на [Result]. Он появляется в окне редактора и начинается следующим образом:

BackTest Alice1a EUR/USD — performance report

Test period                 14.01.2010-29.12.2015

Lookback period         200 bars (12 days)

Monte Carlo cycles     200

Assumed slippage      10.0 sec

Spread                      0.3 pips (roll -0.10/0.04)

Commission              0.60

Contracts per lot       1000.0

Если больше ничего не задано, моделирование начинается 2 января 5 лет назад и заканчивается текущим временем или окончанием исторических данных о ценах. Фактическое тестирование начинается только после истечения времени просмотра — это время соответствует части ценовой кривой, с которой сначала должны работать используемые индикаторы и функции, пока они не смогут выдать первые результаты. Если, например, используется скользящая средняя на 100 баров, то симуляция может начать торговлю не раньше, чем с 100 бара. Необходимое время оглядки обычно рассчитывается и устанавливается самим Zorro с помощью скрипта.

При испытании предполагалось, что проскальзывание составляет десять секунд. Это не означает, что брокер исполняет приказ с задержкой в десять секунд, а означает, что актив покупается или продается по случайной цене, взятой из диапазона в десять секунд после текущей цены ценовой кривой. Эта цена может быть хуже или лучше текущей цены. Однако в большинстве случаев все обстоит еще хуже.

Следующие значения в отчете предоставляют информацию о моделируемом активе, в данном случае EUR/USD. Обычно они берутся из текущих данных брокера. В настоящее время спред составляет 0,3 пункта, ролловер — 10 центов убытка в день для длинных сделок и 4 цента прибыли для коротких сделок. Брокер взимает комиссию в размере 60 центов за открытие или закрытие сделки. Для валют ролловер и комиссия применяются к
10 000 единиц каждой, поэтому здесь для покупки 10 000 евро. 1 лот соответствует 1 000 единиц, поэтому мы моделируем микролотовый счет.

Gross win/loss         967$ / -546$ (+5253p)

Average profit         71$/year, 5.94$/month, 0.27$/day

Max drawdown        -86$ 20% (MAE -130$ 31%)

Total down time       69% (TAE 68%)

Max down time       64 weeks from Feb 2011

Largest margin       7.50$

Trade volume         223224$ (37781$/year)

Transaction costs   -4.98$ spr, -0.34$ slp, -5.40$ rol, -12$ com

Capital required     99$

Прибыль и убытки, накопленные в конце моделирования, отображаются в отчете как общий выигрыш/проигрыш; разница отображается как прибыль в окне, а также как пипсы в отчете (знак $ в конце указывает на число как сумму в валюте счета, т.е. EUR для счетов немецких брокеров; маленькая буква p, с другой стороны, означает пипсы). Ежемесячная прибыль, т.е. прибыль, разделенная на количество месяцев в тестовом периоде, также отображается в окне как MI (Monthly Income).

DD в окне — это максимальная просадка, т.е. наибольшая потеря капитала во время моделирования. Он соответствует разнице между самым высоким пиком баланса и последующей самой низкой впадиной собственного капитала и является важной величиной для определения рентабельности. Чем меньше просадка, тем меньше капитала требуется для достижения того же результата. В отчете также отображается просадка в процентах от прибыли, а также максимальная неблагоприятная экскурсия (MAE). Этот показатель обычно несколько выше максимальной просадки, поскольку в него включается временная промежуточная прибыль по открытым сделкам. Большая разница между просадкой и MAE указывает на то, что сделки часто не добирают прибыли.

Время простоя — это время, в течение которого стратегия приносит убыток, т.е. баланс счета уменьшается. Обычно он превышает 50%, особенно в системах следования за трендом. Здесь у Боба будет плохое настроение в 69% случаев, когда он посмотрит на свой счет. Самая длительная просадка по этой стратегии продолжалась 64 недели, то есть более года.

Помимо максимальной просадки, максимальная маржа также важна для расчета требований к капиталу стратегии. Обычно, как и здесь, она незначительна по сравнению с просадкой, однако для некоторых стратегий, например, для сеточных трейдеров, она может принимать большие значения. Объем торгов — это общая стоимость всех торгуемых активов. Сумма вспомогательных затрат (транзакционных издержек) делится на спред (Spr), проскальзывание (Slp), ролловер (Rol) и комиссию (Com). В редких случаях проскальзывание и ролловер могут принимать положительные значения, и тогда прибыль увеличивается, а не уменьшается.

Необходимый минимальный капитал — капитал в окне — это сумма максимальной просадки и максимальной маржи, то есть денег, необходимых для открытых сделок. Этот капитал потребуется для того, чтобы пережить период моделирования, если войти в сделку в самое неподходящее время — т.е. непосредственно перед самой большой просадкой при максимальном объеме открытых сделок в то же время. Чтобы сделать требование к капиталу независимым от периода моделирования, просадка предварительно конвертируется в фиксированный период в три года. Как мы увидим позже, более длительные периоды моделирования дают более высокие максимальные значения просадки[19].

Number of trades     207 (36/year, 1/week, 1/day)

Percent winning       25%

Max win/loss          107$ / -13$

Avg trade profit      2.04$ 25.4p (+231.9p / -43.9p)

Avg trade slippage  -0.00$ -0.0p (+0.7p / -0.2p)

Avg trade bars       131 (+381 / -48)

Max trade bars       1393 (12 weeks)

Time in market       76%

Max open trades     3

Max loss streak      15 (uncorrelated 20)

В следующем разделе отчета приводится информация о количестве сделок, проценте выигрышных сделок и наибольшей прибыли и убытках. Средняя прибыль и проскальзывание за сделку указываются в денежном выражении, в пунктах и отдельно для выигрышных (+) и проигрышных сделок (-). Средняя и максимальная продолжительность сделки (Avg / Max Trade Bars), время, в течение которого открыты сделки (Time in Market) и количество одновременно открытых сделок (Max Open Trades) дают представление о том, насколько стратегия подвержена капризам рынка. Максимальная полоса потерь — это наибольшее количество последовательно проигранных сделок, с одной стороны в симуляции, а с другой стороны в теории в предположении независимых случайных событий (некоррелированных). Поэтому вы должны подготовиться к этим сериям потерь, если вы действительно торгуете по этой стратегии. Сильные отклонения между смоделированными и теоретическими значениями указывают на то, что результаты отдельных сделок не являются полностью независимыми. За убытком с большей вероятностью последует другой убыток, а за прибылью — следующая прибыль. Этим можно воспользоваться, как мы увидим позже в главе 6.

Annual return       75%

Profit factor         1.72 (PRR 1.41)

Sharpe ratio        0.66

Kelly criterion      0.48

R2 coefficient      0.48

Ulcer index         15.0%

Prediction error   52%

В последнем разделе приводятся основные ключевые цифры. Если вы знаете прибыль и необходимый капитал, вы можете рассчитать годовую доходность. Это просто процентное значение годовой прибыли, разделенное на требуемый капитал, и отображается в окне как AR (Annual Return). Это 70% от последнего варианта стратегии Алисы. Конечно, это лишь среднее значение за все годы — и, что самое важное, оно относится к симуляции! Вы не можете рассчитывать на достижение такой доходности в реальной торговле. Некоторые другие ключевые показатели дают информацию о том, насколько высока вероятность этого.

Коэффициент прибыли (PF в окне) — это просто сумма всех прибылей, деленная на сумму всех убытков. Традиционно он используется как коэффициент для сравнения стратегий. Нейтральная стратегия, которая не выигрывает и не проигрывает в долгосрочной перспективе, имеет коэффициент прибыли, равный 1. Для наиболее прибыльных стратегий коэффициент прибыли находится в диапазоне от 1,1 до 1,8. Пессимистический коэффициент доходности (PRR) — это коэффициент прибыли, уменьшенный на «штрафную величину» для систем, которые совершают мало сделок и чьи коэффициенты поэтому более неопределенны.

Коэффициент Шарпа (SR в окне) учитывает риск, связанный с доходностью. Он рассчитывается из коэффициента между годовой прибылью и ее стандартным отклонением. Чем больше колеблется прибыль, тем выше — как предполагается — риск и тем ниже коэффициент Шарпа.

Коэффициент R2 измеряет линейность кривой собственного капитала. Она сравнивается с линией через начальную и конечную точки. Чем больше кривая похожа на прямую линию, тем выше коэффициент R2 и тем перспективнее стратегия. При коэффициенте 1 — который, однако, никогда не достигается на практике — кривая капитала была бы абсолютно прямой, и прибыль постоянно росла бы. Здесь, с другой стороны, коэффициент R2 равен 0, что указывает на плохую кривую. И действительно, стратегия приносит прибыль в основном в первые годы, после чего капитал колеблется вверх и вниз.

Индекс язвы (UI) получил свое название от язвы желудка, которая вызывает длительные и глубокие периоды просадки у трейдеров. Он показывает среднюю процентную глубину просадки. Чем выше индекс язвы, тем крепче желудок, который необходим для торговли по данной стратегии. Стабильные стратегии должны иметь индекс язвы ниже 10%.

Все эти значения рассчитываются только на основе моделирования стратегии с очень конкретной исторической кривой цен. Но что происходит, если рыночные условия одинаковы, но ценовая кривая актива идет по другому пути?

Продолжение следует...

Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.

2 Комментария
  • Eugene Bright
    26 марта 2024, 17:26
    Умно-то как!
    Я так не умею рассказать.)))
    У нас всё кондово, сермяжно…
  • wistopus
    26 марта 2024, 17:27
    Стабильные стратегии должны иметь индекс язвы ниже 10%.
    об энтом еще Коля Дарвас говорил в 50-х годах...

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн