从零开始做量化(2)

系列文章目录

从零开始做量化(0)—— 引言
从零开始做量化(1)—— 交易框架
从零开始做量化(2)—— 开发环境搭建


持续更新中。。。


前言

本次文章为大家介绍开发环境的部署,我们的代码主要是用python写的,所以搭建是python开发环境。python是一种开源、可跨平台的解释型编程语言,同样的代码可以跑在Windows下,也可以跑在Linux下。考虑到部分小伙伴可能没有Linux环境下的Coding经历,我们主要介绍基于Windows10/Windows11系统的环境搭建。Windows系统下的开发环境有很多方案,比如Pycharm、Anaconda等IDE,大家可以按照自己的喜好选择。我们这里介绍的则是Python+VScode方案。

1. 部署Python开发环境

首先安装python解释器,安装完解释器还不算结束,因为我们会用到很多基于python语言的开发包,所以我们会介绍一些开发包安装方法和一些其他的常用命令。

1.1 安装python解释器

  1. 下载Python解释器
    这个直接去Python官网下载即可,需要注意的是,一定要下载3.0版本以上的,因为3.0以下的版本与3.0以上的版本不兼容,而本文下载的版本是3.10.2。

  2. 双击下载的.exe文件,进入安装界面,如下图勾选全部选项,然后点击next。
    在这里插入图片描述

  3. 勾选上最下面的两个选项,然后点击 “Customize installation” 选项,进入下一步。
    在这里插入图片描述

  4. 这一步的高级选项可以按照下图的勾选选择,然后下面的安装路径也可以自定义,笔者这里选择了默认安装位置。
    在这里插入图片描述

  5. 安装。点击"Install",等待安装完成即可。

  6. 验证是否安装成功。快捷键"WIN+R"(Windows徽标键+R),然后输入cmd,会打开一个黑色的窗口,然后输入"python",看是否会出现下图的结果,如果出现证明安装成功,否则可以重启一下计算机再次尝试。如果重启之后还是不行,需要手动配置环境变量(见第7步),本文举例的3.10.x版本已经和Windows系统磨合的非常好了,不再需要手动配置,所以担心配置问题的朋友可以用本文的3.10.2版本的安装包。如果官网找不到该版本的安装包,可以在文章末获取!

在这里插入图片描述

  1. 这一步专门处理自动添加python环境变量失败的情况,如果上一步验证成功,此步略过。搜索“环境变量”,进入编辑状态,选择系统变量中的"Path",添加如下图所示的两个python相关的路径。然后保存退出、重启计算机,重新验证即可。

在这里插入图片描述

1.2 Python包管理

上一小节我们只是安装了解释器,它的作用是解释并执行我们写的代码。在实际开发中,有很多优秀且必要的第三方包需要用到,所以我们需要掌握一些基本的包管理命令。还记得上面安装选项里面有一个"pip" 字样的选项吗,它就是专门用来管理第三方包的(除了pip之外,还有更强大的conda等,但是后者安装的时候比较麻烦,这里我们选择pip)。首先我们验证一下pip是否有效:

  1. 按照上一节第六步打开cmd终端。输入下面的命令:
pip -V

如果显示出"pip 21.2.4 from XXX"(数字表示pip版本号,不一定和示例一模一样),说明pip命令有效,那么可以进入后面的环节。

  1. pip命令安装第三方包
pip install PackageName
# 或者使用临时换国内源的方式安装,这样快一些
pip install -i url PackageName

上面的"url"表示指定的源地址,一般使用的是国内的镜像源,如阿里、豆瓣等,这里给出豆瓣的镜像源地址"https://pypi.douban.com/simple"。以numpy包为例,完整的命令为:

pip install -i https://pypi.douban.com/simple numpy

除了numpy之外,我们顺带安装后面还要用的其他包,即

pip install -i https://pypi.douban.com/simple scipy pandas matplotlib scikit-learn tushare

安装指定版本的包的命令格式为:

pip install PackageName==Version
  1. 卸载包
pip uninstall PackageName
  1. 升级pip
