Php 交易引擎加油或熄火
我目前正在尝试实现一个交易引擎。我的代码可以成功创建和填写限额和市场订单。此外,我希望我的引擎能够成功完成“填充或杀死”订单。不幸的是,我不知道如何为这个“填充或杀死”编写算法。有没有人知道有没有一种有效的算法可以做到这一点 以下是你们这些缺乏交易知识的人的一些背景。通常,购买资产的订购方式如下:Php 交易引擎加油或熄火,php,sql,algorithm,trading,Php,Sql,Algorithm,Trading,我目前正在尝试实现一个交易引擎。我的代码可以成功创建和填写限额和市场订单。此外,我希望我的引擎能够成功完成“填充或杀死”订单。不幸的是,我不知道如何为这个“填充或杀死”编写算法。有没有人知道有没有一种有效的算法可以做到这一点 以下是你们这些缺乏交易知识的人的一些背景。通常,购买资产的订购方式如下: Price Amount $200 3 $300 4 $350 2.5 $400 1.11 如果一个人想要购买资产,一个简单的算法从
Price Amount
$200 3
$300 4
$350 2.5
$400 1.11
如果一个人想要购买资产,一个简单的算法从上到下进行,以便给客户提供最佳价值。一整排不一定要全部买下来。例如,如果我想要4个苹果,代码将以200美元的价格卖给我3个,以300美元的价格卖给我1个(从上到下)
现在,某些卖家可能会给出“填充或杀死”选项。这意味着不能部分购买给定行。现在让我们假设第二行被指定为“填充或杀死”:
在这种情况下,如果我想要4个苹果,我不能从第二排买少于4个。现在我有两个明显的选择。我可以用4*300=1200美元从第二排买4个苹果,或者我可以用(3*200)+(1*350=850美元的价格从第一排买3个,从第三排买1个。在这种情况下,第二种选择是更好的交易。不幸的是,根据不同的价格和订单数量,情况并非总是如此
这些表将用SQL实现,并按价格排序。我试图用php实现这个算法。任何帮助都将不胜感激。您可以跳过带有“填充或杀死”属性的报价,选择下一个产品。然后重复跳过的报价,并在两种解决方案之间找到最便宜的组合。填写或终止订单的目的是确保以所需价格向市场投放头寸。因此,交易应立即完成或根本不进入市场。FOK指令禁止经纪人部分填充。在将订单放入队列/书籍之前,您需要1:1的订单才能进行市场匹配 “不部分履行”是“填写或终止”(以及“全部或无”)订单与“立即或取消”订单的区别。IoC订单允许部分填写,并在订单到期之前,在账簿中以增量方式获取更多库存 FOK订单和AON订单之间的区别在于,无法立即执行的AON在执行或取消之前保持活动状态。怡安一直在书中等待全场比赛。 如果没有立即的全场比赛,霍克将被淘汰
填充或杀死的有效算法 有两种形式“多填充或压井”和“单填充或压井”
所使用的匹配算法主要是纯时间优先级(FIFO)算法,因为这种算法使有效订单的数量最大化。(一些市场使用按比例匹配。介于两者之间的是LIFFE和CME算法,两者都结合了fifo和按比例匹配的元素。)应该有一个伪多项式动态规划解决方案,类似于背包。维护一张表格,给出所有数量首先,FOK不要坐在订单簿上。他们就像国际奥委会(立即或取消),时间为零。如果不执行,则会立即取消 所有或无订单,即使支持度更低,标准更低,也可能会有TIF的一天结束或良好,直到取消。在这种情况下,它们不是d
Price Amount
$200 3
$300 4 (Fill or Kill)
$350 2.5
$400 1.11