Я строю систему управления торговым портфелем, которая отвечает за производство, оптимизацию и моделирование не высокочастотных торговых портфелей (работа с 1-минутными или 3-минутными столбцами данных, а не тиковыми данными).
Я планирую использовать веб-службы Amazon для полной загрузки приложения.
У меня есть четыре варианта выбора, которые я рассматриваю как язык.
- Java
- C ++
- C #
- Python
Здесь находится область крайностей области проекта.Это не так, как может быть, возможно, когда-либо, но это в рамках требований:
- Еженедельное моделирование 10 000 000 торговых систем.
- (Ожидается, что каждая торговая система будетимеют свои собственные методы извлечения данных, в том числе алгоритмы выбора функций, которые являются чрезвычайно дорогостоящими в вычислительном отношении. Представьте себе 500-5000 функций, использующих обертки. Они не часто запускаются какими-либо средствами, но это все еще рассматривается)
- В режиме реального временипроизводство портфеля с 100 000 торговых стратегий
- Получение за 1 или 3 минуты данных с каждого рынка акций / фьючерсов по всему миру (около 100 000)
- Оптимизация портфеля с использованием до 100 000 стратегий,(довольно интенсивный алгоритм)
Скорость - это проблема, но я считаю, что Java может справиться с нагрузкой.
Я просто хочу убедиться, что Java CAN справится с вышеуказанными требованиями с комфортом.Я не хочу делать проект на C ++, но я сделаю это, если потребуется.
Причина, по которой здесь присутствует C #, заключается в том, что я подумал, что это хорошая альтернатива Java, хотя мне и не нравитсяWindows вообще и предпочла бы Java, если все вещи одинаковы.
Python - я прочитал кое-что о PyPy и pyscho, которые утверждают, что python может быть оптимизирован с JIT-компиляцией для работы на скоростях, близких к C ..Это в значительной степени единственная причина, по которой он находится в этом списке, кроме того факта, что Python является отличным языком и, вероятно, будет самым приятным языком для программирования, что вовсе не является фактором для этого проекта, но перк.
Подводя итог:
- производство в реальном времени
- еженедельное моделирование большого числа систем
- еженедельная / ежемесячная оптимизация портфелей
- большое количество соединений для сбора данных из
Нет сделок с миллисекундами или даже секундами.Единственное соображение заключается в том, может ли Java справиться с такой нагрузкой при распределении между необходимым количеством серверов EC2.
Спасибо вам большое за вашу мудрость.