python -m pip install --upgrade pip
  1. 查看哪些包可以升级
# pip list --outdated
  1. 升级包
pip install --upgrade PackageName

2. 安装VScode编辑器

2.1安装过程

VScode官网 下载VScode的安装包,然后双击运行安装,并按照下面的图进行勾选,如果中间还有其他页面但是下面的图没有贴出来,那就按照默认的选项即可。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2.2 Python环境配置

VScode只是一个编辑器,想要在上面写代码并且在终端运行,需要安装一些必要的python插件,将我们上面安装的python解释器与VScode关联起来。方法很简单,如下图所示:

在这里插入图片描述
首先选择左侧边栏的插件选项,然后在应用商店中直接搜索插件名称"Python"和"Pylance"并安装,由于我们把python路径加入到环境变量中,插件会自动将本地安装的python解释器与VScode关联起来。除了上面的两个插件之外,这里再推荐三个辅助写代码的插件,用起来都很不错:“One Dark Pro”,“Rainbow Brackets"和"Tabnine XXX”。

然后验证开发环境能否正常工作:重启VScode,然后新建文件夹,并从VScode左上角的"文件"–> “打开文件夹”,打开新建文件夹,然后新建后缀为 . p y .py .py 文件,在新建文件里面输入:

print("Hello,Python!")

点击右上角的运行按钮,看下面的终端是否会打印出"Hello,Python"字样,上图为成功案例。

3. 总结与下文预告

本文首先介绍了python开发环境的部署工作,需要python安装包的,在下面的公众号后台回复 “py310” 即可获取。下次我们开始实战量化交易框架的实现。

