问题标签 [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 投票
1 回答
1094 浏览

stocks - 布林线振荡器是如何计算的?

计算上频带:中频带 + (D + sqrt(((close - Middle band)^2)/n))

而且我知道如何计算下布林带和中布林带。

但是有一个难以捉摸的指标,叫做布林线振荡器,我发现它把布林线组合成一个单一的震荡指标。请说明如何计算。如果可能,使用 SQL 假设字段包含相关值。

0 投票
1 回答
546 浏览

r - 在 R 中矢量化简单的基于循环的交易系统?

在研究了以下两个链接中使用的矢量化方法后,我尝试创建一个简单的交易策略模板(代码如下所示),该模板可以在 R 中进行矢量化,以实现比基于循环的结构更快的速度。我很难矢量化,因为必须维护和构建变量状态,例如:

1)我使用的信号对于多头和空头并不相互排斥(如在简单的 MA 交叉系统中)。

2) 一旦触发,信号会一直徘徊,直到得到相反的指示(例如 RSI 在 80 以上做空,在 20 以下做多类型系统)。

3) 头寸被持有多个时期,因此不是每个信号都进入或在信号为假后退出的情况(我希望能够像在停止和反转或 SAR 系统中那样只进入一次)。

我认为这是一个简单的示例系统,但它比此处列出的示例要复杂一些:

http://blog.fosstrading.com/2011/03/how-to-backtest-strategy-in-r.html

交易策略测试中的累积回报

系统逻辑总结:当 zscore 低于(高于)-2 (2) 时,系统开始持平然后在卖出(买入)价格做多(做空)。系统会跟踪绩效统计数据,例如“交易”、“获胜”、关闭的损益(为简单起见,其他省略)。该系统还保持一个运行“公平”,以便在系统运行后进行绘图。

是否可以在 R 中矢量化这个简单的基于循环的均值回归交易系统?

0 投票
2 回答
2131 浏览

ocaml - Ocaml 和算法交易

我对算法交易领域完全陌生。我刚刚完成了一门基于 Ocaml 的课程,并阅读了有关 Jane Street 的信息。显然他们是一家拥有大量资源的大公司,但使用 Ocaml 进行小时间算法交易是否可行?

我知道这似乎是一个愚蠢的问题,但是(根据我的发现)Ocaml 没有任何交易 API。这意味着必须从头开始编写对吗?

任何见解都将不胜感激,就像我说我是这个领域的完全菜鸟一样。

谢谢!

0 投票
2 回答
3205 浏览

python - 在 python 中滚动 idxmax()?

我有一个 python DataFrame,其中包含一些我正在尝试为其创建一些技术指标的财务数据。我试图弄清楚如何使用移动窗口函数来加快进程,而不是逐个元素地进行。对于每个索引,我想返回过去 30 天的最大索引。我已经实现了一个元素一个元素的解决方案,但是你可以想象它非常慢。

如何创建自定义滚动窗口函数?

0 投票
1 回答
291 浏览

c++ - 在交易客户中实施策略的正确方法是什么?

这个问题需要一些算法交易和 IB TWS API 的知识。

我目前正在考虑如何实现可以同时交易的许多策略的概念。我想知道我是否应该将它们全部托管在一个客户端中 - 或者可能使用 1 client-1 algo 方法。如果我选择在我的唯一一个客户端中并行运行许多策略(这可能是有益的),那么哪种模式是最佳选择?

目前我正在考虑这样的事情:

每个策略都是一个实现一些基本概念的类

所以真正的,最重要的部分将在一个trade()方法中结束,所有策略类都在我PosixClient 的 IB 实现的同一个实例上运行,EWrapper其中包含EPosixClientSocket指针(所以一个套接字)。

这是正确的方法吗?我有风险管理系统(即算法)的经验,但还没有看到任何商业交易系统的实施。你能给点建议吗?

0 投票
1 回答
1598 浏览

r - R中的Websockets

我设法使用以下规格在 R 中建立与 Mtgox websocket 的连接:

我使用了从https://github.com/zeenogee/R-Websockets下载的改进的 R 库“websocket” :

并成功建立连接。但是,似乎套接字没有广播。我做了一个简单的函数 f

每当从 websocket 接收到一些数据时,它应该打印一些文本。但是 websocket 似乎没有触发“receive”方法并且没有显示任何内容。代码以无限循环结束,没有输出。

我知道 websocket 正在工作,所以代码中一定有错误。我是否必须以某种方式“ping”套接字才能开始广播?任何人都知道如何让它工作?谢谢!

0 投票
1 回答
763 浏览

c++ - 如何实现订阅数据馈送?通知对象

