量化交易-彻悟科技

量化交易-彻悟科技


20201126-规则引擎策略导入导出工具设计

<h1><center>规则引擎策略导入导出工具设计文档_v1.0</center></h1> <h2>修订记录</h2> <table> <thead> <tr> <th style="text-align: center;">版本号</th> <th style="text-align: center;">修订人</th> <th style="text-align: left;"><div style="width: 85px;">修订日期</div></th> <th style="text-align: left;"><div style="width: 380px;">修订内容</div></th> </tr> </thead> <tbody> <tr> <td style="text-align: center;">V1.0</td> <td style="text-align: center;">Challenger</td> <td style="text-align: left;">2020-11-26</td> <td style="text-align: left;">init</td> </tr> </tbody> </table> <p>[TOC]</p> <h2>1.引言</h2> <h3>1.1 编写目的</h3> <p>  为了解决固定风格交易策略的配置效率问题,减少策略配置风险,在保证目前规则引擎不做大的适配前提下,通过XML的方式进行策略的文本编辑,规则引擎在策略层面提供了导入导出XML功能。策略操作可以通过导出XML模板进行批量的规则及策略创建、复制及修改,然后通过导入功能导入致规则引擎,一方面解决了大量重复配置的交尾,另一方面也可以支持线上线下的策略同步,减少多次配置不一致影响交易结果的风险。   本文档给出规则引擎策略导入导出工具设计设计说明,包括最终实现的功能需求、技术架构方案、业务时序图、数据库模型设计、相关页面设计。   产品研发过程以本文档为基础,技术代码依照本文档方案执行。如过程中涉及需求、架构、方案设计调整都需要更新到本文档中。</p> <h3>1.2 范围</h3> <p><strong>范围说明:</strong></p> <ol> <li>规则引擎XML策略导入导出工具;</li> <li>业务可读性强的文档或脑图工具配置的策略结果翻译成XML策略;</li> </ol> <h3>1.3 术语</h3> <table> <thead> <tr> <th style="text-align: center;">术语</th> <th style="text-align: center;">术语定义</th> </tr> </thead> <tbody> <tr> <td style="text-align: center;">二方</td> <td style="text-align: center;">本系统模块之外的所属本企业的内部系统模块,如:规则引擎、指标平台...</td> </tr> <tr> <td style="text-align: center;">三方</td> <td style="text-align: center;">除本企业内部所有系统之外的外部服务商,如:IB、FMP、英为财情...</td> </tr> <tr> <td style="text-align: center;">量化交易平台</td> <td style="text-align: center;">澈悟量化交易平台</td> </tr> <tr> <td style="text-align: center;"></td> <td style="text-align: center;"> </td> </tr> </tbody> </table> <h3>1.4 参考资料</h3> <p>《重构:改善既有代码的设计》</p> <h2>2.整体设计</h2> <h3>2.1 整体架构图</h3> <p><strong>业务逻辑架构图</strong> <img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/00aa546485082a62a7c62b8a68ee4ca5" alt="" /></p> <p><strong>运维部署架构图</strong> 暂无</p> <p><strong>技术架构图</strong> 暂无</p> <h3>2.2 关键子功能模块</h3> <p>暂无</p> <h3>2.3 关键业务时序图</h3> <p>暂无</p> <h2>3. 接口设计</h2> <h3>3.1 三方接口</h3> <p>暂无</p> <h3>3.2 二方接口</h3> <p>暂无</p> <h2>4. 子模块设计</h2> <h3>4.1 规则引擎XML策略导入导出【RuleLoader】</h3> <h4>4.1.1 模块需求说明</h4> <pre><code>支持规则引擎策略导入导出功能。</code></pre> <h4>4.1.1 架构设计图</h4> <p>暂无</p> <h4>4.1.2 关键业务时序图</h4> <p>暂无</p> <h4>4.1.3 业务功能交互</h4> <h5>规则引擎XML策略导入导出</h5> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/186c28fbfb81bf507187c570e857c0b5" alt="" /></p> <h4>4.1.4 数据库结构设计</h4> <p><strong>数据库结果及ER关系图</strong> 暂无</p> <h4>4.1.5 XML结构设计</h4> <p><strong>规则引擎XML格式</strong></p> <pre><code class="language-xml">&lt;strategy&gt; &lt;rule&gt; &lt;hitType type="number"&gt;0&lt;/hitType&gt;&lt;!-- 命中模式[1:逻辑与、2:逻辑或] --&gt; &lt;isDecision type="number"&gt;0&lt;/isDecision&gt;&lt;!-- 是否作为策略结果输出[0:否、1:是] --&gt; &lt;name type="string"&gt;规则名称&lt;/name&gt;&lt;!-- 规则名称 --&gt; &lt;state type="string"&gt;10&lt;/state&gt;&lt;!-- 状态[10:启用、20:禁用、99:试运行] --&gt; &lt;type type="string"&gt;10&lt;/type&gt;&lt;!--规则类型[10:流程规则、20:结果规则、30:评分规则、40:区间规则、50:四则运算规则、60:函数规则] --&gt; &lt;ruleConditionGroup&gt; &lt;formula type="string"&gt;&gt;&lt;/formula&gt;&lt;!-- 逻辑表达式 --&gt; &lt;missScore type="number"&gt;0&lt;/missScore&gt;&lt;!-- 缺失值结果 --&gt; &lt;relation type="number"&gt;1&lt;/relation&gt;&lt;!-- 命中模式[1:逻辑与、2:逻辑或] --&gt; &lt;state type="string"&gt;10&lt;/state&gt;&lt;!-- 状态[10:启用、20:禁用、99:试运行] --&gt; &lt;ruleConditions class="array"&gt; &lt;ruleCondition class="object"&gt; &lt;ccolumn type="string"&gt;1&lt;/ccolumn&gt;&lt;!-- 左变量关联规则ID --&gt; &lt;ccolumnRight type="string"&gt;1&lt;/ccolumnRight&gt;&lt;!-- 右变量关联规则ID --&gt; &lt;columnComment type="string"&gt;1&lt;/columnComment&gt;&lt;!-- 左变量说明 --&gt; &lt;columnCommentRight type="string"&gt;1&lt;/columnCommentRight&gt;&lt;!-- 右变量说明 --&gt; &lt;cvalue type="string"&gt;1&lt;/cvalue&gt;&lt;!-- 左变量常量值 --&gt; &lt;cvalueRight type="string"&gt;1&lt;/cvalueRight&gt;&lt;!-- 右变量常量值 --&gt; &lt;formula type="string"&gt;1&lt;/formula&gt;&lt;!-- 逻辑表达式 --&gt; &lt;integral type="number"&gt;0&lt;/integral&gt;&lt;!-- 得分 --&gt; &lt;missResult type="string"&gt;0&lt;/missResult&gt;&lt;!-- 缺失值结果 --&gt; &lt;relation type="number"&gt;0&lt;/relation&gt;&lt;!-- 命中模式[1:逻辑与、2:逻辑或] --&gt; &lt;result type="string"&gt;1&lt;/result&gt;&lt;!-- 结果 --&gt; &lt;ruleIdLeft type="number"&gt;0&lt;/ruleIdLeft&gt;&lt;!-- 左变量规则ID --&gt; &lt;ruleIdRight type="number"&gt;0&lt;/ruleIdRight&gt;&lt;!-- 右变量规则ID --&gt; &lt;state type="string"&gt;10&lt;/state&gt;&lt;!-- 状态[10:启用、20:禁用、99:试运行] --&gt; &lt;type type="string"&gt;1&lt;/type&gt;&lt;!-- 左变量数据类型[int,string] --&gt; &lt;typeRight type="string"&gt;1&lt;/typeRight&gt;&lt;!-- 右变量数据类型[int,string] --&gt; &lt;varType type="number"&gt;1&lt;/varType&gt;&lt;!-- 左变量类型[1:常量、2:环境数据、3:业务数据、4:用户数据、5:场景数据、6:规则结果] --&gt; &lt;varTypeRight type="number"&gt;0&lt;/varTypeRight&gt;&lt;!-- 右变量类型[1:常量、2:环境数据、3:业务数据、4:用户数据、5:场景数据、6:规则结果] --&gt; &lt;/ruleCondition&gt; &lt;/ruleConditions&gt; &lt;/ruleConditionGroup&gt; &lt;/rule&gt; &lt;/strategy&gt;</code></pre> <hr /> <h3>4.2 业务配置策略结果翻译成XML策略【Translator】--TODO</h3> <h4>4.2.1 模块需求说明</h4> <p>  </p> <h4>4.2.1 架构设计图</h4> <p>暂无</p> <h4>4.2.2 关键业务时序图</h4> <h4>4.2.3 程序设计</h4> <p>  </p> <h4>4.2.4 数据库结构设计</h4> <p><strong>数据库结果及ER关系图</strong> 暂无</p> <h2>5. 性能</h2> <h3>性能评估</h3> <p>内部低频操作工具,性能要求可以降低,每次导入/导出的时间控制在5s以内即可</p> <h2>6. 安全</h2> <h3>操作安全</h3> <p><span style="color:red"><strong>由于批量处理,回滚方案未考虑,特别是线上策略导入要谨慎操作。&gt;由于批量处理,回滚方案未考虑,特别是线上策略导入要谨慎操作。&gt;由于批量处理,回滚方案未考虑,特别是线上策略导入要谨慎操作。</strong></span></p>

页面列表

ITEM_HTML