我正在探索ECS模式,我的宠物项目是一个模拟经济的模式,其中经济主体之间的主要互动模式是一个交易。这些代理商中有一些是做市商(他们被动地做交易广告--有时被称为造市)。一些代理商是市场接受者(他们浏览报价,并决定他们想与谁进行交易)。
因此,要约是做市商的一个组成部分。这对我来说很清楚。我有一个系统来管理做市商设定报价的过程。
现在我需要一个系统来控制市场接受者浏览报价和通知做市商他们的交易意图的过程。我将此通知称为proposed_trade。在主回路的每一个滴答中,多个市场接受者可能希望根据相同的报价与同一个做市商进行交易。做市商将接受proposed_trades,只要它有资源满足他们,然后拒绝他们。
那么我该如何用ECS来建模呢?一些备选方案:
proposed_trade都属于一个不同的实体,并同时引用制造者和接受者。可能有许多与同一制造者有关。proposed_trades的名单(就像一个缓冲),当他们想交易的时候,接受者就会添加到名单中。这两种选择中的任何一种都被认为是更习惯的,还是一种口味的选择?
发布于 2020-06-17 12:13:54
令人惊讶的是,这与ECS几乎没有什么关系,而且与订单簿中的订单是如何完成的有关。
在一个真正的市场中,你有买入单和卖出单,这两个订单都会被放入订单簿。当买入订单与卖出订单相匹配时,就会发生销售。匹配的方式因交换而略有不同,但通常是在先到先得的基础上进行(价格/时间算法)。即使您的ECS有刻度,您仍然可以通过存储订单粒度的时间来服从FCFS命令。有些交易所不使用FCFS,而是最大限度地提高吞吐量。这一点很重要,因为并不是每个订单都允许部分完成。
一些你可以也应该考虑的参考资料:
您的订单簿可以很容易地成为ECS中的系统,订单本身就是实体。事实上,使订单本身成为一个系统,就可以很容易地交换匹配算法--只需将系统替换为另一个。
https://softwareengineering.stackexchange.com/questions/411594
复制相似问题