0

我正在开发一个使用复杂事件处理的算法交易应用程序,并且正在研究将 Microsoft StreamInsight 作为 CEP 处理器。但是,我不确定我想做的所有事情是否都可以在 StreamInsight 中实现。

特别是,我需要能够动态创建策略,然后将这些策略作为常规查询插入服务器。例如,A 人创建了一个策略,当股票 X 的 30 天平均值升至某个值以上时,必须下达买单。然后必须在 StreamInsight 查询中进行翻译,并在运行时将其放置在服务器上。

我可以在 StreamInsight 查询中执行哪种代码?我不确定我想要做的所有处理是否都可以在 StreamInsight 查询中进行,因为它们是 linq 查询。我可以使用来自其他数据源的数据吗?我可以在查询中使用开关、循环、变量声明等吗?或者它只是一个单一的查询,就像编译的查询一样?

这一切可能听起来有点模糊,如果需要,我会尝试进一步澄清。基本上,我的问题是,我可以对 StreamInsight 查询进行多复杂的编程?我发现的样本只显示了简单的过滤、分组等。

也欢迎对其他 CEP 服务器提出建议,尽管我真的更愿意留在我的专业领域,即 .NET/C#。

4

2 回答 2

1

几个扩展点允许您在 StreamInsight 查询中嵌入自定义逻辑:

  • 用户定义的聚合和运算符 (http://msdn.microsoft.com/en-us/library/ee842720.aspx) 允许您对窗口的内容执行任意计算。
  • 用户定义的函数 (http://msdn.microsoft.com/en-us/library/ee378928.aspx) 支持基于“原始”类型(字符串、数字等)的自定义逻辑。

StreamInsight 的适配器模型 (http://msdn.microsoft.com/en-us/library/ee378877.aspx) 允许您连接到任意数据源,无论它们是实时的还是历史的。

如果您对如何启用特定功能有任何疑问,请告诉我们!

-科林

于 2010-10-12T16:54:20.720 回答
1

您可以在 StreamInsight 服务器运行时创建查询以执行新操作。熟悉 StreamInsight API 后,操作起来并不难,可以在 StreamInsight 服务器本地(如果您在进程内托管)或使用管理服务远程完成。正如 Colin 所说(上面),您可以将自定义代码添加到查询中以执行自定义评估。

于 2011-05-15T20:16:02.917 回答