1、分层自动化测试概念  传统的自动化市场更关注产品UI层的自动化测试,而分层的自动化测试倡导产品开发的不同阶段都需要自动化测试  大多公司与研发团队其实是忽略了单元测试与集成测试阶段的自动化测试工作,所以,在分层的自动化测试中,我们有必要对这些定义重新理解和定义。  单元测试:我们需要规范的来做单元测试同样需要相应的单元测试框架,如java的Junit、testNG,C#的NUint,Pyt
转载 2023-08-29 16:59:02
93阅读
分层是一种在量化金融和交易策略开发中广泛应用的技术,通过在不同的数据层次上进行分析,帮助策略开发者评估其策略的有效性和潜在风险。本文将详细讲解如何使用 Python 进行分层,包括环境配置、编译过程、参数调优、定制开发、调试技巧和安全加固等方面。 ### 环境配置 在开始之前,确保已安装必要的 Python 库和依赖。以下是配置流程的示意图,以及相关的 Shell 配置命令。 `
原创 6月前
56阅读
1、作用分层回归(层次回归)本质上是建立在回归分析基础上,区别在于分层回归可分为多层,用于研究两个或者多个回归模型之间的差异。分层回归将核心研究的变量放在最后一步进入模型,以考察在排除了其他变量的贡献的情况下,该变量对回归方程的贡献。如果变量仍然有明显的贡献,那么就可以做出该变量确实具有其他变量所不能替代的独特作用的结论。这种方法主要用于,当自变量之间有较高的相关,其中一个自变量的独特贡献难以确定
前言由于新冠病毒的影响,只能窝在家中自我关禁闭,因此参加了深度学习公益训练营的活动,结合《动手学深度学习》这本书,对深度学习进行系统性的学习与实践,感到获益良多。一、线性回归回归问题通常对连续值进行预测,而分类问题通常对离散的值进行预测。线性回归输出是⼀个连续值,因此适⽤于回归问题。回归问题在实际中很常⻅,如预测房屋价格、⽓温、销售额等连续值的问题;分类问题包括图像分类、垃圾邮件识别、疾病检测等输
【建模算法】层次分析法(Python实现)01 算法用途在很多情况下,我们对事物评价,应该要多维度评价。多维度评价之后我们要如何把它们合并成一个指标用于比较事物的好坏呢,这时候需要对各个指标赋权, 层次分析法就是用来赋权重的了。 这个方法主观性比较强,在数据集比较小,实在不好比较的时候可以用这个方法,如果有别的选择还是尽量不要用这个算法比较好。可以看下以往建模获奖论文,此算法的出现频率还是挺高的,
转载 2023-08-10 17:41:53
74阅读
1引言目前基于Python的量化框架有很多,开源框架有zipline、vnpy、pyalgotrader和backtrader等,而量化平台有Quantopian(国外)、聚宽、万矿、优矿、米筐、掘金等,这些量化框架或平台各有优劣。就个人而言,比较偏好用backtrader,因为它功能十分完善,有完整的使用文档,安装相对简单(直接pip安装即可)。优点是运行速度快,支持pandas的矢量运算;
 一、什么是RSI策略?双均线策略的思想主要是根据长短周期 MA 指标的关系来判断买卖时机。基于 RSI 指标的策略主要是根据买卖双方力量之间的对比来判断买卖点。RSI 指标是通过一段时间价格变动情况来计算市场买卖力量的对比,从而推测未来价格变动的技术指标。当RSI大于80时,称为处于超买区,意味着未来价格可能会出现下跌;当RSI小于20时,称为处于超卖区,意味着未来价格可能会出现上涨。
