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-х годах...

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

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