CN110389752A - 一种与数据逻辑分离的金融业务逻辑代码实现方法 - Google Patents

一种与数据逻辑分离的金融业务逻辑代码实现方法 Download PDF

Info

Publication number
CN110389752A
CN110389752A CN201910681011.3A CN201910681011A CN110389752A CN 110389752 A CN110389752 A CN 110389752A CN 201910681011 A CN201910681011 A CN 201910681011A CN 110389752 A CN110389752 A CN 110389752A
Authority
CN
China
Prior art keywords
readjustment
class
function
order
strategy
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910681011.3A
Other languages
English (en)
Inventor
沈超
李波
甘启明
周琪
张樑
纪彤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Liangrui Information Technology Co Ltd
Original Assignee
Shanghai Liangrui Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Liangrui Information Technology Co Ltd filed Critical Shanghai Liangrui Information Technology Co Ltd
Priority to CN201910681011.3A priority Critical patent/CN110389752A/zh
Publication of CN110389752A publication Critical patent/CN110389752A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Accounting & Taxation (AREA)
  • Economics (AREA)
  • Finance (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • General Business, Economics & Management (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本发明公开了一种与数据逻辑分离的金融业务逻辑代码实现方法,包括:步骤S1,分别实现BacktestPattern类、Strategy类以及library类,所述BacktestPattern类用于实现数据读取与转换的操作,并额外做了一层抽象,实现了生成订单以及撮合的功能,所述Strategy类用于实现市场行情回调、收到K线数据回调、市场成交回调、订单确认回调、订单拒绝回调、撤单成功回调、撤单拒绝回调、订单完全成交回调、订单部分成交回调、心跳定时回调的功能;所述library类用于实现历史数据回测所需要的功能函数、回测的主流程控制逻辑以及保持回测与真实交易一致的接口函数;步骤S2,于金融业务逻辑代码实现中,通过Library类中提供的函数与BacktestPattern类、Strategy类中的函数进行互动,实现相应的金融业务功能。

Description

一种与数据逻辑分离的金融业务逻辑代码实现方法
技术领域
本发明涉及软件开发技术领域,特别是涉及一种与数据逻辑分离的金融业务逻辑代码实现方法。
背景技术
在金融业务的程序化交易领域,为了开发一个新的交易策略,一般不可避免得要通过使用历史数据验证交易逻辑的正确性。以往此类逻辑都由交易员或量化工程师自行开发,并且在开发时往往都不得不考虑不同数据类型的读入与转换。
然而,对于交易员或量化工程师而言,数据清洗与读入并不是其所擅长的,而为了实现自己的交易逻辑却不得不每次重复开发。当遇到不同业务场景的不同数据类型,很可能又要重新开发一遍;读入的数据类型又会影响交易策略的执行过程,例如从哪里获取成交价格,从哪里获取市场报价,开盘价,收盘价等。对于没有扎实软件工程基础的交易员或量化工程师而言,数据与交易逻辑往往无法做到解耦,增加了反复调试的过程,浪费了原本应该花在调整交易策略上的时间;另外,当一个交易策略在历史数据上验证完之后往往会接入真实行情以及真实交易接口,使得交易逻辑的代码又要做出修改,增加了进一步验证与测试的工作量,因此需要一种方法能够将交易员或量化工程师从数据处理中解放出来,专注于交易逻辑的实现。
发明内容
为克服上述现有技术存在的不足,本发明之目的在于提供一种与数据逻辑分离的金融业务逻辑代码实现方法,以实现在金融交易逻辑开发的过程中使开发者不必再关注琐碎的数据清洗与读入,将数据与业务逻辑可分离处理,并保持历史数据回测与真实行情交易之间的逻辑一致性。
为达上述目的,本发明提出一种与数据逻辑分离的金融业务逻辑代码实现方法,包括如下步骤:
步骤S1,分别实现BacktestPattern类、Strategy类以及 library类,所述BacktestPattern类用于实现数据读取与转换的操作,并额外做了一层抽象,实现了生成订单以及撮合的功能,所述Strategy类用于实现市场行情回调、收到K线数据回调、市场成交回调、订单确认回调、订单拒绝回调、撤单成功回调、撤单拒绝回调、订单完全成交回调、订单部分成交回调、心跳定时回调的功能;所述library类用于实现历史数据回测所需要的功能函数、回测的主流程控制逻辑以及保持回测与真实交易一致的接口函数;
步骤S2,于金融业务逻辑代码实现中,通过Library类中提供的函数与BacktestPattern类、Strategy类中的函数进行互动,实现相应的金融业务功能。
优选地,所述Strategy类的回调函数所收到的数据类型为所述Library中定义的统一数据结构。
优选地,于步骤S2中,对于真实行情以及交易接口,在进行完初始化以后,通过所述Library中的interface.exchange所提供的函数与策略Strategy类进行互动。
优选地,所述Library中的interface.exchange提供的函数包括市场行情回调、收到K线数据回调、市场成交回调、订单确认回调、订单拒绝回调、撤单拒绝回调、撤单成功回调、订单部分成交回调、订单完全成交回调、心跳定时回调、策略业务状态更新,除策略业务状态更新函数外,其他均对应所述Strategy策略中定义的回调函数。
优选地,于所述策略业务状态更新函数中,定义更新策略业务状态的逻辑,包含pnl、存量、现金存量状态。
优选地,于步骤S2中,对于历史数据回测,在进行完初始化以后,则使用由Library中main_backtest所提供的start_backtest函数开始回测,所述start_backtest函数用于实现回测的全部过程。
与现有技术相比,本发明一种与数据逻辑分离的金融业务逻辑代码实现方法通过预先分别实现BacktestPattern类、Strategy类以及 library类,并在金融业务逻辑代码实现中,通过Library类中提供的函数与BacktestPattern类、Strategy类中的函数进行互动,实现相应的金融业务功能,可大大缩短交易员所需编写的代码量和编码时间。
附图说明
图1为本发明一种与数据逻辑分离的金融业务逻辑代码实现方法的步骤流程图;
图2为本发明具体实施例中回测流程的流程图;
图3为本发明具体实施例中撮合流程的流程图;
图4为本发明具体实施例中订单填充流程的流程图;
图5为本发明具体实施例中策略订单排队流程的流程图;
图6为本发明具体实施例中周期发送流程的流程图;
图7为本发明具体实施例中强制发送流程的流程图。
具体实施方式
以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。
图1为本发明一种与数据逻辑分离的金融业务逻辑代码实现方法的步骤流程图。如图1所示,本发明一种与数据逻辑分离的金融业务逻辑代码实现方法,包括如下步骤:
步骤S1,分别实现BacktestPattern类、Strategy类以及 library类,所述BacktestPattern类用于实现数据读取与转换的操作,并额外做了一层抽象,实现了生成订单(generate_order)以及撮合(match)的功能,所述Strategy类用于实现市场行情回调(on_receive_marketdata)、收到K线数据回调(on_receive_ohlc)、市场成交回调(on_receive_transaction)、订单确认回调(on_submit_accepted)、订单拒绝回调(on_submit_rejected)、撤单成功回调(on_order_cancelled)、撤单拒绝回调(on_cancel_rejected)、订单完全成交回调(on_order_executed)、订单部分成交回调(on_order_partial_executed)、心跳定时回调(on_receive_heartbeat)的功能;所述library类用于实现历史数据回测所需要的功能函数、回测的主流程控制逻辑以及保持回测与真实交易一致的接口函数。
具体地说,BacktestPattern指代一个类,取代了原本需要交易员开发的数据读取与转换的操作,并额外做了一层抽象,实现了生成订单(generate_order)以及撮合(match)的功能,而不是读取订单及撮合。在BacktestPattern所需定义的generate_order函数中,代码需要yield一个Order(订单)对象出去,该Order(订单)对象可以从历史数据中读取,也能够由代码自行生成,因此该BacktestPattern类还为整个回测提供了实现数值模拟的可能性。BacktestPattern类主要由交易员背后的开发支持团队实现或Library提供常用模板。
Strategy同样指代一个类,实现了市场行情回调(on_receive_marketdata)、收到K线数据回调(on_receive_ohlc)、市场成交回调(on_receive_transaction)、订单确认回调(on_submit_accepted)、订单拒绝回调(on_submit_rejected)、撤单成功回调(on_order_cancelled)、撤单拒绝回调(on_cancel_rejected)、订单完全成交回调(on_order_executed)、订单部分成交回调(on_order_partial_executed)、心跳定时回调(on_receive_heartbeat)的功能,上述回调函数所收到的数据类型为Library中定义的统一数据结构,该Strategy类由交易员实现。
Library则主要实现了历史数据回测所需要的功能函数、回测的主流程控制逻辑以及保持回测与真实交易一致的接口函数。
具体地, Library中定义了一个类名为RuntimeState,用于储存策略运行过程中的所有状态及参数,其实例被定义为一个全局变量state,以保证运行进程中状态及参数的唯一性。RuntimeState中定义了一个类方法名为initialize,该方法的入参包括:strategy_class、 pattern_class、symbols、params、settings,分别代表Strategy类对象、BacktestPattern类对象、运行所需交易品种的代号的列表、Strategy及BacktestPattern运行所需的参数集合、运行所需的配置项集合。该方法是进行回测或接真实行情与交易接口前必须执行的初始化函数,用于初始化总体pnl(Profit and Loss,损益)、订单id计数器、bundle id计数器(在一个Strategy的回调函数中发出去的所有order会被记为一个bundle)、市场订单id计数器、交易品种列表、所有交易品种的最新一个clob(订单簿,orderbook)、所有交易品种的最新一个K线OHLC数据(open、high、low、close)、策略表现计算器,并初始化BacktestPattern实例、Strategy实例以及每一个strategy的回调绑定。
在上述三个部分中,交易员只需关注Strategy类部分,该部分主要在于通过其提供的回调函数就可以在所有市场事件发生以后定义自身行为,回调函数所收到的数据类型全是Library中定义的统一数据结构,这样以后交易逻辑就可以参照市场真实流程进行开发,而不会再因为数据类型不同影响策略代码。
步骤S2,于金融业务逻辑代码实现中,通过Library类中提供的函数与BacktestPattern类、Strategy类中的函数进行互动,实现相应的金融业务功能。
具体地,对于真实行情以及交易接口,在进行完初始化以后,可以通过Library中的interface.exchange所提供的函数与策略进行互动。Library中的interface.exchange提供的函数包括:市场行情回调on_receive_marketdata、收到K线数据回调on_receive_ohlc、市场成交回调on_receive_transaction、订单确认回调on_submit_accepted、订单拒绝回调on_submit_rejected、撤单拒绝回调on_cancel_rejected、撤单成功回调on_order_cancelled、订单部分成交回调on_order_partial_executed、订单完全成交回调on_order_executed、心跳定时回调on_receive_heartbeat、策略业务状态更新on_receive_status_update,除了最后一个以外,其他均对应Strategy策略中定义的回调方法,于策略业务状态更新on_receive_status_update函数中,定义了更新策略业务状态的逻辑,包含pnl、存量、现金存量等状态,通过这些函数,可以将策略逻辑与真实行情接口或交易接口解耦并分离,甚至可以将行情接口与交易接口的对接工作移到其他框架或编程语言实现,最终只需要能够访问到Library代码暴露出来的接口即可。
对于历史数据回测,在进行完初始化以后,则需要使用由Library中main_backtest所提供的start_backtest函数开始回测,该函数实现了回测的全部过程,其具体过程如图2所示,其回测流程如下:
步骤1,回测开始时首先将当前时间设置为回测数据开始时间(START_TIME),初始化订单队列,心跳时间定为回测数据开始时间;
步骤2,进入循环,判断当前时间是否小于回测数据结束时间或订单队列是否非空,若是,则进入步骤3继续执行,否则退出循环,将当前时间设为回测数据结束时间(END_TIME),并判断是否需要定期发送市场行情(MARKETDATA),若是则发送周期市场行情(MARKETDATA),并结束,若否则直接结束;
步骤3,在每个循环中,判断订单队列是否非空且第一个订单时间是否等于当前时间,若当订单队列非空且当前时间等于第一个订单的时间戳时,将第一个订单pop出队列,并对其调用BacktestPattern所定义的撮合函数,将撮合函数返回的clob按照其symbol(交易品种)记录下来,返回的trade(市场成交)及execution(成交回报)分别发送至on_receive_transaction回调和各个成交回报回调(如部分成交、全部成交、撤单成功、撤单失败等),并进入步骤4, 若否则于订单队列非空且第一个订单时间大于回测数据结束时间(END_TIME)时,退出循环,将当前时间设为回测数据结束时间(END_TIME),并判断是否需要定期发送市场行情(MARKETDATA),于是时发送周期市场行情(MARKETDATA)并结束,否则进入步骤4;
步骤4,判断是否需要定期发送市场行情(MARKETDATA);
步骤5,若需要,则判断当前时间是否达到每个symbol(交易品种)定期发送的时间点,如果时间点小于回测数据结束时间则发送在撮合时记录下的clob,若不需要,则判断订单是否为OHLCOrderUpdater(一种特殊的更新K线数据的订单),若是则强制发送该symbol的MARKETDATA,具体见后续强制发送流程,若否,则进入步骤6;
步骤6,对于所有symbol(交易品种),填充订单列表,将其在订单队列中的订单数量补充到一个固定数量(一般为3),具体见后续订单填充流程;
步骤7,判断当前时间点是否需要发送心跳(心跳功能为可关闭功能,这里判断其是否开启);具体地,在判断是否发送心跳之前,还需确定全部数据是否读取完且订单队列是否为空,在全部数据未读取完且订单队列不为空时,将next_order_timestamp作为订单队列首个的时间戳,在在全部数据未读取完且订单队列为空时,将next_order_timestamp作为回测数据结束时间(END_TIME)。
步骤8,若是,则计算下一心跳时间点next_heartbeat_timestamp,令下一心跳时间点next_heartbeat_timestamp=(当前时间+心跳周期)-(当前时间%心跳周期),若否则将下一心跳时间点next_heartbeat_timestamp设置为回测数据结束时间(END_TIME);
步骤9,再判断一次是否需要发送行情数据(MARKETDATA),若需要则计算next_marketdata_timestamp为所有symbol上次发送时间最小值加MARKETDATA周期,否则令next_marketdata_timestamp为回测数据结束时间(END_TIME)。
步骤10,判断是否需要发生心跳,若是,则将上次发送心跳时间点设为当前时间点,以当前时间发送心跳,进入步骤11,否则直接进入步骤12;
步骤11,策略发单进入订单队列,具体见后续策略订单排队流程;
步骤12,将当前时间设为next_order_timestamp,next_heartbeat_timestamp,next_marketdata_timestamp中最小值,并返回步骤2。
图3为本发明具体实施例中撮合流程的流程图。如图3所示,撮合流程如下:
步骤1,判断订单ownership是否为市场单,若是,则进入步骤2,否则进入步骤
步骤2,调用BackTestPattern实现的撮合,返回clob(中央限价订单簿), trades(市场成交数据), executions(策略成交回报数据);
步骤3,判断clob是否非空,若非空,则进入步骤4,否则进入步骤7;
步骤4,Library中的performance_calculator更新clob,将该clob记录为对应symbol最新clob;
步骤5,判断订单是否为OHLCOrderUpdater(一种特殊的更新K线数据的订单),若是,则发送OHLCDATA(K线数据),并将周期发送MARKETDATA设为False,进入步骤7,若否,进入步骤6;
步骤6,判断订单对应的symbol之前是否没有发送过MARKETDATA,若是,则立刻发送第一个MARKETDATA,并进入步骤7,否则直接进入步骤7;
步骤7,对所有ownership为策略的execution触发对应的回调,并进入步骤;
步骤8,对所有交易trade触发回调;
步骤9,策略发单进入订单队列。
步骤10,判断是否订单价格<0或qty<0或限价单价格为0,若是则拒单,送拒单execution,进入步骤9,否则给订单market_order_id,并进入步骤11;
步骤11,判断订单action是否为PLACE(挂单动作),若是,则确认订单,发送确认execution,并调用BackTestPattern实现的撮合,返回clob, trades, executions,若否则直接调用BackTestPattern实现的撮合,返回clob, trades, executions;
步骤12,判断clob是否非空,若非空,则performance_calculator更新clob,将该clob记录为对应symbol最新clob,进入步骤8,否则直接进入步骤8。
本发明中,撮合流程按价格优先时间优先进行排序,即始终对所有订单按先价格后时间排序,在遍历价格的过程中,对于已无成交机会的订单直接判断为不可成交结束遍历。
图4为本发明具体实施例中订单填充流程的流程图。如图4所示,订单填充流程如下:
步骤1,判断对于每个未读取完数据的symbol,其在订单队列中的数量是否达到SYMBOL_AMOUNT_IN_QUEUE,若否进入步骤2,否则进入步骤8;
步骤2,判断是否所有symbol都读取完数据,若否进入步骤3,若是则返回True,代表全部数据已读取完;
步骤3,对于每个未读取完数据的symbol,调用BackTestPattern的generate_orders方法;
步骤4,判断是否遍历完,若否进入步骤5,否则进入步骤8,
步骤5,判断该symbol订单在队列中数量是否达到SYMBOL_AMOUNT_IN_QUEUE,若否进入步骤6,否则返回步骤4;
步骤6,判断是否还能读到该symbol下一个数据,若是进入步骤7,否则返回步骤4;
步骤7,判断读到的数据是否为空,若否则按时间戳timestamp升序***订单队列,否则返回步骤4;
步骤8,返回False,代表全部数据没有读取完。
这里的订单填充子流程允许做到当前所有订单全部撮合完后再发送新订单的情况,使得BacktestPattern能够以更大自由度控制订单生成的逻辑,例如根据之前生成的订单的撮合结果生成下一批订单。
图5为本发明具体实施例中策略订单排队流程的流程图。如图5所示,策略订单排队流程如下:
步骤1,获取策略当前时刻的已下订单;
步骤2,对于每个未delay的订单,时间戳timestamp增加ORDER_DELAY,并标记为已delay;
步骤3,获取的策略订单并入订单队列,按时间升序排列。
这里策略订单排队子流程增加了ORDER_DELAY,可以自由模拟真实情况中订单由交易员所处机构发到交易所所处机构中的网络延迟。
图6为本发明具体实施例中周期发送流程的流程图。如图6所示,周期发送流程如下:
步骤1,对于每个symbol,获取该symbol的最新clob;
步骤2,判断是否遍历完,若否进入步骤3,否则进入步骤5,
步骤3,判断是否clob非空且上一次该symbol发送marketdata的时间加上发送周期等于当前时间,若是,则deepcopy marketdata,将其时间设为当前时间,存为最近发送的marketdata并记录发送时间,否则,返回步骤2;
步骤4,判断是否marketdata时间<=回测数据结束时间(END_TIME),若是则发送marketdata,否则返回步骤2;
步骤5,策略发单进入订单队列。
图7为本发明具体实施例中强制发送流程的流程图。如图7所示,强制发送流程如下:
步骤1,获取该symbol的最新clob;
步骤2,判断是否clob非空,若是,则进入步骤3,否则结束流程;
步骤3,将marketdata进行深拷贝,将其时间设为当前时间,存为最近发送的marketdata并记录发送时;
步骤4,发送marketdata;
步骤5,策略发单进入订单队列。
通过上述具体实施例,可见,本发明通过分别实现BacktestPattern类、Strategy类以及 library类,对接口、数据结构及流程的统一化、抽象化,使得交易员只需要关心“当市场事件发生以后做什么”,而不是“为了处理市场事件还要做什么”,则可以不再关心业务逻辑以外的部分,大大缩短了交易员所需编写的代码量和编码时间。
以订单撮合的最佳报价策略为例,传统技术中交易员需要实现数据读取逻辑、数据转换逻辑、流程控制逻辑、撮合逻辑、策略逻辑,共至少5部分。而使用本发明后交易员只需要实现策略逻辑这一部分,至少减少了80%代码量。
综上所述,本发明一种与数据逻辑分离的金融业务逻辑代码实现方法通过预先分别实现BacktestPattern类、Strategy类以及 library类,并在金融业务逻辑代码实现中,通过Library类中提供的函数与BacktestPattern类、Strategy类中的函数进行互动,实现相应的金融业务功能,可大大缩短交易员所需编写的代码量和编码时间。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。

Claims (6)

1.一种与数据逻辑分离的金融业务逻辑代码实现方法,包括如下步骤:
步骤S1,分别实现BacktestPattern类、Strategy类以及 library类,所述BacktestPattern类用于实现数据读取与转换的操作,并额外做了一层抽象,实现了生成订单以及撮合的功能,所述Strategy类用于实现市场行情回调、收到K线数据回调、市场成交回调、订单确认回调、订单拒绝回调、撤单成功回调、撤单拒绝回调、订单完全成交回调、订单部分成交回调、心跳定时回调的功能;所述library类用于实现历史数据回测所需要的功能函数、回测的主流程控制逻辑以及保持回测与真实交易一致的接口函数;
步骤S2,于金融业务逻辑代码实现中,通过Library类中提供的函数与BacktestPattern类、Strategy类中的函数进行互动,实现相应的金融业务功能。
2.如权利要求1所述的一种与数据逻辑分离的金融业务逻辑代码实现方法,其特征在于:所述Strategy类的回调函数所收到的数据类型为所述Library中定义的统一数据结构。
3.如权利要求2所述的一种与数据逻辑分离的金融业务逻辑代码实现方法,其特征在于:于步骤S2中,对于真实行情以及交易接口,在进行完初始化以后,通过所述Library中的interface.exchange所提供的函数与策略Strategy类进行互动。
4.如权利要求3所述的一种与数据逻辑分离的金融业务逻辑代码实现方法,其特征在于:所述Library中的interface.exchange提供的函数包括市场行情回调、收到K线数据回调、市场成交回调、订单确认回调、订单拒绝回调、撤单拒绝回调、撤单成功回调、订单部分成交回调、订单完全成交回调、心跳定时回调、策略业务状态更新,除策略业务状态更新函数外,其他均对应所述Strategy策略中定义的回调函数。
5.如权利要求4所述的一种与数据逻辑分离的金融业务逻辑代码实现方法,其特征在于:于所述策略业务状态更新函数中,定义更新策略业务状态的逻辑,包含pnl、存量、现金存量状态。
6.如权利要求2所述的一种与数据逻辑分离的金融业务逻辑代码实现方法,其特征在于:于步骤S2中,对于历史数据回测,在进行完初始化以后,利用所述Library类中main_backtest所提供的start_backtest函数开始回测,所述start_backtest函数用于实现回测的全部过程。
CN201910681011.3A 2019-07-26 2019-07-26 一种与数据逻辑分离的金融业务逻辑代码实现方法 Pending CN110389752A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910681011.3A CN110389752A (zh) 2019-07-26 2019-07-26 一种与数据逻辑分离的金融业务逻辑代码实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910681011.3A CN110389752A (zh) 2019-07-26 2019-07-26 一种与数据逻辑分离的金融业务逻辑代码实现方法

Publications (1)

Publication Number Publication Date
CN110389752A true CN110389752A (zh) 2019-10-29

Family

ID=68287564

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910681011.3A Pending CN110389752A (zh) 2019-07-26 2019-07-26 一种与数据逻辑分离的金融业务逻辑代码实现方法

Country Status (1)

Country Link
CN (1) CN110389752A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112966382A (zh) * 2021-03-10 2021-06-15 华泰证券股份有限公司 一种证券交易模拟方法和***
CN113568604A (zh) * 2021-09-26 2021-10-29 深圳万顺叫车云信息技术有限公司 风控策略的更新方法、装置及计算机可读存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090077135A1 (en) * 2007-09-14 2009-03-19 Oracle International Corporation Framework for handling business transactions
US20120062357A1 (en) * 2010-08-27 2012-03-15 Echo-Sense Inc. Remote guidance system
CN102663649A (zh) * 2012-05-18 2012-09-12 苏州工业园区凌志软件有限公司 金融衍生品交易***
WO2012136627A1 (en) * 2011-04-03 2012-10-11 Straticator Ltd A method and a system for communicating trade orders for a financial instrument, a method for generating a trading strategy for a financial instrument and a trading strategy system for providing trade decisions for a financial instrument
US20160125533A1 (en) * 2014-10-30 2016-05-05 Gordian Innovative Technologies, Limited System and method for simulating a live trading market
CN107273122A (zh) * 2017-06-07 2017-10-20 深圳市卓讯信息技术有限公司 基于解耦机制的可迭代组建业务***的方法及其终端
CN108269011A (zh) * 2018-01-10 2018-07-10 东莞亿科信息技术有限公司 一种引入风险管理的历史数据回测方法和计算机存储介质
CN108335204A (zh) * 2018-02-02 2018-07-27 上海量贝信息科技有限公司 一种量化交易回测方法及使用该方法的仿真api库或仿真程序
US20180330438A1 (en) * 2017-05-11 2018-11-15 Vipul Divyanshu Trading System with Natural Strategy Processing, Validation, Deployment, and Order Management in Financial Markets

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090077135A1 (en) * 2007-09-14 2009-03-19 Oracle International Corporation Framework for handling business transactions
US20120062357A1 (en) * 2010-08-27 2012-03-15 Echo-Sense Inc. Remote guidance system
WO2012136627A1 (en) * 2011-04-03 2012-10-11 Straticator Ltd A method and a system for communicating trade orders for a financial instrument, a method for generating a trading strategy for a financial instrument and a trading strategy system for providing trade decisions for a financial instrument
CN102663649A (zh) * 2012-05-18 2012-09-12 苏州工业园区凌志软件有限公司 金融衍生品交易***
US20160125533A1 (en) * 2014-10-30 2016-05-05 Gordian Innovative Technologies, Limited System and method for simulating a live trading market
US20180330438A1 (en) * 2017-05-11 2018-11-15 Vipul Divyanshu Trading System with Natural Strategy Processing, Validation, Deployment, and Order Management in Financial Markets
CN107273122A (zh) * 2017-06-07 2017-10-20 深圳市卓讯信息技术有限公司 基于解耦机制的可迭代组建业务***的方法及其终端
CN108269011A (zh) * 2018-01-10 2018-07-10 东莞亿科信息技术有限公司 一种引入风险管理的历史数据回测方法和计算机存储介质
CN108335204A (zh) * 2018-02-02 2018-07-27 上海量贝信息科技有限公司 一种量化交易回测方法及使用该方法的仿真api库或仿真程序

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
许索晗: "金融量化策略开发平台设计与实现", 《计算机软件及计算机应用》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112966382A (zh) * 2021-03-10 2021-06-15 华泰证券股份有限公司 一种证券交易模拟方法和***
CN112966382B (zh) * 2021-03-10 2024-07-19 华泰证券股份有限公司 一种证券交易模拟方法和***
CN113568604A (zh) * 2021-09-26 2021-10-29 深圳万顺叫车云信息技术有限公司 风控策略的更新方法、装置及计算机可读存储介质

Similar Documents

Publication Publication Date Title
US10037263B1 (en) Methods, systems, and articles of manufacture for implementing end-to-end automation of software services
US20140089037A1 (en) Dynamic workflow architectures for loan processing
CN108961026A (zh) 账务核算处理方法、装置及电子设备
AU2008203223A1 (en) A system and method for managing game specific meter information in a gaming system
JP2011527057A (ja) バッファされた簿記
CN108573374A (zh) 一种基于基金份额赎转付的日常缴费方法及***
US20200074539A1 (en) Debt resolution planning platform
CN110389752A (zh) 一种与数据逻辑分离的金融业务逻辑代码实现方法
CN109191304B (zh) 交易数据轧差处理方法、***、计算机设备和存储介质
CN110458691A (zh) 一种贷前风险监控方法及装置
CN109886676A (zh) 用于区块链网络的支付方法、计算设备、存储介质
Gupta et al. Managing the Internet as an economic system
US20210374619A1 (en) Sequential machine learning for data modification
WO2002023332A2 (en) Extensible software development using asynchronous messaging
US11763359B2 (en) Invoice numbering
CN112419052B (zh) 交易测试方法、装置、电子设备及可读存储介质
CN111274138B (zh) 一种并账功能的测试方法及装置
CN112634006A (zh) 对账处理方法、装置、电子设备及存储介质
Smith Designing high-performance distributed applications using software performance engineering: A tutorial
CN115379007B (zh) 基于SaaS的账单核验方法、装置、设备及存储介质
KR102236887B1 (ko) 자부담금 및 국고 보조금을 포함하는 집행금 이체 방법 및 그 장치
KR102620002B1 (ko) 금융 서비스 제공 시스템 및 이를 위한 간편결제사 서버
Ouyang et al. A formal service specification for the Internet Open Trading Protocol
KR102620003B1 (ko) 금융 서비스 제공 시스템 및 이를 위한 간편결제사 서버
CN113706264B (zh) 基于区块链的企业租赁方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20191029