Трейдинг или инвестирование? Большой бектест на 650 активах

 

Мне всегда хотелось постетировать торговую стратегию на большом количестве инструментов. Навести научность на всё это бектестирование. Наконец руки дошли написать свой универсальный недотестер.

Раньше я уже писал про стратегию покупки на закрытии и продажи на открытии Её и выбрал для пробного полёта.

Суть страетегии очень проста. Каждый день покупаем на закрытии, продаём на следующем открытии. Нужно было взять что-то простое для теста.

Всего собрал 650 тикеров:

  • индекс IMOEX в полном составе
  • наиболее ликвидные фьючерсы на мосбирже (нам же нужно, чтобы миллионы торговались без проскальзываний): рубль/доллар, индекс РТС, нефть, золото, сбербанк
  • индекс SP500 в полном составе
  • 100 наиболее ликвидных ETF
  • валютные пары: rub, eur и gbp с долларом
  • крипта, куда ж без неё: btc и eth с usdt

Для всего, кроме фьючерсов взял комиссию 0.05%, для фьючерсов 0.03%. Какой же бектестер без комиссий.

Стартовой датой выбрал 1 января 2010 года. Если тестировать, то точно больше 10 лет. Не всё тогда ещё было, но тем не менее.

Написал на питоне пару сотен строчек кода. Запустил… и компьютер переваривал всё это часов 8. Натужно гудел кулером, записывал логи, аккуратно складывал файлики с результатами. Да уж, питон не самый быстрый язык программирования.

Статистика

Что будем смотреть? Доходность конечно. Не забудем про Шарпа. Сравним с бай энд холд и посмотрим на просадки. Ну и посмотрим что там по группам.

На всякий случай опишу параметры:

  • Return: доходность
  • MaxDrawdown: максимальная просадка
  • BuyholdRet: доходность стратегии купи и держи
  • BuyholdDrawdown: максимальная просадка стратегии купи и держи
  • Deals: количество сделок
  • AvgTrade: средняя сделка
  • ProfitDeals: количество прибыльных сделок, для процентов нужно умножить на 100
  • MaxProfit: максимальный доход в одной сделке
  • MaxLoss: максимальный убыток в одной сделке
  • ProfitFactor: профит фактор
  • SharpeRatio: коэффициент шарпа

Лучшая десятка по шарпу


Вроде шарп хороший. Но опять же, если сравнить с купи и держи, то уже не очень. Выделяется ENPH.

Средние показатели лучшей десятки:

Return                7.161725
MaxDrawdown          -0.601200
BuyholdRet           20.618652
BuyholdDrawdown      -0.690271
Deals              2242.200000
AvgTrade              0.000996
ProfitDeals           0.534243
MaxProfit             0.195247
MaxLoss              -0.170146
ProfitFactor          1.047576
SharpeRatio           2.243904

Сравнения не в пользу трейдинга.

А если взять худший вариант:

Return               -0.932173
MaxDrawdown          -0.932235
BuyholdRet            0.064630
BuyholdDrawdown      -0.086667
Deals              2780.600000
AvgTrade             -0.000980
ProfitDeals           0.123248
MaxProfit             0.018106
MaxLoss              -0.023815
ProfitFactor          0.633989
SharpeRatio         -51.646703

В трейдинге останется 7% от депозита, при купи и держи хотябы останитесь при своих.

Лучшая десятка по доходности


Те же, что и с Шарпом. Подтянулась парочка российских банков. Что примечательно, тиньков с конца 2019 показал такую же доходность, как остальные за 10 лет.

Средние данные по худшей десятке:

Return               -0.985327
MaxDrawdown          -0.986891
BuyholdRet            1.624872
BuyholdDrawdown      -0.583964
Deals              2839.200000
AvgTrade             -0.001564
ProfitDeals           0.417349
MaxProfit             0.108455
MaxLoss              -0.199081
ProfitFactor          0.821783
SharpeRatio          -7.019729

С тредингом почти в ноль, купи и держи +162%

Лучшая десятка по средней сделке


Тут снова лидирует тиньков. Есть ещё ENPH и AAL у которых доходность от трейдинга выше доходности купи и держи.

Минимальный гэп


Тут из примечательного, что ни одной положительной доходности.

Минимальная просадка


Интересно, что почти половина компаний это российский рынок

Максимальный профит фактор


И что?

  • Купи и держи в среднем выигрывает
  • Всего в тесте почти 1,8 млн сделок (реально их два раза больше, так как нужно купить и продать), брокер и биржа тоже в выигрыше

Давайте ещё по средним значениям пройдёмся по всем сделкам:

Return               -0.656126
MaxDrawdown          -0.873294
BuyholdRet            6.197939
BuyholdDrawdown      -0.499225
Deals              2711.976852
AvgTrade             -0.000627
ProfitDeals           0.440754
MaxProfit             0.113519
MaxLoss              -0.135855
ProfitFactor          0.965702
SharpeRatio          -4.680868

Для пробного запуска, думаю отлично. Не переключайтесь. Дальше рассмотрим что-нибудь посложнее.

Если сами хотите поиграться, полный файл со стаистикой в телеграме https://bit.ly/zenoftrading