20220915,090000,61420,61497,61406,61464,241
20220915,090100,61460,61476,61420,61451,160
20220915,090200,61444,61489,61436,61479,185
Осмелюсь предположить, что эти строки ты заливаешь в массив с помощью string.match. Это готовый парсер строки с разделителем. Работает достаточно шустро. Я на нем сидел пару лет.
Когда данных не много, такой метод загрузки не напрягает. Но когда за день 20-30 раз загружаешь сотни тысяч или миллион строк, то потери времени становятся невыносимыми.
Стал искать способ ускорить этот процесс. И он таки нашелся. Выяснил следующее:
Если строки в файле истории сконвертировать в такой вид (делается 1 раз):
table.insert(MyTable,{«20220915»,«090000»,61420,61497,61406,61464,241})
table.insert(MyTable,{«20220915»,«090100»,61460,61476,61420,61451,160})
table.insert(MyTable,{«20220915»,«090200»,61444,61489,61436,61479,185})
Очень часто сталкиваюсь с мнением, что взвешивание по капитализации — не совсем грамотный подход.
Газпром стоил 15 лет назад 300₽, а сегодня стоит 170₽ за акцию! Если придерживаться принципов взвешивания по капитализации (как это устроено в Индексе Мосбиржи), то надо набирать его на огромную котлету и надеяться непонятно на что!
Участники подобных дискуссий часто соглашаются, что выбор отдельных акций на основе каких-то личных предпочтений или фундаментальных показателей (которые имеют свойство кардинально меняться всего за месяц) — может стать ловушкой.
И тут приходит на ум вариант с равновзвешенным портфелем. Собрать 20-25 компаний, раздать им равный вес, и в ус не дуть! Звучит заманчиво. Но каким будет результат? Давайте посчитаем.
Расчет делал в «Лаборатории портфелей» Snowball Income.
У меня сейчас 39 компаний в портфеле, так что я просто скопировал свой портфель и распределил доли между ними равномерно: примерно по 2,5% на каждую. Я выбрал размер портфеля 1 млн рублей, включил ежеквартальную ребалансировку и реинвестицию дивидендов с учетом уплаты 13% налога.
Основные результаты:
В продолжение прошлого поста сравниваю по логам еще один день:
На данных бэктеста: 17 сделок, прибыль 844 пунктов
OPEN 236 short 2021-11-24 07:25:00+00:00
CLOSE short 2021-11-24 07:47:00+00:00 profit= 51.0
OPEN 237 short 2021-11-24 07:54:00+00:00
CLOSE short 2021-11-24 07:55:00+00:00 profit= 86.0
OPEN 238 short 2021-11-24 08:01:00+00:00
CLOSE short 2021-11-24 08:03:00+00:00 profit= 40.0
OPEN 239 short 2021-11-24 08:04:00+00:00
CLOSE short 2021-11-24 08:45:00+00:00 profit= 32.0
OPEN 240 short 2021-11-24 10:10:00+00:00
CLOSE short 2021-11-24 10:11:00+00:00 profit= 43.0
OPEN 241 short 2021-11-24 10:11:00+00:00
CLOSE short 2021-11-24 10:27:00+00:00 profit= 32.0
OPEN 242 short 2021-11-24 10:33:00+00:00
CLOSE short 2021-11-24 10:36:00+00:00 profit= 60.0
OPEN 243 short 2021-11-24 10:52:00+00:00
CLOSE short 2021-11-24 10:56:00+00:00 profit= 58.0
OPEN 244 short 2021-11-24 11:15:00+00:00
CLOSE short 2021-11-24 11:18:00+00:00 profit= 53.0
OPEN 245 short 2021-11-24 11:31:00+00:00
CLOSE short 2021-11-24 11:35:00+00:00 profit= 48.0
OPEN 246 short 2021-11-24 12:22:00+00:00
CLOSE short 2021-11-24 12:40:00+00:00 profit= 94.0
OPEN 247 short 2021-11-24 13:23:00+00:00
CLOSE short 2021-11-24 13:30:00+00:00 profit= 61.0
OPEN 248 short 2021-11-24 13:45:00+00:00
CLOSE short 2021-11-24 13:46:00+00:00 profit= 37.0
OPEN 249 short 2021-11-24 16:51:00+00:00
CLOSE short 2021-11-24 16:54:00+00:00 profit= 40.0
OPEN 250 short 2021-11-24 19:19:00+00:00
CLOSE short 2021-11-24 19:23:00+00:00 profit= 35.0
OPEN 251 short 2021-11-24 19:23:00+00:00
CLOSE short 2021-11-24 19:39:00+00:00 profit= 39.0
OPEN 252 short 2021-11-24 19:42:00+00:00
CLOSE short 2021-11-24 20:05:00+00:00 profit= 35.0