AT 学习报告一·软件的初步使用

首先,表达一下我的歉意。说好周末交的学习报告却推迟到了国庆假期。

接下来,话入正题。这是我的第一篇学习报告。主要是关于新回测结构的四个本地例子的学习笔记。这一篇学习报告主要是学习如何使用 AT 对这些策略本身以及策略代码编写是否合理可靠暂不研究。

CSDN 中 mermaid 似乎不能正常显示的,请见谅

对 AT 回测的认识

目前,我仅接触到用 AT 进行回测。下面谈谈我对 AT 回测的认识。
在 AT 中实现对一个策略的回测由两部分构成。

  • 一是编写一个策略回测的配置脚本,在该脚本中,配置回测的标的,主函数所需要的自定义参数,滑点,祝初始资金等,一系列的内容。最后,通过调用 traderRunBacktestV2 函数还实现回测。
  • 编写策略逻辑主函数。这是整个策略的核心部分。
    该函数的运行过程如下:
graph TB
a(全局变量的声明和自定义变量的获取) --> b(通过 blnit 实现账户初始化);
b --> c(启动交易);

其中,账户的初始化部分具体如下:

graph LR
b(账户初始化) --> b1(设置并行计算);
b --> b2(注册数据);
b --> b3(计算信号);
b --> b4(定义 container 变量)

其中,交易部分逻辑如下:

graph TB
a(开始) --> b[获取账户信息];
b --> c{判断是否满足交易条件};
c -->|是|d[计算相关指标];
c -->|否|a;
d --> f[平仓];
f --> g[开仓]
  • 作为用户能接触到的 AT 回测只有两部分。但是作为回测而言,绩效的计算是相当重要的。AT 中的绩效指标的统计模块并未向用户公开。此部分或可改进,或者允许用户自定义。
  • 对于回测而言,信号的事先计算固然能够提高回测速度,但这样的做法是否合理呢?会不会引起一些问题?或者忽略了一些问题?

