Важным этапом формирования инвестиционного портфеля является его бэктестинг. Что такое бэктестинг? Это тестирование портфеля на исторических данных. Такая проверка позволяет узнать, как вел себя портфель в прошлом, какую доходность он показал и какой при этом имел уровень риска.
"Предвидение будущего должно опираться не на предсказания и приметы, а на мудрость."
Цицерон
На блоге моего партнера и разработчика торговых систем появились результаты тестирования трех популярных стратегий. Если вы их торгуете, то вам будет интересно узнать, как они показывают себя на исторических данных и как можно улучшить их результат. Вот эти стратегии.
Quantopian — богатый инструментарий для бэктестинга различных стратегий с помощью Python. На сайте имеются бесплатные данные: минутные тики⏳ с 2002 года, фундаментал, календарь отчетности, настроение по новостям и т.д.
Я планирую вести серию подобных постов по написанию и проверке различных стратегий. Параллельно я буду описывать саму платформу и ее возможности, что позволит осветить весь путь с нуля.
Братья, Сестры!
Правильно ли я понимаю, что в приложении к подкидыванию монетки эргодическая гипотеза формулируется примерно так:
«Статистические свойства результата 100 подбрасываний одной и той же монеты совпадают со статистическими свойствами опыта, в которым мы подбрасываем 100 монет по одному разу». Как я понимаю, вера в необходимость бектестинга держится именно на этом? Просьба поправить мои ошибки и объяснить.
P.S.Прав Решпект. Всегда прав. Не надо читать книгу Тимофея на ночь. Особенно 279 страницу)
Тест стратегии из поста http://smart-lab.ru/blog/343965.php
Формализовал стратегию так, как я ее понял.
1. Входа на следующий день, после обновления исторического хая. Тут есть неточности — историю брал с 2005 года. Не факт, что all time high был на этом промежутке.
2. Предыдущее обновление хая было больше 90 дней назад и менее чем 200 дней назад.
3. Примерно 500 ликвидных бумаг с NYSE/NASDAQ/AMEX. Без учета делистинга, без учета комиссий, без учета платы за плечо. Вроде бы без дивидендов (не уверен), дейли дата взята с Google Finance.
4. Стоп в примере — 3%. Тейк — 90%. Можно взять больше стоп, результаты не критично меняются.
5. Вход фиксированным BP на позицию. (взял 1000 на позу)
Код Multicharts.Net
using System; using System.Drawing; using System.Linq; using PowerLanguage.Function; using ATCenterProxy.interop; namespace PowerLanguage.Strategy { public class _INTEST_by_high_daily : SignalObject { public _INTEST_by_high_daily(object _ctx):base(_ctx){} private IOrderMarket buy_order; private IOrderMarket sell_order; double previous_high; double previous_high_low_range; double all_time_high; protected override void Create() { // create variable objects, function objects, order objects etc. buy_order = OrderCreator.MarketNextBar(new SOrderParameters(Contracts.Default, EOrderAction.Buy)); sell_order = OrderCreator.MarketNextBar(new SOrderParameters(Contracts.Default, EOrderAction.Sell)); } protected override void StartCalc() { all_time_high =0; } protected override void CalcBar() { // strategy logic if (Bars.High[0]>previous_high && previous_high_low_range<previous_high && previous_high == all_time_high) { buy_order.Send(); } if (StrategyInfo.MarketPosition>0 && Bars.Close[0]>StrategyInfo.AvgEntryPrice*1.9) sell_order.Send(); previous_high = Bars.High.Highest(200); previous_high_low_range = Bars.High.Highest(90); if (Bars.High[0]> all_time_high) all_time_high = Bars.High[0]; } } }
История: Кальмар (Calmar сокращенно от Калифорнийский коэффициент управления счетом или “California Managed Account Ratio”, который впервые появился в 1991году в журнале Фьючерсы (Futures Magazine) благодаря Терри Янгу (Terry W.Young), также иногда его называли коэффициентом просадки).
Основа расчета: Коэффициент Кальмара рассчитывается как среднегодовая доходность, рассчитанная за последние 36 месяцев, деленная на максимальную просадку за тот же период. Расчет происходит на ежемесячной основе. Коэффициент Кальмар это скорректированная на риск оценка доходности, так как он оценивает доходность на единицу риска, где под риском мы понимаем максимальную просадку. Коэффициент Кальмара — это слегка модифицированная версия коэффициента Стерлинга (среднегодовая доходность за последние 36 месяцев, деленная на максимальную просадку за тот же период). Разница между ними заключается в том, что коэффициент Кальмара считается на ежемесячной основе, а коэффициент Стерлинга по годам.