|
(一)整理思路,编写模型
1、宽语言模型构建方法
库安算法交易软件使用宽语言编程,类C语言语法,支持各类复杂策略的开发,支持个性化的信号管理和精细化下单方案。公式属于编译型,编译后直接运行可执行文件,大大提高了公式的执行效率。
(1)基于K线数据的公式结构
“基于K线数据”类型,指根据K线图表数据构建趋势策略,写入算法交易接管信号对下单精细化管理的模型。
公式由定义数据区、定义环境设置、设置跨合约跨周期引用关键字、定义参数、定义变量和主程序构成,如下图所示。除主程序外,其余部分可针对具体思路缺省。
(2)独立算法交易模型的公式结构
“独立的算法交易模型”类型,指不调用K线图表数据,仅以盘口和账户数据构建的算法模型。
公式由调用数据区Data、定义变量Vars和主函数Begin—End三部分组成,如下图所示:
(3)编写公式:
如下图,点击软件右上方角菜单【量化】->【编写公式】进行编写。
(4)编写规则:
① 宽语言编程语法:https://www.wenhua.com.cn/guide/myQuant_zjyfhs2.htm
② 常见编写和机制说明:https://www.wenhua.com.cn/guide/myquant_zjyfhs6.htm
③ 账户函数取交易账户的数据,不需要在Data区定义;
④ 独立的算法交易模型不支持定义参数。
2、查找函数
(1)系统函数
Wh9支持丰富的WFC开源函数类库,提供近200个开源函数,共700余个系统函数,支持金融统计类函数、循环执行函数、基本面函数、头寸类函数、手动下单辅助函数、期权类函数等交易建模所需的各类函数,支持用户自由实现各类量化交易思路。
如下图所示,在量化菜单下点击【函数列表】,可查看函数的具体分类和使用说明。
编写时,在编写平台上双击蓝色的系统函数,单击鼠标右键【查找函数说明】可查看函数具体使用方法。
(2)自定义函数
如果要在模型中调用比较复杂的计算,而现有的函数又无法满足需要,则可以通过创建自定义函数来实现。熟练的使用自定义函数可以简化代码,减少出错的可能,提高编写效率。
①自定义函数的结构:
自定义函数由参数定义、变量定义、主程序三部分构成,如下图所示:
②编写自定义函数:
如下图所示,是如何编写用户自定义函数。
③ 编写规则:
· 自定义函数语法介绍:https://www.wenhua.com.cn/guide/myQuant_zjyfhs2.htm
· 自定义函数不能直接加载在图表上,只能在其他自定义函数或公式应用中调用;
· 未经过编译保存的自定义函数不能在其他公式中被引用;
3、信号指令和下单委托函数
(1)六种信号指令:BK、SK、SP、BP、BPK、SPK
· 信号指令根据K线图表数据计算信号,可显示信号图标并对信号做历史回测,不支持下单委托;
· 可用于基于图表数据计算的K线图公式,不可用于独立的算法模型;
· 常见思路:通过函数获取信号的价位、距离、信号到目前的高低点等;
· 信号指令如下表,具体使用方法请在“公式编写平台”->【帮助】->“指令说明”中查看:
指令
指令图标
指令函数
建立多头持仓
BK(N,Price,IsCancel);
建立空头持仓
SK(N,Price,IsCancel);
平多头持仓
SP(N,Price,IsCancel);
平空头持仓
BP(N,Price,IsCancel);
买平后买开新仓
BPK(N,Price,IsCancel);
卖平后卖开新仓
SPK(N,Price,IsCancel);
(2)下单委托函数:A_SendOrder
· 不计算信号,根据条件直接发委托单,只能用于实时行情,不能历史回测;
· 可用于K线图公式/独立算法交易模型;
· 常见思路:获取账户信息、盘口高频数据等实现精细化下单;
· 函数用法如下,更多使用方法请在软件右上方菜单【量化】->“函数列表”中查看:
注:
1、两种指令可同时用于一个公式中,多用于量化策略结合算法交易实现精细化下单;
2、公式中只写信号指令不写下单函数A_SendOrder,只能在图表上显示信号标识,不能进行下单交易;
3、套利交易不支持反手指令,BPK、SPK信号在套利上相当于BK、SK,需用SP、BP平仓。
(二)模型测试和优化
1、测试模型在历史K线上的效果(查看信号回测报告)
模型写好后,我们通常是不敢马上实盘交易的,因为我们不了解模型,不知道它与我们的思路是否相符,盈利率是多少、胜率是多少、多久出一次信号等。只有先了解模型,才能信任并在实盘中放心的应用,因此在实盘交易前要先检验模型在历史K线上的效果,了解模型的效果和局限性。
套利量化模型的测试方式和单合约测试方法相同,如下图,将模型加载到K线图,在K线图上点击鼠标右键->【模型回测报告】,即可查看详细的分析报告,投资者可根据分析报告中的参考指标360度检验模型的好坏。
在K线上点击鼠标右键,勾选【显示权益曲线】,可直观的看到资金曲线的变化情况,检查模型的效果是否符合我们的预期要求。
2、了解模型(查看模型信号明细)
资金最大回撤发生在哪一根K线?资金最大回撤时的几笔交易盈亏分别是多少?模型测试的每笔交易的时间和价格具体是多少?这一系列问题都可在“信号明细”中找到答案。
如下图,加载模型回测后,在K线图上点击鼠标右键->【信号明细】,可查看详细的效果测试成交明细。
3、优化模型参数
我们会发现在一段时间内表现很好的模型,过了一段时间就好像失效了一样,这可能是由于模型参数不再适应当前市场行情引起的,这时便需要统计筛选新的最优参数,庞大的计算量单凭人工计算几乎是不可能的,利用“参数优化”功能,可在指定的范围内让计算机筛选出最适合当前行情的参数。
如下图,加载模型回测后,在K线图右键菜单选择【参数优化】,可通过①【枚举】按钮,进行大范围海选抽样;通过②【遗传】按钮,在已经筛选的优质参数附近寻找更优的参数。
常见问题解答:
1、在wh9里面套利的合约可以回测收益吗,怎样回测?
答:可以。在设置套利合约后,套利价差/价比合约可以和一般的合约一样对待的,回测的方法和单合约测试方法一样;
(三)运行模型自动交易
通过历史回测和参数优化,模型的执行效果得到了大幅提升。但是仅有模型是不能自动交易的,还需要借助量化交易平台运行,自动下单。针对不同的策略思路,软件提供不同的运行方案。
1、套利运行池后台运行
以K线图表数据为基础的K线图公式,需要在套利运行池加载:在套利K线图上加载策略,通过右键菜单【装入到运行池,后台运行】,将策略加载到运行池,在后台自动运行。如下图,是如何运行套利量化策略。
软件提供三种信号作用方式,供投资者灵活选择:
显示信号不下单:只显示信号标识,不执行信号指令,即使模型含有算法交易模型也不进行下单。
弹出下单提示:出信号时弹出手动下单提示框,可由投资者根据经验手动下单。
出信号算法交易接管下单:出信号时由算法交易模型接管信号并自动执行下单。
2、独立算法交易模型运行池
独立的算法交易模型,需要在算法交易运行池中运行。如下图,点击【量化】-> 【算法交易运行池】,选择套利交易策略执行,可在后台自动运行下单。
常见问题解答:
1、wh9平台上,怎么运行套利量化策略?
答:wh9有专门的套利量化运行平台,设置方法:
第一步:在软件右上角菜单->【套利】->【自设套利合约】配置好套利对,在【自设套利合约报价列表】中可查看自设套利合约;
第二步:在K线图上加载模型,回测、优化模型后,右键->“装入到运行池,后台运行”;
第三步:点击左侧Tab条【套利池】,或在右上角菜单【套利】->【套利模型运行池】,可以看到其运行效果;
2、自设套利K线图提示“套利K线图现在无法查看,后台正在制作中”
答:设置套利配对后,后台需要根据多年的逐笔成交数据生成套利对的各个周期的k线数据,通常需要半小时左右,若套利对合约数据量较大或同时请求的套利对数量较多,则制作时间相应加长。
3、wh9的套利交易策略,能不能同时加载到多个账户里?
答:可以。需要购买多账号一带多下单授权才可以使用(点击了解一带多授权)。
登录多账号交易,在套利下单算法模型中使用A_SendOrder函数指定好具体的交易账号,当满足下单条件时会对所指定的交易账号同时下单。 |
|