一种电力市场交易服务器、市场主体终端及撮合方法与流程

文档序号:20690301发布日期:2020-05-08 19:22阅读:331来源:国知局
一种电力市场交易服务器、市场主体终端及撮合方法与流程

本发明涉及电力市场仿真领域,具体涉及一种电力市场交易服务器、市场主体终端及撮合方法。



背景技术:

现货市场是电力市场体系的重要环节,对于电力市场的开放、竞争、有序运行起到了基础性的支撑作用,也是协调市场交易与系统运行完全的关键所在。目前,众多地区已先后启动电力现货市场的建设。

现有的出清方法中电力申报和撮合方式为电量模式,市场成员一般按照月度及以上的时间尺度开展电量交易,电费结算时也是按照月来结算。现货市场运行后,每半小分钟甚至更短时间,会形成现货的成交价格。而随着电力现货市场的开展,现有的电量模式无法直接用于后续日前、实时交易开展和电费结算的过程,导致现有电力市场不支持按时段的出清方式,无法适应电力改革过程中现货市场的开展。



技术实现要素:

为了解决现有技术中所存在的上述不足,本发明提供了一种电力市场交易服务器、市场主体终端及撮合方法,支持月内开展交易,申报未来一段时间内(三日以上)每日各个时段的电力和电价,形成电力曲线,由系统自动撮合出交易结果,可与电力现货市场中的日前和实时交易进行衔接,提高电力交易的灵活性。

本发明提供的一种电力市场交易服务器,包括:

交易序列生成模块,用于根据电力交易需求构建交易序列,其中所述交易序列包含多个交易时段,基于每个交易时段构建一个消息队列;

获取报价模块,用于获取各市场主体终端在每个交易时段对应的电力和电价,基于每个交易时段以及所述交易时段对应的电力、电价生成报价信息;还用于将所述报价信息发送至交易时段对应的消息队列中;

交易曲线生成模块,用于基于每个交易时段以及该交易时段对应消息队列中的电力生成交易曲线;

撮合模块,用于启动各交易曲线上的各点对应的线程,进行基于报价的撮合,形成撮合结果表。

优选的,所述交易序列生成模块,包括:

序列定义子模块,用于基于电力交易需求设置:交易曲线分时段数、交易开始日期、交易结束日期、申报价格上限和申报价格下限,并基于交易曲线时段生成交易序列;

消息队列生成子模块,用于基于每个交易时段构建消息队列。

优选的,所述消息队列生成子模块,包括:

构建挂牌集合单元,用于为每个消息队列建立买方挂牌集合和卖方挂牌集合;

构建统计集合单元,用于为每个消息队列建立买方统计集合和卖方统计集合;

其中,所述挂牌集合单元中保存所有申报信息,买方挂牌集合中的数据按照电价降序存储;卖方挂牌集合中的数据按照电价升序存储;

所述统计集合单元中保存统计信息,包括每个价格上尚未成交的申报电力总和。

优选的,所述获取报价模块,包括:

数据获取子模块,用于获取并解析各市场主体终端基于交易序列上各点提交的电力、电价数据;

报价信息生成子模块,用于对各市场主体终端提交的交易序列上各点进行编号,并将每个点对应的电力和电价,加上该点对应的报价时间和交易单元id形成报价信息;

报价信息发送子模块,用于向交易序列上各点对应的消息队列发送对应的报价信息。

优选的,所述撮合模块,具体用于:

基于各交易曲线上的各点对应的线程从相应的消息队列中获取报价信息;

如果报价信息为卖方挂牌,则与买方挂牌集合中的电力、电价数据进行撮合匹配;

如果报价信息为买方挂牌,则与卖方挂牌集合中的电力、电价数据进行撮合匹配;

匹配后更新买方或卖方统计集合生成撮合结果表。

优选的,所述电力交易服务器,还包括:

信息发布模块,用于读取统计集合单元,展示每个交易时段中的多个买方和卖方的最高报价对应的汇总电力信息;还用于读取撮合结果表向各市场主体终端展示每一笔撮合交易结果信息;

