tra*_*ing 6 c++ hash algorithmic-trading low-latency
我正在做一些金融交易工作.我有一组股票符号,但是他们有很明显的模式:它是两个字符AB
,AC
AD
而当月这是一个四位数字:1503
,1504
,1505
.一些例子是:
AB1504
AB1505
AC1504
AC1505
AD1504
AD1505
....
Run Code Online (Sandbox Code Playgroud)
由于这些字符串设计得很好,我希望将每个字符串映射(散列)为一个唯一的整数,这样我就可以使用整数作为数组索引来快速访问,因为我的系统中有很多检索和std::unordered_map
或任何其他哈希映射不够快.我有测试显示一般哈希映射是100纳秒的延迟级别,而数组索引总是低于100纳米.我的理想情况是,例如,AB1504
映射到整数1
,AB1505
映射到2
....,然后我可以在里面创建一个数组,以更快地访问与这些符号相关的信息.我试图弄清楚一些哈希算法或其他方法可以实现我的目标,但无法找到.你们对这个问题有什么建议吗?
如果将字符串解析为混合基数,前 2 个基数 26 数字,然后是 4 个基数 10 数字,您将很快获得每个字符串的唯一索引。唯一的问题是你是否可能得到一个稀疏的数组。
在计算索引时,您始终可以对数字重新排序,以最大程度地减少上述问题。
由于数字实际上是月份,因此我会计算从第一个条目开始的月份数,并将其乘以前缀中的 2 位基数 26 数字。
希望此刻在我的平板电脑上打字的您能从中明白一些道理。:D