问题标签 [trading]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 低延迟、高可用性的java分布式缓存
我从未使用过分布式缓存/DHT,如 memcached、jboss 缓存、ehcache 等。我想知道哪个(如果有)适合我使用。
首先,我没有做 Web 应用程序(因为这些项目中的大多数似乎都面向 Web 应用程序)。我为金融交易公司编写服务器(实际上是订单管理系统)。服务器本身并不太复杂。他们需要接收信息(市场数据、订单、执行等),然后将它们发送到目的地,同时可能会转换其中的一些信息。
我正在寻找这些产品来解决以下问题:
服务器状态的安全存储库。我宁愿将我的应用程序的逻辑构建为一堆转换器(类似于 Apache Camel)并将状态存储在“安全”的地方
这个存储库应该是分布式的:万一这些数据存储中的一个崩溃,应该再增加一两个,我应该能够无缝切换到它们
这个存储库应该很快。单位毫秒计算在这里,换句话说,消费/处理这些数据的系统是自动化系统,而不是人类点击链接。该系统需要具有高吞吐量和低延迟。通过将我的数据发送到进程之外,我必然会降低性能,但我试图平衡绝对原始速度和数据的绝对保护。
这个存储库应该是安全的。类似于关于几个在线备份的观点,这个系统需要将数据写入磁盘(可能不止一个磁盘)。
我真的很想停止编写自己的“事务服务器”。我是否正确地研究诸如 jboss 缓存、ehcache 等项目?
谢谢
c++ - 我的股票市场计划可以使用什么数据源?
我想为 Linux 和 Windows 制作一个免费的开源 C++ 应用程序,它将创建实时股票市场图表(即它们经常刷新)。
请您就这些问题给我一些指示:
- 我应该使用什么作为数据源?我可以实施免费服务吗?我想使用与Google等公司相同或相似的信息。
- 我不确定最好使用哪种 GUI 工具包,是否有内置图表的工具包,或者我需要为此使用专门的库?
需要注意的一些事项:
- 这是我第一次尝试跨平台 C++ 开发和 Linux 的 GUI 应用程序。
- 我在英国,所以我想使用为伦敦证券交易所 (LON) 和纳斯达克等提供信息的数据源。
trading - 开发 Java 交易应用程序:是否存在用于定义交易规则的模式/框架?
我正在设计一个交易应用程序,它将使用 Market 的 API 在 Market 上下订单。这不是投资银行中那种复杂的高性能算法交易应用程序。这只是一个小型个人应用程序,根据市场条件/趋势,每天可能交易两到三次。
该应用程序将(大致)包含以下模块/包:
策略
- 实际交易算法
分析
- 分析类市场上的实时价格和订单以产生买入/卖出信号
服务
- 用于保持与市场的连接、检索市场信息和下达买入/卖出订单的类。
到目前为止,该应用程序所需的一切似乎都可以在 Internet 上获得:
* Apache CXF用于生成用于访问市场 Web 服务的 Java 类。
* Apache Maths用于执行定价分析
* Wikipedia用于各种设计模式,即工厂、主题/观察者、状态等。
然而,我真正陷入困境的是算法。我决定使用状态模式将满足某些市场条件时应执行的各种逻辑划分为逻辑分组。问题是我开始看到每个状态类很可能会包含大量 if else 语句:
我不禁觉得我在这里遗漏了一些东西,并且必须存在一些我不知道的框架或设计模式,它使开发人员能够将给定业务上下文的所有输入和输出封装到有限数量的可以在其上构建业务规则[算法]的业务操作[输入/输出]。即,我希望不必对算法进行硬编码,而是应该可以将应用程序变成某种规则处理器。不幸的是,我不知道从哪里开始。我希望我已经足够清楚地解释了我的困境,如果您想让我澄清任何事情,请告诉我。谢谢
java - Java,使用队列管理器处理海量消息(交易)
我想设计一个可以处理大量消息的简单应用程序(没有 j2ee 和 jms)(比如在交易系统中)
我创建了一个服务,可以接收消息并将它们放入队列中,以便系统在过载时不会卡住。
然后我创建了一个包装队列的服务(QueueService),并有一个从队列中弹出消息的pop方法,如果没有消息返回null,则将此方法标记为“已同步”以进行下一步。
我创建了一个知道如何处理消息的类(MessageHandler)和另一个可以“侦听”新线程中的消息的类(MessageListener)。该线程有一个“while(true)”,并且一直试图弹出一条消息。
如果返回了一条消息,线程调用 MessageHandler 类,完成后,他会请求另一条消息。
现在,我已将应用程序配置为打开 10 个 MessageListener 以允许多消息处理。
我现在有 10 个线程一直处于循环状态。
这样的设计好吗??
任何人都可以参考一些书籍或网站如何处理这种情况吗?
谢谢,罗尼
python - 用于交易策略开发的脚本语言
我目前正在开发一种交易产品的组件,该组件将允许量化或策略开发人员编写自己的自定义策略。我显然不能让他们用本机编译的语言(甚至是编译成字节码以在 vm 上运行的语言)编写这些策略,因为他们的开发/测试周期必须在几分钟左右。
到目前为止,我已经查看了 lua、python、ruby 并且到目前为止真的很喜欢它们,但是对于我的目标用户来说仍然发现它们有点“低级”。我是否需要以某种方式编写我自己的解析器 + 解释器来支持一种对循环、简单算术、逻辑表达式评估的支持最少的语言,或者你们中的任何人可能有其他建议吗?提前致谢。
c++ - 如何在 C++ 中获得调试执行流程
我在一个支持许多用户的全球交易系统上工作。每个用户都可以预订、修改、编辑、删除交易。该系统由中央交易捕获服务管理。交易捕获服务会通知所有用户发生的任何更新。
当我们发生崩溃时问题就来了,因为生产环境不可能在测试系统上重新创建,我不得不依赖崩溃转储和日志文件。
但是,这并不能告诉我用户一直在做什么。
我想要一个能够(在崩溃时)转储用户所做操作的历史记录的系统。我添加的任何内容都必须进入实时环境,因此不会对性能产生太大影响。
明智的想法我在每个函数的顶部考虑一个宏,它就像一个堆栈跟踪(只有我可以提供额外的用户信息,如交易 ID、用户对话选择等)。系统将记录堆栈跟踪(在每个线程基础)并将历史记录保存在循环缓冲区中(大小不同,具体取决于您想要捕获的历史记录量)。然后在崩溃时,我可以转储这个历史堆栈。
我真的很想知道是否有人有更好的解决方案,或者是否有人知道现有的框架?
谢谢丰富
python - 自动化 Etrade
大家好,我想知道如何开始在 python 中编写一个在 Etrade 中交易股票的界面。我正在尝试制作一个自动交易机器人,但没有公开的 API 可用于 Etrade 的自动交易。提前致谢。^^
c++ - 交易系统目前青睐哪些网格分布式计算框架
那里似乎有很多网格计算框架,但投资银行实际上在很大程度上使用了哪些框架来实现低延迟分布式计算?我很想听到涵盖 Windows、Linux 和跨平台的答案。此外,哪种 RPC 机制似乎最受青睐?
我听说由于低延迟和速度,计算本身通常是用 C++/C 编写的,因为在 VM 上运行的计算比本机代码慢几个数量级。这似乎是实践中的常见情况吗?例如,分布式.NET 网格框架运行用本机c++/c 编写的计算?
java - 哪种编程语言用于计算密集型交易组合模拟?
我正在构建一个交易组合管理系统,负责生产、优化和模拟非高频交易组合(处理 1 分钟或 3 分钟的数据柱,而不是分时数据)。
我计划使用 Amazon Web 服务来承担应用程序的全部负载。
我有四个选择,我正在考虑作为语言。
- 爪哇
- C++
- C#
- Python
这里是项目范围的极端范围。也许永远不会是这样,但它在要求的范围内:
- 每周模拟 10,000,000 个交易系统。
- (每个交易系统都应该有自己的数据挖掘方法,包括计算量非常大的特征选择算法。想象一下使用包装器的 500-5000 个特征。无论如何这些都不会经常运行,但它仍然是一个考虑因素)
- 使用 100,000 个交易策略实时生成投资组合
- 从全球每个股票/期货市场获取 1 分钟或 3 分钟的数据(约 100,000)
- 具有多达 100,000 种策略的投资组合优化。(相当密集的算法)
速度是一个问题,但我相信 Java 可以处理负载。
我只是想确保 Java 可以轻松地处理上述要求。我不想用 C++ 做这个项目,但如果需要的话我会做的。
之所以使用 C#,是因为我认为它是 Java 的一个很好的替代品,尽管我根本不喜欢 Windows,如果一切都一样,我更喜欢 Java。
Python - 我在 PyPy 和 pyscho 上读过一些东西,声称 python 可以通过 JIT 编译进行优化,以接近 C 的速度运行......这几乎是它出现在这个列表中的唯一原因,除了 Python 是一个很棒的语言,可能是最令人愉快的编码语言,这对这个项目来说根本不是一个因素,而是一个额外的好处。
总结一下:
- 实时生产
- 每周模拟大量系统
- 每周/每月优化投资组合
- 用于收集数据的大量连接
没有处理毫秒甚至秒级的交易。唯一需要考虑的是,当 Java 分散在必要数量的 EC2 服务器上时,是否可以处理这种负载。
非常感谢你们的智慧。