AT学习报告一 软件的初步使用
来源:互联网 发布:2018开淘宝店挣钱吗 编辑:程序博客网 时间:2024/06/12 19:28
AT 学习报告一·软件的初步使用
首先,表达一下我的歉意。说好周末交的学习报告却推迟到了国庆假期。
接下来,话入正题。这是我的第一篇学习报告。主要是关于新回测结构的四个本地例子的学习笔记。这一篇学习报告主要是学习如何使用 AT 对这些策略本身以及策略代码编写是否合理可靠暂不研究。
CSDN 中 mermaid 似乎不能正常显示的,请见谅
对 AT 回测的认识
目前,我仅接触到用 AT 进行回测。下面谈谈我对 AT 回测的认识。
在 AT 中实现对一个策略的回测由两部分构成。
- 一是编写一个策略回测的配置脚本,在该脚本中,配置回测的标的,主函数所需要的自定义参数,滑点,祝初始资金等,一系列的内容。最后,通过调用 traderRunBacktestV2 函数还实现回测。
- 编写策略逻辑主函数。这是整个策略的核心部分。
该函数的运行过程如下:
graph TBa(全局变量的声明和自定义变量的获取) --> b(通过 blnit 实现账户初始化);b --> c(启动交易);
其中,账户的初始化部分具体如下:
graph LRb(账户初始化) --> b1(设置并行计算);b --> b2(注册数据);b --> b3(计算信号);b --> b4(定义 container 变量)
其中,交易部分逻辑如下:
graph TBa(开始) --> b[获取账户信息];b --> c{判断是否满足交易条件};c -->|是|d[计算相关指标];c -->|否|a;d --> f[平仓];f --> g[开仓]
- 作为用户能接触到的 AT 回测只有两部分。但是作为回测而言,绩效的计算是相当重要的。AT 中的绩效指标的统计模块并未向用户公开。此部分或可改进,或者允许用户自定义。
- 对于回测而言,信号的事先计算固然能够提高回测速度,但这样的做法是否合理呢?会不会引起一些问题?或者忽略了一些问题?
需要注意的函数
- 策略主函数,比如示例中的 turtle。注意到在 traderRunBacktestV2 函数调用 turtle 时,采用的是以句柄的方式调用。这里要注意的数函数的输入参数。虽然说策略主函数,有三个固定参数,即 bInit、bDayBegin 和 cellPar,但这了前两个参数是所谓的固定结构,事实上在用的时候只给第三个参数赋值。关于这个用法我有点疑惑,有待查阅 matlab 的帮助文档查证一下。
- traderSetParalMode 设置并行计算的函数,不需要调试时应当设置为 true。
traderRegKData 用于注册数据的函数。
- 用法:Idx=traderRegKData(KFrequency, KFreNum);
- 这两个输入参数容易理解,一个是数据频率,另一个是数据的刷新频率。但是这个函数的输出我很好奇,文意来看是下标。帮助文档中没有说明。所幸后面有策略代码,示范了如何使用这返回的参数,要不然实在不明白。
- 话说这返回的数据长度也有所困惑,在 Aberration 函数中是 10 ,估计在外层已经用了一次用户自定义的参数,所以读取的数据是一定长度,而不是回测时间段内的所以数据,该函数有待进一步研究。
traderGetRegKData 获取已经注册的 K 线数据
- 用法:OutMatrix = traderGetRegKData(Idx,len,FilledUp,bpPFCell
- 与 traderRegKData 是固定搭配,因此也不追求上面的函数到底返回了什么。先学会用,后面慢慢体会。
使用经验
- 在这里开仓和平仓完成才算一手交易。一开始我很困惑
作为起始月份,既然交易次数为0,那么毛利毛损从何而来。后来我才明白。 - 这里使用了全局变量和 container 等数据类型,来记录重要数据。比如对 openPrice 的引用。若是低版本的 matlab 没有加进这种数据类型那就尴尬了。
- 对于 AT 还没有亲自动手编写过策略,目前的认识也是相当初浅。不过通读了几个示例策略,大体明白了该如何使用 AT 编写策略。文中如有错误认识,请勿见怪。下一篇学习报告,将展示我利用 AT 复现策略库上一些代码时的学习体会。
对AT软件的一点建议
说一句老实话 AT 给我的体验并不是太好。这里给出一些我使用时感觉到的问题和建议。
- 帮助文档一些部分写的并不是太清晰,甚至有错。比如 tradeGetRegKData 函数返回的是一个包含 time open high low close volume turnover openinterest 等字段组成的矩阵,这些字段是按照列排行的,而帮助文档却是说是 N*1 矩阵。matlab 用户一般而言比较习惯使用列排列,我觉得想这些矩阵调整为列排列会更符合习惯。
- 有时候回测会出错而迟迟不能完成,关闭 AT 软件,重新启动后同样的策略却能快速完成回测。
这个问题出现地非常频繁,望赶紧修正有关 bug。 - 很有意思同样的策略配置,我将回测时间稍做修改。原来是 20160101-20171005 修改为 20161001-2017 但原来总交易次数为120,而修改后总交易次数却为119,然而从1601 到 1610 发生的交易次数绝对大于 1 这另我非常费解。
- 可以在帮助文档中增加解释一下绩效指标的计算,因为有些指标的计算方式,各个平台可能不同会导致困惑。甚至还可以增加自定义绩效指标等模块。这有利于使用者进行个性化分析。
- 这个回测时间的计时,我认为应该从配置脚本开时而不是从具体策略函数开始。对用户而言,直接感受到回测用时是从配置脚本开始的。而由于各种原因,有时候这两者的计时差距不小。如图:
- 在 matlab 已经打开的情况下,已经完成一个策略的回测。从 AT 中选中启动脚本,又新开了一个 matlab。希望不要新开一个 matlab,毕竟计算机配置太低,带不动了。
阅读全文
0 0
- AT学习报告一 软件的初步使用
- AT命令之初步学习
- JNI的初步使用(一)
- RxJava的初步使用(一)
- 初步学习软件测试的一些思考
- XStream的初步使用学习
- cocos2d-x的初步学习一
- 遗传算法的初步学习(一)
- DevExpress WebChartControl的初步简单使用一
- ArrayList和Iterator的初步使用(一)
- freemaker的初步使用(一)
- 可视化实验一:Echars的初步使用
- 线程的初步学习(委托的初步使用)
- 软件危机学习报告
- JS初步学习一
- RecyclerView初步学习(一)
- theano学习初步(一)
- theano学习初步(一)
- ionic2项目实现项目打包
- SQL Server 2017 SELECT…INTO 创建的新表指定到文件组
- linux中“弹出界面eth0:设备似乎不存在”的问题
- HttpClient请求和HttpURLConnect请求数据
- 最长回文子串
- AT学习报告一 软件的初步使用
- HttpURLConnection获取网络数据(实例:网路请求图片)
- 【面向JS--Date对象】
- mui之上拉刷新和mui-content结合解决ios上拉不回弹的bug
- 写给自己的话
- 堆排序
- hdu1224 Free DIY Tour【动态规划】
- centos 6.5使用 360WiFi2 无线模块
- Timeout 时间已到。在操作完成之前超时时间已过或服务器未响应。