问题标签 [quantitative-finance]

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 回答
4634 浏览

python - 如何从 Pandas 数据框函数调用中回顾前几行?

我正在研究/回测交易系统。

我有一个包含 OHLC 数据的 Pandas 数据框,并添加了几个计算列,这些列标识了我将用作启动头寸的信号的价格模式。

我现在想添加一个进一步的列来跟踪当前的净头寸。我曾尝试使用 df.apply(),但将数据框本身作为参数而不是行对象传递,与后者一样,我似乎无法回顾前几行以确定它们是否导致任何价格模式:

但是,这会返回以下错误:

滚动窗口函数似乎很自然,但据我了解,它们仅作用于单个时间序列或列,因此也不起作用,因为我需要在多个时间点访问多个列的值。

实际上我应该怎么做?

0 投票
6 回答
3063 浏览

performance - 计算移动平均线最有效的数据结构是什么?

在做股市工作时,需要计算包括28天平均线、14天平均线等在内的计算指标。

此外,每天平均需要更新以包括最近一天的收盘价/最高价/最低价/成交量。

现在通常需要循环遍历数组以找到总和、平均值、最大值和最小值。

我认为队列(以动态数组或链表或您能想到的任何其他形式)似乎是基于 FIFO 进入/退出方法的完美数据结构。

问题:

  1. 队列的效率和可扩展性与哈希相比如何?
  2. 运行 Perl 脚本时,队列将不在内存中,因此必须初始化和处理(从 CSV 文件初始化的值),我知道这非常不相关,但哪种数据结构最适合使用每天执行的 Perl 脚本?
0 投票
1 回答
693 浏览

python - 在 MAC 10.7.5 上安装 QSTK 时遇到问题,可能是因为 python-dateutils 和/或 pandas 0.7.3 的问题

