Разработка приложения для торговли на Java: существуют ли шаблоны / рамки для определения правил торговли? - PullRequest
5 голосов
/ 09 октября 2009

Я нахожусь в процессе разработки торгового приложения, которое будет использовать API Маркета для размещения ордеров на Маркете. Это не сложное высокопроизводительное алгоритмическое торговое приложение, которое можно найти в инвестиционных банках. Это всего лишь небольшое персональное приложение, которое будет продаваться, возможно, два или три раза в день в зависимости от рыночных условий / тенденций.
Приложение будет состоять (примерно) из следующих модулей / пакетов:
Стратегии
- актуальные торговые алгоритмы
Аналитика
- Классы для анализа реальных цен и ордеров на рынке для получения сигналов покупки / продажи
Услуги
- Классы, используемые для поддержания связи с рынком, получения рыночной информации и размещения ордеров на покупку / продажу.
Пока что все необходимое для приложения, кажется, доступно в Интернете:
* Apache CXF для создания классов Java, используемых для доступа к веб-сервисам рынка.
* Apache Maths за выполнение анализа цен
* Википедия для различных шаблонов проектирования, т. Е. Фабрика, субъект / наблюдатель, штат и т. Д.

Однако я действительно застрял с алгоритмами. Я решил использовать шаблон State для разделения на логические группы различных частей логики, которые должны выполняться при соблюдении определенных рыночных условий. Проблема в том, что я начинаю понимать, что очень вероятно, что каждый класс состояний будет содержать взрыв операторов if:

if(this_condition) {
    // do something
} else if (another_condition) {
    // do something else
} else {
    // etc..., etc...
}


Я не могу помочь, но чувствую, что мне чего-то здесь не хватает и что должна существовать некая структура или шаблон проектирования, о котором я не знаю, который позволяет разработчику инкапсулировать все входы и выходы данного бизнес-контекста в конечное число бизнес-действия [ввод / вывод], на которых можно строить бизнес-правила [алгоритмы]. То есть Я надеюсь, что вместо того, чтобы жестко кодировать алгоритмы, должно быть возможно превратить приложение в какой-то процессор правил. К сожалению, я не знаю, с чего начать. Надеюсь, я достаточно ясно объяснил свою дилемму, если вы хотите, чтобы я что-то прояснил, пожалуйста, дайте мне знать. Спасибо

1 Ответ

3 голосов
/ 09 октября 2009

Я бы взглянул на некоторые правила движков,

Слюни - drools.org

или

Империус - http://incubator.apache.org/imperius/

Вероятно, вы будете реагировать на рыночные данные в реальном времени. Это то, для чего идеально подходят инструменты комплексной обработки событий (CEP). Чек

http://esper.codehaus.org.

НТН

Ste

...