需要注意的函数

  1. 策略主函数,比如示例中的 turtle。注意到在 traderRunBacktestV2 函数调用 turtle 时,采用的是以句柄的方式调用。这里要注意的数函数的输入参数。虽然说策略主函数,有三个固定参数,即 bInit、bDayBegin 和 cellPar,但这了前两个参数是所谓的固定结构,事实上在用的时候只给第三个参数赋值。关于这个用法我有点疑惑,有待查阅 matlab 的帮助文档查证一下。
  2. traderSetParalMode 设置并行计算的函数,不需要调试时应当设置为 true。
  3. traderRegKData 用于注册数据的函数。

    • 用法:Idx=traderRegKData(KFrequency, KFreNum);
    • 这两个输入参数容易理解,一个是数据频率,另一个是数据的刷新频率。但是这个函数的输出我很好奇,文意来看是下标。帮助文档中没有说明。所幸后面有策略代码,示范了如何使用这返回的参数,要不然实在不明白。
    • 话说这返回的数据长度也有所困惑,在 Aberration 函数中是 10 ,估计在外层已经用了一次用户自定义的参数,所以读取的数据是一定长度,而不是回测时间段内的所以数据,该函数有待进一步研究。
  4. traderGetRegKData 获取已经注册的 K 线数据

    • 用法:OutMatrix = traderGetRegKData(Idx,len,FilledUp,bpPFCell
    • 与 traderRegKData 是固定搭配,因此也不追求上面的函数到底返回了什么。先学会用,后面慢慢体会。

使用经验

  1. 在这里开仓和平仓完成才算一手交易。一开始我很困惑

    作为起始月份,既然交易次数为0,那么毛利毛损从何而来。后来我才明白。
  2. 这里使用了全局变量和 container 等数据类型,来记录重要数据。比如对 openPrice 的引用。若是低版本的 matlab 没有加进这种数据类型那就尴尬了。
  3. 对于 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,毕竟计算机配置太低,带不动了。

AT学习报告一 软件的初步使用相关推荐

  1. 《软件项目管理》课程学习报告

    短短的一个月转眼过去了,林老师的软件项目管理课已经结束了.我用了一星期的时间细细的品位了那段美好时光,我希望能用今天完成的学习报告来记录下这段短暂的回忆.希望在未来的日子里每当我翻开这篇报告时就能带给 ...

  2. python量化投资培训清华大学深研院_GitHub - CatsJuice/quantitative-investment-learning: 使用Python进行量化投资的学习报告...

    quantitative-investment-learning 使用Python进行量化投资的学习报告 Python量化投资学习报告 CatsJuice 编辑于 2019-4-26 上一次更新: 2 ...

  3. 学习报告2020-6-30

    学习报告2020-6-30 学习报告: 第一期 时间周期: 6月22日 - 6月30日 姓名.专业:刘文建 - 电子信息 一.内容 1.开发环境搭建: (1)安装好keil软件,学习新建stm32工程 ...

  4. 计算机应用基础形考报告2020,放大学计算机应用基础形考本学习报告

    放大学计算机应用基础形考本学习报告Tag内容描述: 1.学 海 无 涯 模块模块 1 windows 7 操作系统操作系统客观题客观题 (答案)(答案) 1.以( )为核心组成的微型计算机属于集成电路 ...

  5. 计算机组成与架构综述学习报告

    计算机组成与架构综述学习报告 计算机系统的指令集ISA的演进过程是怎样的? 第一阶段关键词:集成电路.CISC.432.8086.IBM PC 集成电路在摩尔定律的预言下快速发展,使得CPU的控制单元 ...

  6. AI+智能服务机器人应用基础【学习报告】

    AI+智能服务机器人应用基础[学习报告] 前言 欢迎使用 VMware Workstation VMware Workstation创建新的虚拟机 AI+智能服务机器人应用基础 项目1. 服务机器人整 ...

  7. python的ppt报告_Python学习报告.ppt

    <Python学习报告.ppt>由会员分享,可在线阅读,更多相关<Python学习报告.ppt(12页珍藏版)>请在人人文库网上搜索. 1.Python学习报告,报告人: 时间 ...

  8. 2020微信小程序学习报告.2.17-3.1.(三)

    微信小程序学习报告应学校课程要求,特此记录首先,小程序知识点: wx.request的使用:发https请求,一个小程序同时只能有5个网络请求,https的参数里,url是接口地址,method是请求 ...

  9. esp8266学习报告

    esp8266学习报告 1.认识esp8266 ESP8266是一款超低功耗的UART-WiFi 透传模块,拥有业内极富竞争力的封装尺寸和超低能耗技术,专为移动设备和物联网应用设计,可将用户的物理设备 ...

  10. app营销实训报告_实习报告:软件销售实习报告

    实习报告:软件销售实习报告 本文是关于实习报告范文:软件销售实习报告范文的文 章! 实习报告范文:软件销售实习报告范文 一.实习单位简介 xxx 市 xxx 科技有限公司于 20xx 年在 xxx 正 ...

最新文章

  1. NOIP 2017 时间复杂度 (模拟)
  2. java5的递归算法_java递归算法 java面试题(5)
  3. ABP入门系列(19)——使用领域事件
  4. 《幸福就在你身边》第一课、你有追求美好生活的权利【哈佛大学幸福课精华】...
  5. 【转】【51CTO 网+】怎样做一款让用户来电的产品
  6. elt php,ELT(数据仓库技术) 学习
  7. emui内核支持kvm吗_Linux专题—使用kvm搭建虚拟机
  8. sql server 提取汉字/数字/字母的方法
  9. Container with most water
  10. udp socket 接收数据
  11. leetcode算法88.合并两个有序数组
  12. centos7 安装 dos2unix
  13. 每日学习(React,Redux)
  14. 如何从任意页开始设置页码
  15. 营业执照编码验证规则(15位和18位
  16. 大一计算机系要什么游戏本,大一新生笔记本电脑推荐-大一新生笔记本推荐性价比高榜单...
  17. iPad点餐助力餐饮业发展
  18. 冒泡排序 ← C语言实现
  19. EasyBCD 2.2 下载地址 百度云
  20. ubuntu18.04交叉编译移植OpenCV4.70和QT5.12.12至ARM64位平台LKD3588(开发板为ubuntu22.04系统)(三)

热门文章

  1. celery任务队列
  2. 如何将 png/jpg 图片转换为 eps
  3. php百度编辑器demo,百度编辑器 Laravel Ueditor | 码农软件 - 码农网
  4. 赖特 因果分析_量子至上的赖特的东西
  5. 天齐锂业通过聆讯:单季净利33亿 蒋卫平夫妇身价超500亿
  6. 企业微信hook接口,pc企业微信协议
  7. HSC-1th 2022 48h大赛 write-up
  8. QT图形显示和处理5
  9. 基于Barra多因子模型的组合权重优化
  10. 最近计算机速度测试情况,速度测试