我正在尝试在 Mac 上安装 QSTK ( http://wiki.quantsoftware.org/index.php?title=QSToolKit_Installation_Guide_Mac ) 并且遇到了麻烦。长话短说,我从我的 mac(2.5、2.6、2.7、3.3)和多个模块(beautifulsoup、requests 等)上的多个版本的 python 开始。在尝试启动和运行 QSTK 数小时后,我感到沮丧,我删除了所有与 python 相关的内容并试图重新开始。我按照 QSTK 安装 wiki 上的说明(上面的链接),当我到第 7 步时,即运行它:

python QSTK-0.2.5/Examples/Validation.py

在命令行上查看安装是否正常,我从终端收到以下反馈:

我发现我需要python-dateutil版本1.5而不是2.0(这是最新的),所以我尝试降级它,仍然没有运气。我不知道该怎么做。请帮忙!

注意:我是初学者程序员。

0 投票
1 回答
1596 浏览

finance - FIX 会话级别拒绝

我正在研究修复会话层并且对会话级别拒绝有些困惑。

如果在会话期间收到乱码或无效(校验和错误、正文长度错误、所需标签丢失...等),正确的恢复措施是什么?我正在考虑以下三个:

  1. 发送拒绝或注销消息,并在文本字段中包含原因并断开连接。
  2. 发送 REJECT 消息并包含原因(即 undefined tag )。
  3. 忽略乱码/错误消息。在这种情况下,对于下一个接收到的消息,将检测到序列间隙,并且通过发送 ResendRequest FIX 引擎将恢复先前接收到的乱码消息的正确版本。

另一件事是: REJECT 总是后跟 LOGOUT 和 DISCONNECTION 吗?

提前致谢。

0 投票
2 回答
2131 浏览

ocaml - Ocaml 和算法交易

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

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

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

谢谢!

0 投票
0 回答
410 浏览

r - MinVar 投资组合循环优化

我正在尝试使用循环内的优化来最小化 3 个股票投资组合的方差。我所做的是计算从 1980 年 1 月 1 日到 1989 年 12 月 31 日的股票收益和 cov 矩阵,并使用 solve.QP 为 minvar 投资组合进行了优化。从这里开始,我想计算截至 2010 年 12 月 31 日的每一年的 minvar 投资组合,并将权重和最优值存储在一个向量中。我的代码如下:

由于某种原因,我的权重向量 w 和值向量 v 等于所有相同的数字。几天来我一直在处理这段代码,但无法弄清楚。此外,我想要年度值和权重(即 1990、1991、1992...2010 年的最佳 minvar 权重和相应的值)。有没有简单的方法来做到这一点?

0 投票
1 回答
275 浏览

matlab - Matlab:如何指定利率互换的优惠券频率

虽然我相信量化金融论坛与这个问题更相关,因为它更受欢迎,我会让自己在这里问同样的问题。

我正在尝试为利率掉期定价,并希望将默认的息票支付频率从每年 1 次更改为每年 2 次或 4 次。我在用着

并尝试过

其中“期间”是使用债券定价时的有效选项

我正在使用 matlab 2013a

0 投票
1 回答
9192 浏览

python - 使用熊猫从订单的时间序列创建订单簿的快照?

我对python和pandas还很陌生,我想知道是否有人知道是否有任何python库建立在pandas之上,这将需要一个时间序列的订单,其中包含以下列:时间戳,id,价格,大小,交换

每条记录都会根据大小调整每个价格和交易所的总和,以便为您提供当前视图,即记录可能如下所示:

我希望能够随时了解市场的最新情况。例如,如果我在 9:00:25.130 做市价,我会得到:

9:00:25.131 的查询将返回

这些记录可能有一百万个或更多,迭代每个请求的所有记录将需要很长时间,特别是如果您试图在当天晚些时候查看时间。我想人们可以在某个时间间隔内创建“快照”并将它们用作 mpeg 播放中的关键帧,我可以自己编写代码,但我认为书籍构建/播放对于使用带有财务数据的 pandas 的人们来说是一种常见的需求他们可能已经有图书馆可以做到这一点。

有什么想法,还是我自己动手?

0 投票
2 回答
7161 浏览

performance - Highstock 与 Google 图表的性能对比

A)我正在为我的一个金融项目使用Highstock图表库。但是,我陷入了性能问题。我对 Highstock 的工作实现有i)图表中的 5 个图表ii)图表中的多条线(和线型) iii)应用于图表上的点的标签iv)新数据大约每秒到达一次,添加一个点并制作动画图向左。但是,我在使用此设置时遇到了一些关键问题:

  • 渲染非常慢。由于绘制的图表数量(和次数),这是一个性能问题
  • 无法调整底部的时间范围控制。由于控件冻结导致的性能问题
  • 我可以添加一个点,使图形向左移动。但是,我无法使用该新数据点添加标志。请参阅此SO 问题

在此处输入图像描述

B)我已经检查了这些其他 SO 问题( Highstock 性能问题Highcharts 性能增强方法?),并尝试了他们的解决方案,但改进非常有限:

C)我没有看到这些 Highstock 问题的简单解决方案。这是一个很棒的图书馆。但我正在查看Google Charts API,看看它是否能满足这些要求。

  • 鉴于以下所有交互,Google Charts API 的性能超过了 Highstock...
  • 一页上有多个图表
  • 1 个视图中的多个重叠图表
  • 图表:线、面积(范围)、直方图、阈值线(见上面的红线和绿线)
  • 轻松将标志添加到我的时间序列上的某个点
  • 轻松向我的时间序列折线图添加一个点
  • 轻松地将点和标志(同时)添加到我的时间序列折线图中

D)有没有人经历过类似的事情?还有其他方法可以提高我的 highstock 性能吗?谷歌图表可以在这里做得更好吗?

谢谢

附言。我的 highcharts 调用看起来像这样(Clojurescript 代码):

0 投票
2 回答
199 浏览

r - 如何在时间序列中找到一定幅度的股市走势?

我被 R 弄湿了,在我当前的任务经过多次试验和错误之后,我仍然卡住了。我有股票行情的价格数据。我试图在我的数据中找到熊市,定义为价格数据点 <= 比早前点低 20%(但不是太早)。这是一个时间序列任务吗?我希望这不是太模糊;我仍在学习这些功能,所以这是我所知道的最好、最简洁的提问方式。

提前致谢..