一种金融交易方法及装置
技术领域
本发明属于金融领域,尤其涉及一种金融交易方法及装置。
背景技术
投资者进行股票、基金、期货等金融交易时,通常需要在专业的金融交易平台上执行操作。一般地,各个证券公司、期货公司都有各自独立的交易平台,导致各类交易平台数目繁多。
目前,存在许多第三方软件,可以部分解决这一问题,但由于不同的交易平台系统之间独立性很强,这些第三方软件一般只能实现对同类型的交易平台的对接,无法同时兼容各种交易平台,当用户有多个不同类型交易平台的账户时,往往就需要在多个交易平台或者第三方软件上分别进行操作,使用不便,体验效果差。
发明内容
鉴于此,本发明实施例提供了一种金融交易方法及装置,以解决现有的金融交易方法中在多个交易平台或者第三方软件上分别进行操作存在的使用不便,体验效果差的问题。
本发明实施例提供的一种金融交易方法,可以包括:
确定目标金融交易平台;
根据所述目标金融交易平台的平台类型选取对应的预置信息交互插件;
通过所述信息交互插件与所述目标金融交易平台进行信息交互。
进一步地,所述信息交互插件可以通过以下步骤预置得到:
获取与各个金融交易平台的平台类型对应的各个信息交互插件;
加载获取到的所述各个信息交互插件。
进一步地,所述通过所述信息交互插件与所述目标金融交易平台进行信息交互可以包括:
确定发送给所述目标金融交易平台的消息的消息类型和所属账号;
通过所述信息交互插件调用所述目标金融交易平台中与所述消息类型和所述账号对应的API函数,所述API函数用于在所述目标金融交易平台的调用下对所述账号执行与所述消息类型对应的操作。
进一步地,所述通过所述信息交互插件与所述目标金融交易平台进行信息交互还可以包括:
从发送给所述目标金融交易平台的消息中获取缓存信息;
通过所述信息交互插件存储所述缓存信息。
进一步地,所述通过所述信息交互插件与所述目标金融交易平台进行信息交互还可以包括:
通过所述信息交互插件确定与第一接收消息对应的所述缓存信息,所述第一接收消息为来自所述目标金融交易平台反馈的消息;
根据确定的所述缓存信息和所述第一接收消息生成第二接收消息。
本发明实施例提供的一种金融交易装置,可以包括:
平台确定模块,用于确定目标金融交易平台;
插件选取模块,用于根据所述目标金融交易平台的平台类型选取对应的预置信息交互插件;
信息交互模块,用于通过所述信息交互插件与所述目标金融交易平台进行信息交互。
进一步地,所述金融交易装置还可以包括:
插件获取模块,用于获取与各个金融交易平台的平台类型对应的各个信息交互插件;
插件加载模块,用于加载获取到的所述各个信息交互插件。
进一步地,所述信息交互模块可以包括:
发送消息确定单元,用于确定发送给所述目标金融交易平台的消息的消息类型和所属账号;
函数调用单元,用于通过所述信息交互插件调用所述目标金融交易平台中与所述消息类型和所述账号对应的API函数,所述API函数用于在所述目标金融交易平台的调用下对所述账号执行与所述消息类型对应的操作。
进一步地,所述信息交互模块还可以包括:
缓存信息获取单元,用于从发送给所述目标金融交易平台的消息中获取缓存信息;
缓存信息存储单元,通过所述信息交互插件存储所述缓存信息。
进一步地,所述信息交互模块还可以包括:
缓存信息确定单元,用于通过所述信息交互插件确定与第一接收消息对应的所述缓存信息,所述第一接收消息为来自所述目标金融交易平台反馈的消息;
消息生成单元,用于根据确定的所述缓存信息和所述第一接收消息生成第二接收消息。
本发明实施例与现有技术相比存在的有益效果是:本发明实施例确定目标金融交易平台;根据所述目标金融交易平台的平台类型选取对应的预置信息交互插件;通过所述信息交互插件与所述目标金融交易平台进行信息交互。通过本发明实施例,对各个金融交易平台都可以预置与之对应的信息交互插件,通过所述信息交互插件与所述各个金融交易平台进行信息交互,在一个系统下即可完成现有技术中需要在多个交易平台或者第三方软件上分别进行的操作,使用便捷,用户体验获得极大提升。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的一种金融交易方法的示意流程图;
图2是本发明实施例二提供的一种金融交易装置的示意框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一:
参见图1,是本发明实施例一提供的一种金融交易方法的示意流程图,具体可以包括以下步骤:
步骤S101,确定目标金融交易平台。
所述目标金融交易平台可以是由证券公司、期货公司等金融机构提供的用于股票、基金、期货等金融交易的平台。
本实施例提供的金融交易系统可以直接与所述目标金融交易平台对接,也可以经由其它第三方平台间接与所述目标金融交易平台对接,所述金融交易系统为本实施例提供的金融交易方法对应的执行主体。
步骤S102,根据所述目标金融交易平台的平台类型选取对应的预置信息交互插件。
所述平台类型可以包括股票、基金、期货等平台类型,所述信息交互插件用于与所述目标金融交易平台进行信息交互。在具体实现中,可以针对各个平台类型预置对应的信息交互插件,也可以针对各个平台预置对应的信息交互插件。
可以将所述信息交互插件放置于预置的文件夹中,例如,可以预置一个名为Plugin的文件夹,将所有信息交互插件均放置于其中,每个信息交互插件占用Plugin文件夹下的一个子文件夹,例如,若当前共有三个信息交互插件,则可以在Plugin文件夹下分别为其建立名为Plugin1、Plugin2、Plugin3的子文件夹。
所述信息交互插件可以包括配置文件和动态库文件,配置文件中的内容可以包括支持的交易平台类型、Transport ID、消息通道收发端口、需加载的动态库文件名称等。
优选地,所述信息交互插件通过以下步骤预置得到:
步骤a,获取与各个金融交易平台的平台类型对应的各个信息交互插件;
步骤b,加载获取到的所述各个信息交互插件。
需要注意的是,可以根据实际使用情况对所述信息交互插件情况灵活地加载或卸载。步骤b是提前在所述金融交易系统中加载了各个信息交互插件以备随时使用,例如,可以在所述金融交易系统启动时即加载所述各个信息交互插件,这样在进行金融交易时,省去了加载插件的时间,操作效率较高,但会占用较多的系统资源。相对应的,也可以选择不进行提前加载插件,而在步骤S102选取了所需的信息交互插件后,再将所选取的插件加载到所述金融交易系统中。在完成了所需的金融交易操作后,可以卸载所述信息交互插件。
步骤S103,通过所述信息交互插件与所述目标金融交易平台进行信息交互。
所述金融交易系统可以与所述信息交互插件建立消息通道。具体过程为:所述金融交易系统选取Plugin文件夹下与所述信息交互插件对应的子文件夹,从所述子文件夹的配置文件中读取消息通道收发端口,建立发送和接收消息的socket,每个socket对应一个Transport ID,缓存其对应关系,保存在预置的文件中,对每个接收消息socket,建立线程,接收所述信息交互插件发送过来的消息,根据配置文件中的动态库文件名称,加载对应的动态库文件,启动信息交互插件;信息交互插件同样读取配置文件的消息通道收发端口,建立发送和接受消息的socket,对每个接收消息socket建立线程,接收来自所述金融交易系统的消息。
需要注意的是,所述消息通道收发端口可以写在配置文件中,也可以由所述金融交易系统运行时,根据账号、平台类型等信息组合生成。
优选地,可以分别建立所述金融交易系统与各个信息交互插件之间的消息通道。由于各个消息通道相互独立,所述金融交易系统可以实现同时和多个金融交易平台进行信息交互。
优选地,步骤S103可以包括:
步骤S1031,确定发送给所述目标金融交易平台的消息的消息类型和所属账号;
步骤S1032,通过所述信息交互插件调用所述目标金融交易平台中与所述消息类型和所述账号对应的API函数。
所述消息类型可以包括登录、退出、下单、撤单、查询委托、查询持仓、查询资金等。可以通过所述信息交互插件对发送给所述目标金融交易平台的消息进行消息体协议解包,提取出消息类型。
所述API函数用于在所述目标金融交易平台的调用下对所述账号执行与所述消息类型对应的操作。对于每个账号,均需要建立一个API对象,用于调用对应的API函数,实现与目标金融交易平台的交互。
可选地,步骤S103还可以包括:
步骤S1033,从发送给所述目标金融交易平台的消息中获取缓存信息;
步骤S1034,通过所述信息交互插件存储所述缓存信息;
步骤S1035,通过所述信息交互插件确定与第一接收消息对应的所述缓存信息,所述第一接收消息为来自所述目标金融交易平台反馈的消息;
步骤S1036,根据确定的所述缓存信息和所述第一接收消息生成第二接收消息。
大部分金融交易平台不能返回客户订单编号(ClientOrderID)、请求消息类型等第一信息,但其响应会包括请求编号、合同号、会话ID等第二信息,而在发送给所述目标金融交易平台的消息中,包括了所述第一信息和所述第二信息。因此,可以从发送给所述目标金融交易平台的消息中获取缓存信息,所述缓存信息包括所述第一信息、所述第二信息以及两者之间的对应关系。
当接收到所述第一接收消息时,使用其中的所述第二信息作为检索key,在对应的缓存信息中可以找到所述第一信息,将所述第一信息合成到所述第一接收消息中,即可生成所述金融交易系统所需的第二接收消息。
综上所述,本发明实施例所提供的金融交易方法确定目标金融交易平台;根据所述目标金融交易平台的平台类型选取对应的预置信息交互插件;通过所述信息交互插件与所述目标金融交易平台进行信息交互。通过本发明实施例,对各个金融交易平台都可以预置与之对应的信息交互插件,通过所述信息交互插件与所述各个金融交易平台进行信息交互,在一个系统下即可完成现有技术中需要在多个交易平台或者第三方软件上分别进行的操作,使用便捷,用户体验获得极大提升。
实施例二:
参见图2,是本发明实施例二提供的一种金融交易装置的示意框图,为了便于说明,仅示出与本发明实施例相关的部分。
该金融交易装置可以是内置于终端(例如手机、平板电脑、笔记本、计算机等)内的软件单元、硬件单元或者软硬结合的单元,也可以作为独立的挂件集成到所述终端中。
所述金融交易装置可以包括:
平台确定模块201,用于确定目标金融交易平台;
插件选取模块202,用于根据所述目标金融交易平台的平台类型选取对应的预置信息交互插件;
信息交互模块203,用于通过所述信息交互插件与所述目标金融交易平台进行信息交互。
进一步地,所述金融交易装置还可以包括:
插件获取模块204,用于获取与各个金融交易平台的平台类型对应的各个信息交互插件;
插件加载模块205,用于加载获取到的所述各个信息交互插件。
进一步地,所述信息交互模块203可以包括:
发送消息确定单元2031,用于确定发送给所述目标金融交易平台的消息的消息类型和所属账号;
函数调用单元2032,用于通过所述信息交互插件调用所述目标金融交易平台中与所述消息类型和所述账号对应的API函数,所述API函数用于在所述目标金融交易平台的调用下对所述账号执行与所述消息类型对应的操作。
进一步地,所述信息交互模块203还可以包括:
缓存信息获取单元2033,用于从发送给所述目标金融交易平台的消息中获取缓存信息;
缓存信息存储单元2034,通过所述信息交互插件存储所述缓存信息。
进一步地,所述信息交互模块203还可以包括:
缓存信息确定单元2035,用于通过所述信息交互插件确定与第一接收消息对应的所述缓存信息,所述第一接收消息为来自所述目标金融交易平台反馈的消息;
消息生成单元2036,用于根据确定的所述缓存信息和所述第一接收消息生成第二接收消息。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例各实施例技术方案的精神和范围。