其中,所述撮合交易结果信息包括交易时段的顺序号及对应的时间、电力、电价、买卖双方交易单元id和成交时间。

基于同一发明构思,本发明还提供了一种基于电力市场交易服务器的撮合方法,包括:

根据电力交易需求构建交易序列,其中所述交易序列包含多个交易时段,基于每个交易时段构建一个消息队列;

获取各市场主体终端在每个交易时段对应的电力和电价,基于每个交易时段以及所述交易时段对应的电力、电价生成报价信息;

将所述报价信息发送至交易时段对应的消息队列中;

基于每个交易时段以及该交易时段对应消息队列中的电力生成交易曲线;

启动各交易曲线上的各点对应的线程,进行基于报价的撮合,形成撮合结果表。

优选的,所述根据电力交易需求构建交易序列,包括:

基于电力交易需求设置:交易曲线分时段数、交易开始日期、交易结束日期、申报价格上限和申报价格下限,并基于交易曲线时段生成交易序列。

优选的,所述基于每个交易时段构建一个消息队列,包括:

为每个消息队列建立买方挂牌集合、卖方挂牌集合、买方统计集合和卖方统计集合;

其中,所述挂牌集合单元中保存所有申报信息,买方挂牌集合中的数据按照电价降序存储;卖方挂牌集合中的数据按照电价升序存储;

所述统计集合单元中保存统计信息,包括每个价格上尚未成交的申报电力总和。

优选的,所述启动各交易曲线上的各点对应的线程,进行基于报价的撮合,形成撮合结果表,包括:

基于各交易曲线上的各点对应的线程从相应的消息队列中获取报价信息;

如果报价信息为卖方挂牌,则与买方挂牌集合中的电力、电价数据进行撮合匹配;

如果报价信息为买方挂牌,则与卖方挂牌集合中的电力、电价数据进行撮合匹配;

匹配后更新买方或卖方统计集合生成撮合结果表。

基于同一发明构思,本发明还提供了一种市场主体终端,包括:

报价模块:用于通过交易单元申报每个交易时段上买或卖的电价和电力;

数据收发模块:用于向所述电力交易服务器发送申报电价和电力,以及查看电力交易服务器发送的撮合结果。

优选的,所述报价模块包括:

批量申报子模块:用于针对多个交易时段进行同时申报;

逐一申报子模块:用于对每个交易时段依次进行申报。

优选的,所述的市场主体终端为:pc机、平板电脑或手机。

与现有技术相比,本发明的有益效果为:

本发明提供的电力市场交易服务器,含有交易序列生成模块,用于根据电力交易需求构建交易序列,其中所述交易序列包含多个交易时段,基于每个交易时段构建一个消息队列;获取报价模块,用于获取各市场主体终端在每个交易时段对应的电力和电价,基于每个交易时段以及所述交易时段对应的电力、电价生成报价信息;还用于将所述报价信息发送至交易时段对应的消息队列中;交易曲线生成模块,用于基于每个交易时段以及该交易时段对应消息队列中的电力生成交易曲线;撮合模块,用于启动各交易曲线上的各点对应的线程,进行基于报价的撮合,形成撮合结果表。该电力市场交易服务器支持按交易时段开展交易,可与电力现货市场中的日前和实时交易进行衔接,提高电力交易的灵活性。

附图说明

图1为电力市场交易服务器的结构示意图;

图2为本发明实施例中市场成员通过市场主体终端操作电力市场交易服务器的结构示意图;

图3为本发明实施例中基于电力市场交易服务器进行撮合的流程图。

具体实施方式

为了更好地理解本发明,下面结合说明书附图和实例对本发明的内容做进一步的说明。

(1)如图1所示,本发明中的电力市场交易服务器包括:交易序列生成模块、获取报价模块、交易曲线生成模块和撮合模块;

交易序列生成模块,用于根据电力交易需求构建交易序列,其中所述交易序列包含多个交易时段,基于每个交易时段构建一个消息队列;