感谢您的耐心阅读,文章创作不易,转发请注明出处!系列文章首发于个人微信公众号“24K纯学渣” ,学习资源与源码将第一时间共享在该平台,欢迎关注!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
语音识别的MATLAB实现 声控小车结题报告 小组成员:关世勇 吴庆林 一、 项目要求: 声控小车是科大华为科技制作竞赛命题组的项目,其要求是编写一个语言识别程序并适当改装一个小型机动车,使之在一个预先不知道具体形状的跑道上完全由声控来完成行驶比赛。跑道上可以有坡面,坑, 障碍等多种不利条件,小车既要具有较快的速度,也要同时具有较强的灵活性,能够克服上述条件。 二、 项目分析: 由于小车只要求完成跑道上的声控行驶,所以我们可以使用简单的单音命令来操作,如“前”、“后”、“左”、“右”等。 由于路面有各种不利条件,而且规则要求小车尽可能不越过边线,这就决定了我们的小车不能以较高的速度进行长时间的快速行驶。所以我们必须控制小车的速度和行进距离。 由于外界存在噪声干扰,所以我们必须对噪声进行处理以减小其影响。 鉴于上诉各种要求,我们决定对购买的遥控小车进行简单改造,使用PC机已有的硬件条件编写软件来完成语音的输入,采集,处理和识别,以实现对小车的控制。 三、 解决思路与模块: 整个程序大致可划分为三个模块,其结构框图如下图所示: 整个程序我们在Visual C++ 环境下编写。 四、 各模块的实现: 1 声音的采集: 将声音信号送入计算机,我们利用了声卡录音的低层操作技术,即对winmm.lib进行API调用。具体编程时这一部分被写在一个类中(Soundin类)。 在构造函数中设定包括最大采样率(11025),数据缓存(作为程序一次性读入的数据,2048),声卡本身所带的一些影响采样数据等的各种参数; 调用API函数waveInGetNumDevs(返回UNIT,参数为空)检察并打开声音输入设备,即声卡;并进而使用waveInGetDevCaps得到声卡的容量(在waveInCaps中存有该数据,对其进行地址引用,从DWORD dwFormats得到最大采样率、声道数和采样位); 创建一个叫WaveInThreadEvent的事件对象,并赋予一个Handle,叫m_WaveInEvent,开始利用线程指针m_WaveInThread调用自定义的线程WaveInThreadProc; 对结构WAVEFORMATEX中WaveInOpen开始提供录音设备。注意设备句柄的得到是通过对HWAVEIN 型数据m_WaveIn的引用。 由于通过这种方式进行录音的文件格式是.wav,所以要先设置录音长度,以及对头文件进行一些设置:包括buffer的地址为InputBuffer的初始地址,大小为录音长度的两倍,类型。使用waveInPrepareHeader为录音设备准备buffer。然后使用waveInAddBuffer函数为录音设备送出一个输入buffer。最后使用waveInStart(m_WaveIn)打开设备。 程序中WaveInThreadProc需要提出另外说明,因为通过这个线程我们可以实现采样和数据提取。该线程首先定义一个指向CsoundIn类的指针pParam,并将其宏定义为PT_S。而线程参数即为空指针pParam。使用WaitForSingleObject将录音过程设置为一旦开始就不中止(除非中止线程)。在此线程中如下两个工作:将数据送入buffer,并将数据传入某个参数(其调用一个函数,将buffer中的数据送入该函数的参数*pt),而这些数据正是我们要利用和处理的数字化的语音信息。 2 声音的预处理: 声音信息的预处理主要包括音头和音尾的判断,声音的预加重,分帧处理和窗化处理。 A 音头音尾的判断与提取: 这是该项目的一个难点。由于我们的声音信号不是连续给出的,而且现场还有噪声的存在,所以我们必须通过适当的方法来判断采集的数据是不是我们所要的声音控制信号。这又是该项目的一个重点。若声音指令信号提取的不恰当,那么我们采样所得的数据就和我们实际的语音信号就会有很大的出入,这样不但会延迟语音识别的时效性,而且会降低对这些声音信号的识别率。对声音信号的提取,主就是确定音头、音尾的位置。常用的方法有过零率和短时距能量等几种。我们这里采用的就是过零率这个方法。首先对噪声取样,从这些噪声样本中得到噪声的上下限,将实时信号与这个门限进行比较,得到过零率。 定义过零率Zcr如下: 其中: 利用过零率的大小来判断是否有声音信号进入,若 ( 为预设的过零率值),则表示有声音信号进入,就找到了音头。在找到音头的情况下,若 ,则表示声音结束,也就找到了音尾。在环境噪声较大且比声音指令小的多的情况下可以对这个门限加一修正。音头和音尾之间的部分就是我们用以作为识别用的声音指令信号了。由于一般情况下人们所发出的单音都有一定的时间长度而大的噪声则大多是突发的,持续时间较短,所以我们可以再对所得到的声音指令信号一次筛选,若得到的声音信号的长度小于预设值,就可认为是噪声干扰,舍弃;若得到的声音信号的常到大于预设值,则将其作为有用信号存储。实验表明,利用过零率和预设长度相结合起来提取声音指令信号的方法很有效的。 B 语音信号的预加重: 我们所采用的预加重的方法是较为常用的网络: 传递函数为: 得到的信号为: 预加重的目的在于滤除低频干扰,尤其是50Hz或60Hz的工频干扰,将对于语音识别更为有用的高频部分的频谱进一步提升。在计算短时能量之前应用该滤波器,还可以起到消除直流漂移、抑制随机噪声和提升清音部分能量的效果。 C 分帧处理 在计算各个系数之前要先将语音信号作分帧处理。语音信号是瞬时变化的,但在10~20ms内是相对稳定的,而我们设定的采样频率为11025所以我们对预处理后的语音信号S1(n)以300点为一帧进行处理,帧移为100个采样点。 (N=300) D 窗化处理: 为了避免矩形窗化时对LPC系数在端点的误差,我们采用了汉明窗函数来进行窗化。即: 其中: 3 语音数据的特征提取: 语音信号的特征有多种度量标准,我们采用的是比较常用的倒谱特征。 语音信号是一种典型的时变信号,然而如果把观察时间缩短到几十毫秒,则可以得到一系列近似稳定的信号。人的发音器官可以用若干段前后连接的声管进行模拟,这就是所谓的声管模型。全极点线性预测模型(LPC)可以对声管模型进行很好的描述,每段声管对应一个LPC模型的极点。一般情况下,极点的个数在12-16个之间就可以足够清晰地描述语音信号的特征了。 语音信号经过预处理,它的每个样值均可由过去若干个样值的线性组合来逼近,同时可以采用使实际语音抽样与线性预测抽样之间的均方差最小的方式,来解出一组预测的系数 。这就是LPC所提取出来的信号的初始特征。 预测值时域表达式为: 其中, 为加权系数,即LPC系数。预测的误差为: 使 在均方误差最小的条件下,可求得唯一的 ,此过程即为LPC分析过程。 这里采用的是Levinson-Durbin法。由上面的式子有: 其中, 为待分析与引信号的自相关序列: 因此:Levinson-Durbin算法为: 1. 初始化: 2. 迭代计算:对于 3. 最后就算: 以上式中的 为反射系数。 ; 为最小预测误差,随着阶数的增加而减少; 为模型增益常量。 在语音识别系统中,很少直接使用LPC系数,而是由LPC系数推导出另一种参数:线性预测倒谱系数(LPCC)。倒谱实际上是一种同态信号处理方法,标准的倒谱系数计算流程需要进行FFT变换、对数操作和相位校正等步骤,预算比较复杂。在实际计算中,他不是由原始信号x(n)得到,而是由LPC系数 得到的。 LPC系数算出后,就可以直接进行倒谱系数 的计算,其迭代算法如下: 1.初始化: 2.迭代计算: 这里C(0)实际上就是直流分量,在识别中通常是不用的,也不去计算。 综合考虑识别误差和识别速度的影响,我们在计算LPC 时,LPC系数的阶数Q值取为8,而LPCC系数的阶数P值取为12。 4 DTW 算法: 语音识别程序的核心部分即采用合适的算法来识别不同的语音信号,在特定人语音识别算法中,对于孤立词语语音识别而言,最为简单的方法是采用DTW(Dynamic Time Warping,动态时间弯折)算法,该算法基于动态规划)(DP)的思想,解决了发音长短不一的模本匹配问题,是语音识别中出现较早、较为经典的一种算法。我们这里采用的就是DTW算法。 我们用R表示已存的参考模板,T表示待识别的测试模板,R(1),R(2) ,…,R(m),T(1),T(2),…,T(n)分别表示参考模板和测试模板中的各语音帧,d[T(n),R(m)]表示这两帧特征矢量之间的距离(DTW算法中通常采用欧氏距离)。为了比较R和T之间的相似度,可以计算他们之间的距离D[T,R],距离越小则相似度越高。D[T,R]的计算通常采用的是动态规划的方法。 将R和T的各个帧号分别在直角坐标系的横轴和纵轴上标出,则如下图可得到一个网格,网格中各点表示R和T中的一帧的交汇点。DP算法可以归结为寻找一条通过此网格中若干格点的路径,使得沿路径的累积距离达到最小值。 为了使路径不至于过分倾斜,可以约束斜率在0.5-2范围内,如果路径已经通过了格点( ),那么下一个通过的格点( )只能是下列三种情况之一: 搜索最佳路径的方法如下: 搜索从( )开始,网格中任意一点只可能有一条路径通过。对于( ),其可达到该格点的前一格点之可能是 ( ),( ),( ),那么( )一定选择这3个距离中的最小者所对应的格点作为其前续格点。若用( )代表此格点,并将通过该格点的路径延伸而通过( ),这时此路径的累积距离为: 其中的 由下式决定: 这样可以从初始点出发依次搜索直到搜索到终点 便可得到最佳路径。 五、整个系统的软件流程图: 见右图。 六、硬件 用四个c1108型三极管来控制小车遥控手柄的前、后、左、右触点的通断。从计算机的并口引出四根信号线,与三极管相连,与前、后、左、右一一对应。若判断出指令信号后,则相应的信号线上输出高电平,该电路导通,发送无线信号。若无指令,则信号线上输出低电平,电路断路,不发送无线信号。电路示意图如下:(由于四条线路基本是一致的,这里只画出了其中的一根信号线与外电路的连接示意图) 七、实现功能与技术指标: 1. 软件上可以识别前、后、左、右、停等语音指令,并发出相应的控制信号。 2. 硬件上可以实时的收发无限信号,并控制小 车作相应的动作。 3. 语音识别正确率大于95%,从发出语音指令 到执行该指令的延时小于100ms。 八、与原设计方案的比较: 我们的整个方案基本是按照原设计方案来进行的,各项指标也基本达到了预定目标。 九、经费使用情况: 主要分为两部分: 第一, 由于我们都没有学过语音识别方面的知识,所以一开始我们就买了一些参考书和资料。 第二, 在软件部分初步成型后,在对小车进行改装时购买了一些电子元器件以及其他一些工具。 十、致谢: 感谢华为研究所为我们提供这样好的锻炼机会,我们从中学到了很多书本上学不到的知识。 感谢铁伟涛同学为我们提供方案支持。 感谢我的导师魏衡华老师和314实验室的所有负责人为我们提供PC机和其它硬件条件以及方便的实验环境。 感谢所有的评委老师在开题和中期评审中给我们提供很多宝贵的意见。
目录 第1章 软件性能测试 1 1.1 什么是软件的性能 1 1.1.1 软件 1 1.1.2 软件性能的产生 4 1.1.3 功能与性能的关系 4 1.1.4 用户眼里的软件性能 6 1.1.5 软件人员眼里的软件性能 12 1.2 软件性能测试 16 1.2.1 性能测试在软件测试的周期位置 16 1.2.2 性能测试策略揭秘 20 1.3 如何性能测试 23 1.3.1 Goal(定义目标) 26 1.3.2 Analysis(分析) 28 1.3.3 Metrics(度量) 29 1.3.4 Execution(执行) 30 1.3.5 Adjust(调整) 31 1.4 性能测试工具的评估和选择 32 1.4.1 测试预算VS工具价格 33 1.4.2 协议、开发技术、平台、中间件VS工具的支持 33 1.4.3 工具可使用的复杂程度VS项目计划的影响 34 第2章 第一次亲密接触LoadRunner 35 2.1 从性能测试到LoadRunner的映射 35 2.2 LoadRunner工作原理 38 2.3 安装LoadRunner 41 2.4 揭开License的神秘面纱 42 第3章 走近LoadRunner 44 3.1 LoadRunner的运行原理 45 3.1.1 LoadRunner三大高手 45 3.1.2 三大高手联手的一场性能测试盛大演出 48 3.2 LoadRunner的录制原理 50 3.2.1 网络协议与LoadRunner的Vuser 50 3.2.2 选择LoadRunner Protocol的两大定律 55 3.2.3 LoadRunner录制技术 56 第4章 LoadRunner脚本语言基础 62 4.1 C语言与LoadRunner脚本 66 4.1.1 看不见的main 67 4.1.2 全局变量与局部变量 71 4.1.3 在LoadRunner脚本里灵活使用C语言 74 4.1.4 高级--用户自定义函数 78 4.2 通用VU函数 81 4.2.1 事务和事务控制函数 82 4.2.2 命令行分析函数 83 4.2.3 系统信息函数 83 4.2.4 字符串函数 83 4.2.5 消息函数 84 4.2.6 运行时(run-time)函数 84 4.3 协议相关函数 85 4.3.1 HTTP协议原理 85 4.3.2 HTTP在LoadRunner的实现 86 第5章 VU--用户行为的模拟器 89 5.1 图灵试验与LoadRunner VU模拟奥秘 90 5.1.1 图灵试验场景 90 5.1.2 LoadRunner模拟揭秘 91 5.2 录制脚本 94 5.2.1 选择协议 94 5.2.2 规划脚本结构 96 5.2.3 HTTP Vuser中的URL mode和HTML mode 96 5.2.4 查看日志 99 5.3 回放脚本 101 5.4 关联 102 5.4.1 录制前Correlation(关联) 103 5.4.2 录制后关联 106 5.4.3 手动关联 109 5.5 脚本视图和树视图 113 5.5.1 树视图(Tree View) 113 5.5.2 脚本视图(Script View) 114 5.5.3 理解Snapshot 115 5.6 事务、同步点和思考时间 115 5.6.1 Transaction(事务) 115 5.6.2 Rendezvous Point(同步点) 118 5.6.3 注释 119 5.6.4 Think Time(思考时间) 119 5.7 数据驱动--参数化(Parameters) 121 5.7.1 为什么需要参数化 121 5.7.2 参数的创建 123 5.7.3 定义参数的属性 130 5.7.4 高级--从已存在的数据库中导入参数数据 136 5.8 检查点(Check point) 142 5.8.1 为什么需要检查点 142 5.8.2 检查点实施之一:ContentCheck定义 144 5.8.3 检查点实施之二:检查函数 144 5.8.4 检查点设置技巧 147 5.9 高级--多Action 147 5.10 高级--脚本错误处理机制 150 5.11 高级--脚本调试技巧 152 5.11.1 动态运行(Animated run)与非动态运行(Non-Animated run) 152 5.11.2 日志设置 153 5.12 高级--编写脚本的最佳实践 156 5.13 VU脚本运行成功后 157 第6章 Controller--性能测试的指挥中心 158 6.1 得到细化后的性能需求 159 6.2 设计性能测试场景 162 6.2.1 创建手工场景 164 6.2.2 百分比模式创建手工场景 173 6.2.3 创建面向目标场景 174 6.2.4 多IP的实现原理以及模拟 180 6.3 运行场景 183 6.3.1 场景控制 183 6.3.2 执行期间查看场景 191 6.3.3 监视场景 196 6.3.4 高级--用户自定义数据采集点 201 6.3.5 主要的计数器 203 6.3.6 实例--分析实时监视图表 211 6.4 场景运行后 213 6.5 高级--如何合理规划性能测试拓扑 213 6.5.1 选择最优的测试机配置 215 6.5.2 客户端CPU瓶颈估算 216 6.5.3 客户端网络瓶颈估算 217 6.5.4 客户端内存瓶颈估算 219 6.5.5 总评估 221 第7章 Analysis--寻找系统瓶颈的得力助手 222 7.1 Analysis报告概要(Summary) 223 7.1.1 概要部分 223 7.1.2 统计部分 224 7.1.3 事务统计 225 7.1.4 HTTP响应统计 227 7.2 Analysis标准图 227 7.2.1 Vuser图 227 7.2.2 事务图 228 7.2.3 网页细分图 230 7.3 交叉结果和合并图 233 7.3.1 叠加 235 7.3.2 平铺 236 7.3.3 关联 236 7.4 生成测试报告 237 7.4.1 创建HTML格式报告 237 7.4.2 创建Word格式报告 238 7.4.3 高级--数据点报告 239 第8章 欲善其事先利其器--VU脚本开发实战 240 8.1 邮件服务SMTP/IMAP协议介绍 241 8.1.1 电子邮件的工作原理 241 8.1.2 SMTP协议介绍 241 8.1.3 POP3协议介绍 243 8.1.4 IMAP协议介绍 244 8.2 VU的SMTP Vuser对SMTP协议的封装及实现 244 8.2.1 使用SMTP Vuser录制Outlook 2003发送邮件 247 8.2.2 对SMTP Vuser录制生成的脚本进行分析 251 8.2.3 回放SMTP Vuser脚本并分析网络日志 253 8.3 VU Java Vuser自开发SMTP程序 255 8.3.1 VU创建Java模板虚拟用户 255 8.3.2 设置Java环境 257 8.3.3 在Java Vuser中开发SMTP发送mail脚本 258 8.3.4 参数化增强脚本 260 第9章 学以致用--一步一步Web系统性能测试 264 9.1 软件系统背景及架构设计介绍 264 9.2 性能要求和性能指标分析(Goal阶段) 267 9.2.1 性能指标 267 9.2.2 业务模型分析和需求细化 268 9.3 性能测试方案和用例设计(Analysis阶段) 268 9.4 性能测试各种度量的建立(Metrics阶段) 273 9.4.1 性能脚本的生成 273 9.4.2 定义用户行为 274 9.4.3 场景的设置与运行 274 9.4.4 计数器的设置与性能数据收集 276 9.5 运行场景,得到测试结果和相关数据(Execution阶段) 277 9.5.1 脚本的开发 277 9.5.2 数据的生成 278 9.5.3 并发登录测试 279 9.5.4 负载测试 279 9.6 分析测试瓶颈(Adjust阶段) 280 9.6.1 并发测试结果分析 280 9.6.2 交易流程测试结果分析及性能评价 281 9.6.3 查询流程测试结果分析 281 第10章 循序渐进--进阶LoadRunner高手 282 10.1 性能测试用例的设计策略 282 10.1.1 "普遍撒网,重点查看"的原则 282 10.1.2 保证数据的有效性 284 10.2 LoadRunner高级功能的使用--Web Click Vuser 286 10.2.1 Web Click Vuser的产生背景 286 10.2.2 Web Click Vuser与传统Vuser的差别 286 10.2.3 使用Web Click Vuser 286 第11章 定量分析及诊断--建立性能度量模型 291 11.1 实现性能度量的准备工作 292 11.1.1 性能度量 292 11.1.2 度量方式 294 11.2 案例实践--性能测试第一阶段Ajax页面基准性能分析 298 11.2.1 页面基准分析目标 298 11.2.2 分析所使用的工具 299 11.2.3 术语揭示 299 11.2.4 基准测试案例设计及运行 300 11.2.5 结果分析 305 11.2.6 优化建议 306 11.2.7 预测 306 11.3 案例实践:性能测试第二阶段Ajax系统负载测试 307 11.3.1 本轮测试目的 307 11.3.2 测试场景规划 307 11.3.3 负载测试案例分析 309 11.3.4 性能结果量化分析 312 11.4 总结 315 第12章 测试也开发--自开发性能测试框架 316 12.1 性能测试框架架构设计 317 12.1.1 技术考虑的准备 317 12.1.2 Automation Center性能测试框架设计实例 319 12.1.3 定义XML格式的性能测试任务文件 325 12.1.4 Automation Center性能测试调度运行 329 12.1.5 性能测试报告诊断系统 330 12.2 核心技术及具体实现方法 332 12.2.1 性能测试数据源格式定义 332 12.2.2 测试程序与性能测试框架的接口实现 336 12.2.3 测试任务克隆技术 339 12.2.4 多任务通信技术 340 12.2.5 Observer性能监控技术 341 12.2.6 基于XSL技术的性能测试报告构建 344 12.3 总结 346 附录A 有关LoadRunner的常见问题解答 347
## 讲师介绍: 近 5 年个人投资理财年化收益平均超 25%。如果你也想提升自己的睡后收入,轻松赚钱,那么这门课就是为你量身打造。课程基于一个完整真实的量化交易业务来讲授,并融入老师的理财经验以及使用编程技术辅助投资的技巧,让你面对各种复杂投资情况也能到游刃有余。 ## 学习目标: 从不懂“理财”开始到实现自动交易,成为一个“技术流”理财高手 编程技术 + 核心量化策略 + 交易系统开发 + 讲师经验分享,学会用技术辅助理财 本课程从最基础的什么是量化开始讲起,即使对投资理财不了解同样可以学习,轻松入门无压力。 从如何获取数据开始,到实现实盘交易,课程对量化交易的每一步都进行细致讲解,为你铺开量化交易的每一个细节。 不仅仅只是教你学会使用某种工具,更会教给你量化交易的投资思想,让你面对各种情况都游刃有余。 ## 课程亮点: 设计适合自己并能适应市场的交易策略,才是量化交易的灵魂 课程亲手带你设计并实现两种交易策略,快速培养你的策略思维能力 1. 择时策略:通过这个策略学会如何利用均线,创建择时策略,优化股票买入卖出的时间点。2. 选股策略:掌握选股策略的核心逻辑,并基于收益率创建动量选股策略,并验证其有效性。 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统 第三方平台大而全,不易扩展,效率还差,信息安全也是大问题,打造自己的交易平台才是更优解

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值