一个关于虚拟货币成交的疑问

是一个关于虚拟货币交易的难题。首先,买卖双方报价,双方报价记录在数据库。然后后台管理员手动控制匹配。
匹配规则如下:
    1.首先去除高于最高买价的所有卖价,去除低于最低卖价的所有买价。
    2.统计所有报价的均价,去除高于均价的卖价,低于均价的买价。
    3.根据买方报价的货币量和卖家报价的货币量进行对比。
    如果买方交易量大,优先卖方交易。卖家价格从低到高依次匹配买家价格从高到低。
        这里我是先根据价格升序查询卖方,然后遍历此数组,在数组中,降序查询买家,将两组数据插入成交表。更改报价表的状态。
    如果卖方交易量大,优先买方交易,买方价格从高到低依次匹配卖家价格从低到高。
        这里我是先根据价格降序查询买方,然后遍历此数组,在数组中,升序查询卖家,将两组数据插入成交表。更改报价表的状态。
    现在遇到的主要难题就是,有成交量的原因在,比如优先卖方的时候,需要卖方一比价格量卖完了,才能轮到下一个卖价,但是我是遍历的,一笔卖价成交完,就直接轮到下一笔卖价了。要是再嵌套一个循环,感觉不妥。请问各位大佬有没有什么好的方案。
php
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

我不知道你们做的系统是怎么走的思路,在我这里是这样理解的。整个系统交易块 ,数据区 可以分为 盘口,k线,实时成交,市场概要。交易的本质就是撮合订单A 与 订单 B,C,D 完成兑换。交易方式有市市价吃单,限价吃单。限价吃单即是当双方订单价格匹配时则进行撮合。不匹配则持续挂单。市价单子会有两个结果 成交,撤销。基本没啥可讲的。市价单子逻辑 是梯度吃单,假使是市价买单依次从低价吃到高价。 卖单相反,高吃到底。其中如果撮合逻辑走真实数据的话 ,当深度不够完成交易的时候 则会出现吃穿的问题。解决办法就是 当市场价格吃完之后 市价单子 转为限价单子进入盘口数据。进行等待新的挂单。

4年前 评论
讨论数量: 1

我不知道你们做的系统是怎么走的思路,在我这里是这样理解的。整个系统交易块 ,数据区 可以分为 盘口,k线,实时成交,市场概要。交易的本质就是撮合订单A 与 订单 B,C,D 完成兑换。交易方式有市市价吃单,限价吃单。限价吃单即是当双方订单价格匹配时则进行撮合。不匹配则持续挂单。市价单子会有两个结果 成交,撤销。基本没啥可讲的。市价单子逻辑 是梯度吃单,假使是市价买单依次从低价吃到高价。 卖单相反,高吃到底。其中如果撮合逻辑走真实数据的话 ,当深度不够完成交易的时候 则会出现吃穿的问题。解决办法就是 当市场价格吃完之后 市价单子 转为限价单子进入盘口数据。进行等待新的挂单。

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!