获取报价模块,用于获取各市场主体终端在每个交易时段对应的电力和电价,基于每个交易时段以及所述交易时段对应的电力、电价生成报价信息;还用于将所述报价信息发送至交易时段对应的消息队列中;

交易曲线生成模块,用于基于每个交易时段以及该交易时段对应消息队列中的电力生成交易曲线;

撮合模块,用于启动各交易曲线上的各点对应的线程,进行基于报价的撮合,形成撮合结果表。

(2)以下d1=1月1日,d2=1月7日,m=48为例,即申报未来7日的电力曲线,每天的电力曲线含48个时段。

(3)在消息队列中,建立7*48=336个不同队列。每个队列分别对应电力曲线上的一个点。

(4)每个时段分别建立4个集合,分别为买方挂牌集合、卖方挂牌集合、买方统计集合、卖方统计集合,共计4*336=1344个集合,这些集合初始为空。挂牌集合保存所有申报信息,包括但不限于电价、电力、申报单元、申报时间等。统计集合保存统计信息,包括每个价格上尚未成交的申报电力总和。对于买方集合,里面的数据按照电价由高到底排序。对于卖方集合,里面的数据按照电价由低到高排序。

(5)市场成员登陆报价模块,选择某个交易单元,然后输入第1天对应日期中48个点的电力和电价。切换日期,输入全部7天的电力和电价。报价模块将报价信息的每个点进行编号,第一天的第一个点编号为1,第二个点编号为2,以此类推,最后一天的最后一个点的编号为336。

(6)获取报价模块将每个点的电力和电价,加上报价时间(timestamp格式,精确到毫秒)、交易单元id,形成报价信息,发送至相应队列。例如第一点的报价为购买电力,电价300元/mwh,电力50mw,交易单元为id300300gn00001,报价时间为2019/4/2811:1:32:001。

则发送至1号队列的报价信息为:

{time:1556420492001,price:300,power:50,unitid:300300gn00001,type=buy}。

(7)以此类推,每个队列都会收到相应的报价信息。

(8)撮合模块启动336个线程,每个线程对应一个消息队列,从相应消息队列中获取报价信息。

(9)以撮合模块的第1个线程从1号队列获取报价信息为例,假设获取的报价信息为购买电力。首先,在获取的报价信息的报价时间后加入顺序号,即该报价信息是该队列中取出的第几笔报价,形成含顺序号的报价信息。

例如顺序号为123的报价,该购买报价信息为(简称为b):

{time:1556420492001,seq:123,price:300,power:50,unitid:300300gn00001,type=buy}。

(10)查看1号时段对应的卖方挂牌集合,若该时段卖方挂牌集合为空,则将b插入买方挂牌集合,并将b中的电力信息累加至买方统计集合中相应价格的电力上。

(11)若该时段卖方挂牌集合不为空,则取出当前卖方挂牌集合中价格最低的卖方报价信息(简称为s1),若b的价格小于s1的价格,则直接将b插入买方挂牌集合。

(12)若b的价格大于等于s1的价格,则b与s1成交,成交价格由交易规则确定。

(13)若b的电力小于s1的电力,则成交电力为b的电力,该次撮合结束。将成交结果写入关系库中的撮合结果表,并将卖方挂牌集合中s1的电力信息更新为原有电力减去成交电力。

(14)若b的电力等于s1的电力,则成交电力为s1和b的电力,该次撮合结束。将成交结果写入关系库中的撮合结果表,并将卖方挂牌集合中s1记录移除。

(15)若b的电力大于s1的电力,则成交电力为s1的电力,撮合继续。将成交结果写入关系库中的撮合结果表,将b的电力信息更新为原有电力减去成交电力,并将卖方挂牌集合中s1记录移除。判断当前卖方挂牌集合是都为空,若为空,则将更新后的b插入买方挂牌集合。若不为空,则取出当前卖方挂牌集合中电价最低的报价信息s2,按照上述规则继续匹配撮合。

(16)在撮合过程中,根据挂牌成交情况,更新统计集合内的数据:若某个电价上有电力成交,则将该电价对应的统计电力减少相应成交的电力;若匹配完成后,b中还有剩余电力,则累加至相应价格对应的统计电力。

