我正在设计一个交易应用程序,它将使用Market的API在Market上下订单。这不是投资银行中那种复杂的高性能算法交易应用程序。这只是一个小型的个人应用程序,根据市场情况/趋势,每天可能交易两到三次
该应用程序将(大致)包含以下模块/包:
策略
- 实际交易算法
分析
- 分析实时价格和类别的课程市场上的订单产生买/卖信号
服务
- 用于维持与市场的连接,检索市场信息和下达买/卖订单的类。
到目前为止,应用程序所需的一切似乎都可以在互联网上找到:
* Apache CXF用于生成用于访问市场Web服务的Java类
* Apache Maths用于执行定价分析
* Wikipedia用于各种设计模式,即工厂,主题/观察者,州等。
然而我真的被困在了算法中。我决定使用State pattern将逻辑分组划分为在满足某些市场条件时应执行的各种逻辑。问题是我开始意识到每个州级都很可能包含if else语句的爆炸:
if(this_condition) {
// do something
} else if (another_condition) {
// do something else
} else {
// etc..., etc...
}
我不禁觉得我在这里遗漏了一些东西,并且必须存在一些我不知道的框架或设计模式,这使得开发人员能够将给定业务上下文的所有输入和输出封装到有限数量的可以构建业务规则[算法]的业务操作[输入/输出]。即而不是必须硬编码算法我希望应该可以将应用程序变成某种规则处理器。不幸的是,我不知道从哪里开始。我希望我已经清楚地解释了我的困境,如果你想让我澄清一切,请告诉我。
谢谢你
答案 0 :(得分:3)
我会看看一些规则引擎,
Drools - drools.org
或
Imperius - http://incubator.apache.org/imperius/
您可能会对实时市场数据做出反应。这是复杂事件处理(CEP)工具非常适合的。检查
HTH
STE