【问题标题】:Arbitrage algorithm for multiple exchanges, multiple currencies, and multiple amounts多交易所、多币种、多金额的套利算法
【发布时间】:2020-08-02 02:46:02
【问题描述】:

我正在寻找一种跨多个交易所、多种货币应用套利算法的方法。和多个交易金额。我见过使用 BellmanFord 和 FloydWarshall 的示例,但我尝试过的所有示例似乎都假设图形数据集由单一交易所的多种货币的价格组成。我尝试修改并使其支持多个交易所的价格,但我没有发现任何成功。

我读过的一篇文章说我使用 BellmanFord 并且只是在图表中仅显示最佳交易所的价格(而不是所有交易所的价格)。虽然这听起来应该可行,但我觉得那样可能会错过价值。这是正确的做法吗?

对于多个金额,我应该为每个交易金额制作一张图表吗?假设我想以 100 美元和 1000 美元的价格运行该算法,我是否只是为每组数据填充两次图表? 100 美元的价格与 1000 美元的价格不同,因此 100 美元的最优价格可能与 1000 美元的价格不同。

例子:

图表如下所示:

rates = [
    [1, 0.23, 0.26, 17.41],
    [4.31, 1, 1.14, 75.01],
    [3.79, 0.88, 1, 65.93],
    [0.057, 0.013, 0.015, 1],
]

currencies = ('PLN', 'EUR', 'USD', 'RUB')

参考:

【问题讨论】:

  • 您能否举例说明如何使用图表对套利问题进行建模?我不知道这一点,但听起来确实很有趣。

标签: python algorithm graph-algorithm path-finding algorithmic-trading


【解决方案1】:

为了准确性而不是速度,有一种方法可以在 linear program 内表示每个交易所的整个订单簿。对于每个出价,我们都有一个实值变量,表示我们希望以该价格卖出多少,范围在零和出价之间。对于每个要价,我们都有一个实值变量,表示我们想以该价格购买多少,范围在零和要价之间。 (我假设有可能得到部分填充,但如果没有,你可以切换到整数编程。)约束条件是,除了美元(或任何你想要的更多)之外的每种货币,购买的总金额等于销售总额。您可以通过要求每个(货币、交易所)对的详细余额来加强这一点,但是您可能会在桌面上留下一些机会。谨防交易对手风险和滑点。

对于不同数量的启动资金,您可以将美元分成“in-dollars”和“out-dollars”,并限制“in-dollars”的供应,最大化“out-dollars”,一对一一次无限制的从进到出的转换。然后,您可以求解一个以美元为单位的约束,调整约束,并使用对偶单纯形法比从头开始更快地重新求解 LP。

【讨论】:

  • 我希望线性规划能慢多少?如果我要实现这一点,我想知道通过 BellmanFord 以所有交易所的最佳出价/要价运行数据并同时通过线性程序运行所有数据是否有意义。也许在某些情况下,只有一种方法会找到机会,而在其他情况下,两种方法都会找到相同或略有不同的机会,我可以有一些逻辑来决定当结果进来时如何处理。
  • @LampShade 足够快,如果您在小型书籍(或只是书籍的顶部)上运行它并且没有对系统的其余部分进行广泛调整,那么可能会有较低的收获,但随后我从未在金融行业工作过。
  • 对不起。错误的。即使留在 ToB 级别也不会挽救您的方法。 这里最大的缺陷在于默认的零延迟 XTO 路径。如果不使用实际和现实 TimeDOMAIN-XTO 距离以及所有应计 XTO 交易成本相同,任何套利交易实验都将在现实世界中失败.
  • @user3666197 是的,但这似乎超出了问题的范围。
猜你喜欢
  • 1970-01-01
  • 2016-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-24
  • 2023-02-16
相关资源
最近更新 更多