(17)若步骤(9)中获取的报价信息为售出电力s,可以按照上述步骤类推与买方报价b1的匹配撮合步骤。

(18)撮合模块第2~336个线程的操作与上述第1个线程一致

(19)根据上述撮合过程,信息发布模块读取统计集合,展示当前交易中每个时段买方和卖方最高k个报价对应的汇总电力信息。

(20)所述电力交易服务器还包括信息发布模块,根据上述撮合过程,信息发布模块读取撮合结果表,展示每一笔撮合交易结果信息,包括但不限于交易时段顺序号及对应的报价时间、电力、电价、买卖双方交易单元id、成交时间等。

本实施例中所述撮合模块,具体包括:

获取子模块,用于基于各交易曲线上的各点对应的线程从相应的消息队列中获取报价信息,并区分所述报价信息为购买电力或售出电力,还用于在报价信息中的报价时间后加入顺序号,形成含顺序号的报价信息;

判断买卖挂牌集合子模块,用于在当前时段中当前顺序号对应的报价信息为购买电力或售出电力时,则查看当前时段对应的卖/买方挂牌集合,若当前时段卖/买方挂牌集合为空,则将当前时段当前顺序号对应的报价信息插入买/卖方挂牌集合,并将该报价信息中的电力信息累加至买/卖方统计集合中,否则调用交易撮合子模块;

交易撮合子模块:用于取出当前卖/买方统计集合中价格最低的卖/买方报价信息,基于当前时段当前顺序号对应的报价信息中的价格和所述最低/高的卖/买方报价信息的价格进行撮合,生成挂牌成交情况;

撮合结果子模块,用于在撮合过程中,根据挂牌成交情况,更新统计集合单元内的电力、电价,基于统计集合单元内的电力、电价生成撮合结果表。

进一步的,所述交易撮合子模块,包括:

电价小于单元,用于若当前时段当前顺序号对应的电价小于所述最低/高的卖/买方报价,则直接将当前时段当前顺序号对应的报价信息插入买/卖方挂牌集合;

电价大于等于单元,用于若当前时段当前顺序号对应的电价大于所述最低/高的卖/买方报价,则调用电力小于单元、电力等于单元或电力大于单元;

电力小于单元,用于若当前时段当前顺序号对应的电力小于所述最低/高的卖/买方报价信息的电力,则获取成交电力并结束当前撮合,还用于将卖/买方挂牌集合中最低/高的卖/买方报价信息的电力信息更新为原有电力减去成交电力,其中所述成交电力为当前时段对应的电力;

电力等于单元,用于若当前时段当前顺序号对应的电力等于所述最低/高的卖/买方报价信息的电力,则获取成交电力并结束当前撮合,还用于将卖/买方挂牌集合中最低/高的卖/买方报价信息记录移除,其中所述成交电力为当前时段对应的电力;

电力大于单元,用于若当前时段当前顺序号对应的电力大于所述最低/高的卖/买方报价信息的电力,则获取成交电力并继续撮合;还用于将最低/高的卖/买方报价信息的电力更新为原有电力减去成交电力,并将卖/买方挂牌集合中最低/高的卖/买方报价信息记录移除,其中所述成交电力为最低/高的卖/买方报价信息的电力;

循环单元,用于继续判断当前时段对应的卖/买方挂牌集合是否都为空,如果当前时段对应的卖/买方挂牌集合为空时,则将更新后的当前时段当前顺序号对应的报价信息插入买/卖方挂牌集合,否则依次取出当前卖/方挂牌集合中电价最低/高的报价信息,基于当前时段当前顺序号对应的电价与所述最低/高的卖/买方报价关系循环调用电价小于单元或电价大于等于单元继续撮合。

如图2所示,市场成员通过市场主体终端中的报价模块申报每日m个点的电力及对应价格;

电力市场交易服务器中的获取报价模块将每个交易时段对应的价格形成指定报价信息,发送至消息队列。

