Тестирование вселенной акций
Я хотел бы разработать стратегию следования за трендом путем бэк-тестирования вселенной акций; Давайте просто скажем все акции NYSE или S&P500. Я задаю этот вопрос сегодня, потому что я не уверен, как обращаться с хранением / организацией огромных объемов исторических данных о ценах.
После нескольких часов исследований я здесь, спрашиваю вашего опыта и осведомленности. Буду очень признателен за любую информацию / осведомленность, которой вы можете поделиться по этой теме
Личный опыт:
-Я знаю, как кодировать. Был электротехническим, а не CS.
-Я знаю, как использовать данные по тикам в Excel. Знаком с использованием фильтрации и пользовательских исследований на ThinkOrSwim.
Прикладной контекст: с 1995 года по сегодняшний день давайте оценивать наиболее эффективные акции на основе относительной силы / импульса. Мы постараемся сравнить многие технические характеристики для разработки стратегии. Ключом к этому является наличие данных по целому ряду акций, на которых мы можем проводить тесты на истории с использованием python, C#, R или любого другого языка кодирования. Затем мы можем определить возможные стратегии, оценивая доходность, коэффициент омега, среднюю избыточную доходность и альфа (измеренный еженедельно) входов и выходов Дженсена, которые обусловлены техническими требованиями.
Вот где у меня возникают проблемы с определением следующего шага:
- Загрузка данных для всех компаний S&P500 в единую рабочую книгу Excel не сработает. Это слишком много данных для Excel, чтобы справиться, я чувствую, как. Каждый тикер будет иметь несколько МБ данных о ценах.
-Какой лучший способ получить, а затем сохранить данные о ценах для каждого тикера во вселенной? Мы смотрим на что-то вроде доступа SQL или Microsoft здесь? Я не знаю; У меня недостаточно информации о том, как обрабатывать множество таких данных. Что ты думаешь?
Я использовал ToS для фильтрации акций, основанных на истинных / ложных параметрах за период времени в прошлом; однако возможности ToS ограничены. Я хотел бы более гибкий движок тестирования на истории, такой как код, написанный на python или C#. Не уверен, что Rscript полезен. - Может быть, есть библиотеки, о которых я не знаю, которые сделали бы все это возможным? Если есть, дайте мне знать.
Я знаю, что Quantopia и другие веб-платформы Quant находятся рядом. Это мои лучшие ставки на тестирование на истории? Есть мысли о них?
Я делаю это слишком сложным? Тестирование стратегии на одном или нескольких акциях не является проблемой в Excel, ToS или даже в Tradingview. Но с большим количеством данных, я не уверен, что лучший вариант для хранения этих данных, а затем использовать сценарий Python или что-то для выполнения обратного теста.
Случайная заключительная мысль:-В конечном счете, хотелось бы изучить некоторую помощь ИИ с оптимизацией стратегий, которые были созданы на основе параметров. Я знаю, что это вещь, но не уверен, где узнать больше об этом. Пожалуйста, дайте мне знать.
Спасибо вам, ребята. Надеюсь, это было не так уж и много. Если бы вы могли поделиться какими-либо знаниями, чтобы повысить мою осведомленность по этой теме, я был бы очень признателен.
Twitter: @b_gumm
1 ответ
Объем данных слишком велик для EXCEL или CALC. Даже если вы хотите просмотреть только 500 акций из S&P 500, вы получите 2,2 миллиона строк (примерно 220 дней / год * 20 лет * 500 акций). Для этого объема данных вы должны использовать базу данных SQL, такую как MySQL. Он достаточно эффективен для обработки такого количества данных. Но вы должны найти способ обновления. Если вы ежедневно получаете полный временной ряд и сохраняете его в своей базе данных, этот процесс может занять ок. 1 час. Вы также можете использовать дельта-загрузку, но знать о корпоративных действиях (например, разделение).
Я не знаю Quantopia, но я знаю похожий сервис тестирования на истории, где я создал скрипт тестирования на python в прошлом году. Результат сильно отличался от того, что я ожидал. Результатом исследования стало то, что служба тестирования на истории вычисляла неверные результаты из-за неверных данных. Так что будьте осторожны с результатами.