问题标签 [hft]

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 投票
2 回答
693 浏览

limit - Stata:如何使用 gabbed 时间数据提前 5 分钟获得观察值

我从 Stata 的限价订单簿中获得高频数据。时间没有固定的间隔,有些观察是同时的(以毫秒为单位)。对于每个观察,我需要在 5 分钟后在单独的列中获得中点。因此,对于观察 1,中点为 10.49,因为最接近 09:05:02.579 的最后一个中点为 10.49。

如何在Stata中做到这一点?

0 投票
0 回答
159 浏览

r - xts 微秒问题

在 .RData 文件中保存了一个 xts 对象,然后在另一个 R 实例中再次打开它。我丢失了微秒时间戳。我在两个环境中都保留了相同的配置,包括digits.secs=6。

任何指针?

0 投票
3 回答
8701 浏览

java - QuickFIXJ 登录问题

与 QuickFixJ 有问题。问题是我无法正确发送登录消息。此外,我很难理解如何设置消息流。我不是要执行交易,只是检索市场数据。

错误:

这是我的所有详细信息:

传入:猫传入/*

传出:

我的标准输出是:J

我有问题的来源是:主要:

…………

最后是我的设置:

猫 sessionSettings.txt

任何帮助是极大的赞赏!

0 投票
2 回答
1340 浏览

fix-protocol - 高频交易系统如何连接交易所

我正在尝试研究高频交易系统。HFT 用于连接交易所的机制是什么以及程序是什么(它必须通过经纪人还是直接访问,如果是直接访问我需要什么样的连接信息)

提前感谢您的回答。

0 投票
2 回答
342 浏览

c++ - 如何在 gentoo 上编译 Mellanox libvma?

我正在尝试在 gentoo 上构建 Mellanox 的高速网络库 libvma

http://code.google.com/p/libvma/

但是我不断收到此错误

似乎应该在 /usr/include/infiniband/verbs.H 文件中声明结构 IBV_FLOW*。然而,他们似乎在那里失踪。谁能帮我解决这个问题?

0 投票
2 回答
3804 浏览

hft - 使用非美国(欧洲)日内数据进行 zipline 回测

我正在尝试让 zipline 处理已加载到 pandas DataFrame 中的非美国盘中数据:

我在这里遵循移动平均线教程,将“AAPL”替换为我自己的符号代码,并将历史调用替换为“1m”数据而不是“1d”。

然后我使用 进行最后的调用algo_obj.run(DataFrameSource(mydf)),上面的数据框在哪里mydf

但是,与TradingEnvironment相关的各种问题都会出现。根据源代码:

但是,使用上下文似乎并不完全有效。我仍然收到错误,例如说我的时间戳是在市场开盘之前(实际上,看trading.environment.open_and_close时间是针对美国市场的。

我的问题是,是否有人设法将 zipline 用于非美国的日内数据?您能否指出我的资源和理想的示例代码如何做到这一点?

nb 我在 github 上看到了一些似乎与交易日历相关的测试(tradincalendar_lse.py、tradingcalendar_tse.py 等)——但这似乎只处理每日级别的数据。我需要修复:

  • 开/关时间
  • 基准的参考数据
  • 可能还有更多...
0 投票
1 回答
1371 浏览

c++ - 从 linux 中以最低延迟接收多播套接字的数据

在 HFT 交易应用程序中,我需要从 udp 多播套接字接收数据。唯一的要求是延迟——这非常重要,以至于我可以“使用”一个 CPU 内核。旋转什么的都可以。这是我目前在 Windows 中所拥有的:

recvfrom块,所以它可能会很慢(或者我错了?)。我应该为 Linux 重写它并实现最佳延迟。我需要为每个线程处理一个套接字,所以我认为我不应该使用epoll它,因为它设计得更多来处理许多套接字。我应该使用什么?

upd我发现了类似的问题Low-latency read of UDP port

0 投票
1 回答
5533 浏览

hadoop - 使用 Hadoop 存储股票市场报价数据


我很高兴学习 Hadoop 及其周围的各种项目,目前我正在考虑两种不同的策略来构建一个系统来存储大量市场报价数据,我刚刚开始使用 Hadoop/HDSF和 HBase,但希望有人可以帮助我种下系统种子,以后我不必再使用这些技术进行垃圾处理。下面是我的系统和要求的概述,其中包含一些查询和数据使用用例,最后是我目前从我读过的小文档中对最佳方法的思考。这是一个开放式问题,我很乐意喜欢任何有见地的答案并接受最好的答案,请随时对以下任何或所有观点发表评论。- 邓肯·克雷布斯

系统要求 - 能够利用数据存储对系统进行历史回溯测试、历史数据图表和未来数据挖掘。一旦存储,数据将始终是只读的,需要快速数据访问,但在回测时不是必须的。

静态架构- 非常简单,我想从提要中捕获 3 种类型的消息:

  1. 时间戳,包括日期、日期、时间
  2. 报价包括Symbol,timestamp,ask,askSize,bid,bidSize,volume....(约40列数据)
  3. 交易包括Symbol,timestamp,price,size,exchange....(约20列数据)

数据插入用例- 来自实时市场数据流或通过代理 API 查找

数据查询用例- 下面演示了我想如何从逻辑上查询我的数据。

  1. Get me all Quotes,Trades,Timestamps for GOOG on 9/22/2014
  2. Get me all Trades for GOOG,FB BEFORE 9/1/2014 AND AFTER 5/1/2014
  3. Get me the number of trades for these 50 symbols for each day over the last 90 days.

圣杯- MapReduce 可以用于以下这些用例吗?

  1. 通过分布式代理从原始市场数据生成元数据。例如,编写一个作业,计算存储在数据库中的所有股票和所有交易时段的平均交易量,间隔为 1 分钟。创建作业以让每个股票/会话都有一个代理,我告诉它应该为哪个股票和会话计算这个值。(这是 MapReduce 能做的吗???)

  2. 在代理的类路径上,我可以添加我自己的 util 代码,以便上面的用例可以将其值发布到中央存储库或消息服务器中吗?我可以将代理部署为 OSGI 捆绑包吗?

  3. 为每天早上在盘前交易前执行的不同类型的指标和分数创建不同类型的代理?

高频交易
如果有人能分享一些在高频交易系统环境中使用 Hadoop 的经验,我也很感兴趣。刚接触这项技术,我最初的感觉是 Hadoop 可以很好地存储和处理大量历史分时数据,如果有人使用它进行实时交易,我有兴趣了解更多!- 邓肯·克雷布斯

0 投票
3 回答
280 浏览

linux - 如何为对延迟敏感的 HFT 应用程序临时缓冲传入的网络流量?

我们正在运行一个基于 Java 的交易应用程序,在某些时期,我们希望在大约 10 毫秒内尽可能地优先考虑传出网络流量。有没有办法在短时间内缓冲所有传入的网络流量,无论是在网卡上还是通过我们的 Redhat Linux 机器上的进程或缓冲区?

这背后的基本原理是,在同一时期,传入的网络流量达到峰值,并且处理此流量的应用程序正在从我们尝试优先处理的进程中窃取 CPU 周期。我们对处理传入网络流量的应用程序没有细粒度的控制。

我们的连接速度为 1 Gbps,因此大约 1 MB 的缓冲区就足够了。我们宁愿不要丢弃传入的流量并请求重新传输,因为这会在非常繁忙的时期增加我们网络的负载。

0 投票
1 回答
325 浏览

java - 极快的 8 字节在 Java 中翻倍 - 用于 HFT 应用程序

我们的高频交易应用程序是用 Java 开发的。我们需要将 8 个字节转换为双精度数,但转换速度必须非常快。请记住,我们的延迟低于 15 微秒,因此传统的 java 方法可能对我们不起作用。任何建议都会有所帮助。提前致谢

[编辑]

我们已经研究过一些方法,如字节缓冲区、nio 类、旋转方法(使用移位)等。但是,我想重申需要尽可能快地进行每个操作。使用这些形式的转换是昂贵的(即使它们作为独立的可能看起来更快)并且我们最终会在应用程序中引入延迟。我正在寻找开箱即用的想法(不限于 Java 提供的 API),任何人都可能有过使用不同格式(int、double、float 等)字节的经验。朝这个方向的一个想法可能是缓存双精度值并与接收到的字节进行比较,从而消除了转换的需要。