电力市场交易服务器中的撮合模块从消息队列获得报价信息,如果报价信息为卖方挂牌,则与买方挂牌集合中的数据进行撮合匹配;如果报价信息为买方挂牌,则与卖方挂牌集合中的数据进行撮合匹配;匹配后更新买方或卖方统计集合,并将结果发送至信息发布表。

信息发布模块读取撮合结果表,展示每一笔自动撮合交易结果信息,包括但不限于时段序号及对应的时间、电力、电价、买卖双方交易单元id、成交时间等。

基于同一发明构思,本发明还提供了一种基于电力市场交易服务器的撮合方法,包括:

根据电力交易需求构建交易序列,其中所述交易序列包含多个交易时段,基于每个交易时段构建一个消息队列;

获取各市场主体终端在每个交易时段对应的电力和电价,基于每个交易时段以及所述交易时段对应的电力、电价生成报价信息;

将所述报价信息发送至交易时段对应的消息队列中;

基于每个交易时段以及该交易时段对应消息队列中的电力生成交易曲线;

启动各交易曲线上的各点对应的线程,进行基于报价的撮合,形成撮合结果表。

其中,所述根据电力交易需求构建交易序列,包括:

基于电力交易需求设置:交易曲线分时段数、交易开始日期、交易结束日期、申报价格上限和申报价格下限,并基于交易曲线时段生成交易序列。

进一步的,所述基于每个交易时段构建一个消息队列,包括:

为每个消息队列建立买方挂牌集合、卖方挂牌集合、买方统计集合和卖方统计集合;

其中,所述挂牌集合单元中保存所有申报信息,买方挂牌集合中的数据按照电价降序存储;卖方挂牌集合中的数据按照电价升序存储;

所述统计集合单元中保存统计信息,包括每个价格上尚未成交的申报电力总和。

本实施例中,所述启动各交易曲线上的各点对应的线程,进行基于报价的撮合,形成撮合结果表,包括:

基于各交易曲线上的各点对应的线程从相应的消息队列中获取报价信息;

如果报价信息为卖方挂牌,则与买方挂牌集合中的电力、电价数据进行撮合匹配;

如果报价信息为买方挂牌,则与卖方挂牌集合中的电力、电价数据进行撮合匹配;

匹配后更新买方或卖方统计集合生成撮合结果表。

如图3所示,本发明实施例提供的一种基于电力市场交易服务器的撮合方法,具体包括:

步骤1、建立基于电力曲线的交易序列,交易序列内容包括但不限于交易曲线分时段数m、交易开始日期d1、交易结束日期d2、申报价格上限p1、申报价格下限p2等。

步骤2、市场成员在报价模块可以申报一条或多条d1日至d2日的交易序列对应的电力、电价;电力曲线由每天m个时段的电力值来表示。m一般可取24或者48或者96:24时段即每1小时一个电力值,48时段即每半小时一个电力值,96时段即每15分钟一个电力值,每时段电力值对应一个电价,电力和电价都可以申报零值,对于每条电力曲线,可以选择是购买电力或者售出电力,但是对于同一天的同一个时段,不能既购买电力又售出电力。

步骤3、交易申报后,对每时段分别进行撮合匹配:若申报曲线为购买电力,则将所有未成交的售出电力曲线分时段按照价格从低到高排序,按照每个时段分别进行依次匹配,若购买电价高于售出电价则成交,成交电价为:

购买电价*k+售出电价*(1-k)

式中:k由市场运营方根据规则对外公布;成交电量为购买和售出电量中较小者。

步骤4、发布交易结果。

基于同一发明构思,本发明还提供了一种市场主体终端,包括:

报价模块:用于通过交易单元申报每个交易时段上买或卖的电价和电力;

数据收发模块:用于向所述电力交易服务器发送申报电价和电力,以及查看电力交易服务器发送的撮合结果。

本实施例中,所述报价模块包括:

批量申报子模块:用于针对多个交易时段进行同时申报;

逐一申报子模块:用于对每个交易时段依次进行申报。

本实施例中,所述的市场主体终端为:pc机、平板电脑或手机。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上仅为本发明的实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均包含在申请待批的本发明的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1