转载 2023-06-12 17:28:00
426阅读
PyUnit(unittest) 是 Python 自带的单元测试框架,用于编写和运行可重复的测试。PyUnit 是 xUnit 体系的一个成员,xUnit 是众多测试框架的总称,PyUnit 主要用于进行白盒测试和回归测试。通过 PyUnit 可以让测试具有持久性,测试与开发同步进行,测试代码与开发代码一同发布。使用 PyUnit 具有如下好处:可以使测试代码与产品代码分离。
通过Tushare和backtrader实现量化投资(tushare ID=418443)一.Tushare介绍二.安装Tushare三.backtrader介绍和安装四.编写代码1、初始化tushare,获取指定股票代码的股票历史数据。2、加载数据3、加载backtrader引擎,初始化投资金额4、增加策略5、布林线规则策略的具体实现6、输出结果并打印图形五.运行结果 一.Tushar
转载 2023-09-21 11:29:07
523阅读
2评论
我们把量化小工具的基础版本称为V0,该版本的股票行情页面中的股票名称只有4个,分别为开山股份、浙大网新、水晶光电、高鸿股份,如果同学们要添加自选股,只能在代码中添加。接下来我们把A股市场中全部的股票都添加到下拉框中去。此处使用Tushare Pro的stock_basic()接口,该接口获取上市的所有股票基础信息数据,包括股票代码、名称、上市日期、退市日期等。输入参数说明如下:is_hs:是否沪深
一、OHLCV:当天的开盘价(Open)、最高价(High)、最低价(Low)和收盘价(Close)。如果再加上这一个小时总的成交量(Volumn),就得到了 OHLCV 数据。使用 Zipline 进行策略,或者用 Pyfolio 进行投资组合分析。Quantopian,就提供了基于 Zipline 的标准环境。国内也有诸如 BigQuant、果仁网等类似平台,提供不同市场和金融产品的交
转载 2024-02-14 19:54:27
77阅读
Q:两个有序数组合并成一个有序数组def merge_sort(a, b): ret = [] i = j = 0 while len(a) >= i + 1 and len(b) >= j + 1: if a[i] <= b[j]: ret.append(a[i]) i += 1
作者 | liuchungui我们的程序是用Python写的,因为使用Jupter Notebook显示结果非常方便。但是,最近在一次运行整个代码时,整整花了20分钟才出现结果。于是,我们打算好好优化一下。最终,性能提升10倍以上,耗时在1分29秒左右。优化流程我们优化主要分成两部分,第一部分是程序内部逻辑,第二部分是Python提速。所以,我们整个流程可以分成下面三步:第一步,
转载 2023-11-21 16:44:09
80阅读
对量化交易感兴趣的同学,对于系统肯定不陌生。以quantopian为蓝本的平台,国内已经一抓一把,那为什么还需要从头实现一个系统?而且,什么是“搭积木式实现策略”呢?对比现存的量化平台,实现如下价值:1,市面上量化系统引擎是黑盒(当然大部分是zipline——代码是开源的,但可读性一般),从头实现可以做到知其然更知其所以然。2,拥有自己的,代码易读性的系统,不用担心策略泄漏。3,提供一个构
Python 测试代码通过测试,可确定代码面对各种输入都能够按要求的那样工作序员都会犯错,因此每个程序员都必须经常测试其代码,在用户发现问题前找出它们。1、测试函数:要学习测试,得有要测试的代码首先再当前目录下创建一个name_fun.py的文件,内容如下:def get_test_name(first, last): """测试名字的代码""" full_name = first
backtrader是基于Python的量化框架,功能丰富,操作方便。其优点是运行速度快,支持pandas的矢量运算;内置多种技术指标计算,还支持股票分析技术指标库talib;支持参数自动寻优运算;支持多品种(股票、期货、期权、外汇和数字货币)、多策略、多周期(Ticks、秒、分、日、周、月和年)的和交易;支持PyFlio、empyrica分析模块库、alphalens多因子分析模块库等;
测试代码1.单元测试和测试用例 Python标准库中的模块unittest提供了代码测试工具。单元测试用于核实函数的某个方面没有问题;测试用例是一组单元测试,这些单元测试一起核实函数在各个情况下的行为都符合要求。良好的测试用例考虑了函数可能受到的各种输入,包含针对所有这些情形的测试。2.测试函数 直接看一个例子,下面是一个简单的函数,它接受包含中间名的外国姓名并返回整洁的姓名:def get_fo
转载 2024-02-19 18:38:26
62阅读
编写函数或类时,还可以为其编写测试。通过测试,可确定代码面对各种输入都能够按要求的那样工作。程序员都会犯错,因为每个程序员都必须经常测试其代码,在用户发现问题前找出它们。测试函数被测试的代码,下面是一个简单的函数name_function.py,它接受名和姓返回整洁的姓名:def get_formatted_name(first, last): """接受名和姓返回整洁的姓名""" full_na
海龟交易法作为最早的量化交易法,已经被利用了很多年了,我发现网络上有很多利用python进行海龟交易法的代码教程,而且都是先通过akshare库再通过均线组合的方式实现,但是其中大多会报错,小编找了很多很多,但是最后还是差强人意,因此有了下面的这些。希望对您有所帮助。我注释了一些需要注意的地方,其实这个均线策略是可以修改的,比如把10日和20日均线改成100日和200日,小编认为均线的具体选择
自己手工计算指标。 因为对前面计算指标的程序的准确性还有疑问,我决定再验证一次。验证的方法是找一个带数据的完整的程序,先实现其程序,再用它的数据和我的程序计算,对比一下二者的结果。在知乎上找到一篇,https://zhuanlan.zhihu.com/p/55425806 是用贵州茅台,工商银行和中国平安三只股票做回。我照着其程序写了,计算结果
  • 1
  • 2
  • 3
  • 4
  • 5