这个问题是针对我们这些真正面临这个问题的人。我对真正的、有效的、快速的解决方案感兴趣。

描述:

我正在使用 API,它允许我通过符合 Posix 的套接字通过 tcp/ip 进行通信以获取实时流数据。这些是金融工具的价格和其他统计数据,都是数字。我有一个通过套接字管理此连接的 Posix 客户端,这是 Qt 应用程序。每个表单 (GUI) 都可以请求数据流并显示传入的报价。

问题:

每个传入的流都是通过套接字中的回调接收的(现在我只是打印信息)

通过这个 API 引入的模型概念是流被识别为tickerId字段,所以当新数据出现在套接字上时,该tickPrice方法被触发,我应该分配/通知等感兴趣的对象 - 即将数据发送到适当的 GUI 表单区分它们tickerId.

问题:

我应该如何实现数据交换、订阅模型以将数据发送到正确的对象? 我的第一个想法是在 Posix 客户端中使用

它可以映射tickerId到请求数据的对象的回调。类似于观察者模式。


所以目前我有一个观察者模式的实现。这是它如何工作的主要思想:

可观察的:

观察员:

例子:

结果:

新数据:0

新数据:1

新数据:2

新数据:3

新数据:4

新数据:5

新数据:6

新数据:7

新数据:8

新数据:9

运行成功(总时间:93ms)


这是我此刻的真实代码:

更远:

但这有很多缺点。有没有更好/更便宜/更快的方法?我可以改进什么?

0 投票
1 回答
509 浏览

c++ - 将观察者模式实现为 MarketData 观察者

我正在 Qt 中开发 GUI 表单,我想知道如何实现 ObserverPattern。表单可以订阅由tickerId区分的许多数据流,当数据流到达(新报价可用)时,我的PosixClient(套接字包装器)触发notifyObservers()方法导致update()观察者方法被执行。

但:

这种update()方法是void update(),我需要获取传入的数据记录并绘制它们,计算一些东西,然后使用它们。那么我该如何实现这一点,如何将数据记录传递给观察者呢?数据可用于 Observable(MarketData 对象派生自 Observable)。当数据到达时,我将其推送到这个 Observable 并通知观察者。

然后调用他们的void update()方法。为了从这个函数中检索数据,我决定将一个函数指针boost::function<>作为回调传递给它,然后 Observer 调用这个函数指针,该指针指向我的 GUI 对象,并将来自 observable 的传入数据作为参数。这是正确的方法吗?


请注意:

我知道 Qt 信号/插槽机制,但在我看来,Qt 信号/插槽根本不是解决方案,当我需要动态订阅数据时,绘制它们,在 Qt Form 上显示,然后在取消 Form 时删除订阅。但也许我错了。我是吗?我要求来自生活的真实的、有效的例子,而不是理论上的争论。

0 投票
2 回答
1443 浏览

python - 商品期货分层数据结构

我这辈子似乎都无法得到我想要的结构并让它正常运行,所以我一怒之下来找你们。

设置:我有一个名为 Futures_Contracts 的目录,里面有大约 30 个文件夹,所有文件夹都以标的资产命名,最后是 6 个最近到期的 csv 格式合约。每个 csv 格式相同,包含 Date、O、H、L、C、V、OI、Expiration Month。

注意:OHLCV OI 是开盘价、最高价、最低价、收盘价、交易量、持仓量(对于那些不熟悉的人)也假设收盘价是结算的同义词

文件夹结构

任务:从这里开始,目标是将期货数据加载到多索引 pandas 数据框中,其中顶级索引是基础商品符号,中级索引是到期月份,最后OHLC 数据。最终目标是拥有一些我可以在 zipline 模块上开始破解的东西,让它在期货上运行。所以在视觉上: 在此处输入图像描述

我的微弱尝试:

这有点工作,但是这实际上是一个嵌套的字典,最后包含一个数据框。因此切片非常笨重:

和产量在此处输入图像描述

理想情况下,我将能够对每个索引进行切片,以便我可以比较资产、到期、日期和价值的数据。此外,标记我正在查看的内容,正如您在 matplotlib 图表中看到的那样,所有内容都简单地命名为“解决”

肯定有办法做到这一点,但我只是不够聪明,无法弄清楚。

0 投票
2 回答
311 浏览

java - 如何制作一个从 excel 文件中动态获取数据的 java 程序?

我正在研究一种算法交易策略,并且有一个 Excel 表,可以动态地从互联网上获取股票价值。我需要我的 JAVA 程序来获取这些变化的值,存储它们并对它们动态执行一些操作以生成结果。请建议一种方法来选择这些值,或者如果有人有那段代码,请分享。