Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 快速修复-从不同算法(源)接收和发送订单_Java_Rest_Quickfix_Fix Protocol_Algorithmic Trading - Fatal编程技术网

Java 快速修复-从不同算法(源)接收和发送订单

Java 快速修复-从不同算法(源)接收和发送订单,java,rest,quickfix,fix-protocol,algorithmic-trading,Java,Rest,Quickfix,Fix Protocol,Algorithmic Trading,我使用QuickFIX/J库构建了一个修复启动器应用程序,以向我的代理发送订单。如果您不知道什么是固定应用程序,请考虑我的程序是一个通过TCP连接向服务器发送消息的应用程序。 为了获取和发送由多个算法创建的订单,我有一个目录监视程序(WatchService),它监视使用AWS Cli与S3 bucket同步的本地目录上的修改 这种方法工作得很好,除了我需要等待大约6-8秒才能将文件放在本地目录中,这样我就可以解析它来修复订单并发送到broker的修复应用程序我真的希望减少订单创建与发送给经纪人

我使用QuickFIX/J库构建了一个修复启动器应用程序,以向我的代理发送订单。如果您不知道什么是固定应用程序,请考虑我的程序是一个通过TCP连接向服务器发送消息的应用程序。 为了获取和发送由多个算法创建的订单,我有一个目录监视程序(WatchService),它监视使用AWS Cli与S3 bucket同步的本地目录上的修改

这种方法工作得很好,除了我需要等待大约6-8秒才能将文件放在本地目录中,这样我就可以解析它来修复订单并发送到broker的修复应用程序我真的希望减少订单创建与发送给经纪人之间的延迟。

我认为可能的解决方案是什么:

1)不使用AWS CLI直接从S3存储桶读取

2)为每个不同的算法打开不同的修复会话

3)不是从存储桶中读取,而是在数据库(MySQL)中寻找新订单的峰值。algos将生成表行而不是文件

4)在我的修复应用程序和算法之间有一个API,因此算法可以直接与我的应用程序连接

解决方案(1)没有提高订单接收时间,因为列出S3对象、获取摘要和筛选所需文件所需的时间大致相同

解决方案(2)我没有试过,但我认为这不是最好的。例如,如果我有100种不同的策略,我就必须打开100个不同的连接,我不确定我的代理应用程序是否能够处理。但我可能错了

解决方案(3)我也没有尝试

解决方案(4)是我认为最理想的,但我不知道如何实现。我试图创建一个RESTAPI,但我不知道它在概念上是否正确。假设我的修复应用程序当前连接到代理服务器,我的想法是(i)创建一个新的webapp来创建一个restapi(ii)通过API接收订单信息,(iii)查找当前活动会话,以及(iv)使用当前会话向代理服务器发送订单。不幸的是,我无法在运行修复应用程序的类的另一个类上使用以下ID找到当前会话:

SessionID sessionID = new SessionID("FIX.4.4", "CLIENT1", "FixServer");
    Session session = Session.lookupSession(sessionID);
我想听听你的意见:

  • 您认为发送由多个来源创建的修复订单的最佳解决方案是什么

    • 如果我想创建一个API来连接两个不同的应用程序,我可以遵循哪些步骤
如果我有点困惑,我很抱歉。如果您需要进一步澄清,请告诉我

多谢各位

Q:您认为发送由多个来源创建的修复订单的最佳解决方案是什么

当然是4)——也就是说——整合您的多个决策来源,并从单个点连接代理端修复协议网关

原因:
-设计/实施/操作中的问题隔离
-固定协议通道的单点身份验证/延迟驱动的托管
-将固定协议网关验收测试的成本降至最低(没有这一层市场参与者不会让您与之开展业务,因此固定协议E2E相互合作合规性测试的费用非常重要-成本和时间方面)

Q:我可以遵循哪些步骤

遵循您自己的用例,它定义了需要准备好进行测试的所有MVP特性


不要试图将您的需求概括为任何“新的下一代API”,您的交易都是关于延迟+交易的,因此请专注于MVP定义,不要在点对点的基础上设计/实现MVP之外的任何延迟(开销)最小的东西。使用稳定的专业框架,例如,可以避免花费一点时间重新发明任何已经发明的低延迟交易消息/信号工具。在第三个千年中,使用REST是一种反模式的低延迟高性能分布式计算交易生态系统。

非常感谢。你的回答真的很有用!