问题标签 [algorithmic-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.

0 投票
9 回答
21938 浏览

low-latency - 当今最先进的 HFT 交易系统有多快?

您总是听说高频交易 (HFT) 以及算法的速度有多快。但我想知道 - 这些天什么是快的?

更新

我不是在考虑由交易所和运行交易应用程序的服务器之间的物理距离引起的延迟,而是由程序本身引入的延迟。

更具体地说:从事件到达应用程序中的线路到该应用程序在线路上输出订单/价格的时间是多少?即即时交易时间。

我们说的是亚毫秒吗?还是亚微秒?

人们如何实现这些延迟?在汇编中编码?FPGA?古老的 C++ 代码?

更新

最近发表了一篇关于 ACM 的有趣文章,提供了当今 HFT 技术的大量细节,值得一读:

网关处的野蛮人 - 高频交易和交易技术

0 投票
1 回答
571 浏览

linux - 低延迟的 Linux Shell

我的研究表明,Linux 更多地用于低延迟/高频交易软件。只是想知道 Linux 中用于此类应用程序的 shell。Bash 或 ksh 或任何其他?任何特定外壳的原因是什么?

非常感谢您对此的帮助。

-尼桑特。

0 投票
1 回答
708 浏览

web-services - 搜索实时股票交易网络服务

我正在寻找一家可靠的贸易公司,它为实时交易提供 Web 服务。

基本上我感兴趣的是:

  1. 开立账户(你知道,最低限度的开始 -
    开立的最低账户价值,最低佣金等)并获得凭证。
  2. 通过 Web 服务,提供我的凭据并连接到服务器。
  3. 通过网络服务执行交易操作(主要是在纳斯达克/纽约证券交易所买卖一级股票)。

有没有人熟悉这样的服务并且可以推荐它?

干杯

0 投票
1 回答
329 浏览

java - 互动经纪人获得可用保证金 Java

我一直在努力从盈透证券的文档中找出如何查询帐户详细信息,例如可用保证金、可用资金等。

我试图效仿他们的例子,但有点迷失了;我无法准确确定如何进行简单的调用以获取帐户详细信息。

谁能提供一个代码片段,或者一些关于方法的指针?

非常感激。

谢谢

0 投票
1 回答
260 浏览

visual-studio-2010 - 将 C# 代码从编辑器注入运行时应用程序并使用 Rosalyn 脚本 API 进行评估

我正在为我们的自动交易系统开发一项功能,以便用户可以连接到我们正在运行的系统(在模拟/测试模式下)和代码模型/信号和策略。目前,我仍在玩弄这个并寻找使用 Microsoft Rosalyn 脚本 API 的方法。用户在嵌入式编辑器中编写代码并将其注入交易系统,交易系统会即时编译和执行。

无论如何我可以链接 Visual Studio,以便用户可以在其编辑器中编写/验证 C# 代码,然后单击一个按钮将代码远程传输到我们的交易系统,以便使用 Rosalyn 脚本 API 即时执行?

0 投票
1 回答
3091 浏览

python - Python TA-Lib 抽象 API 使用

我已经查看了TA-Lib的模块文档以及特定于抽象的指南,但我仍然不清楚抽象 API究竟能为我做什么(以及如何)。具体来说,我希望看到一个Python 代码示例,该示例实例化了一个自定义指标,该指标维护指标值状态并定期从单个输入值计算 RSI,而不是输入值数组。

我设想的是能够按顺序将值传递给一个指标(当它们变得可用时),例如,而不是维护一个包含 700 个项目的 numpy 数组来计算 5 分钟蜡烛的 RSI - 每 5 分钟 - 我想知道它是否是可以向抽象指标函数传递蜡烛收盘价,每 5 分钟一次,并输出从状态计算的 14 周期 RSI 值。这将更适合我的应用程序,它无限期地全天候跟踪 5 个不同时间范围的 9 个不同指标值。

虽然 numpy 数组便于生成一次性指标值数组,但如果 TA-Lib 对象以某种方式维护指标状态,则具有持续指标计算的实时系统将更容易维护并且内存效率更高。这是抽象 API 可以做的事情吗?

如果没有,我会看到一个替代方案,即轮换双端队列(14 个项目 - RSI 周期),它可以作为抽象指标的输入。通过 TA-Lib 抽象实现自定义数据类型的代码示例将不胜感激。

0 投票
1 回答
192 浏览

r - 基于向量 a 的值对向量 b 中除第一个相同/重复值之外的所有值进行向量化更改

我正在尝试找到基于向量 a 的值更新向量 b 值的向量化解决方案。我遇到的问题是:

任何有关如何以矢量化方式执行此操作的帮助/提示都非常感谢。

我尝试了使用 rle、cumsum、diff、...的“标准”方法

编辑:根据大卫要求更清楚地了解我想要做什么,我将详细解释这个问题。

我正在构建简化的交易回测功能(因为 quantstrat 对于我的需要来说太复杂且速度太慢了)。

当我在上面得到一个值为 1(做多)或 -1(做空)的进入信号向量 a 时,就会出现上面的问题(在消息的顶部)。在进入信号之后,可能会发生三件事(保存在向量 b 中):
- 达到时间止损(在一天结束时退出,如果多头,则 b==-1,如果空头,则 b==1),
- 达到利润目标(再次 b==-1, b==1) 或
- 触发止损 (再次 b==-1, b==1)。

所以向量 b 代表每次入场后可能的事件/退出(没有重叠的交易 - 一个在进入另一个之前关闭)。有时交易直接对我有利,我们立即达到了利润目标。伟大的。有时我们在达到利润目标之前就停止了。有时既没有达到止损,我们也没有在一天结束时达到利润目标,所以,我们只剩下一天结束。

我需要在进入后删除除第一个退出事件之外的所有事件(a==1 或 a==-1)。由于并非所有都可以/将会发生,所以只有第一个(从时间角度来看)应该保留,我应该删除后续的。

让我举个例子。我们在 9:31 进入多头交易(在第一分钟常规交易时间栏收盘时)。所以 a 变成:

我们总是在最后一分钟柱(时间停止)结束时退出,因此我们将最后可能的退出添加到 b:

我们还知道(在回测中)我们的利润目标在 9:35 柱收盘时已经达到,所以我们将此事实添加到 b (b[5] <- -1):

而且,我们还知道(在回测中)停止将在 9:33 触发,因此我们将其添加到 b (b[3] <- -1) 现在变为:

因此,由于我的利润目标永远不会达到(之前已达到止损)并且我们不会在收市时进行交易,我应该设置 b[5] <- 0 和 b[length(b)] <- 0 。因此,在进入 (a==1) 后删除 b 中除第一个退出触发器之外的所有触发器。b 应该变成:

我需要在过去的几千天里处理这个......

我希望这能澄清我正在尝试做的事情。

0 投票
1 回答
5383 浏览

r - R中的布林带

我在 R 中回测布林带策略时遇到了麻烦。逻辑是,如果收盘价高于上限,我想做空头寸,然后在它穿过平均线时平仓。如果收盘价低于下限,我也想持有多头头寸,并在它穿过平均线时平仓。到目前为止,这就是我所拥有的:

bbands <- BBands(stock$Close, n=20,sd=2)

sig1 <- Lag(ifelse((stock$Close >bbands$up),-1,0))

sig2 <- Lag(ifelse((stock$Close <bbands$dn),1,0))

sig3 <- Lag(ifelse((stock$Close > bbands$mavg),1,-1))

sig <- sig1 + sig2

...这是我卡住的地方,我如何使用sig3来获得预期的结果?

0 投票
1 回答
1193 浏览

r - R交易策略回测循环

伙计们,我刚刚开始学习如何在 R 中为交易策略正确构建回测代码。作为我的第一个示例,我正在测试一个非常简单的策略,当指数在 t 日的收盘价大于 50日均线。当收盘价低于 50 天平均线时,任何多头头寸都会被卖出……但是该策略永远不会完全做空,只会做多或持平。

因此,为了正确测试这一点,我使用下面的嵌套 if/else if 语句编写了一个庞大的 for 循环。这运行速度不是很快,我想知道是否有任何提高速度的通用方法。R 应该是矢量化的......但我似乎无法这样运行代码。

有一个如下称为“数据排序”的数据框......并希望每天为“信号”和“位置”添加列。所以我 for 循环使用时间索引 i 来填充每一天的“信号”和“位置”列。位置向量只能取 0 或 1 的值,而信号只能取 -1,0,1 的值。基本问题是,在任何一天,信号向量值都取决于前一天的位置 t-1 ...这使得无法对操作进行向量化,或者我的想法是不正确的?

我会很感激任何建议。另外,我知道 quantmod 和 quantstrat 包包含一些回测功能......我只是想自己构建它,因为最终我的信号将变得过于复杂,这些包无法处理。谢谢你。

0 投票
1 回答
215 浏览

r - 如何从 R 中的 CSV 文件返回特定值

我有一个 CSV 文件,其中包含纽约证券交易所上市的所有交易品种,其格式如下:

这是导入我的 CSV 文件后的显示方式

我将如何检索公司的特定符号?例如,如果我想获取倒数第二个股票的代码,我应该使用什么代码?在过去的 6 个小时里,我一直在寻找答案,并查看了文档,但似乎找不到任何相关内容。